Raspbian Package Auto-Building

Build log for git (1:2.30.2-1+deb11u2) on armhf

git1:2.30.2-1+deb11u2armhf → 2023-02-23 17:56:10

sbuild (Debian sbuild) 0.71.0 (24 Aug 2016) on bm-wb-04

+==============================================================================+
| git 1:2.30.2-1+deb11u2 (armhf)               Thu, 23 Feb 2023 16:26:29 +0000 |
+==============================================================================+

Package: git
Version: 1:2.30.2-1+deb11u2
Source Version: 1:2.30.2-1+deb11u2
Distribution: bullseye-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf

I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/bullseye-staging-armhf-sbuild-fc540bb3-4dd8-459b-8a30-24bdf76802cf' with '<<CHROOT>>'

+------------------------------------------------------------------------------+
| Update chroot                                                                |
+------------------------------------------------------------------------------+

Get:1 http://172.17.4.1/private bullseye-staging InRelease [11.3 kB]
Get:2 http://172.17.4.1/private bullseye-staging/main Sources [12.2 MB]
Get:3 http://172.17.4.1/private bullseye-staging/main armhf Packages [13.2 MB]
Fetched 25.5 MB in 27s (941 kB/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| 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 7031 kB of source archives.
Get:1 http://172.17.4.1/private bullseye-staging/main git 1:2.30.2-1+deb11u2 (dsc) [2525 B]
Get:2 http://172.17.4.1/private bullseye-staging/main git 1:2.30.2-1+deb11u2 (tar) [6330 kB]
Get:3 http://172.17.4.1/private bullseye-staging/main git 1:2.30.2-1+deb11u2 (diff) [698 kB]
Fetched 7031 kB in 1s (9324 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/git-zFCnXx/git-2.30.2' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/git-zFCnXx' 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-PdViRH/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-PdViRH/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-PdViRH/gpg/trustdb.gpg: trustdb created
gpg: key 35506D9A48F77B2E: 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 35506D9A48F77B2E: "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" not changed
gpg: key 35506D9A48F77B2E: 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-PdViRH/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Packages [432 B]
Fetched 2108 B in 1s (2933 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:
  bsdextrautils libnss-nis libnss-nisplus libpam-cap netbase sensible-utils
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 65 not upgraded.
Need to get 848 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [848 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 848 B in 0s (20.5 kB/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 12565 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-PdViRH/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-PdViRH/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Sources [661 B]
Get:5 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ Packages [728 B]
Fetched 2722 B in 1s (3533 B/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:
  libnss-nis libnss-nisplus libpam-cap
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  apache2-dev autoconf automake autopoint autotools-dev 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 libicu67 libio-pty-perl libio-socket-ssl-perl
  libldap-2.4-2 libldap2-dev libmagic-mgc libmagic1 libmailtools-perl libmd0
  libmpdec3 libnet-smtp-ssl-perl libnet-ssleay-perl libnghttp2-14
  libpcre2-16-0 libpcre2-32-0 libpcre2-8-0 libpcre2-dev libpcre2-posix2
  libpipeline1 libpsl5 libpython3-stdlib libpython3.9-minimal
  libpython3.9-stdlib librtmp1 libsctp-dev libsctp1 libserf-1-1 libsigsegv2
  libssh2-1 libsub-override-perl libsvn-perl libsvn1 libtcl8.6
  libtimedate-perl libtool libuchardet0 liburi-perl libutf8proc2 libuuid1
  libxml2 libyaml-perl m4 man-db media-types openssl perl-openssl-defaults
  po-debconf python3 python3-minimal python3.9 python3.9-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
  libidn11-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 libwww-perl libyaml-shell-perl m4-doc apparmor less www-browser
  libmail-box-perl python3-doc python3-tk python3-venv python3.9-venv
  python3.9-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 uuid-runtime libyaml-libyaml-perl | libyaml-syck-perl
  libmail-sendmail-perl
The following NEW packages will be installed:
  apache2-dev autoconf automake autopoint autotools-dev 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 libicu67 libio-pty-perl libio-socket-ssl-perl libldap2-dev
  libmagic-mgc libmagic1 libmailtools-perl libmd0 libmpdec3
  libnet-smtp-ssl-perl libnet-ssleay-perl libnghttp2-14 libpcre2-16-0
  libpcre2-32-0 libpcre2-dev libpcre2-posix2 libpipeline1 libpsl5
  libpython3-stdlib libpython3.9-minimal libpython3.9-stdlib librtmp1
  libsctp-dev libsctp1 libserf-1-1 libsigsegv2 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.9
  python3.9-minimal sbuild-build-depends-git-dummy subversion tcl tcl8.6 unzip
  uuid-dev zlib1g-dev
The following packages will be upgraded:
  libldap-2.4-2 libpcre2-8-0 libuuid1 zlib1g
4 upgraded, 93 newly installed, 0 to remove and 61 not upgraded.
Need to get 37.9 MB of archives.
After this operation, 139 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-PdViRH/apt_archive ./ sbuild-build-depends-git-dummy 0.invalid.0 [1016 B]
Get:2 http://172.17.4.1/private bullseye-staging/main armhf libuchardet0 armhf 0.0.7-1 [65.0 kB]
Get:3 http://172.17.4.1/private bullseye-staging/main armhf groff-base armhf 1.22.4-6 [793 kB]
Get:4 http://172.17.4.1/private bullseye-staging/main armhf libpipeline1 armhf 1.5.3-1 [29.9 kB]
Get:5 http://172.17.4.1/private bullseye-staging/main armhf zlib1g armhf 1:1.2.11.dfsg-2+deb11u2 [84.8 kB]
Get:6 http://172.17.4.1/private bullseye-staging/main armhf man-db armhf 2.9.4-2 [1307 kB]
Get:7 http://172.17.4.1/private bullseye-staging/main armhf libpython3.9-minimal armhf 3.9.2-1+rpi1 [791 kB]
Get:8 http://172.17.4.1/private bullseye-staging/main armhf libexpat1 armhf 2.2.10-2+deb11u5 [75.0 kB]
Get:9 http://172.17.4.1/private bullseye-staging/main armhf python3.9-minimal armhf 3.9.2-1+rpi1 [1625 kB]
Get:10 http://172.17.4.1/private bullseye-staging/main armhf python3-minimal armhf 3.9.2-3 [38.2 kB]
Get:11 http://172.17.4.1/private bullseye-staging/main armhf media-types all 4.0.0 [30.3 kB]
Get:12 http://172.17.4.1/private bullseye-staging/main armhf libmpdec3 armhf 2.5.1-1+rpi1 [73.4 kB]
Get:13 http://172.17.4.1/private bullseye-staging/main armhf libuuid1 armhf 2.36.1-8+deb11u1 [82.7 kB]
Get:14 http://172.17.4.1/private bullseye-staging/main armhf libpython3.9-stdlib armhf 3.9.2-1+rpi1 [1616 kB]
Get:15 http://172.17.4.1/private bullseye-staging/main armhf python3.9 armhf 3.9.2-1+rpi1 [466 kB]
Get:16 http://172.17.4.1/private bullseye-staging/main armhf libpython3-stdlib armhf 3.9.2-3 [21.4 kB]
Get:17 http://172.17.4.1/private bullseye-staging/main armhf python3 armhf 3.9.2-3 [37.9 kB]
Get:18 http://172.17.4.1/private bullseye-staging/main armhf libldap-2.4-2 armhf 2.4.57+dfsg-3+deb11u1 [207 kB]
Get:19 http://172.17.4.1/private bullseye-staging/main armhf libpcre2-8-0 armhf 10.36-2+deb11u1 [210 kB]
Get:20 http://172.17.4.1/private bullseye-staging/main armhf libmagic-mgc armhf 1:5.39-3 [273 kB]
Get:21 http://172.17.4.1/private bullseye-staging/main armhf libmagic1 armhf 1:5.39-3 [117 kB]
Get:22 http://172.17.4.1/private bullseye-staging/main armhf file armhf 1:5.39-3 [68.0 kB]
Get:23 http://172.17.4.1/private bullseye-staging/main armhf gettext-base armhf 0.21-4 [171 kB]
Get:24 http://172.17.4.1/private bullseye-staging/main armhf autotools-dev all 20180224.1+nmu1 [77.1 kB]
Get:25 http://172.17.4.1/private bullseye-staging/main armhf libsigsegv2 armhf 2.13-1 [34.3 kB]
Get:26 http://172.17.4.1/private bullseye-staging/main armhf m4 armhf 1.4.18-5 [186 kB]
Get:27 http://172.17.4.1/private bullseye-staging/main armhf autoconf all 2.69-14 [313 kB]
Get:28 http://172.17.4.1/private bullseye-staging/main armhf automake all 1:1.16.3-2 [814 kB]
Get:29 http://172.17.4.1/private bullseye-staging/main armhf autopoint all 0.21-4 [510 kB]
Get:30 http://172.17.4.1/private bullseye-staging/main armhf libdebhelper-perl all 13.3.4 [189 kB]
Get:31 http://172.17.4.1/private bullseye-staging/main armhf libtool all 2.4.6-15 [513 kB]
Get:32 http://172.17.4.1/private bullseye-staging/main armhf dh-autoreconf all 20 [17.1 kB]
Get:33 http://172.17.4.1/private bullseye-staging/main armhf libarchive-zip-perl all 1.68-1 [104 kB]
Get:34 http://172.17.4.1/private bullseye-staging/main armhf libsub-override-perl all 0.09-2 [10.2 kB]
Get:35 http://172.17.4.1/private bullseye-staging/main armhf libfile-stripnondeterminism-perl all 1.12.0-1 [26.3 kB]
Get:36 http://172.17.4.1/private bullseye-staging/main armhf dh-strip-nondeterminism all 1.12.0-1 [15.4 kB]
Get:37 http://172.17.4.1/private bullseye-staging/main armhf libelf1 armhf 0.183-1 [161 kB]
Get:38 http://172.17.4.1/private bullseye-staging/main armhf dwz armhf 0.13+20210201-1 [164 kB]
Get:39 http://172.17.4.1/private bullseye-staging/main armhf libicu67 armhf 67.1-7 [8291 kB]
Get:40 http://172.17.4.1/private bullseye-staging/main armhf libxml2 armhf 2.9.10+dfsg-6.7+deb11u3 [581 kB]
Get:41 http://172.17.4.1/private bullseye-staging/main armhf gettext armhf 0.21-4 [1215 kB]
Get:42 http://172.17.4.1/private bullseye-staging/main armhf intltool-debian all 0.35.0+20060710.5 [26.8 kB]
Get:43 http://172.17.4.1/private bullseye-staging/main armhf po-debconf all 1.0.21+nmu1 [248 kB]
Get:44 http://172.17.4.1/private bullseye-staging/main armhf debhelper all 13.3.4 [1049 kB]
Get:45 http://172.17.4.1/private bullseye-staging/main armhf libapr1 armhf 1.7.0-6+deb11u1 [87.1 kB]
Get:46 http://172.17.4.1/private bullseye-staging/main armhf uuid-dev armhf 2.36.1-8+deb11u1 [97.8 kB]
Get:47 http://172.17.4.1/private bullseye-staging/main armhf libsctp1 armhf 1.0.18+dfsg-1 [27.6 kB]
Get:48 http://172.17.4.1/private bullseye-staging/main armhf libsctp-dev armhf 1.0.18+dfsg-1 [81.1 kB]
Get:49 http://172.17.4.1/private bullseye-staging/main armhf libapr1-dev armhf 1.7.0-6+deb11u1 [727 kB]
Get:50 http://172.17.4.1/private bullseye-staging/main armhf libaprutil1 armhf 1.6.1-5 [81.2 kB]
Get:51 http://172.17.4.1/private bullseye-staging/main armhf libldap2-dev armhf 2.4.57+dfsg-3+deb11u1 [307 kB]
Get:52 http://172.17.4.1/private bullseye-staging/main armhf libexpat1-dev armhf 2.2.10-2+deb11u5 [123 kB]
Get:53 http://172.17.4.1/private bullseye-staging/main armhf libaprutil1-dev armhf 1.6.1-5 [399 kB]
Get:54 http://172.17.4.1/private bullseye-staging/main armhf libpcre2-16-0 armhf 10.36-2+deb11u1 [198 kB]
Get:55 http://172.17.4.1/private bullseye-staging/main armhf libpcre2-32-0 armhf 10.36-2+deb11u1 [188 kB]
Get:56 http://172.17.4.1/private bullseye-staging/main armhf libpcre2-posix2 armhf 10.36-2+deb11u1 [48.7 kB]
Get:57 http://172.17.4.1/private bullseye-staging/main armhf libpcre2-dev armhf 10.36-2+deb11u1 [627 kB]
Get:58 http://172.17.4.1/private bullseye-staging/main armhf openssl armhf 1.1.1n-0+deb11u4 [818 kB]
Get:59 http://172.17.4.1/private bullseye-staging/main armhf apache2-dev armhf 2.4.54-1~deb11u1 [363 kB]
Get:60 http://172.17.4.1/private bullseye-staging/main armhf libmd0 armhf 1.0.3-3 [27.2 kB]
Get:61 http://172.17.4.1/private bullseye-staging/main armhf libbsd0 armhf 0.11.3-1 [103 kB]
Get:62 http://172.17.4.1/private bullseye-staging/main armhf cvs armhf 2:1.12.13+real-28 [2745 kB]
Get:63 http://172.17.4.1/private bullseye-staging/main armhf cvsps armhf 2.1-8 [43.3 kB]
Get:64 http://172.17.4.1/private bullseye-staging/main armhf dh-exec armhf 0.23.2+b3 [25.7 kB]
Get:65 http://172.17.4.1/private bullseye-staging/main armhf libbrotli1 armhf 1.0.9-2+b1 [261 kB]
Get:66 http://172.17.4.1/private bullseye-staging/main armhf libhtml-tagset-perl all 3.20-4 [13.0 kB]
Get:67 http://172.17.4.1/private bullseye-staging/main armhf liburi-perl all 5.08-1 [90.6 kB]
Get:68 http://172.17.4.1/private bullseye-staging/main armhf libhtml-parser-perl armhf 3.75-1+b1 [102 kB]
Get:69 http://172.17.4.1/private bullseye-staging/main armhf libcgi-pm-perl all 4.51-1 [224 kB]
Get:70 http://172.17.4.1/private bullseye-staging/main armhf libnghttp2-14 armhf 1.43.0-1 [65.3 kB]
Get:71 http://172.17.4.1/private bullseye-staging/main armhf libpsl5 armhf 0.21.0-1.2 [56.2 kB]
Get:72 http://172.17.4.1/private bullseye-staging/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-2+b2 [54.2 kB]
Get:73 http://172.17.4.1/private bullseye-staging/main armhf libssh2-1 armhf 1.9.0-2 [141 kB]
Get:74 http://172.17.4.1/private bullseye-staging/main armhf libcurl3-gnutls armhf 7.74.0-1.3+deb11u5 [306 kB]
Get:75 http://172.17.4.1/private bullseye-staging/main armhf libcurl4-gnutls-dev armhf 7.74.0-1.3+deb11u5 [379 kB]
Get:76 http://172.17.4.1/private bullseye-staging/main armhf libdbi-perl armhf 1.643-3+b1 [770 kB]
Get:77 http://172.17.4.1/private bullseye-staging/main armhf libdbd-sqlite3-perl armhf 1.66-1+b1 [171 kB]
Get:78 http://172.17.4.1/private bullseye-staging/main armhf liberror-perl all 0.17029-1 [31.0 kB]
Get:79 http://172.17.4.1/private bullseye-staging/main armhf libtimedate-perl all 2.3300-2 [39.3 kB]
Get:80 http://172.17.4.1/private bullseye-staging/main armhf libhttp-date-perl all 6.05-1 [10.4 kB]
Get:81 http://172.17.4.1/private bullseye-staging/main armhf libio-pty-perl armhf 1:1.15-2 [36.1 kB]
Get:82 http://172.17.4.1/private bullseye-staging/main armhf perl-openssl-defaults armhf 5 [7360 B]
Get:83 http://172.17.4.1/private bullseye-staging/main armhf libnet-ssleay-perl armhf 1.88-3+b1 [300 kB]
Get:84 http://172.17.4.1/private bullseye-staging/main armhf libio-socket-ssl-perl all 2.069-1 [215 kB]
Get:85 http://172.17.4.1/private bullseye-staging/main armhf libnet-smtp-ssl-perl all 1.04-1 [6184 B]
Get:86 http://172.17.4.1/private bullseye-staging/main armhf libmailtools-perl all 2.21-1 [95.5 kB]
Get:87 http://172.17.4.1/private bullseye-staging/main armhf libserf-1-1 armhf 1.3.9-10 [46.9 kB]
Get:88 http://172.17.4.1/private bullseye-staging/main armhf libutf8proc2 armhf 2.5.0-1 [53.4 kB]
Get:89 http://172.17.4.1/private bullseye-staging/main armhf libsvn1 armhf 1.14.1-3+deb11u1 [1221 kB]
Get:90 http://172.17.4.1/private bullseye-staging/main armhf libsvn-perl armhf 1.14.1-3+deb11u1 [972 kB]
Get:91 http://172.17.4.1/private bullseye-staging/main armhf libtcl8.6 armhf 8.6.11+dfsg-1 [894 kB]
Get:92 http://172.17.4.1/private bullseye-staging/main armhf libyaml-perl all 1.30-1 [67.7 kB]
Get:93 http://172.17.4.1/private bullseye-staging/main armhf subversion armhf 1.14.1-3+deb11u1 [972 kB]
Get:94 http://172.17.4.1/private bullseye-staging/main armhf tcl8.6 armhf 8.6.11+dfsg-1 [123 kB]
Get:95 http://172.17.4.1/private bullseye-staging/main armhf tcl armhf 8.6.11+1 [5788 B]
Get:96 http://172.17.4.1/private bullseye-staging/main armhf unzip armhf 6.0-26+deb11u1 [152 kB]
Get:97 http://172.17.4.1/private bullseye-staging/main armhf zlib1g-dev armhf 1:1.2.11.dfsg-2+deb11u2 [184 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 37.9 MB in 4s (10.5 MB/s)
Selecting previously unselected package libuchardet0:armhf.
(Reading database ... 12565 files and directories currently installed.)
Preparing to unpack .../libuchardet0_0.0.7-1_armhf.deb ...
Unpacking libuchardet0:armhf (0.0.7-1) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../groff-base_1.22.4-6_armhf.deb ...
Unpacking groff-base (1.22.4-6) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../libpipeline1_1.5.3-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.3-1) ...
Preparing to unpack .../zlib1g_1%3a1.2.11.dfsg-2+deb11u2_armhf.deb ...
Unpacking zlib1g:armhf (1:1.2.11.dfsg-2+deb11u2) over (1:1.2.11.dfsg-2) ...
Setting up zlib1g:armhf (1:1.2.11.dfsg-2+deb11u2) ...
Selecting previously unselected package man-db.
(Reading database ... 12763 files and directories currently installed.)
Preparing to unpack .../man-db_2.9.4-2_armhf.deb ...
Unpacking man-db (2.9.4-2) ...
Selecting previously unselected package libpython3.9-minimal:armhf.
Preparing to unpack .../libpython3.9-minimal_3.9.2-1+rpi1_armhf.deb ...
Unpacking libpython3.9-minimal:armhf (3.9.2-1+rpi1) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../libexpat1_2.2.10-2+deb11u5_armhf.deb ...
Unpacking libexpat1:armhf (2.2.10-2+deb11u5) ...
Selecting previously unselected package python3.9-minimal.
Preparing to unpack .../python3.9-minimal_3.9.2-1+rpi1_armhf.deb ...
Unpacking python3.9-minimal (3.9.2-1+rpi1) ...
Setting up libpython3.9-minimal:armhf (3.9.2-1+rpi1) ...
Setting up libexpat1:armhf (2.2.10-2+deb11u5) ...
Setting up python3.9-minimal (3.9.2-1+rpi1) ...
Selecting previously unselected package python3-minimal.
(Reading database ... 13401 files and directories currently installed.)
Preparing to unpack .../python3-minimal_3.9.2-3_armhf.deb ...
Unpacking python3-minimal (3.9.2-3) ...
Selecting previously unselected package media-types.
Preparing to unpack .../media-types_4.0.0_all.deb ...
Unpacking media-types (4.0.0) ...
Selecting previously unselected package libmpdec3:armhf.
Preparing to unpack .../libmpdec3_2.5.1-1+rpi1_armhf.deb ...
Unpacking libmpdec3:armhf (2.5.1-1+rpi1) ...
Preparing to unpack .../libuuid1_2.36.1-8+deb11u1_armhf.deb ...
Unpacking libuuid1:armhf (2.36.1-8+deb11u1) over (2.36.1-8) ...
Setting up libuuid1:armhf (2.36.1-8+deb11u1) ...
Selecting previously unselected package libpython3.9-stdlib:armhf.
(Reading database ... 13436 files and directories currently installed.)
Preparing to unpack .../libpython3.9-stdlib_3.9.2-1+rpi1_armhf.deb ...
Unpacking libpython3.9-stdlib:armhf (3.9.2-1+rpi1) ...
Selecting previously unselected package python3.9.
Preparing to unpack .../python3.9_3.9.2-1+rpi1_armhf.deb ...
Unpacking python3.9 (3.9.2-1+rpi1) ...
Selecting previously unselected package libpython3-stdlib:armhf.
Preparing to unpack .../libpython3-stdlib_3.9.2-3_armhf.deb ...
Unpacking libpython3-stdlib:armhf (3.9.2-3) ...
Setting up python3-minimal (3.9.2-3) ...
Selecting previously unselected package python3.
(Reading database ... 13798 files and directories currently installed.)
Preparing to unpack .../python3_3.9.2-3_armhf.deb ...
Unpacking python3 (3.9.2-3) ...
Preparing to unpack .../libldap-2.4-2_2.4.57+dfsg-3+deb11u1_armhf.deb ...
Unpacking libldap-2.4-2:armhf (2.4.57+dfsg-3+deb11u1) over (2.4.57+dfsg-3) ...
Setting up libldap-2.4-2:armhf (2.4.57+dfsg-3+deb11u1) ...
(Reading database ... 13818 files and directories currently installed.)
Preparing to unpack .../libpcre2-8-0_10.36-2+deb11u1_armhf.deb ...
Unpacking libpcre2-8-0:armhf (10.36-2+deb11u1) over (10.36-2) ...
Setting up libpcre2-8-0:armhf (10.36-2+deb11u1) ...
Selecting previously unselected package libmagic-mgc.
(Reading database ... 13818 files and directories currently installed.)
Preparing to unpack .../00-libmagic-mgc_1%3a5.39-3_armhf.deb ...
Unpacking libmagic-mgc (1:5.39-3) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../01-libmagic1_1%3a5.39-3_armhf.deb ...
Unpacking libmagic1:armhf (1:5.39-3) ...
Selecting previously unselected package file.
Preparing to unpack .../02-file_1%3a5.39-3_armhf.deb ...
Unpacking file (1:5.39-3) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../03-gettext-base_0.21-4_armhf.deb ...
Unpacking gettext-base (0.21-4) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../04-autotools-dev_20180224.1+nmu1_all.deb ...
Unpacking autotools-dev (20180224.1+nmu1) ...
Selecting previously unselected package libsigsegv2:armhf.
Preparing to unpack .../05-libsigsegv2_2.13-1_armhf.deb ...
Unpacking libsigsegv2:armhf (2.13-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../06-m4_1.4.18-5_armhf.deb ...
Unpacking m4 (1.4.18-5) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../07-autoconf_2.69-14_all.deb ...
Unpacking autoconf (2.69-14) ...
Selecting previously unselected package automake.
Preparing to unpack .../08-automake_1%3a1.16.3-2_all.deb ...
Unpacking automake (1:1.16.3-2) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../09-autopoint_0.21-4_all.deb ...
Unpacking autopoint (0.21-4) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../10-libdebhelper-perl_13.3.4_all.deb ...
Unpacking libdebhelper-perl (13.3.4) ...
Selecting previously unselected package libtool.
Preparing to unpack .../11-libtool_2.4.6-15_all.deb ...
Unpacking libtool (2.4.6-15) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../12-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../13-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 .../14-libsub-override-perl_0.09-2_all.deb ...
Unpacking libsub-override-perl (0.09-2) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../15-libfile-stripnondeterminism-perl_1.12.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.12.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../16-dh-strip-nondeterminism_1.12.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.12.0-1) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../17-libelf1_0.183-1_armhf.deb ...
Unpacking libelf1:armhf (0.183-1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../18-dwz_0.13+20210201-1_armhf.deb ...
Unpacking dwz (0.13+20210201-1) ...
Selecting previously unselected package libicu67:armhf.
Preparing to unpack .../19-libicu67_67.1-7_armhf.deb ...
Unpacking libicu67:armhf (67.1-7) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../20-libxml2_2.9.10+dfsg-6.7+deb11u3_armhf.deb ...
Unpacking libxml2:armhf (2.9.10+dfsg-6.7+deb11u3) ...
Selecting previously unselected package gettext.
Preparing to unpack .../21-gettext_0.21-4_armhf.deb ...
Unpacking gettext (0.21-4) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../22-intltool-debian_0.35.0+20060710.5_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.5) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../23-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../24-debhelper_13.3.4_all.deb ...
Unpacking debhelper (13.3.4) ...
Selecting previously unselected package libapr1:armhf.
Preparing to unpack .../25-libapr1_1.7.0-6+deb11u1_armhf.deb ...
Unpacking libapr1:armhf (1.7.0-6+deb11u1) ...
Selecting previously unselected package uuid-dev:armhf.
Preparing to unpack .../26-uuid-dev_2.36.1-8+deb11u1_armhf.deb ...
Unpacking uuid-dev:armhf (2.36.1-8+deb11u1) ...
Selecting previously unselected package libsctp1:armhf.
Preparing to unpack .../27-libsctp1_1.0.18+dfsg-1_armhf.deb ...
Unpacking libsctp1:armhf (1.0.18+dfsg-1) ...
Selecting previously unselected package libsctp-dev:armhf.
Preparing to unpack .../28-libsctp-dev_1.0.18+dfsg-1_armhf.deb ...
Unpacking libsctp-dev:armhf (1.0.18+dfsg-1) ...
Selecting previously unselected package libapr1-dev.
Preparing to unpack .../29-libapr1-dev_1.7.0-6+deb11u1_armhf.deb ...
Unpacking libapr1-dev (1.7.0-6+deb11u1) ...
Selecting previously unselected package libaprutil1:armhf.
Preparing to unpack .../30-libaprutil1_1.6.1-5_armhf.deb ...
Unpacking libaprutil1:armhf (1.6.1-5) ...
Selecting previously unselected package libldap2-dev:armhf.
Preparing to unpack .../31-libldap2-dev_2.4.57+dfsg-3+deb11u1_armhf.deb ...
Unpacking libldap2-dev:armhf (2.4.57+dfsg-3+deb11u1) ...
Selecting previously unselected package libexpat1-dev:armhf.
Preparing to unpack .../32-libexpat1-dev_2.2.10-2+deb11u5_armhf.deb ...
Unpacking libexpat1-dev:armhf (2.2.10-2+deb11u5) ...
Selecting previously unselected package libaprutil1-dev.
Preparing to unpack .../33-libaprutil1-dev_1.6.1-5_armhf.deb ...
Unpacking libaprutil1-dev (1.6.1-5) ...
Selecting previously unselected package libpcre2-16-0:armhf.
Preparing to unpack .../34-libpcre2-16-0_10.36-2+deb11u1_armhf.deb ...
Unpacking libpcre2-16-0:armhf (10.36-2+deb11u1) ...
Selecting previously unselected package libpcre2-32-0:armhf.
Preparing to unpack .../35-libpcre2-32-0_10.36-2+deb11u1_armhf.deb ...
Unpacking libpcre2-32-0:armhf (10.36-2+deb11u1) ...
Selecting previously unselected package libpcre2-posix2:armhf.
Preparing to unpack .../36-libpcre2-posix2_10.36-2+deb11u1_armhf.deb ...
Unpacking libpcre2-posix2:armhf (10.36-2+deb11u1) ...
Selecting previously unselected package libpcre2-dev:armhf.
Preparing to unpack .../37-libpcre2-dev_10.36-2+deb11u1_armhf.deb ...
Unpacking libpcre2-dev:armhf (10.36-2+deb11u1) ...
Selecting previously unselected package openssl.
Preparing to unpack .../38-openssl_1.1.1n-0+deb11u4_armhf.deb ...
Unpacking openssl (1.1.1n-0+deb11u4) ...
Selecting previously unselected package apache2-dev.
Preparing to unpack .../39-apache2-dev_2.4.54-1~deb11u1_armhf.deb ...
Unpacking apache2-dev (2.4.54-1~deb11u1) ...
Selecting previously unselected package libmd0:armhf.
Preparing to unpack .../40-libmd0_1.0.3-3_armhf.deb ...
Unpacking libmd0:armhf (1.0.3-3) ...
Selecting previously unselected package libbsd0:armhf.
Preparing to unpack .../41-libbsd0_0.11.3-1_armhf.deb ...
Unpacking libbsd0:armhf (0.11.3-1) ...
Selecting previously unselected package cvs.
Preparing to unpack .../42-cvs_2%3a1.12.13+real-28_armhf.deb ...
Unpacking cvs (2:1.12.13+real-28) ...
Selecting previously unselected package cvsps.
Preparing to unpack .../43-cvsps_2.1-8_armhf.deb ...
Unpacking cvsps (2.1-8) ...
Selecting previously unselected package dh-exec.
Preparing to unpack .../44-dh-exec_0.23.2+b3_armhf.deb ...
Unpacking dh-exec (0.23.2+b3) ...
Selecting previously unselected package libbrotli1:armhf.
Preparing to unpack .../45-libbrotli1_1.0.9-2+b1_armhf.deb ...
Unpacking libbrotli1:armhf (1.0.9-2+b1) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../46-libhtml-tagset-perl_3.20-4_all.deb ...
Unpacking libhtml-tagset-perl (3.20-4) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../47-liburi-perl_5.08-1_all.deb ...
Unpacking liburi-perl (5.08-1) ...
Selecting previously unselected package libhtml-parser-perl.
Preparing to unpack .../48-libhtml-parser-perl_3.75-1+b1_armhf.deb ...
Unpacking libhtml-parser-perl (3.75-1+b1) ...
Selecting previously unselected package libcgi-pm-perl.
Preparing to unpack .../49-libcgi-pm-perl_4.51-1_all.deb ...
Unpacking libcgi-pm-perl (4.51-1) ...
Selecting previously unselected package libnghttp2-14:armhf.
Preparing to unpack .../50-libnghttp2-14_1.43.0-1_armhf.deb ...
Unpacking libnghttp2-14:armhf (1.43.0-1) ...
Selecting previously unselected package libpsl5:armhf.
Preparing to unpack .../51-libpsl5_0.21.0-1.2_armhf.deb ...
Unpacking libpsl5:armhf (0.21.0-1.2) ...
Selecting previously unselected package librtmp1:armhf.
Preparing to unpack .../52-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 .../53-libssh2-1_1.9.0-2_armhf.deb ...
Unpacking libssh2-1:armhf (1.9.0-2) ...
Selecting previously unselected package libcurl3-gnutls:armhf.
Preparing to unpack .../54-libcurl3-gnutls_7.74.0-1.3+deb11u5_armhf.deb ...
Unpacking libcurl3-gnutls:armhf (7.74.0-1.3+deb11u5) ...
Selecting previously unselected package libcurl4-gnutls-dev:armhf.
Preparing to unpack .../55-libcurl4-gnutls-dev_7.74.0-1.3+deb11u5_armhf.deb ...
Unpacking libcurl4-gnutls-dev:armhf (7.74.0-1.3+deb11u5) ...
Selecting previously unselected package libdbi-perl:armhf.
Preparing to unpack .../56-libdbi-perl_1.643-3+b1_armhf.deb ...
Unpacking libdbi-perl:armhf (1.643-3+b1) ...
Selecting previously unselected package libdbd-sqlite3-perl:armhf.
Preparing to unpack .../57-libdbd-sqlite3-perl_1.66-1+b1_armhf.deb ...
Unpacking libdbd-sqlite3-perl:armhf (1.66-1+b1) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../58-liberror-perl_0.17029-1_all.deb ...
Unpacking liberror-perl (0.17029-1) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../59-libtimedate-perl_2.3300-2_all.deb ...
Unpacking libtimedate-perl (2.3300-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../60-libhttp-date-perl_6.05-1_all.deb ...
Unpacking libhttp-date-perl (6.05-1) ...
Selecting previously unselected package libio-pty-perl.
Preparing to unpack .../61-libio-pty-perl_1%3a1.15-2_armhf.deb ...
Unpacking libio-pty-perl (1:1.15-2) ...
Selecting previously unselected package perl-openssl-defaults:armhf.
Preparing to unpack .../62-perl-openssl-defaults_5_armhf.deb ...
Unpacking perl-openssl-defaults:armhf (5) ...
Selecting previously unselected package libnet-ssleay-perl.
Preparing to unpack .../63-libnet-ssleay-perl_1.88-3+b1_armhf.deb ...
Unpacking libnet-ssleay-perl (1.88-3+b1) ...
Selecting previously unselected package libio-socket-ssl-perl.
Preparing to unpack .../64-libio-socket-ssl-perl_2.069-1_all.deb ...
Unpacking libio-socket-ssl-perl (2.069-1) ...
Selecting previously unselected package libnet-smtp-ssl-perl.
Preparing to unpack .../65-libnet-smtp-ssl-perl_1.04-1_all.deb ...
Unpacking libnet-smtp-ssl-perl (1.04-1) ...
Selecting previously unselected package libmailtools-perl.
Preparing to unpack .../66-libmailtools-perl_2.21-1_all.deb ...
Unpacking libmailtools-perl (2.21-1) ...
Selecting previously unselected package libserf-1-1:armhf.
Preparing to unpack .../67-libserf-1-1_1.3.9-10_armhf.deb ...
Unpacking libserf-1-1:armhf (1.3.9-10) ...
Selecting previously unselected package libutf8proc2:armhf.
Preparing to unpack .../68-libutf8proc2_2.5.0-1_armhf.deb ...
Unpacking libutf8proc2:armhf (2.5.0-1) ...
Selecting previously unselected package libsvn1:armhf.
Preparing to unpack .../69-libsvn1_1.14.1-3+deb11u1_armhf.deb ...
Unpacking libsvn1:armhf (1.14.1-3+deb11u1) ...
Selecting previously unselected package libsvn-perl:armhf.
Preparing to unpack .../70-libsvn-perl_1.14.1-3+deb11u1_armhf.deb ...
Unpacking libsvn-perl:armhf (1.14.1-3+deb11u1) ...
Selecting previously unselected package libtcl8.6:armhf.
Preparing to unpack .../71-libtcl8.6_8.6.11+dfsg-1_armhf.deb ...
Unpacking libtcl8.6:armhf (8.6.11+dfsg-1) ...
Selecting previously unselected package libyaml-perl.
Preparing to unpack .../72-libyaml-perl_1.30-1_all.deb ...
Unpacking libyaml-perl (1.30-1) ...
Selecting previously unselected package subversion.
Preparing to unpack .../73-subversion_1.14.1-3+deb11u1_armhf.deb ...
Unpacking subversion (1.14.1-3+deb11u1) ...
Selecting previously unselected package tcl8.6.
Preparing to unpack .../74-tcl8.6_8.6.11+dfsg-1_armhf.deb ...
Unpacking tcl8.6 (8.6.11+dfsg-1) ...
Selecting previously unselected package tcl.
Preparing to unpack .../75-tcl_8.6.11+1_armhf.deb ...
Unpacking tcl (8.6.11+1) ...
Selecting previously unselected package unzip.
Preparing to unpack .../76-unzip_6.0-26+deb11u1_armhf.deb ...
Unpacking unzip (6.0-26+deb11u1) ...
Selecting previously unselected package zlib1g-dev:armhf.
Preparing to unpack .../77-zlib1g-dev_1%3a1.2.11.dfsg-2+deb11u2_armhf.deb ...
Unpacking zlib1g-dev:armhf (1:1.2.11.dfsg-2+deb11u2) ...
Selecting previously unselected package sbuild-build-depends-git-dummy.
Preparing to unpack .../78-sbuild-build-depends-git-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-git-dummy (0.invalid.0) ...
Setting up media-types (4.0.0) ...
Setting up libpipeline1:armhf (1.5.3-1) ...
Setting up libpsl5:armhf (0.21.0-1.2) ...
Setting up libicu67:armhf (67.1-7) ...
Setting up libio-pty-perl (1:1.15-2) ...
Setting up libmagic-mgc (1:5.39-3) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libhtml-tagset-perl (3.20-4) ...
Setting up unzip (6.0-26+deb11u1) ...
Setting up libutf8proc2:armhf (2.5.0-1) ...
Setting up libdebhelper-perl (13.3.4) ...
Setting up libbrotli1:armhf (1.0.9-2+b1) ...
Setting up libnghttp2-14:armhf (1.43.0-1) ...
Setting up libmagic1:armhf (1:5.39-3) ...
Setting up libapr1:armhf (1.7.0-6+deb11u1) ...
Setting up perl-openssl-defaults:armhf (5) ...
Setting up gettext-base (0.21-4) ...
Setting up file (1:5.39-3) ...
Setting up libyaml-perl (1.30-1) ...
Setting up libpcre2-16-0:armhf (10.36-2+deb11u1) ...
Setting up liberror-perl (0.17029-1) ...
Setting up libldap2-dev:armhf (2.4.57+dfsg-3+deb11u1) ...
Setting up autotools-dev (20180224.1+nmu1) ...
Setting up libpcre2-32-0:armhf (10.36-2+deb11u1) ...
Setting up libexpat1-dev:armhf (2.2.10-2+deb11u5) ...
Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-2+b2) ...
Setting up uuid-dev:armhf (2.36.1-8+deb11u1) ...
Setting up libsigsegv2:armhf (2.13-1) ...
Setting up libtcl8.6:armhf (8.6.11+dfsg-1) ...
Setting up autopoint (0.21-4) ...
Setting up libpcre2-posix2:armhf (10.36-2+deb11u1) ...
Setting up libtimedate-perl (2.3300-2) ...
Setting up zlib1g-dev:armhf (1:1.2.11.dfsg-2+deb11u2) ...
Setting up libmd0:armhf (1.0.3-3) ...
Setting up libsctp1:armhf (1.0.18+dfsg-1) ...
Setting up libuchardet0:armhf (0.0.7-1) ...
Setting up libmpdec3:armhf (2.5.1-1+rpi1) ...
Setting up libsub-override-perl (0.09-2) ...
Setting up libssh2-1:armhf (1.9.0-2) ...
Setting up openssl (1.1.1n-0+deb11u4) ...
Setting up libbsd0:armhf (0.11.3-1) ...
Setting up libelf1:armhf (0.183-1) ...
Setting up libxml2:armhf (2.9.10+dfsg-6.7+deb11u3) ...
Setting up liburi-perl (5.08-1) ...
Setting up libdbi-perl:armhf (1.643-3+b1) ...
Setting up libpython3.9-stdlib:armhf (3.9.2-1+rpi1) ...
Setting up libpython3-stdlib:armhf (3.9.2-3) ...
Setting up libaprutil1:armhf (1.6.1-5) ...
Setting up libnet-ssleay-perl (1.88-3+b1) ...
Setting up libfile-stripnondeterminism-perl (1.12.0-1) ...
Setting up libhttp-date-perl (6.05-1) ...
Setting up tcl8.6 (8.6.11+dfsg-1) ...
Setting up gettext (0.21-4) ...
Setting up libpcre2-dev:armhf (10.36-2+deb11u1) ...
Setting up libtool (2.4.6-15) ...
Setting up cvs (2:1.12.13+real-28) ...
Allowing use of questionable username.
Adding group `_cvsadmin' (GID 113) ...
Done.
Setting up libserf-1-1:armhf (1.3.9-10) ...
Setting up m4 (1.4.18-5) ...
Setting up libcurl3-gnutls:armhf (7.74.0-1.3+deb11u5) ...
Setting up libcurl4-gnutls-dev:armhf (7.74.0-1.3+deb11u5) ...
Setting up intltool-debian (0.35.0+20060710.5) ...
Setting up libsctp-dev:armhf (1.0.18+dfsg-1) ...
Setting up autoconf (2.69-14) ...
Setting up dh-strip-nondeterminism (1.12.0-1) ...
Setting up dwz (0.13+20210201-1) ...
Setting up groff-base (1.22.4-6) ...
Setting up libhtml-parser-perl (3.75-1+b1) ...
Setting up tcl (8.6.11+1) ...
Setting up libdbd-sqlite3-perl:armhf (1.66-1+b1) ...
Setting up cvsps (2.1-8) ...
Setting up libsvn1:armhf (1.14.1-3+deb11u1) ...
Setting up libio-socket-ssl-perl (2.069-1) ...
Setting up python3.9 (3.9.2-1+rpi1) ...
Setting up automake (1:1.16.3-2) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libsvn-perl:armhf (1.14.1-3+deb11u1) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up libcgi-pm-perl (4.51-1) ...
Setting up subversion (1.14.1-3+deb11u1) ...
Setting up python3 (3.9.2-3) ...
Setting up man-db (2.9.4-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up dh-autoreconf (20) ...
Setting up libnet-smtp-ssl-perl (1.04-1) ...
Setting up libmailtools-perl (2.21-1) ...
Setting up libapr1-dev (1.7.0-6+deb11u1) ...
Setting up libaprutil1-dev (1.6.1-5) ...
Setting up debhelper (13.3.4) ...
Setting up dh-exec (0.23.2+b3) ...
Setting up apache2-dev (2.4.54-1~deb11u1) ...
Setting up sbuild-build-depends-git-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.31-13+rpi1) ...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Build environment                                                            |
+------------------------------------------------------------------------------+

Kernel: Linux 4.9.0-0.bpo.4-armmp armhf (armv7l)
Toolchain package versions: binutils_2.35.2-2+rpi1 dpkg-dev_1.20.9+rpi1 g++-10_10.2.1-6+rpi1 gcc-10_10.2.1-6+rpi1 libc6-dev_2.31-13+rpi1 libstdc++-10-dev_10.2.1-6+rpi1 libstdc++6_10.2.1-6+rpi1 linux-libc-dev_5.10.46-4+rpi1
Package versions: adduser_3.118 apache2-dev_2.4.54-1~deb11u1 apt_2.2.4 autoconf_2.69-14 automake_1:1.16.3-2 autopoint_0.21-4 autotools-dev_20180224.1+nmu1 base-files_11.1+rpi1 base-passwd_3.5.51 bash_5.1-2 binutils_2.35.2-2+rpi1 binutils-arm-linux-gnueabihf_2.35.2-2+rpi1 binutils-common_2.35.2-2+rpi1 bsdextrautils_2.36.1-8 bsdutils_1:2.36.1-8 build-essential_12.9 bzip2_1.0.8-4 coreutils_8.32-4 cpp_4:10.2.1-1+rpi1 cpp-10_10.2.1-6+rpi1 cvs_2:1.12.13+real-28 cvsps_2.1-8 dash_0.5.11+git20200708+dd9ef66-5 debconf_1.5.77 debhelper_13.3.4 debianutils_4.11.2 dh-autoreconf_20 dh-exec_0.23.2+b3 dh-strip-nondeterminism_1.12.0-1 diffutils_1:3.7-5 dirmngr_2.2.27-2 dpkg_1.20.9+rpi1 dpkg-dev_1.20.9+rpi1 dwz_0.13+20210201-1 e2fsprogs_1.46.2-2 fakeroot_1.25.3-1.1 fdisk_2.36.1-8 file_1:5.39-3 findutils_4.8.0-1 g++_4:10.2.1-1+rpi1 g++-10_10.2.1-6+rpi1 gcc_4:10.2.1-1+rpi1 gcc-10_10.2.1-6+rpi1 gcc-10-base_10.2.1-6+rpi1 gettext_0.21-4 gettext-base_0.21-4 gnupg_2.2.27-2 gnupg-l10n_2.2.27-2 gnupg-utils_2.2.27-2 gpg_2.2.27-2 gpg-agent_2.2.27-2 gpg-wks-client_2.2.27-2 gpg-wks-server_2.2.27-2 gpgconf_2.2.27-2 gpgsm_2.2.27-2 gpgv_2.2.27-2 grep_3.6-1 groff-base_1.22.4-6 gzip_1.10-4 hostname_3.23 init-system-helpers_1.60 intltool-debian_0.35.0+20060710.5 iputils-ping_3:20210202-1 libacl1_2.2.53-10 libapr1_1.7.0-6+deb11u1 libapr1-dev_1.7.0-6+deb11u1 libaprutil1_1.6.1-5 libaprutil1-dev_1.6.1-5 libapt-pkg6.0_2.2.4 libarchive-zip-perl_1.68-1 libasan6_10.2.1-6+rpi1 libassuan0_2.5.3-7.1 libatomic1_10.2.1-6+rpi1 libattr1_1:2.4.48-6 libaudit-common_1:3.0-2 libaudit1_1:3.0-2 libbinutils_2.35.2-2+rpi1 libblkid1_2.36.1-8 libbrotli1_1.0.9-2+b1 libbsd0_0.11.3-1 libbz2-1.0_1.0.8-4 libc-bin_2.31-13+rpi1 libc-dev-bin_2.31-13+rpi1 libc6_2.31-13+rpi1 libc6-dev_2.31-13+rpi1 libcap-ng0_0.7.9-2.2+b1 libcap2_1:2.44-1 libcap2-bin_1:2.44-1 libcc1-0_10.2.1-6+rpi1 libcgi-pm-perl_4.51-1 libcom-err2_1.46.2-2 libcrypt-dev_1:4.4.18-4 libcrypt1_1:4.4.18-4 libctf-nobfd0_2.35.2-2+rpi1 libctf0_2.35.2-2+rpi1 libcurl3-gnutls_7.74.0-1.3+deb11u5 libcurl4-gnutls-dev_7.74.0-1.3+deb11u5 libdb5.3_5.3.28+dfsg1-0.8 libdbd-sqlite3-perl_1.66-1+b1 libdbi-perl_1.643-3+b1 libdebconfclient0_0.260 libdebhelper-perl_13.3.4 libdpkg-perl_1.20.9+rpi1 libelf1_0.183-1 liberror-perl_0.17029-1 libexpat1_2.2.10-2+deb11u5 libexpat1-dev_2.2.10-2+deb11u5 libext2fs2_1.46.2-2 libfakeroot_1.25.3-1.1 libfdisk1_2.36.1-8 libffi7_3.3-6 libfile-stripnondeterminism-perl_1.12.0-1 libgcc-10-dev_10.2.1-6+rpi1 libgcc-s1_10.2.1-6+rpi1 libgcrypt20_1.8.7-6 libgdbm-compat4_1.19-2 libgdbm6_1.19-2 libgmp10_2:6.2.1+dfsg-1 libgnutls30_3.7.1-5 libgomp1_10.2.1-6+rpi1 libgpg-error0_1.38-2 libgssapi-krb5-2_1.18.3-6 libhogweed6_3.7.3-1 libhtml-parser-perl_3.75-1+b1 libhtml-tagset-perl_3.20-4 libhttp-date-perl_6.05-1 libicu67_67.1-7 libidn2-0_2.3.0-5 libio-pty-perl_1:1.15-2 libio-socket-ssl-perl_2.069-1 libisl23_0.23-1 libk5crypto3_1.18.3-6 libkeyutils1_1.6.1-2 libkrb5-3_1.18.3-6 libkrb5support0_1.18.3-6 libksba8_1.5.0-3 libldap-2.4-2_2.4.57+dfsg-3+deb11u1 libldap-common_2.4.57+dfsg-3 libldap2-dev_2.4.57+dfsg-3+deb11u1 liblz4-1_1.9.3-2 liblzma5_5.2.5-2 libmagic-mgc_1:5.39-3 libmagic1_1:5.39-3 libmailtools-perl_2.21-1 libmd0_1.0.3-3 libmount1_2.36.1-8 libmpc3_1.2.0-1 libmpdec3_2.5.1-1+rpi1 libmpfr6_4.1.0-3 libncursesw6_6.2+20201114-2 libnet-smtp-ssl-perl_1.04-1 libnet-ssleay-perl_1.88-3+b1 libnettle8_3.7.3-1 libnghttp2-14_1.43.0-1 libnpth0_1.6-3 libnsl-dev_1.3.0-2 libnsl2_1.3.0-2 libnss-nis_3.1-4 libnss-nisplus_1.3-4 libp11-kit0_0.23.22-1 libpam-cap_1:2.44-1 libpam-modules_1.4.0-9 libpam-modules-bin_1.4.0-9 libpam-runtime_1.4.0-9 libpam0g_1.4.0-9 libpcre2-16-0_10.36-2+deb11u1 libpcre2-32-0_10.36-2+deb11u1 libpcre2-8-0_10.36-2+deb11u1 libpcre2-dev_10.36-2+deb11u1 libpcre2-posix2_10.36-2+deb11u1 libpcre3_2:8.39-13 libperl5.32_5.32.1-4+deb11u1 libpipeline1_1.5.3-1 libpsl5_0.21.0-1.2 libpython3-stdlib_3.9.2-3 libpython3.9-minimal_3.9.2-1+rpi1 libpython3.9-stdlib_3.9.2-1+rpi1 libreadline8_8.1-1 librtmp1_2.4+20151223.gitfa8646d.1-2+b2 libsasl2-2_2.1.27+dfsg-2.1 libsasl2-modules-db_2.1.27+dfsg-2.1 libsctp-dev_1.0.18+dfsg-1 libsctp1_1.0.18+dfsg-1 libseccomp2_2.5.1-1+rpi1 libselinux1_3.1-3 libsemanage-common_3.1-1 libsemanage1_3.1-1+b1 libsepol1_3.1-1 libserf-1-1_1.3.9-10 libsigsegv2_2.13-1 libsmartcols1_2.36.1-8 libsqlite3-0_3.34.1-3 libss2_1.46.2-2 libssh2-1_1.9.0-2 libssl1.1_1.1.1k-1+deb11u1 libstdc++-10-dev_10.2.1-6+rpi1 libstdc++6_10.2.1-6+rpi1 libsub-override-perl_0.09-2 libsvn-perl_1.14.1-3+deb11u1 libsvn1_1.14.1-3+deb11u1 libsystemd0_247.3-6+rpi1 libtasn1-6_4.16.0-2 libtcl8.6_8.6.11+dfsg-1 libtimedate-perl_2.3300-2 libtinfo6_6.2+20201114-2 libtirpc-common_1.3.1-1 libtirpc-dev_1.3.1-1 libtirpc3_1.3.1-1 libtool_2.4.6-15 libubsan1_10.2.1-6+rpi1 libuchardet0_0.0.7-1 libudev1_247.3-6+rpi1 libunistring2_0.9.10-4 liburi-perl_5.08-1 libutf8proc2_2.5.0-1 libuuid1_2.36.1-8+deb11u1 libxml2_2.9.10+dfsg-6.7+deb11u3 libxxhash0_0.8.0-2+rpi1 libyaml-perl_1.30-1 libzstd1_1.4.8+dfsg-2.1+rpi1 linux-libc-dev_5.10.46-4+rpi1 login_1:4.8.1-1 logsave_1.46.2-2 lsb-base_11.1.0+rpi1 m4_1.4.18-5 make_4.3-4.1 man-db_2.9.4-2 mawk_1.3.4.20200120-2 media-types_4.0.0 mount_2.36.1-8 ncurses-base_6.2+20201114-2 ncurses-bin_6.2+20201114-2 netbase_6.3 openssl_1.1.1n-0+deb11u4 passwd_1:4.8.1-1 patch_2.7.6-7 perl_5.32.1-4+deb11u1 perl-base_5.32.1-4+deb11u1 perl-modules-5.32_5.32.1-4+deb11u1 perl-openssl-defaults_5 pinentry-curses_1.1.0-4 po-debconf_1.0.21+nmu1 python3_3.9.2-3 python3-minimal_3.9.2-3 python3.9_3.9.2-1+rpi1 python3.9-minimal_3.9.2-1+rpi1 raspbian-archive-keyring_20120528.2 readline-common_8.1-1 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-git-dummy_0.invalid.0 sed_4.7-1 sensible-utils_0.0.14 subversion_1.14.1-3+deb11u1 sysvinit-utils_2.96-7 tar_1.34+dfsg-1 tcl_8.6.11+1 tcl8.6_8.6.11+dfsg-1 tzdata_2021a-1 unzip_6.0-26+deb11u1 util-linux_2.36.1-8 uuid-dev_2.36.1-8+deb11u1 xz-utils_5.2.5-2 zlib1g_1:1.2.11.dfsg-2+deb11u2 zlib1g-dev_1:1.2.11.dfsg-2+deb11u2

+------------------------------------------------------------------------------+
| Build                                                                        |
+------------------------------------------------------------------------------+


Unpack source
-------------

gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/tmp/dpkg-verify-sig.FUMhypsh/trustedkeys.kbx': General error
gpgv: Signature made Wed Feb 22 10:02:50 2023 UTC
gpgv:                using RSA key 861CFE698425FC1A7839303B3B52CA2A0AAFD954
gpgv: Can't check signature: No public key
dpkg-source: warning: failed to verify signature on ./git_2.30.2-1+deb11u2.dsc
dpkg-source: info: extracting git in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking git_2.30.2.orig.tar.xz
dpkg-source: info: unpacking git_2.30.2-1+deb11u2.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying CVE-2022-24765.patch
dpkg-source: info: applying CVE-2022-29187.patch
dpkg-source: info: applying CVE-2022-23521.patch
dpkg-source: info: applying CVE-2022-39253.patch
dpkg-source: info: applying CVE-2022-39260.patch
dpkg-source: info: applying CVE-2022-41903.patch
dpkg-source: info: applying CVE-2023-22490-1.patch
dpkg-source: info: applying CVE-2023-22490-2.patch
dpkg-source: info: applying CVE-2023-22490-3.patch
dpkg-source: info: applying CVE-2023-23946.patch

Check disc 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=bullseye-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=bullseye-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=109
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=bullseye-staging-armhf-sbuild-fc540bb3-4dd8-459b-8a30-24bdf76802cf
SCHROOT_UID=104
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=linux
USER=buildd

dpkg-buildpackage
-----------------

dpkg-buildpackage: info: source package git
dpkg-buildpackage: info: source version 1:2.30.2-1+deb11u2
dpkg-buildpackage: info: source distribution bullseye-security
 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 libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -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.30.2
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 libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -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 libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -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 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>>/ewah/*.gcda /<<PKGBUILDDIR>>/negotiator/*.gcda /<<PKGBUILDDIR>>/refs/*.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>>/ewah/*.gcno /<<PKGBUILDDIR>>/negotiator/*.gcno /<<PKGBUILDDIR>>/refs/*.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 ewah/*.gcov negotiator/*.gcov refs/*.gcov sha1dc/*.gcov sha256/block/*.gcov t/helper/*.gcov trace2/*.gcov xdiff/*.gcov
rm -f ./*.gcda builtin/*.gcda compat/*.gcda ewah/*.gcda negotiator/*.gcda refs/*.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/
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f ./*.gcno builtin/*.gcno compat/*.gcno ewah/*.gcno negotiator/*.gcno refs/*.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 *.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.o cache-tree.o chdir-notify.o checkout.o color.o column.o combine-diff.o commit-graph.o commit-reach.o commit.o compat/obstack.o compat/terminal.o config.o connect.o connected.o convert.o copy.o credential.o csum-file.o ctype.o date.o decorate.o delta-islands.o diff-delta.o diff-lib.o diff-no-index.o diff.o diffcore-break.o diffcore-delta.o diffcore-order.o diffcore-pickaxe.o diffcore-rename.o dir-iterator.o dir.o editor.o entry.o environment.o ewah/bitmap.o ewah/ewah_bitmap.o ewah/ewah_io.o ewah/ewah_rlw.o exec-cmd.o fetch-negotiator.o fetch-pack.o fmt-merge-msg.o fsck.o fsmonitor.o gettext.o gpg-interface.o graph.o grep.o hashmap.o help.o hex.o ident.o json-writer.o kwset.o levenshtein.o line-log.o line-range.o linear-assignment.o list-objects-filter-options.o list-objects-filter.o list-objects.o ll-merge.o lockfile.o log-tree.o ls-refs.o mailinfo.o mailmap.o match-trees.o mem-pool.o merge-blobs.o merge-ort.o merge-ort-wrappers.o merge-recursive.o merge.o mergesort.o midx.o name-hash.o negotiator/default.o negotiator/noop.o negotiator/skipping.o notes-cache.o notes-merge.o notes-utils.o notes.o object.o oid-array.o oidmap.o oidset.o pack-bitmap-write.o pack-bitmap.o pack-check.o pack-objects.o pack-revindex.o pack-write.o packfile.o pager.o parse-options-cb.o parse-options.o patch-delta.o patch-ids.o path.o pathspec.o pkt-line.o preload-index.o pretty.o prio-queue.o progress.o promisor-remote.o prompt.o protocol.o prune-packed.o quote.o range-diff.o reachable.o read-cache.o rebase-interactive.o rebase.o ref-filter.o reflog-walk.o refs.o refs/debug.o refs/files-backend.o refs/iterator.o refs/packed-backend.o refs/ref-cache.o refspec.o remote.o replace-object.o repo-settings.o repository.o rerere.o reset.o resolve-undo.o revision.o run-command.o send-pack.o sequencer.o serve.o server-info.o setup.o sha1-file.o sha1-lookup.o sha1-name.o shallow.o sideband.o sigchain.o split-index.o stable-qsort.o strbuf.o streaming.o string-list.o strmap.o strvec.o sub-process.o submodule-config.o submodule.o symlinks.o tag.o tempfile.o thread-utils.o tmp-objdir.o trace.o trace2.o trace2/tr2_cfg.o trace2/tr2_cmd_name.o trace2/tr2_dst.o trace2/tr2_sid.o trace2/tr2_sysenv.o trace2/tr2_tbuf.o trace2/tr2_tgt_event.o trace2/tr2_tgt_normal.o trace2/tr2_tgt_perf.o trace2/tr2_tls.o trailer.o transport-helper.o transport.o tree-diff.o tree-walk.o tree.o unpack-trees.o upload-pack.o url.o urlmatch.o usage.o userdiff.o utf8.o varint.o version.o versioncmp.o walker.o wildmatch.o worktree.o wrapper.o write-or-die.o ws.o wt-status.o xdiff-interface.o zlib.o unix-socket.o sha1dc_git.o sha1dc/sha1.o sha1dc/ubc_check.o sha256/block/sha256.o compat/fopen.o compat/strlcpy.o compat/qsort_s.o builtin/add.o builtin/am.o builtin/annotate.o builtin/apply.o builtin/archive.o builtin/bisect--helper.o builtin/blame.o builtin/branch.o builtin/bugreport.o builtin/bundle.o builtin/cat-file.o builtin/check-attr.o builtin/check-ignore.o builtin/check-mailmap.o builtin/check-ref-format.o builtin/checkout-index.o builtin/checkout.o builtin/clean.o builtin/clone.o builtin/column.o builtin/commit-graph.o builtin/commit-tree.o builtin/commit.o builtin/config.o builtin/count-objects.o builtin/credential-cache--daemon.o builtin/credential-cache.o builtin/credential-store.o builtin/credential.o builtin/describe.o builtin/diff-files.o builtin/diff-index.o builtin/diff-tree.o builtin/diff.o builtin/difftool.o builtin/env--helper.o builtin/fast-export.o builtin/fast-import.o builtin/fetch-pack.o builtin/fetch.o builtin/fmt-merge-msg.o builtin/for-each-ref.o builtin/for-each-repo.o builtin/fsck.o builtin/gc.o builtin/get-tar-commit-id.o builtin/grep.o builtin/hash-object.o builtin/help.o builtin/index-pack.o builtin/init-db.o builtin/interpret-trailers.o builtin/log.o builtin/ls-files.o builtin/ls-remote.o builtin/ls-tree.o builtin/mailinfo.o builtin/mailsplit.o builtin/merge-base.o builtin/merge-file.o builtin/merge-index.o builtin/merge-ours.o builtin/merge-recursive.o builtin/merge-tree.o builtin/merge.o builtin/mktag.o builtin/mktree.o builtin/multi-pack-index.o builtin/mv.o builtin/name-rev.o builtin/notes.o builtin/pack-objects.o builtin/pack-redundant.o builtin/pack-refs.o builtin/patch-id.o builtin/prune-packed.o builtin/prune.o builtin/pull.o builtin/push.o builtin/range-diff.o builtin/read-tree.o builtin/rebase.o builtin/receive-pack.o builtin/reflog.o builtin/remote-ext.o builtin/remote-fd.o builtin/remote.o builtin/repack.o builtin/replace.o builtin/rerere.o builtin/reset.o builtin/rev-list.o builtin/rev-parse.o builtin/revert.o builtin/rm.o builtin/send-pack.o builtin/shortlog.o builtin/show-branch.o builtin/show-index.o builtin/show-ref.o builtin/sparse-checkout.o builtin/stash.o builtin/stripspace.o builtin/submodule--helper.o builtin/symbolic-ref.o builtin/tag.o builtin/unpack-file.o builtin/unpack-objects.o builtin/update-index.o builtin/update-ref.o builtin/update-server-info.o builtin/upload-archive.o builtin/upload-pack.o builtin/var.o builtin/verify-commit.o builtin/verify-pack.o builtin/verify-tag.o builtin/worktree.o builtin/write-tree.o 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-bloom.o t/helper/test-chmtime.o t/helper/test-config.o t/helper/test-crontab.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-example-decorate.o t/helper/test-fast-rebase.o t/helper/test-genrandom.o t/helper/test-genzeros.o t/helper/test-hash-speed.o t/helper/test-hash.o t/helper/test-hashmap.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-online-cpus.o t/helper/test-parse-options.o t/helper/test-parse-pathspec-file.o t/helper/test-path-utils.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-regex.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-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-subprocess.o t/helper/test-trace2.o t/helper/test-urlmatch-normalization.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 fuzz-commit-graph.o fuzz-pack-headers.o fuzz-pack-idx.o common-main.o git.o http.o http-walker.o remote-curl.o
rm -f libgit.a xdiff/lib.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-bisect 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-add--interactive git-archimport git-cvsexportcommit git-cvsimport git-cvsserver git-send-email git-svn git-p4 git-instaweb git-mergetool--lib git-rebase--preserve-merges git-sh-i18n git-sh-setup git-add git-am git-annotate git-apply git-archive git-bisect--helper 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-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-diff-files git-diff-index git-diff-tree git-diff git-difftool git-env--helper 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-gc git-get-tar-commit-id git-grep git-hash-object git-help 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-whatchanged git
rm -f t/helper/test-fake-ssh t/helper/test-tool
rm -f fuzz-commit-graph fuzz-pack-headers fuzz-pack-idx
rm -f .pc/CVE-2022-23521.patch/attr.hcc .pc/CVE-2022-24765.patch/compat/mingw.hcc .pc/CVE-2022-24765.patch/git-compat-util.hcc .pc/CVE-2022-29187.patch/git-compat-util.hcc .pc/CVE-2022-41903.patch/git-compat-util.hcc .pc/CVE-2022-41903.patch/utf8.hcc .pc/CVE-2023-22490-3.patch/dir-iterator.hcc 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.hcc cache-tree.hcc cache.hcc chdir-notify.hcc checkout.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 decorate.hcc delta-islands.hcc delta.hcc diff.hcc diffcore.hcc dir-iterator.hcc dir.hcc ewah/ewok.hcc ewah/ewok_rlw.hcc exec-cmd.hcc fetch-negotiator.hcc fetch-pack.hcc fmt-merge-msg.hcc fsck.hcc fsmonitor.hcc gettext.hcc git-compat-util.hcc gpg-interface.hcc graph.hcc grep.hcc hash.hcc hashmap.hcc help.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 pack-bitmap.hcc pack-objects.hcc pack-revindex.hcc pack.hcc packfile.hcc parse-options.hcc patch-ids.hcc path.hcc pathspec.hcc pkt-line.hcc ppc/sha1.hcc pretty.hcc prio-queue.hcc progress.hcc promisor-remote.hcc prompt.hcc protocol.hcc prune-packed.hcc quote.hcc range-diff.hcc reachable.hcc rebase-interactive.hcc rebase.hcc ref-filter.hcc reflog-walk.hcc refs.hcc refs/packed-backend.hcc refs/ref-cache.hcc refs/refs-internal.hcc refspec.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 sha1-lookup.hcc sha1dc/sha1.hcc sha1dc/ubc_check.hcc sha1dc_git.hcc sha256/block/sha256.hcc shallow.hcc shortlog.hcc sideband.hcc sigchain.hcc split-index.hcc strbuf.hcc streaming.hcc string-list.hcc strmap.hcc strvec.hcc sub-process.hcc submodule-config.hcc submodule.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_dst.hcc trace2/tr2_sid.hcc trace2/tr2_sysenv.hcc trace2/tr2_tbuf.hcc trace2/tr2_tgt.hcc trace2/tr2_tls.hcc trailer.hcc transport-internal.hcc transport.hcc tree-walk.hcc tree.hcc unix-socket.hcc unpack-trees.hcc upload-pack.hcc url.hcc urlmatch.hcc userdiff.hcc utf8.hcc varint.hcc vcs-svn/fast_export.hcc vcs-svn/line_buffer.hcc vcs-svn/sliding_window.hcc vcs-svn/svndiff.hcc vcs-svn/svndump.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 ewah/.depend negotiator/.depend refs/.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 TAGS tags cscope*
rm -f -r .dist-tmp-dir .doc-tmp-dir
rm -f git-2.30.2.tar.gz
rm -f git-htmldocs-2.30.2.tar.gz git-manpages-2.30.2.tar.gz
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C Documentation/ clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/Documentation'
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-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
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C gitweb clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitweb'
rm -f gitweb.cgi static/gitweb.js \
	static/gitweb.min.js static/gitweb.min.css \
	GITWEB-BUILD-OPTIONS
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitweb'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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'.* 'test-results'
rm -f -r valgrind/bin
make[3]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[3]: Entering directory '/<<PKGBUILDDIR>>/t'
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/10/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 10.2.1-6+rpi1' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --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-bootstrap --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 --with-fpu=vfp --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 10.2.1 20210110 (Raspbian 10.2.1-6+rpi1) 
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make all NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -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.30.2
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 fuzz-pack-headers.o -c -MF ./.depend/fuzz-pack-headers.o.d -MQ fuzz-pack-headers.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fuzz-pack-headers.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fuzz-commit-graph.o -c -MF ./.depend/fuzz-commit-graph.o.d -MQ fuzz-commit-graph.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fuzz-commit-graph.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fuzz-pack-idx.o -c -MF ./.depend/fuzz-pack-idx.o.d -MQ fuzz-pack-idx.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fuzz-pack-idx.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  abspath.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  advice.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  alias.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  daemon.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  alloc.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  add-interactive.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  archive-tar.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  archive-zip.c
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 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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  base85.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  archive.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  add-patch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  blob.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  bloom.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  branch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  bisect.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  bulk-checkin.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  bundle.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  chdir-notify.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  checkout.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  cache-tree.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  blame.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  color.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  column.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  commit-reach.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  apply.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  compat/obstack.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  combine-diff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  compat/terminal.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  commit.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  commit-graph.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  connect.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  connected.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  copy.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  csum-file.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  credential.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ctype.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  decorate.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  convert.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diff-delta.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DETC_GITCONFIG='"/etc/gitconfig"' config.c
config.c: In function 'git_config_copy_or_rename_section_in_file':
config.c:3188:17: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 3188 |       output[0] = '\t';
      |       ~~~~~~~~~~^~~~~~
config.c:3094:7: note: at offset -1 to object 'buf' with size 1024 declared here
 3094 |  char buf[1024];
      |       ^~~
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  date.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  delta-islands.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diff-no-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diffcore-break.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diffcore-order.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diffcore-delta.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diff-lib.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  dir-iterator.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diffcore-pickaxe.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  editor.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diffcore-rename.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  entry.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  environment.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ewah/bitmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ewah/ewah_io.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ewah/ewah_bitmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ewah/ewah_rlw.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_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 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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fetch-negotiator.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  dir.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fmt-merge-msg.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fsmonitor.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DGIT_LOCALE_PATH='"share/locale"' gettext.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fetch-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  gpg-interface.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  fsck.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  hashmap.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  graph.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  hex.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
/bin/sh ./generate-cmdlist.sh \
	 \
	command-list.txt >command-list.h+ && mv command-list.h+ command-list.h
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  grep.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ident.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  levenshtein.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  json-writer.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  line-range.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  diff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  kwset.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  linear-assignment.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  list-objects-filter-options.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  line-log.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  list-objects.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  list-objects-filter.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ll-merge.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  lockfile.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ls-refs.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  mailmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  match-trees.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  mem-pool.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  merge-blobs.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  merge-ort.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  log-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  merge-ort-wrappers.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o mergesort.o -c -MF ./.depend/mergesort.o.d -MQ 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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  mergesort.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  merge.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  mailinfo.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  negotiator/default.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  negotiator/noop.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  name-hash.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  negotiator/skipping.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  notes-cache.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  notes-utils.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  midx.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  notes-merge.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  object.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  oid-array.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  oidmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  notes.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  oidset.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pack-check.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pack-bitmap-write.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pack-objects.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  merge-recursive.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pack-revindex.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pack-write.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pack-bitmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  parse-options-cb.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  patch-ids.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  parse-options.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pathspec.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  packfile.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pkt-line.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  path.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  preload-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  prio-queue.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  progress.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  promisor-remote.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  prompt.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  protocol.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  prune-packed.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  reachable.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  quote.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  range-diff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  rebase.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  pretty.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  rebase-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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  reflog-walk.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refs/debug.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refs.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  read-cache.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ref-filter.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refs/iterator.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refspec.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refs/ref-cache.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  replace-object.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refs/files-backend.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  refs/packed-backend.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  repo-settings.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  repository.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  reset.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  rerere.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  remote.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  send-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  run-command.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  serve.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  server-info.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  setup.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sha1-lookup.o -c -MF ./.depend/sha1-lookup.o.d -MQ sha1-lookup.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha1-lookup.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  revision.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sha1-file.o -c -MF ./.depend/sha1-file.o.d -MQ sha1-file.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha1-file.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  shallow.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sideband.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sigchain.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sha1-name.o -c -MF ./.depend/sha1-name.o.d -MQ sha1-name.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha1-name.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  split-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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  streaming.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  string-list.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  strmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  strvec.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sub-process.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  strbuf.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  submodule-config.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  symlinks.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  tag.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  thread-utils.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  tempfile.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  tmp-objdir.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_cfg.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  submodule.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sequencer.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_cmd_name.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_sid.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_sysenv.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_tbuf.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_dst.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_tgt_normal.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_tgt_event.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_tls.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trace2/tr2_tgt_perf.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  tree-diff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  trailer.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  url.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  tree-walk.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  usage.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  urlmatch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  userdiff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  varint.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  upload-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  versioncmp.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  utf8.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  wildmatch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  walker.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  unpack-trees.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  write-or-die.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  worktree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  wrapper.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  ws.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff-interface.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  unix-socket.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  zlib.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha1dc_git.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha1dc/ubc_check.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  compat/fopen.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  compat/strlcpy.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha256/block/sha256.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  compat/qsort_s.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xemit.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sha1dc/sha1.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xdiffi.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xhistogram.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  wt-status.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xpatience.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xmerge.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xprepare.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  xdiff/xutils.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  sh-i18n--envsubst.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  http-backend.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  shell.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  http-fetch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  imap-send.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  http-walker.c
make[2]: Leaving directory '/<<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>>'
rm -f git-instaweb git-instaweb+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' git.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  http-push.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  http.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/annotate.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/add.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  remote-curl.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/apply.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/archive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/bisect--helper.o -c -MF builtin/.depend/bisect--helper.o.d -MQ builtin/bisect--helper.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/bisect--helper.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/blame.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/bugreport.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/branch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/bundle.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/check-attr.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/am.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/check-ignore.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/check-mailmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/check-ref-format.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/cat-file.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/checkout-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/column.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/commit-graph.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/commit-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/clean.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/clone.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/checkout.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/count-objects.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/credential-cache--daemon.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/config.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/credential-cache.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/credential.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/credential-store.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/diff-files.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/diff-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/diff-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/commit.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/describe.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/env--helper.o -c -MF builtin/.depend/env--helper.o.d -MQ builtin/env--helper.o -MMD -MP   -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/env--helper.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/diff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/fetch-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/difftool.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/fmt-merge-msg.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/fast-export.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/for-each-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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/for-each-repo.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/fsck.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/fetch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/get-tar-commit-id.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/gc.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
/bin/sh ./generate-configlist.sh \
	>config-list.h+ && mv config-list.h+ config-list.h
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/hash-object.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DDEFAULT_GIT_TEMPLATE_DIR='"share/git-core/templates"' builtin/init-db.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/interpret-trailers.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/grep.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/fast-import.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/index-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/ls-remote.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/ls-files.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/ls-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/mailinfo.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge-base.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge-file.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/mailsplit.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge-ours.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge-recursive.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/mktag.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/multi-pack-index.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/mktree.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/mv.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/log.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/merge.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/pack-refs.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/patch-id.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/notes.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/pack-redundant.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/prune-packed.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/prune.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/range-diff.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/push.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/pull.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/read-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/reflog.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/remote-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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/remote-fd.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/receive-pack.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/pack-objects.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/rebase.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/rerere.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/repack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/replace.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/reset.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/remote.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/rev-list.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/revert.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/send-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/rm.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/show-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/shortlog.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/show-ref.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/rev-parse.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/stripspace.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/sparse-checkout.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/show-branch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/symbolic-ref.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/unpack-file.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/tag.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/unpack-objects.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/stash.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/update-server-info.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/upload-archive.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/update-ref.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/upload-pack.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/var.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/verify-commit.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/verify-pack.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/verify-tag.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/update-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-mergetool--lib git-mergetool--lib+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-mergetool--lib.sh >git-mergetool--lib+ && \
mv git-mergetool--lib+ git-mergetool--lib
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rebase--preserve-merges git-rebase--preserve-merges+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-rebase--preserve-merges.sh >git-rebase--preserve-merges+ && \
mv git-rebase--preserve-merges+ git-rebase--preserve-merges
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-sh-i18n git-sh-i18n+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-sh-i18n.sh >git-sh-i18n+ && \
mv git-sh-i18n+ git-sh-i18n
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-sh-setup git-sh-setup+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-sh-setup.sh >git-sh-setup+ && \
mv git-sh-setup+ git-sh-setup
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/submodule--helper.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/write-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_VERSION="2.30.2"' '-DGIT_USER_AGENT="git/2.30.2"' '-DGIT_BUILT_FROM_COMMIT=""' version.c
make[2]: Leaving directory '/<<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>>'
rm -f git-bisect git-bisect+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-bisect.sh >git-bisect+ && \
chmod +x git-bisect+ && \
mv git-bisect+ git-bisect
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-difftool--helper git-difftool--helper+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-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 git-filter-branch git-filter-branch+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-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>>'
rm -f git-merge-octopus git-merge-octopus+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-merge-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>>'
rm -f git-merge-one-file git-merge-one-file+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-merge-one-file.sh >git-merge-one-file+ && \
chmod +x git-merge-one-file+ && \
mv git-merge-one-file+ git-merge-one-file
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge-resolve git-merge-resolve+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-merge-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>>'
rm -f git-mergetool git-mergetool+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-mergetool.sh >git-mergetool+ && \
chmod +x git-mergetool+ && \
mv git-mergetool+ git-mergetool
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-quiltimport git-quiltimport+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-quiltimport.sh >git-quiltimport+ && \
chmod +x git-quiltimport+ && \
mv git-quiltimport+ git-quiltimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-request-pull git-request-pull+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-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>>'
rm -f git-submodule git-submodule+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-submodule.sh >git-submodule+ && \
chmod +x git-submodule+ && \
mv git-submodule+ git-submodule
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-web--browse git-web--browse+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-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>>'
rm -f GIT-PERL-HEADER && \
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>>'
rm -f git-p4 git-p4+ && \
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>>'
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DETC_GITATTRIBUTES='"/etc/gitattributes"' attr.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-add--interactive git-add--interactive+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-add--interactive.perl >git-add--interactive+ && \
chmod +x git-add--interactive+ && \
mv git-add--interactive+ git-add--interactive
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-archimport git-archimport+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-archimport.perl >git-archimport+ && \
chmod +x git-archimport+ && \
mv git-archimport+ git-archimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cvsexportcommit git-cvsexportcommit+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-cvsexportcommit.perl >git-cvsexportcommit+ && \
chmod +x git-cvsexportcommit+ && \
mv git-cvsexportcommit+ git-cvsexportcommit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cvsimport git-cvsimport+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-cvsimport.perl >git-cvsimport+ && \
chmod +x git-cvsimport+ && \
mv git-cvsimport+ git-cvsimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cvsserver git-cvsserver+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-cvsserver.perl >git-cvsserver+ && \
chmod +x git-cvsserver+ && \
mv git-cvsserver+ git-cvsserver
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-send-email git-send-email+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-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>>'
rm -f git-svn git-svn+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-svn.perl >git-svn+ && \
chmod +x git-svn+ && \
mv git-svn+ git-svn
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' builtin/help.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  help.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  builtin/worktree.c
make[2]: Leaving directory '/<<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.o cache-tree.o chdir-notify.o checkout.o color.o column.o combine-diff.o commit-graph.o commit-reach.o commit.o compat/obstack.o compat/terminal.o config.o connect.o connected.o convert.o copy.o credential.o csum-file.o ctype.o date.o decorate.o delta-islands.o diff-delta.o diff-lib.o diff-no-index.o diff.o diffcore-break.o diffcore-delta.o diffcore-order.o diffcore-pickaxe.o diffcore-rename.o dir-iterator.o dir.o editor.o entry.o environment.o ewah/bitmap.o ewah/ewah_bitmap.o ewah/ewah_io.o ewah/ewah_rlw.o exec-cmd.o fetch-negotiator.o fetch-pack.o fmt-merge-msg.o fsck.o fsmonitor.o gettext.o gpg-interface.o graph.o grep.o hashmap.o help.o hex.o ident.o json-writer.o kwset.o levenshtein.o line-log.o line-range.o linear-assignment.o list-objects-filter-options.o list-objects-filter.o list-objects.o ll-merge.o lockfile.o log-tree.o ls-refs.o mailinfo.o mailmap.o match-trees.o mem-pool.o merge-blobs.o merge-ort.o merge-ort-wrappers.o merge-recursive.o merge.o mergesort.o midx.o name-hash.o negotiator/default.o negotiator/noop.o negotiator/skipping.o notes-cache.o notes-merge.o notes-utils.o notes.o object.o oid-array.o oidmap.o oidset.o pack-bitmap-write.o pack-bitmap.o pack-check.o pack-objects.o pack-revindex.o pack-write.o packfile.o pager.o parse-options-cb.o parse-options.o patch-delta.o patch-ids.o path.o pathspec.o pkt-line.o preload-index.o pretty.o prio-queue.o progress.o promisor-remote.o prompt.o protocol.o prune-packed.o quote.o range-diff.o reachable.o read-cache.o rebase-interactive.o rebase.o ref-filter.o reflog-walk.o refs.o refs/debug.o refs/files-backend.o refs/iterator.o refs/packed-backend.o refs/ref-cache.o refspec.o remote.o replace-object.o repo-settings.o repository.o rerere.o reset.o resolve-undo.o revision.o run-command.o send-pack.o sequencer.o serve.o server-info.o setup.o sha1-file.o sha1-lookup.o sha1-name.o shallow.o sideband.o sigchain.o split-index.o stable-qsort.o strbuf.o streaming.o string-list.o strmap.o strvec.o sub-process.o submodule-config.o submodule.o symlinks.o tag.o tempfile.o thread-utils.o tmp-objdir.o trace.o trace2.o trace2/tr2_cfg.o trace2/tr2_cmd_name.o trace2/tr2_dst.o trace2/tr2_sid.o trace2/tr2_sysenv.o trace2/tr2_tbuf.o trace2/tr2_tgt_event.o trace2/tr2_tgt_normal.o trace2/tr2_tgt_perf.o trace2/tr2_tls.o trailer.o transport-helper.o transport.o tree-diff.o tree-walk.o tree.o unpack-trees.o upload-pack.o url.o urlmatch.o usage.o userdiff.o utf8.o varint.o version.o versioncmp.o walker.o wildmatch.o worktree.o wrapper.o write-or-die.o ws.o wt-status.o xdiff-interface.o zlib.o unix-socket.o sha1dc_git.o sha1dc/sha1.o sha1dc/ubc_check.o sha256/block/sha256.o compat/fopen.o compat/strlcpy.o compat/qsort_s.o
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-sh-i18n--envsubst -Wl,-z,relro  sh-i18n--envsubst.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-backend -Wl,-z,relro  http-backend.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-daemon -Wl,-z,relro  daemon.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-imap-send -Wl,-z,relro  imap-send.o http.o common-main.o \
	-lcurl    libgit.a xdiff/lib.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-shell -Wl,-z,relro  shell.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-fetch -Wl,-z,relro  http.o http-walker.o http-fetch.o common-main.o \
	-lcurl libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-push -Wl,-z,relro  http.o http-push.o common-main.o \
	-lcurl -lexpat libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-remote-http -Wl,-z,relro  remote-curl.o http.o http-walker.o common-main.o \
	-lcurl -lexpat libgit.a xdiff/lib.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git -Wl,-z,relro  \
	git.o builtin/add.o builtin/am.o builtin/annotate.o builtin/apply.o builtin/archive.o builtin/bisect--helper.o builtin/blame.o builtin/branch.o builtin/bugreport.o builtin/bundle.o builtin/cat-file.o builtin/check-attr.o builtin/check-ignore.o builtin/check-mailmap.o builtin/check-ref-format.o builtin/checkout-index.o builtin/checkout.o builtin/clean.o builtin/clone.o builtin/column.o builtin/commit-graph.o builtin/commit-tree.o builtin/commit.o builtin/config.o builtin/count-objects.o builtin/credential-cache--daemon.o builtin/credential-cache.o builtin/credential-store.o builtin/credential.o builtin/describe.o builtin/diff-files.o builtin/diff-index.o builtin/diff-tree.o builtin/diff.o builtin/difftool.o builtin/env--helper.o builtin/fast-export.o builtin/fast-import.o builtin/fetch-pack.o builtin/fetch.o builtin/fmt-merge-msg.o builtin/for-each-ref.o builtin/for-each-repo.o builtin/fsck.o builtin/gc.o builtin/get-tar-commit-id.o builtin/grep.o builtin/hash-object.o builtin/help.o builtin/index-pack.o builtin/init-db.o builtin/interpret-trailers.o builtin/log.o builtin/ls-files.o builtin/ls-remote.o builtin/ls-tree.o builtin/mailinfo.o builtin/mailsplit.o builtin/merge-base.o builtin/merge-file.o builtin/merge-index.o builtin/merge-ours.o builtin/merge-recursive.o builtin/merge-tree.o builtin/merge.o builtin/mktag.o builtin/mktree.o builtin/multi-pack-index.o builtin/mv.o builtin/name-rev.o builtin/notes.o builtin/pack-objects.o builtin/pack-redundant.o builtin/pack-refs.o builtin/patch-id.o builtin/prune-packed.o builtin/prune.o builtin/pull.o builtin/push.o builtin/range-diff.o builtin/read-tree.o builtin/rebase.o builtin/receive-pack.o builtin/reflog.o builtin/remote-ext.o builtin/remote-fd.o builtin/remote.o builtin/repack.o builtin/replace.o builtin/rerere.o builtin/reset.o builtin/rev-list.o builtin/rev-parse.o builtin/revert.o builtin/rm.o builtin/send-pack.o builtin/shortlog.o builtin/show-branch.o builtin/show-index.o builtin/show-ref.o builtin/sparse-checkout.o builtin/stash.o builtin/stripspace.o builtin/submodule--helper.o builtin/symbolic-ref.o builtin/tag.o builtin/unpack-file.o builtin/unpack-objects.o builtin/update-index.o builtin/update-ref.o builtin/update-server-info.o builtin/upload-archive.o builtin/upload-pack.o builtin/var.o builtin/verify-commit.o builtin/verify-pack.o builtin/verify-tag.o builtin/worktree.o builtin/write-tree.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<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-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-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-bisect--helper && \
ln git git-bisect--helper 2>/dev/null || \
ln -s git git-bisect--helper 2>/dev/null || \
cp git git-bisect--helper
make[2]: Leaving directory '/<<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-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-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-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-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-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-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-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-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-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-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-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 && \
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-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-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-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 && \
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-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-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-env--helper && \
ln git git-env--helper 2>/dev/null || \
ln -s git git-env--helper 2>/dev/null || \
cp git git-env--helper
make[2]: Leaving directory '/<<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-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-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 && \
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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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 && \
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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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>>'
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>>'
/usr/bin/make -C git-gui  gitexecdir='/usr/lib/git-core' all
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
GITGUI_VERSION = 0.21.0.93.g7b0cfe1
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 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 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 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 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 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 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.0.93.g7b0cfe1/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'
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'
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/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/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/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/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_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/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/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/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/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>>'
mkdir -p po/build/locale/el/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/el/LC_MESSAGES/git.mo po/el.po
1038 translated messages, 3325 untranslated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/de/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/de/LC_MESSAGES/git.mo po/de.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/ca/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/ca/LC_MESSAGES/git.mo po/ca.po
4386 translated messages, 652 fuzzy translations.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/is/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/is/LC_MESSAGES/git.mo po/is.po
14 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/bg/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/bg/LC_MESSAGES/git.mo po/bg.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/es/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/es/LC_MESSAGES/git.mo po/es.po
4931 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/ko/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/ko/LC_MESSAGES/git.mo po/ko.po
3608 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/fr/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/fr/LC_MESSAGES/git.mo po/fr.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/it/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/it/LC_MESSAGES/git.mo po/it.po
5013 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/pl/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/pl/LC_MESSAGES/git.mo po/pl.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/pt_PT/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/pt_PT/LC_MESSAGES/git.mo po/pt_PT.po
2877 translated messages, 1290 fuzzy translations, 846 untranslated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/ru/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/ru/LC_MESSAGES/git.mo po/ru.po
3521 translated messages, 1060 untranslated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/sv/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/sv/LC_MESSAGES/git.mo po/sv.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/tr/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/tr/LC_MESSAGES/git.mo po/tr.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/vi/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/vi/LC_MESSAGES/git.mo po/vi.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/zh_CN/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/zh_CN/LC_MESSAGES/git.mo po/zh_CN.po
5037 translated messages.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p po/build/locale/zh_TW/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/zh_TW/LC_MESSAGES/git.mo po/zh_TW.po
5036 translated messages, 1 untranslated message.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/LoadCPAN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Editor.pm > perl/build/lib/Git/SVN/Editor.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Fetcher.pm > perl/build/lib/Git/SVN/Fetcher.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/GlobSpec.pm > perl/build/lib/Git/SVN/GlobSpec.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Log.pm > perl/build/lib/Git/SVN/Log.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Migration.pm > perl/build/lib/Git/SVN/Migration.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Prompt.pm > perl/build/lib/Git/SVN/Prompt.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Ra.pm > perl/build/lib/Git/SVN/Ra.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p perl/build/lib/Git/LoadCPAN/Mail/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/SVN/Memoize/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|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>>'
mkdir -p perl/build/lib/Git/SVN/ && \
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
    -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Utils.pm > perl/build/lib/Git/SVN/Utils.pm
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-advise.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-fake-ssh.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-tool.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-bloom.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-crontab.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-chmtime.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-config.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-ctype.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-delta.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-date.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-drop-caches.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-dir-iterator.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-dump-fsmonitor.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-dump-cache-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-dump-split-index.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-dump-untracked-cache.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-genrandom.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-example-decorate.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-genzeros.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-hash-speed.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-fast-rebase.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-hash.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-hashmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-match-trees.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-lazy-init-name-hash.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-mergesort.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-mktemp.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-json-writer.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-oid-array.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-online-cpus.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-oidmap.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-parse-pathspec-file.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-pkt-line.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-prio-queue.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-parse-options.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-progress.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-proc-receive.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-path-utils.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-read-cache.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-read-graph.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-read-midx.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-reach.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-regex.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-repository.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-ref-store.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-revision-walking.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-serve-v2.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-sha1.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-scrap-cache-tree.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-sha256.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-strcmp-offset.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-sigchain.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-submodule-nested-repo-config.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-submodule-config.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-run-command.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-string-list.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-subprocess.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-urlmatch-normalization.c
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-trace2.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-wildmatch.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-windows-named-pipe.c
make[2]: Leaving directory '/<<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>>'
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>>'
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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-write-cache.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"'  t/helper/test-xml-encode.c
make[2]: Leaving directory '/<<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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o t/helper/test-fake-ssh -Wl,-z,relro  t/helper/test-fake-ssh.o common-main.o libgit.a xdiff/lib.a libgit.a xdiff/lib.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 -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o t/helper/test-tool -Wl,-z,relro  t/helper/test-tool.o common-main.o t/helper/test-advise.o t/helper/test-bloom.o t/helper/test-chmtime.o t/helper/test-config.o t/helper/test-crontab.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-example-decorate.o t/helper/test-fast-rebase.o t/helper/test-genrandom.o t/helper/test-genzeros.o t/helper/test-hash-speed.o t/helper/test-hash.o t/helper/test-hashmap.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-online-cpus.o t/helper/test-parse-options.o t/helper/test-parse-pathspec-file.o t/helper/test-path-utils.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-regex.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-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-subprocess.o t/helper/test-trace2.o t/helper/test-urlmatch-normalization.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 libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
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 libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -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 libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -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 git-cvsexportcommit git-cvsexportcommit+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-cvsexportcommit.perl >git-cvsexportcommit+ && \
chmod +x git-cvsexportcommit+ && \
mv git-cvsexportcommit+ git-cvsexportcommit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cvsimport git-cvsimport+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-cvsimport.perl >git-cvsimport+ && \
chmod +x git-cvsimport+ && \
mv git-cvsimport+ git-cvsimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-add--interactive git-add--interactive+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-add--interactive.perl >git-add--interactive+ && \
chmod +x git-add--interactive+ && \
mv git-add--interactive+ git-add--interactive
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-archimport git-archimport+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-archimport.perl >git-archimport+ && \
chmod +x git-archimport+ && \
mv git-archimport+ git-archimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-send-email git-send-email+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-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>>'
rm -f git-svn git-svn+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-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 git-cvsserver git-cvsserver+ && \
sed -e '1{' \
    -e '	s|#!.*perl|#!/usr/bin/perl|' \
    -e '	r GIT-PERL-HEADER' \
    -e '	G' \
    -e '}' \
    -e 's/@@GIT_VERSION@@/2.30.2/g' \
    git-cvsserver.perl >git-cvsserver+ && \
chmod +x git-cvsserver+ && \
mv git-cvsserver+ git-cvsserver
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-p4 git-p4+ && \
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'
/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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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" &&
	test "$SHA" = "$(git rev-list HEAD)"

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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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/master
	$head	refs/tags/foo
	EOF
	test_cmp expected actual

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/enter_repo/.git/
[master (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/master
	$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/master
	$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

error: insufficient permission for adding an object to repository database .git/objects
fatal: git-write-tree: error building trees
ok 2 - write-tree should notice unwritable repository

expecting success of 0004.3 'commit should notice unwritable repository': 
	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
	chmod a-w .git/objects .git/objects/?? &&
	test_must_fail git commit -m second

error: insufficient permission for adding an object to repository database .git/objects
error: insufficient permission for adding an object to repository database .git/objects
error: Error building trees
ok 3 - commit should notice unwritable repository

expecting success of 0004.4 'update-index should notice unwritable repository': 
	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
	echo 6O >file &&
	chmod a-w .git/objects .git/objects/?? &&
	test_must_fail git update-index file

error: insufficient permission for adding an object to repository database .git/objects
error: file: failed to insert into database
fatal: Unable to process path file
ok 4 - update-index should notice unwritable repository

expecting success of 0004.5 'add should notice unwritable repository': 
	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
	echo b >file &&
	chmod a-w .git/objects .git/objects/?? &&
	test_must_fail git add file

error: insufficient permission for adding an object to repository database .git/objects
error: file: failed to insert into database
error: unable to index file 'file'
fatal: updating files failed
ok 5 - add should notice unwritable repository

# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<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 '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 &&
	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 [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: No attribute specified
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: No file specified
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: No file specified
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: No attribute specified
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: No attribute specified
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: No attribute specified
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: Can't specify files with --stdin
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
   or: git check-attr --stdin [-z] [-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

error: : not a valid attribute name
ok 3 - command line checks

expecting success of 0003.4 '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 4 - attribute test

expecting success of 0003.5 '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 5 - attribute matching is case sensitive when core.ignorecase=0

expecting success of 0003.6 '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 6 - 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 7 # skip additional case insensitivity tests (missing CASE_INSENSITIVE_FS)

expecting success of 0003.8 '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 8 - unnormalized paths

expecting success of 0003.9 '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 9 - relative paths

expecting success of 0003.10 '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 10 - prefixes are not confused with leading directories

expecting success of 0003.11 '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 11 - core.attributesfile

expecting success of 0003.12 '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 12 - attribute test: read paths from stdin

expecting success of 0003.13 'attribute test: --all option': 
	grep -v unspecified <expect-all | sort >specified-all &&
	sed -e "s/:.*//" <expect-all | uniq >stdin-all &&
	git check-attr --stdin --all <stdin-all | sort >actual &&
	test_cmp specified-all actual

ok 13 - attribute test: --all option

expecting success of 0003.14 'attribute test: --cached option': 
	git check-attr --cached --stdin --all <stdin-all | sort >actual &&
	test_must_be_empty actual &&
	git add .gitattributes a/.gitattributes a/b/.gitattributes &&
	git check-attr --cached --stdin --all <stdin-all | sort >actual &&
	test_cmp specified-all actual

ok 14 - attribute test: --cached option

expecting success of 0003.15 'root subdir attribute test': 
	attr_check a/i a/i &&
	attr_check subdir/a/i unspecified

ok 15 - root subdir attribute test

expecting success of 0003.16 'negative patterns': 
	echo "!f test=bar" >.gitattributes &&
	git check-attr test -- '!f' 2>errors &&
	test_i18ngrep "Negative patterns are ignored" errors

!f: test: unspecified
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
warning: Negative patterns are ignored in git attributes
ok 16 - negative patterns

expecting success of 0003.17 'patterns starting with exclamation': 
	echo "\!f test=foo" >.gitattributes &&
	attr_check "!f" foo

ok 17 - patterns starting with exclamation

expecting success of 0003.18 '"**" 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 18 - "**" test

expecting success of 0003.19 '"**" 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 19 - "**" with no slashes test

expecting success of 0003.20 '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"
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0003-attributes/real/.git/
ok 20 - using --git-dir and --work-tree

expecting success of 0003.21 'setup bare': 
	git clone --bare . bare.git

Cloning into bare repository 'bare.git'...
warning: You appear to have cloned an empty repository.
done.
ok 21 - setup bare

expecting success of 0003.22 '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 22 - bare repository: check that .gitattribute is ignored

expecting success of 0003.23 '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 23 - bare repository: check that --cached honors index

expecting success of 0003.24 'bare repository: test info/attributes': 
	(
		cd bare.git &&
		(
			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 24 - bare repository: test info/attributes

expecting success of 0003.25 '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 25 - binary macro expanded by -a

expecting success of 0003.26 'query binary macro directly': 
	echo "file binary" >.gitattributes &&
	echo file: binary: set >expect &&
	git check-attr binary file >actual &&
	test_cmp expect actual

ok 26 - query binary macro directly

expecting success of 0003.27 '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 27 - large attributes line ignored in tree

expecting success of 0003.28 '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 28 - large attributes line ignores trailing content in tree

expecting success of 0003.29 '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 29 - large attributes line ignored in index

expecting success of 0003.30 '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 30 - large attributes line ignores trailing content in index

# passed all 30 test(s)
1..30
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@bm-wb-04.(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@bm-wb-04.(none)')
ok 3 - requested identities are strict

expecting success of 0007.4 'git var -l lists variables': 
	git var -l >actual &&
	echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&
	sed -n s/GIT_AUTHOR_IDENT=//p <actual >actual.author &&
	test_cmp expect actual.author

ok 4 - git var -l lists variables

expecting success of 0007.5 'git var -l lists config': 
	git var -l >actual &&
	echo false >expect &&
	sed -n s/core\\.bare=//p <actual >actual.bare &&
	test_cmp expect actual.bare

ok 5 - git var -l lists config

expecting success of 0007.6 'listing and asking for variables are exclusive': 
	test_must_fail git var -l GIT_COMMITTER_IDENT

usage: git var (-l | <variable>)
ok 6 - listing and asking for variables are exclusive

# passed all 6 test(s)
1..6
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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/bare-ancestor.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/plain-ancestor-aliased/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/bare-ancestor-aliased.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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)"

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/template-plain/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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" &&
	(
		mkdir templatedir-set &&
		cd templatedir-set &&
		sane_unset GIT_TEMPLATE_DIR &&
		NO_SET_GIT_TEMPLATE_DIR=t &&
		export NO_SET_GIT_TEMPLATE_DIR &&
		git init
	) &&
	test_cmp templatedir-source/file templatedir-set/.git/file

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t0001-init/templatedir-set/.git/
ok 18 - init with init.templatedir set

expecting success of 0001.19 '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)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/init-bare-shared-override/
ok 19 - init --bare/--shared overrides system/global config

expecting success of 0001.20 '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)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/shared-honor-global/.git/
ok 20 - init honors global core.sharedRepository

expecting success of 0001.21 '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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/test/.git/
ok 21 - init allows insanely long --template

expecting success of 0001.22 'init creates a new directory': 
	rm -fr newdir &&
	git init newdir &&
	test_path_is_dir newdir/.git/refs

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/.git/
ok 22 - init creates a new directory

expecting success of 0001.23 'init creates a new bare directory': 
	rm -fr newdir &&
	git init --bare newdir &&
	test_path_is_dir newdir/refs

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/
ok 23 - init creates a new bare directory

expecting success of 0001.24 'init recreates a directory': 
	rm -fr newdir &&
	mkdir newdir &&
	git init newdir &&
	test_path_is_dir newdir/.git/refs

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/.git/
ok 24 - init recreates a directory

expecting success of 0001.25 'init recreates a new bare directory': 
	rm -fr newdir &&
	mkdir newdir &&
	git init --bare newdir &&
	test_path_is_dir newdir/refs

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/
ok 25 - init recreates a new bare directory

expecting success of 0001.26 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/a/b/c/.git/
ok 26 - init creates a new deep directory

expecting success of 0001.27 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/a/b/c/
ok 27 - init creates a new deep directory (umask vs. shared)

expecting success of 0001.28 '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 28 - init notices EEXIST (1)

expecting success of 0001.29 '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 29 - 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.30 '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 30 - init notices EPERM

expecting success of 0001.31 'init creates a new bare directory with global --bare': 
	rm -rf newdir &&
	git --bare init newdir &&
	test_path_is_dir newdir/refs

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/
ok 31 - init creates a new bare directory with global --bare

expecting success of 0001.32 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/
ok 32 - init prefers command line to GIT_DIR

expecting success of 0001.33 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/realgitdir/
ok 33 - init with separate gitdir

expecting success of 0001.34 'explicit bare & --separate-git-dir incompatible': 
	test_must_fail git init --bare --separate-git-dir goop.git bare.git 2>err &&
	test_i18ngrep "mutually exclusive" err

fatal: --separate-git-dir and --bare are mutually exclusive
ok 34 - explicit bare & --separate-git-dir incompatible

expecting success of 0001.35 '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 35 - implicit bare & --separate-git-dir incompatible

expecting success of 0001.36 '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 36 - bare & --separate-git-dir incompatible within worktree

expecting success of 0001.37 'init in long base path': 
	check_long_base_path

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/newdir/.git/
ok 37 - 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 && /bin/pwd -P)
	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.38 'init in long restricted base path': 
	check_long_base_path 0111

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/newdir/.git/
ok 38 - init in long restricted base path

expecting success of 0001.39 're-init on .git file': 
	( cd newdir && git init )

Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 39 - re-init on .git file

expecting success of 0001.40 '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 40 - re-init to update git link

expecting success of 0001.41 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 41 - 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.42 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 42 - re-init to move gitdir symlink

expecting success of 0001.43 're-init to move gitdir with linked worktrees': 
	sep_git_dir_worktree mainwt

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 43 - re-init to move gitdir with linked worktrees

expecting success of 0001.44 're-init to move gitdir within linked worktree': 
	sep_git_dir_worktree linkwt

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 44 - re-init to move gitdir within linked worktree

ok 45 # skip .git hidden (missing MINGW)

ok 46 # skip bare git dir not hidden (missing MINGW)

expecting success of 0001.47 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/newdir/.git/
ok 47 - remote init from does not use config from cwd

expecting success of 0001.48 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 48 - re-init from a linked worktree

expecting success of 0001.49 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/sha1/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t0001-init/sha256/.git/
ok 49 - init honors GIT_DEFAULT_HASH

expecting success of 0001.50 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/explicit-sha1/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t0001-init/explicit-sha256/.git/
ok 50 - init honors --object-format

expecting success of 0001.51 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/explicit-v0/.git/
fatal: repo version is 0, but v1-only extensions found:
	objectformat
ok 51 - extensions.objectFormat is not allowed with repo version 0

expecting success of 0001.52 '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 52 - init rejects attempts to initialize with different hash

ok 53 # skip core.hidedotfiles = false (missing MINGW)

ok 54 # skip redirect std handles (missing MINGW)

expecting success of 0001.55 '--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 55 - --initial-branch

expecting success of 0001.56 '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 56 - overridden default initial branch name (config)

expecting success of 0001.57 '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 57 - advice on unconfigured init.defaultBranch

expecting success of 0001.58 '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 58 - overridden default main branch name (env)

expecting success of 0001.59 '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 59 - invalid default branch name

expecting success of 0001.60 '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)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0001-init/rename-initial/.git/
ok 60 - branch -m with the initial branch

# passed all 60 test(s)
1..60
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_i18ncmp expect actual
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 1 - relative date (5 seconds ago)

expecting success of 0006.2 'relative date (5 minutes ago)': 
	test-tool date relative 1251659700 >actual &&
	test_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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)

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 30 # skip show date (iso:5758122296 -0400) (missing TIME_T_IS_64BIT of TIME_IS_64BIT,TIME_T_IS_64BIT)

ok 31 # skip show date (iso-local:5758122296 -0400) (missing TIME_T_IS_64BIT of TIME_IS_64BIT,TIME_T_IS_64BIT)

expecting success of 0006.32 'parse date (2008)': 
	TZ=UTC test-tool date parse '2008' >actual &&
	test_cmp expect actual
	
ok 32 - parse date (2008)

expecting success of 0006.33 'parse date (2008-02)': 
	TZ=UTC test-tool date parse '2008-02' >actual &&
	test_cmp expect actual
	
ok 33 - parse date (2008-02)

expecting success of 0006.34 'parse date (2008-02-14)': 
	TZ=UTC test-tool date parse '2008-02-14' >actual &&
	test_cmp expect actual
	
ok 34 - parse date (2008-02-14)

expecting success of 0006.35 '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 35 - parse date (2008-02-14 20:30:45)

expecting success of 0006.36 '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 36 - parse date (2008-02-14 20:30:45 -0500)

expecting success of 0006.37 '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 37 - parse date (2008.02.14 20:30:45 -0500)

expecting success of 0006.38 'parse date (20080214T203045-04:00)': 
	TZ=UTC test-tool date parse '20080214T203045-04:00' >actual &&
	test_cmp expect actual
	
ok 38 - parse date (20080214T203045-04:00)

expecting success of 0006.39 'parse date (20080214T203045 -04:00)': 
	TZ=UTC test-tool date parse '20080214T203045 -04:00' >actual &&
	test_cmp expect actual
	
ok 39 - parse date (20080214T203045 -04:00)

expecting success of 0006.40 'parse date (20080214T203045.019-04:00)': 
	TZ=UTC test-tool date parse '20080214T203045.019-04:00' >actual &&
	test_cmp expect actual
	
ok 40 - parse date (20080214T203045.019-04:00)

expecting success of 0006.41 '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 41 - parse date (2008-02-14 20:30:45.019-04:00)

expecting success of 0006.42 '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 42 - parse date (2008-02-14 20:30:45 -0015)

expecting success of 0006.43 '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 43 - parse date (2008-02-14 20:30:45 -5)

expecting success of 0006.44 '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 44 - parse date (2008-02-14 20:30:45 -5:)

expecting success of 0006.45 '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 45 - parse date (2008-02-14 20:30:45 -05)

expecting success of 0006.46 '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 46 - parse date (2008-02-14 20:30:45 -:30)

expecting success of 0006.47 '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 47 - parse date (2008-02-14 20:30:45 -05:00)

expecting success of 0006.48 '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 48 - parse date (2008-02-14 20:30:45 TZ=EST5)

expecting success of 0006.49 'parse approxidate (now)': 
	test-tool date approxidate 'now' >actual &&
	test_cmp expect actual
	
ok 49 - parse approxidate (now)

expecting success of 0006.50 'parse approxidate (5 seconds ago)': 
	test-tool date approxidate '5 seconds ago' >actual &&
	test_cmp expect actual
	
ok 50 - parse approxidate (5 seconds ago)

expecting success of 0006.51 'parse approxidate (5.seconds.ago)': 
	test-tool date approxidate '5.seconds.ago' >actual &&
	test_cmp expect actual
	
ok 51 - parse approxidate (5.seconds.ago)

expecting success of 0006.52 'parse approxidate (10.minutes.ago)': 
	test-tool date approxidate '10.minutes.ago' >actual &&
	test_cmp expect actual
	
ok 52 - parse approxidate (10.minutes.ago)

expecting success of 0006.53 'parse approxidate (yesterday)': 
	test-tool date approxidate 'yesterday' >actual &&
	test_cmp expect actual
	
ok 53 - parse approxidate (yesterday)

expecting success of 0006.54 'parse approxidate (3.days.ago)': 
	test-tool date approxidate '3.days.ago' >actual &&
	test_cmp expect actual
	
ok 54 - parse approxidate (3.days.ago)

expecting success of 0006.55 'parse approxidate (12:34:56.3.days.ago)': 
	test-tool date approxidate '12:34:56.3.days.ago' >actual &&
	test_cmp expect actual
	
ok 55 - parse approxidate (12:34:56.3.days.ago)

expecting success of 0006.56 'parse approxidate (3.weeks.ago)': 
	test-tool date approxidate '3.weeks.ago' >actual &&
	test_cmp expect actual
	
ok 56 - parse approxidate (3.weeks.ago)

expecting success of 0006.57 'parse approxidate (3.months.ago)': 
	test-tool date approxidate '3.months.ago' >actual &&
	test_cmp expect actual
	
ok 57 - parse approxidate (3.months.ago)

expecting success of 0006.58 'parse approxidate (2.years.3.months.ago)': 
	test-tool date approxidate '2.years.3.months.ago' >actual &&
	test_cmp expect actual
	
ok 58 - parse approxidate (2.years.3.months.ago)

expecting success of 0006.59 'parse approxidate (6am yesterday)': 
	test-tool date approxidate '6am yesterday' >actual &&
	test_cmp expect actual
	
ok 59 - parse approxidate (6am yesterday)

expecting success of 0006.60 'parse approxidate (6pm yesterday)': 
	test-tool date approxidate '6pm yesterday' >actual &&
	test_cmp expect actual
	
ok 60 - parse approxidate (6pm yesterday)

expecting success of 0006.61 'parse approxidate (3:00)': 
	test-tool date approxidate '3:00' >actual &&
	test_cmp expect actual
	
ok 61 - parse approxidate (3:00)

expecting success of 0006.62 'parse approxidate (15:00)': 
	test-tool date approxidate '15:00' >actual &&
	test_cmp expect actual
	
ok 62 - parse approxidate (15:00)

expecting success of 0006.63 'parse approxidate (noon today)': 
	test-tool date approxidate 'noon today' >actual &&
	test_cmp expect actual
	
ok 63 - parse approxidate (noon today)

expecting success of 0006.64 'parse approxidate (noon yesterday)': 
	test-tool date approxidate 'noon yesterday' >actual &&
	test_cmp expect actual
	
ok 64 - parse approxidate (noon yesterday)

expecting success of 0006.65 'parse approxidate (January 5th noon pm)': 
	test-tool date approxidate 'January 5th noon pm' >actual &&
	test_cmp expect actual
	
ok 65 - parse approxidate (January 5th noon pm)

expecting success of 0006.66 'parse approxidate (10am noon)': 
	test-tool date approxidate '10am noon' >actual &&
	test_cmp expect actual
	
ok 66 - parse approxidate (10am noon)

expecting success of 0006.67 'parse approxidate (last tuesday)': 
	test-tool date approxidate 'last tuesday' >actual &&
	test_cmp expect actual
	
ok 67 - parse approxidate (last tuesday)

expecting success of 0006.68 'parse approxidate (July 5th)': 
	test-tool date approxidate 'July 5th' >actual &&
	test_cmp expect actual
	
ok 68 - parse approxidate (July 5th)

expecting success of 0006.69 'parse approxidate (06/05/2009)': 
	test-tool date approxidate '06/05/2009' >actual &&
	test_cmp expect actual
	
ok 69 - parse approxidate (06/05/2009)

expecting success of 0006.70 'parse approxidate (06.05.2009)': 
	test-tool date approxidate '06.05.2009' >actual &&
	test_cmp expect actual
	
ok 70 - parse approxidate (06.05.2009)

expecting success of 0006.71 'parse approxidate (Jun 6, 5AM)': 
	test-tool date approxidate 'Jun 6, 5AM' >actual &&
	test_cmp expect actual
	
ok 71 - parse approxidate (Jun 6, 5AM)

expecting success of 0006.72 'parse approxidate (5AM Jun 6)': 
	test-tool date approxidate '5AM Jun 6' >actual &&
	test_cmp expect actual
	
ok 72 - parse approxidate (5AM Jun 6)

expecting success of 0006.73 'parse approxidate (6AM, June 7, 2009)': 
	test-tool date approxidate '6AM, June 7, 2009' >actual &&
	test_cmp expect actual
	
ok 73 - parse approxidate (6AM, June 7, 2009)

expecting success of 0006.74 'parse approxidate (2008-12-01)': 
	test-tool date approxidate '2008-12-01' >actual &&
	test_cmp expect actual
	
ok 74 - parse approxidate (2008-12-01)

expecting success of 0006.75 'parse approxidate (2009-12-01)': 
	test-tool date approxidate '2009-12-01' >actual &&
	test_cmp expect actual
	
ok 75 - parse approxidate (2009-12-01)

expecting success of 0006.76 'human date 1251642000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 76 - human date 1251642000

expecting success of 0006.77 'human date 1251228000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 77 - human date 1251228000

expecting success of 0006.78 'human date 1249932000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 78 - human date 1249932000

expecting success of 0006.79 'human date 1238660000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 79 - human date 1238660000

expecting success of 0006.80 'human date 1220210400': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 80 - human date 1220210400

expecting success of 0006.81 'human date 1214160000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 81 - human date 1214160000

expecting success of 0006.82 'human date 1196472000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 82 - human date 1196472000

expecting success of 0006.83 'human date 621660000': 
		test-tool date human $t >actual &&
		test_i18ncmp expect actual

ok 83 - human date 621660000

# passed all 83 test(s)
1..83
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
	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
	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'
*** 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'
*** t0013-sha1dc.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0013-sha1dc/.git/
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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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'
*** 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 '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 3 - works for commands and guides by default

expecting success of 0012.4 '--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 4 - --exclude-guides does not work for guides

expecting success of 0012.5 '--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_i18ncmp expect actual

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 5 - --help does not work for guides

expecting success of 0012.6 '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 6 - git help

expecting success of 0012.7 'git help -g': 
	git help -g >help.output &&
	test_i18ngrep "^   attributes " help.output &&
	test_i18ngrep "^   everyday   " help.output &&
	test_i18ngrep "^   tutorial   " help.output

   attributes          Defining attributes per path
   everyday            A useful minimum set of commands for Everyday Git
   tutorial            A tutorial introduction to Git
ok 7 - git help -g

expecting success of 0012.8 'generate builtin list': 
	git --list-cmds=builtins >builtins

ok 8 - generate builtin list

expecting success of 0012.9 'add can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git add [<options>] [--] <pathspec>...
ok 9 - add can handle -h

expecting success of 0012.10 'am can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git am [<options>] [(<mbox> | <Maildir>)...]
ok 10 - am can handle -h

expecting success of 0012.11 'annotate can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 11 - annotate can handle -h

expecting success of 0012.12 'apply can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git apply [<options>] [<patch>...]
ok 12 - apply can handle -h

expecting success of 0012.13 'archive can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git archive [<options>] <tree-ish> [<path>...]
ok 13 - archive can handle -h

expecting success of 0012.14 'bisect--helper can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git bisect--helper --bisect-reset [<commit>]
ok 14 - bisect--helper can handle -h

expecting success of 0012.15 'blame can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 15 - blame can handle -h

expecting success of 0012.16 'branch can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
ok 16 - branch can handle -h

expecting success of 0012.17 'bugreport can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]
ok 17 - bugreport can handle -h

expecting success of 0012.18 'bundle can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git bundle create [<options>] <file> <git-rev-list args>
ok 18 - bundle can handle -h

expecting success of 0012.19 'cat-file can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
ok 19 - cat-file can handle -h

expecting success of 0012.20 'check-attr can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
ok 20 - check-attr can handle -h

expecting success of 0012.21 'check-ignore can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git check-ignore [<options>] <pathname>...
ok 21 - check-ignore can handle -h

expecting success of 0012.22 'check-mailmap can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git check-mailmap [<options>] <contact>...
ok 22 - check-mailmap can handle -h

expecting success of 0012.23 'check-ref-format can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git check-ref-format [--normalize] [<options>] <refname>
ok 23 - check-ref-format can handle -h

expecting success of 0012.24 'checkout can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git checkout [<options>] <branch>
ok 24 - checkout can handle -h

expecting success of 0012.25 'checkout-index can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git checkout-index [<options>] [--] [<file>...]
ok 25 - checkout-index can handle -h

expecting success of 0012.26 'cherry can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git cherry [-v] [<upstream> [<head> [<limit>]]]
ok 26 - cherry can handle -h

expecting success of 0012.27 'cherry-pick can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git cherry-pick [<options>] <commit-ish>...
ok 27 - cherry-pick can handle -h

expecting success of 0012.28 'clean can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>...
ok 28 - clean can handle -h

expecting success of 0012.29 'clone can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git clone [<options>] [--] <repo> [<dir>]
ok 29 - clone can handle -h

expecting success of 0012.30 'column can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git column [<options>]
ok 30 - column can handle -h

expecting success of 0012.31 'commit can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git commit [<options>] [--] <pathspec>...
ok 31 - commit can handle -h

expecting success of 0012.32 'commit-graph can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]
ok 32 - commit-graph can handle -h

expecting success of 0012.33 'commit-tree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git commit-tree [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...] [(-F <file>)...] <tree>
ok 33 - commit-tree can handle -h

expecting success of 0012.34 'config can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git config [<options>]
ok 34 - config can handle -h

expecting success of 0012.35 'count-objects can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git count-objects [-v] [-H | --human-readable]
ok 35 - count-objects can handle -h

expecting success of 0012.36 'credential can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git credential [fill|approve|reject]
ok 36 - credential can handle -h

expecting success of 0012.37 'credential-cache can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git credential-cache [<options>] <action>
ok 37 - credential-cache can handle -h

expecting success of 0012.38 'credential-cache--daemon can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git-credential-cache--daemon [opts] <socket_path>
ok 38 - credential-cache--daemon can handle -h

expecting success of 0012.39 'credential-store can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git credential-store [<options>] <action>
ok 39 - credential-store can handle -h

expecting success of 0012.40 'describe can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git describe [<options>] [<commit-ish>...]
ok 40 - describe can handle -h

expecting success of 0012.41 'diff can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git diff [<options>] [<commit>] [--] [<path>...]
ok 41 - diff can handle -h

expecting success of 0012.42 'diff-files can handle -h': 
		test_expect_code 129 git $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 42 - diff-files can handle -h

expecting success of 0012.43 'diff-index can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git diff-index [-m] [--cached] [<common-diff-options>] <tree-ish> [<path>...]
ok 43 - diff-index can handle -h

expecting success of 0012.44 'diff-tree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git diff-tree [--stdin] [-m] [-c | --cc] [-s] [-v] [--pretty] [-t] [-r] [--root] [<common-diff-options>] <tree-ish> [<tree-ish>] [<path>...]
ok 44 - diff-tree can handle -h

expecting success of 0012.45 'difftool can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]
ok 45 - difftool can handle -h

expecting success of 0012.46 'env--helper can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git env--helper --type=[bool|ulong] <options> <env-var>
ok 46 - env--helper can handle -h

expecting success of 0012.47 'fast-export can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git fast-export [rev-list-opts]
ok 47 - fast-export can handle -h

expecting success of 0012.48 'fast-import can handle -h': 
		test_expect_code 129 git $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 48 - fast-import can handle -h

expecting success of 0012.49 'fetch can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git fetch [<options>] [<repository> [<refspec>...]]
ok 49 - fetch can handle -h

expecting success of 0012.50 'fetch-pack can handle -h': 
		test_expect_code 129 git $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 50 - fetch-pack can handle -h

expecting success of 0012.51 'fmt-merge-msg can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]
ok 51 - fmt-merge-msg can handle -h

expecting success of 0012.52 'for-each-ref can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git for-each-ref [<options>] [<pattern>]
ok 52 - for-each-ref can handle -h

expecting success of 0012.53 'for-each-repo can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git for-each-repo --config=<config> <command-args>
ok 53 - for-each-repo can handle -h

expecting success of 0012.54 'format-patch can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git format-patch [<options>] [<since> | <revision-range>]
ok 54 - format-patch can handle -h

expecting success of 0012.55 'fsck can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git fsck [<options>] [<object>...]
ok 55 - fsck can handle -h

expecting success of 0012.56 'fsck-objects can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git fsck [<options>] [<object>...]
ok 56 - fsck-objects can handle -h

expecting success of 0012.57 'gc can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git gc [<options>]
ok 57 - gc can handle -h

expecting success of 0012.58 'get-tar-commit-id can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git get-tar-commit-id
ok 58 - get-tar-commit-id can handle -h

expecting success of 0012.59 'grep can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]
ok 59 - grep can handle -h

expecting success of 0012.60 'hash-object can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] [--] <file>...
ok 60 - hash-object can handle -h

expecting success of 0012.61 'help can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git help [--all] [--guides] [--man | --web | --info] [<command>]
ok 61 - help can handle -h

expecting success of 0012.62 'index-pack can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git index-pack [-v] [-o <index-file>] [--keep | --keep=<msg>] [--verify] [--strict] (<pack-file> | --stdin [--fix-thin] [<pack-file>])
ok 62 - index-pack can handle -h

expecting success of 0012.63 'init can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [<directory>]
ok 63 - init can handle -h

expecting success of 0012.64 'init-db can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [<directory>]
ok 64 - init-db can handle -h

expecting success of 0012.65 'interpret-trailers can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git interpret-trailers [--in-place] [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]
ok 65 - interpret-trailers can handle -h

expecting success of 0012.66 'log can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 66 - log can handle -h

expecting success of 0012.67 'ls-files can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git ls-files [<options>] [<file>...]
ok 67 - ls-files can handle -h

expecting success of 0012.68 'ls-remote can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]
ok 68 - ls-remote can handle -h

expecting success of 0012.69 'ls-tree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git ls-tree [<options>] <tree-ish> [<path>...]
ok 69 - ls-tree can handle -h

expecting success of 0012.70 'mailinfo can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git mailinfo [-k | -b] [-m | --message-id] [-u | --encoding=<encoding> | -n] [--scissors | --no-scissors] <msg> <patch> < mail >info
ok 70 - mailinfo can handle -h

expecting success of 0012.71 'mailsplit can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git mailsplit [-d<prec>] [-f<n>] [-b] [--keep-cr] -o<directory> [(<mbox>|<Maildir>)...]
ok 71 - mailsplit can handle -h

expecting success of 0012.72 'maintenance can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git maintenance <subcommand> [<options>]
ok 72 - maintenance can handle -h

expecting success of 0012.73 'merge can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge [<options>] [<commit>...]
ok 73 - merge can handle -h

expecting success of 0012.74 'merge-base can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-base [-a | --all] <commit> <commit>...
ok 74 - merge-base can handle -h

expecting success of 0012.75 'merge-file can handle -h': 
		test_expect_code 129 git $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 75 - merge-file can handle -h

expecting success of 0012.76 'merge-index can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-index [-o] [-q] <merge-program> (-a | [--] [<filename>...])
ok 76 - merge-index can handle -h

expecting success of 0012.77 'merge-ours can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-ours <base>... -- HEAD <remote>...
ok 77 - merge-ours can handle -h

expecting success of 0012.78 'merge-recursive can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-recursive <base>... -- <head> <remote> ...
ok 78 - merge-recursive can handle -h

expecting success of 0012.79 'merge-recursive-ours can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-recursive-ours <base>... -- <head> <remote> ...
ok 79 - merge-recursive-ours can handle -h

expecting success of 0012.80 'merge-recursive-theirs can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-recursive-theirs <base>... -- <head> <remote> ...
ok 80 - merge-recursive-theirs can handle -h

expecting success of 0012.81 'merge-subtree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-subtree <base>... -- <head> <remote> ...
ok 81 - merge-subtree can handle -h

expecting success of 0012.82 'merge-tree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git merge-tree <base-tree> <branch1> <branch2>
ok 82 - merge-tree can handle -h

expecting success of 0012.83 'mktag can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git mktag
ok 83 - mktag can handle -h

expecting success of 0012.84 'mktree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git mktree [-z] [--missing] [--batch]
ok 84 - mktree can handle -h

expecting success of 0012.85 'multi-pack-index can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git multi-pack-index [<options>] (write|verify|expire|repack --batch-size=<size>)
ok 85 - multi-pack-index can handle -h

expecting success of 0012.86 'mv can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git mv [<options>] <source>... <destination>
ok 86 - mv can handle -h

expecting success of 0012.87 'name-rev can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git name-rev [<options>] <commit>...
ok 87 - name-rev can handle -h

expecting success of 0012.88 'notes can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git notes [--ref <notes-ref>] [list [<object>]]
ok 88 - notes can handle -h

expecting success of 0012.89 'pack-objects can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]
ok 89 - pack-objects can handle -h

expecting success of 0012.90 'pack-redundant can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git pack-redundant [--verbose] [--alt-odb] (--all | <filename.pack>...)
ok 90 - pack-redundant can handle -h

expecting success of 0012.91 'pack-refs can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git pack-refs [<options>]
ok 91 - pack-refs can handle -h

expecting success of 0012.92 'patch-id can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git patch-id [--stable | --unstable]
ok 92 - patch-id can handle -h

expecting success of 0012.93 'pickaxe can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 93 - pickaxe can handle -h

expecting success of 0012.94 'prune can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]
ok 94 - prune can handle -h

expecting success of 0012.95 'prune-packed can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git prune-packed [-n | --dry-run] [-q | --quiet]
ok 95 - prune-packed can handle -h

expecting success of 0012.96 'pull can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git pull [<options>] [<repository> [<refspec>...]]
ok 96 - pull can handle -h

expecting success of 0012.97 'push can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git push [<options>] [<repository> [<refspec>...]]
ok 97 - push can handle -h

expecting success of 0012.98 'range-diff can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>
ok 98 - range-diff can handle -h

expecting success of 0012.99 'read-tree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])
ok 99 - read-tree can handle -h

expecting success of 0012.100 'rebase can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
ok 100 - rebase can handle -h

expecting success of 0012.101 'rebase--interactive can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git rebase--interactive [<options>]
ok 101 - rebase--interactive can handle -h

expecting success of 0012.102 'receive-pack can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git receive-pack <git-dir>
ok 102 - receive-pack can handle -h

expecting success of 0012.103 'reflog can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git reflog [ show | expire | delete | exists ]
ok 103 - reflog can handle -h

expecting success of 0012.104 'remote can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git remote [-v | --verbose]
ok 104 - remote can handle -h

expecting success of 0012.105 'remote-ext can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git remote-ext <remote> <url>
ok 105 - remote-ext can handle -h

expecting success of 0012.106 'remote-fd can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git remote-fd <remote> <url>
ok 106 - remote-fd can handle -h

expecting success of 0012.107 'repack can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git repack [<options>]
ok 107 - repack can handle -h

expecting success of 0012.108 'replace can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git replace [-f] <object> <replacement>
ok 108 - replace can handle -h

expecting success of 0012.109 'rerere can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git rerere [clear | forget <path>... | status | remaining | diff | gc]
ok 109 - rerere can handle -h

expecting success of 0012.110 'reset can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
ok 110 - reset can handle -h

expecting success of 0012.111 'restore can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git restore [<options>] [--source=<branch>] <file>...
ok 111 - restore can handle -h

expecting success of 0012.112 'rev-list can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git rev-list [OPTION] <commit-id>... [ -- paths... ]
ok 112 - rev-list can handle -h

expecting success of 0012.113 'rev-parse can handle -h': 
		test_expect_code 129 git $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 113 - rev-parse can handle -h

expecting success of 0012.114 'revert can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git revert [<options>] <commit-ish>...
ok 114 - revert can handle -h

expecting success of 0012.115 'rm can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git rm [<options>] [--] <file>...
ok 115 - rm can handle -h

expecting success of 0012.116 'send-pack can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> [<ref>...]
ok 116 - send-pack can handle -h

expecting success of 0012.117 'shortlog can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git shortlog [<options>] [<revision-range>] [[--] <path>...]
ok 117 - shortlog can handle -h

expecting success of 0012.118 'show can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 118 - show can handle -h

expecting success of 0012.119 'show-branch can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]
ok 119 - show-branch can handle -h

expecting success of 0012.120 'show-index can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git show-index [--object-format=<hash-algorithm>]
ok 120 - show-index can handle -h

expecting success of 0012.121 'show-ref can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<pattern>...]
ok 121 - show-ref can handle -h

expecting success of 0012.122 'sparse-checkout can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git sparse-checkout (init|list|set|add|reapply|disable) <options>
ok 122 - sparse-checkout can handle -h

expecting success of 0012.123 'stage can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git add [<options>] [--] <pathspec>...
ok 123 - stage can handle -h

expecting success of 0012.124 'stash can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git stash list [<options>]
ok 124 - stash can handle -h

expecting success of 0012.125 'status can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git status [<options>] [--] <pathspec>...
ok 125 - status can handle -h

expecting success of 0012.126 'stripspace can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git stripspace [-s | --strip-comments]
ok 126 - stripspace can handle -h

expecting success of 0012.127 'submodule--helper can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git submodule--helper <command>
ok 127 - submodule--helper can handle -h

expecting success of 0012.128 'switch can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git switch [<options>] [<branch>]
ok 128 - switch can handle -h

expecting success of 0012.129 'symbolic-ref can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git symbolic-ref [<options>] <name> [<ref>]
ok 129 - symbolic-ref can handle -h

expecting success of 0012.130 'tag can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]
ok 130 - tag can handle -h

expecting success of 0012.131 'unpack-file can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git unpack-file <sha1>
ok 131 - unpack-file can handle -h

expecting success of 0012.132 'unpack-objects can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git unpack-objects [-n] [-q] [-r] [--strict]
ok 132 - unpack-objects can handle -h

expecting success of 0012.133 'update-index can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git update-index [<options>] [--] [<file>...]
ok 133 - update-index can handle -h

expecting success of 0012.134 'update-ref can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git update-ref [<options>] -d <refname> [<old-val>]
ok 134 - update-ref can handle -h

expecting success of 0012.135 'update-server-info can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git update-server-info [--force]
ok 135 - update-server-info can handle -h

expecting success of 0012.136 'upload-archive can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git upload-archive <repo>
ok 136 - upload-archive can handle -h

expecting success of 0012.137 'upload-archive--writer can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git upload-archive <repo>
ok 137 - upload-archive--writer can handle -h

expecting success of 0012.138 'upload-pack can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git upload-pack [<options>] <dir>
ok 138 - upload-pack can handle -h

expecting success of 0012.139 'var can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git var (-l | <variable>)
ok 139 - var can handle -h

expecting success of 0012.140 'verify-commit can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git verify-commit [-v | --verbose] <commit>...
ok 140 - verify-commit can handle -h

expecting success of 0012.141 'verify-pack can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git verify-pack [-v | --verbose] [-s | --stat-only] <pack>...
ok 141 - verify-pack can handle -h

expecting success of 0012.142 'verify-tag can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git verify-tag [-v | --verbose] [--format=<format>] <tag>...
ok 142 - verify-tag can handle -h

expecting success of 0012.143 'version can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git version [<options>]
ok 143 - version can handle -h

expecting success of 0012.144 'whatchanged can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 144 - whatchanged can handle -h

expecting success of 0012.145 'worktree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git worktree add [<options>] <path> [<commit-ish>]
ok 145 - worktree can handle -h

expecting success of 0012.146 'write-tree can handle -h': 
		test_expect_code 129 git $builtin -h >output 2>&1 &&
		test_i18ngrep usage output
	
usage: git write-tree [--missing-ok] [--prefix=<prefix>/]
ok 146 - write-tree can handle -h

# passed all 146 test(s)
1..146
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 'env--helper usage': 
	test_must_fail git env--helper &&
	test_must_fail git env--helper --type=bool &&
	test_must_fail git env--helper --type=ulong &&
	test_must_fail git env--helper --type=bool &&
	test_must_fail git env--helper --type=bool --default &&
	test_must_fail git env--helper --type=bool --default= &&
	test_must_fail git env--helper --defaultxyz

usage: git 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: git 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: git 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: git 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: git 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: git 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 - env--helper usage

expecting success of 0017.2 'env--helper bad default values': 
	test_must_fail git env--helper --type=bool --default=1xyz MISSING &&
	test_must_fail git env--helper --type=ulong --default=1xyz MISSING

error: option `--default' expects a boolean value with `--type=bool`, not `1xyz`
usage: git 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: git 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 - env--helper bad default values

expecting success of 0017.3 'env--helper --type=bool': 
	# Test various --default bool values
	echo true >expected &&
	git env--helper --type=bool --default=1 MISSING >actual &&
	test_cmp expected actual &&
	git env--helper --type=bool --default=yes MISSING >actual &&
	test_cmp expected actual &&
	git env--helper --type=bool --default=true MISSING >actual &&
	test_cmp expected actual &&
	echo false >expected &&
	test_must_fail git env--helper --type=bool --default=0 MISSING >actual &&
	test_cmp expected actual &&
	test_must_fail git env--helper --type=bool --default=no MISSING >actual &&
	test_cmp expected actual &&
	test_must_fail git env--helper --type=bool --default=false MISSING >actual &&
	test_cmp expected actual &&

	# No output with --exit-code
	git 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 git 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 git 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 \
		git 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 - env--helper --type=bool

expecting success of 0017.4 'env--helper --type=ulong': 
	echo 1234567890 >expected &&
	git 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 git env--helper --type=ulong --default=0 MISSING >actual &&
	test_cmp expected actual &&

	git 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 git 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 git 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 - env--helper --type=ulong

expecting success of 0017.5 '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_TEST_GETTEXT_POISON=false \
		git config -l 2>err &&
	grep "exceeded maximum include depth" err &&

	test_must_fail \
		env HOME="$(pwd)/home" GIT_TEST_GETTEXT_POISON=true \
		git -C cycle env--helper --type=bool --default=0 --exit-code GIT_TEST_GETTEXT_POISON 2>err &&
	grep "# GETTEXT POISON #" err

fatal: exceeded maximum include depth (10) while including
fatal: # GETTEXT POISON #
ok 5 - 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_i18ncmp expect actual

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 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_i18ncmp 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'
*** 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.32.1 /usr/local/share/perl/5.32.1 /usr/lib/arm-linux-gnueabihf/perl5/5.32 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.32 /usr/share/perl/5.32 /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'
*** 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 &&

	for w in Hello world how are you; do echo $w; done >one &&
	mkdir dir &&
	for w in I am very very fine thank you; do echo $w; done >dir/two &&
	for w in Oh here is NULQin text here; do echo $w; done | q_to_nul >three &&
	git add . &&

	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) &&

	for w in Some extra lines here; do echo $w; done >>one &&
	git diff >patch.file &&
	patched=$(git hash-object --stdin <one) &&
	git read-tree --reset -u HEAD

[master (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 &&

	for w in I am all CRLF; do echo $w; done | append_cr >allcrlf &&
	test_must_fail git add allcrlf

fatal: CRLF would be replaced by LF in allcrlf
ok 2 - safecrlf: autocrlf=input, all CRLF

expecting success of 0020.3 'safecrlf: autocrlf=input, mixed LF/CRLF': 

	git config core.autocrlf input &&
	git config core.safecrlf true &&

	for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed &&
	test_must_fail git add mixed

fatal: CRLF would be replaced by LF in mixed
ok 3 - safecrlf: autocrlf=input, mixed LF/CRLF

expecting success of 0020.4 'safecrlf: autocrlf=true, all LF': 

	git config core.autocrlf true &&
	git config core.safecrlf true &&

	for w in I am all LF; do echo $w; done >alllf &&
	test_must_fail git add alllf

fatal: LF would be replaced by CRLF in alllf
ok 4 - safecrlf: autocrlf=true, all LF

expecting success of 0020.5 'safecrlf: autocrlf=true mixed LF/CRLF': 

	git config core.autocrlf true &&
	git config core.safecrlf true &&

	for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed &&
	test_must_fail git add mixed

fatal: LF would be replaced by CRLF in mixed
ok 5 - safecrlf: autocrlf=true mixed LF/CRLF

expecting success of 0020.6 'safecrlf: print warning only once': 

	git config core.autocrlf input &&
	git config core.safecrlf warn &&

	for w in I am all LF; do echo $w; done >doublewarn &&
	git add doublewarn &&
	git commit -m "nowarn" &&
	for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >doublewarn &&
	git add doublewarn 2>err &&
	if test_have_prereq C_LOCALE_OUTPUT
	then
		test $(grep "CRLF will be replaced by LF" err | wc -l) = 1
	fi

[master 4d5dbcd] nowarn
 Author: A U Thor <author@example.com>
 1 file changed, 4 insertions(+)
 create mode 100644 doublewarn
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 6 - safecrlf: print warning only once

expecting success of 0020.7 'safecrlf: git diff demotes safecrlf=true to warn': 
	git config core.autocrlf input &&
	git config core.safecrlf true &&
	git diff HEAD

diff --git a/doublewarn b/doublewarn
index 03ba6c2..1ed2a2c 100644
--- a/doublewarn
+++ b/doublewarn
@@ -1,4 +1,6 @@
-I
-am
-all
-LF
+Oh
+here
+is
+CRLF
+in
+text
ok 7 - safecrlf: git diff demotes safecrlf=true to warn

expecting success of 0020.8 'safecrlf: no warning with safecrlf=false': 
	git config core.autocrlf input &&
	git config core.safecrlf false &&

	for w in I am all CRLF; do echo $w; done | append_cr >allcrlf &&
	git add allcrlf 2>err &&
	test_must_be_empty err

ok 8 - safecrlf: no warning with safecrlf=false

expecting success of 0020.9 'switch off autocrlf, safecrlf, reset HEAD': 
	git config core.autocrlf false &&
	git config core.safecrlf false &&
	git reset --hard HEAD^

HEAD is now at 69d7d88 initial
ok 9 - switch off autocrlf, safecrlf, reset HEAD

expecting success of 0020.10 'update with autocrlf=input': 

	rm -f tmp one dir/two three &&
	git read-tree --reset -u HEAD &&
	git config core.autocrlf input &&
	munge_cr append one &&
	munge_cr append dir/two &&
	git update-index -- one dir/two &&
	differs=$(git diff-index --cached HEAD) &&
	verbose test -z "$differs"


ok 10 - update with autocrlf=input

expecting success of 0020.11 'update with autocrlf=true': 

	rm -f tmp one dir/two three &&
	git read-tree --reset -u HEAD &&
	git config core.autocrlf true &&
	munge_cr append one &&
	munge_cr append dir/two &&
	git update-index -- one dir/two &&
	differs=$(git diff-index --cached HEAD) &&
	verbose test -z "$differs"


ok 11 - update with autocrlf=true

expecting success of 0020.12 'checkout with autocrlf=true': 

	rm -f tmp one dir/two three &&
	git config core.autocrlf true &&
	git read-tree --reset -u HEAD &&
	munge_cr remove one &&
	munge_cr remove dir/two &&
	git update-index -- one dir/two &&
	test "$one" = $(git hash-object --stdin <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

[master 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 master~1 &&
	git checkout master &&
	test "$(git diff-files --raw)" = ""


[master 6d0586a] initial
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master f2c783e] second
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+)
 create mode 100644 .file
Note: switching to 'master~1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 'master'
ok 27 - checkout with existing .gitattributes

expecting success of 0020.28 'checkout when deleting .gitattributes': 

	git rm .gitattributes &&
	echo "contentsQ" | q_to_cr > .file2 &&
	git add .file2 &&
	git commit -m third &&

	git checkout master~1 &&
	git checkout master &&
	has_cr .file2


rm '.gitattributes'
[master edaea69] third
 Author: A U Thor <author@example.com>
 2 files changed, 1 insertion(+), 4 deletions(-)
 create mode 100644 .file2
 delete mode 100644 .gitattributes
Note: switching to 'master~1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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
Previous HEAD position was f2c783e second
Switched to branch 'master'
ok 28 - checkout when deleting .gitattributes

expecting success of 0020.29 'invalid .gitattributes (must not crash)': 

	echo "three +crlf" >>.gitattributes &&
	git diff


+crlf is not a valid attribute name: .gitattributes:1
ok 29 - invalid .gitattributes (must not crash)

expecting success of 0020.30 'setting up for new autocrlf tests': 
	git config core.autocrlf false &&
	git config core.safecrlf false &&
	rm -rf .????* * &&
	for w in I am all LF; do echo $w; done >alllf &&
	for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed &&
	for w in I am all CRLF; do echo $w; done | append_cr >allcrlf &&
	git add -A . &&
	git commit -m "alllf, allcrlf and mixed only" &&
	git tag -a -m "message" autocrlf-checkpoint

[master 021c55b] alllf, allcrlf and mixed only
 Author: A U Thor <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

[master 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'
*** 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 'pretend we have a fully passing test suite': 
	run_sub_test_lib_test full-pass '3 passing tests' <<-\EOF &&
	for i in 1 2 3
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test full-pass <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 - passing test #3
	> # passed all 3 test(s)
	> 1..3
	EOF

ok 5 - pretend we have a fully passing test suite

expecting success of 0000.6 'pretend we have a partially passing test suite': 
	run_sub_test_lib_test_err 		partial-pass '2/3 tests passing' <<-\EOF &&
	test_expect_success 'passing test #1' 'true'
	test_expect_success 'failing test #2' 'false'
	test_expect_success 'passing test #3' 'true'
	test_done
	EOF
	check_sub_test_lib_test partial-pass <<-\EOF
	> ok 1 - passing test #1
	> not ok 2 - failing test #2
	#	false
	> ok 3 - passing test #3
	> # failed 1 among 3 test(s)
	> 1..3
	EOF

ok 6 - pretend we have a partially passing test suite

expecting success of 0000.7 'pretend we have a known breakage': 
	run_sub_test_lib_test failing-todo 'A failing TODO test' <<-\EOF &&
	test_expect_success 'passing test' 'true'
	test_expect_failure 'pretend we have a known breakage' 'false'
	test_done
	EOF
	check_sub_test_lib_test failing-todo <<-\EOF
	> ok 1 - passing test
	> not ok 2 - pretend we have a known breakage # TODO known breakage
	> # still have 1 known breakage(s)
	> # passed all remaining 1 test(s)
	> 1..2
	EOF

ok 7 - pretend we have a known breakage

expecting success of 0000.8 'pretend we have fixed a known breakage': 
	run_sub_test_lib_test passing-todo 'A passing TODO test' <<-\EOF &&
	test_expect_failure 'pretend we have fixed a known breakage' 'true'
	test_done
	EOF
	check_sub_test_lib_test passing-todo <<-\EOF
	> ok 1 - pretend we have fixed a known breakage # TODO known breakage vanished
	> # 1 known breakage(s) vanished; please update test(s)
	> 1..1
	EOF

ok 8 - pretend we have fixed a known breakage

expecting success of 0000.9 'pretend we have fixed one of two known breakages (run in sub test-lib)': 
	run_sub_test_lib_test partially-passing-todos 		'2 TODO tests, one passing' <<-\EOF &&
	test_expect_failure 'pretend we have a known breakage' 'false'
	test_expect_success 'pretend we have a passing test' 'true'
	test_expect_failure 'pretend we have fixed another known breakage' 'true'
	test_done
	EOF
	check_sub_test_lib_test partially-passing-todos <<-\EOF
	> not ok 1 - pretend we have a known breakage # TODO known breakage
	> ok 2 - pretend we have a passing test
	> ok 3 - pretend we have fixed another known breakage # TODO known breakage vanished
	> # 1 known breakage(s) vanished; please update test(s)
	> # still have 1 known breakage(s)
	> # passed all remaining 1 test(s)
	> 1..3
	EOF

ok 9 - pretend we have fixed one of two known breakages (run in sub test-lib)

expecting success of 0000.10 'pretend we have a pass, fail, and known breakage': 
	run_sub_test_lib_test_err 		mixed-results1 'mixed results #1' <<-\EOF &&
	test_expect_success 'passing test' 'true'
	test_expect_success 'failing test' 'false'
	test_expect_failure 'pretend we have a known breakage' 'false'
	test_done
	EOF
	check_sub_test_lib_test mixed-results1 <<-\EOF
	> ok 1 - passing test
	> not ok 2 - failing test
	> #	false
	> not ok 3 - pretend we have a known breakage # TODO known breakage
	> # still have 1 known breakage(s)
	> # failed 1 among remaining 2 test(s)
	> 1..3
	EOF

ok 10 - pretend we have a pass, fail, and known breakage

expecting success of 0000.11 'pretend we have a mix of all possible results': 
	run_sub_test_lib_test_err 		mixed-results2 'mixed results #2' <<-\EOF &&
	test_expect_success 'passing test' 'true'
	test_expect_success 'passing test' 'true'
	test_expect_success 'passing test' 'true'
	test_expect_success 'passing test' 'true'
	test_expect_success 'failing test' 'false'
	test_expect_success 'failing test' 'false'
	test_expect_success 'failing test' 'false'
	test_expect_failure 'pretend we have a known breakage' 'false'
	test_expect_failure 'pretend we have a known breakage' 'false'
	test_expect_failure 'pretend we have fixed a known breakage' 'true'
	test_done
	EOF
	check_sub_test_lib_test mixed-results2 <<-\EOF
	> ok 1 - passing test
	> ok 2 - passing test
	> ok 3 - passing test
	> ok 4 - passing test
	> not ok 5 - failing test
	> #	false
	> not ok 6 - failing test
	> #	false
	> not ok 7 - failing test
	> #	false
	> not ok 8 - pretend we have a known breakage # TODO known breakage
	> not ok 9 - pretend we have a known breakage # TODO known breakage
	> ok 10 - pretend we have fixed a known breakage # TODO known breakage vanished
	> # 1 known breakage(s) vanished; please update test(s)
	> # still have 2 known breakage(s)
	> # failed 3 among remaining 7 test(s)
	> 1..10
	EOF

ok 11 - pretend we have a mix of all possible results

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
expecting success of 0000.12 'test --verbose': 
	run_sub_test_lib_test_err \
		t1234-verbose "test verbose" --verbose <<-\EOF &&
	test_expect_success "passing test" true
	test_expect_success "test with output" "echo foo"
	test_expect_success "failing test" false
	test_done
	EOF
	mv t1234-verbose/out t1234-verbose/out+ &&
	grep -v "^Initialized empty" t1234-verbose/out+ >t1234-verbose/out &&
	check_sub_test_lib_test t1234-verbose <<-\EOF
	> expecting success of 1234.1 'passing test': true
	> ok 1 - passing test
	> Z
	> expecting success of 1234.2 'test with output': echo foo
	> foo
	> ok 2 - test with output
	> Z
	> expecting success of 1234.3 'failing test': false
	> not ok 3 - failing test
	> #	false
	> Z
	> # failed 1 among 3 test(s)
	> 1..3
	EOF

ok 12 - test --verbose

expecting success of 0000.13 'test --verbose-only': 
	run_sub_test_lib_test_err \
		t2345-verbose-only-2 "test verbose-only=2" \
		--verbose-only=2 <<-\EOF &&
	test_expect_success "passing test" true
	test_expect_success "test with output" "echo foo"
	test_expect_success "failing test" false
	test_done
	EOF
	check_sub_test_lib_test t2345-verbose-only-2 <<-\EOF
	> ok 1 - passing test
	> Z
	> expecting success of 2345.2 'test with output': echo foo
	> foo
	> ok 2 - test with output
	> Z
	> not ok 3 - failing test
	> #	false
	> # failed 1 among 3 test(s)
	> 1..3
	EOF

ok 13 - test --verbose-only

expecting success of 0000.14 'GIT_SKIP_TESTS': 
	(
		GIT_SKIP_TESTS='git.2' && export GIT_SKIP_TESTS &&
		run_sub_test_lib_test git-skip-tests-basic 			'GIT_SKIP_TESTS' <<-\EOF &&
		for i in 1 2 3
		do
			test_expect_success "passing test #$i" 'true'
		done
		test_done
		EOF
		check_sub_test_lib_test git-skip-tests-basic <<-\EOF
		> ok 1 - passing test #1
		> ok 2 # skip passing test #2 (GIT_SKIP_TESTS)
		> ok 3 - passing test #3
		> # passed all 3 test(s)
		> 1..3
		EOF
	)

ok 14 - GIT_SKIP_TESTS

expecting success of 0000.15 'GIT_SKIP_TESTS several tests': 
	(
		GIT_SKIP_TESTS='git.2 git.5' && export GIT_SKIP_TESTS &&
		run_sub_test_lib_test git-skip-tests-several 			'GIT_SKIP_TESTS several tests' <<-\EOF &&
		for i in 1 2 3 4 5 6
		do
			test_expect_success "passing test #$i" 'true'
		done
		test_done
		EOF
		check_sub_test_lib_test git-skip-tests-several <<-\EOF
		> ok 1 - passing test #1
		> ok 2 # skip passing test #2 (GIT_SKIP_TESTS)
		> ok 3 - passing test #3
		> ok 4 - passing test #4
		> ok 5 # skip passing test #5 (GIT_SKIP_TESTS)
		> ok 6 - passing test #6
		> # passed all 6 test(s)
		> 1..6
		EOF
	)

ok 15 - GIT_SKIP_TESTS several tests

expecting success of 0000.16 'GIT_SKIP_TESTS sh pattern': 
	(
		GIT_SKIP_TESTS='git.[2-5]' && export GIT_SKIP_TESTS &&
		run_sub_test_lib_test git-skip-tests-sh-pattern 			'GIT_SKIP_TESTS sh pattern' <<-\EOF &&
		for i in 1 2 3 4 5 6
		do
			test_expect_success "passing test #$i" 'true'
		done
		test_done
		EOF
		check_sub_test_lib_test git-skip-tests-sh-pattern <<-\EOF
		> ok 1 - passing test #1
		> ok 2 # skip passing test #2 (GIT_SKIP_TESTS)
		> ok 3 # skip passing test #3 (GIT_SKIP_TESTS)
		> ok 4 # skip passing test #4 (GIT_SKIP_TESTS)
		> ok 5 # skip passing test #5 (GIT_SKIP_TESTS)
		> ok 6 - passing test #6
		> # passed all 6 test(s)
		> 1..6
		EOF
	)

ok 16 - GIT_SKIP_TESTS sh pattern

expecting success of 0000.17 'GIT_SKIP_TESTS entire suite': 
	(
		GIT_SKIP_TESTS='git' && export GIT_SKIP_TESTS &&
		run_sub_test_lib_test git-skip-tests-entire-suite 			'GIT_SKIP_TESTS entire suite' <<-\EOF &&
		for i in 1 2 3
		do
			test_expect_success "passing test #$i" 'true'
		done
		test_done
		EOF
		check_sub_test_lib_test git-skip-tests-entire-suite <<-\EOF
		> 1..0 # SKIP skip all tests in git
		EOF
	)

ok 17 - GIT_SKIP_TESTS entire suite

expecting success of 0000.18 'GIT_SKIP_TESTS does not skip unmatched suite': 
	(
		GIT_SKIP_TESTS='notgit' && export GIT_SKIP_TESTS &&
		run_sub_test_lib_test git-skip-tests-unmatched-suite 			'GIT_SKIP_TESTS does not skip unmatched suite' <<-\EOF &&
		for i in 1 2 3
		do
			test_expect_success "passing test #$i" 'true'
		done
		test_done
		EOF
		check_sub_test_lib_test git-skip-tests-unmatched-suite <<-\EOF
		> ok 1 - passing test #1
		> ok 2 - passing test #2
		> ok 3 - passing test #3
		> # passed all 3 test(s)
		> 1..3
		EOF
	)

ok 18 - GIT_SKIP_TESTS does not skip unmatched suite

expecting success of 0000.19 '--run basic': 
	run_sub_test_lib_test run-basic 		'--run basic' --run='1,3,5' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-basic <<-\EOF
	> ok 1 - passing test #1
	> ok 2 # skip passing test #2 (--run)
	> ok 3 - passing test #3
	> ok 4 # skip passing test #4 (--run)
	> ok 5 - passing test #5
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 19 - --run basic

expecting success of 0000.20 '--run with a range': 
	run_sub_test_lib_test run-range 		'--run with a range' --run='1-3' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-range <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 - passing test #3
	> ok 4 # skip passing test #4 (--run)
	> ok 5 # skip passing test #5 (--run)
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 20 - --run with a range

expecting success of 0000.21 '--run with two ranges': 
	run_sub_test_lib_test run-two-ranges 		'--run with two ranges' --run='1-2,5-6' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-two-ranges <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 # skip passing test #3 (--run)
	> ok 4 # skip passing test #4 (--run)
	> ok 5 - passing test #5
	> ok 6 - passing test #6
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 21 - --run with two ranges

expecting success of 0000.22 '--run with a left open range': 
	run_sub_test_lib_test run-left-open-range 		'--run with a left open range' --run='-3' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-left-open-range <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 - passing test #3
	> ok 4 # skip passing test #4 (--run)
	> ok 5 # skip passing test #5 (--run)
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 22 - --run with a left open range

expecting success of 0000.23 '--run with a right open range': 
	run_sub_test_lib_test run-right-open-range 		'--run with a right open range' --run='4-' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-right-open-range <<-\EOF
	> ok 1 # skip passing test #1 (--run)
	> ok 2 # skip passing test #2 (--run)
	> ok 3 # skip passing test #3 (--run)
	> ok 4 - passing test #4
	> ok 5 - passing test #5
	> ok 6 - passing test #6
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 23 - --run with a right open range

expecting success of 0000.24 '--run with basic negation': 
	run_sub_test_lib_test run-basic-neg 		'--run with basic negation' --run='!3' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-basic-neg <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 # skip passing test #3 (--run)
	> ok 4 - passing test #4
	> ok 5 - passing test #5
	> ok 6 - passing test #6
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 24 - --run with basic negation

expecting success of 0000.25 '--run with two negations': 
	run_sub_test_lib_test run-two-neg 		'--run with two negations' --run='!3,!6' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-two-neg <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 # skip passing test #3 (--run)
	> ok 4 - passing test #4
	> ok 5 - passing test #5
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 25 - --run with two negations

expecting success of 0000.26 '--run a range and negation': 
	run_sub_test_lib_test run-range-and-neg 		'--run a range and negation' --run='-4,!2' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-range-and-neg <<-\EOF
	> ok 1 - passing test #1
	> ok 2 # skip passing test #2 (--run)
	> ok 3 - passing test #3
	> ok 4 - passing test #4
	> ok 5 # skip passing test #5 (--run)
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 26 - --run a range and negation

expecting success of 0000.27 '--run range negation': 
	run_sub_test_lib_test run-range-neg 		'--run range negation' --run='!1-3' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-range-neg <<-\EOF
	> ok 1 # skip passing test #1 (--run)
	> ok 2 # skip passing test #2 (--run)
	> ok 3 # skip passing test #3 (--run)
	> ok 4 - passing test #4
	> ok 5 - passing test #5
	> ok 6 - passing test #6
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 27 - --run range negation

expecting success of 0000.28 '--run include, exclude and include': 
	run_sub_test_lib_test run-inc-neg-inc 		'--run include, exclude and include' 		--run='1-5,!1-3,2' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-inc-neg-inc <<-\EOF
	> ok 1 # skip passing test #1 (--run)
	> ok 2 - passing test #2
	> ok 3 # skip passing test #3 (--run)
	> ok 4 - passing test #4
	> ok 5 - passing test #5
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 28 - --run include, exclude and include

expecting success of 0000.29 '--run include, exclude and include, comma separated': 
	run_sub_test_lib_test run-inc-neg-inc-comma 		'--run include, exclude and include, comma separated' 		--run=1-5,\!1-3,2 <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-inc-neg-inc-comma <<-\EOF
	> ok 1 # skip passing test #1 (--run)
	> ok 2 - passing test #2
	> ok 3 # skip passing test #3 (--run)
	> ok 4 - passing test #4
	> ok 5 - passing test #5
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 29 - --run include, exclude and include, comma separated

expecting success of 0000.30 '--run exclude and include': 
	run_sub_test_lib_test run-neg-inc 		'--run exclude and include' 		--run='!3-,5' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-neg-inc <<-\EOF
	> ok 1 - passing test #1
	> ok 2 - passing test #2
	> ok 3 # skip passing test #3 (--run)
	> ok 4 # skip passing test #4 (--run)
	> ok 5 - passing test #5
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 30 - --run exclude and include

expecting success of 0000.31 '--run empty selectors': 
	run_sub_test_lib_test run-empty-sel 		'--run empty selectors' 		--run='1,,3,,,5' <<-\EOF &&
	for i in 1 2 3 4 5 6
	do
		test_expect_success "passing test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-empty-sel <<-\EOF
	> ok 1 - passing test #1
	> ok 2 # skip passing test #2 (--run)
	> ok 3 - passing test #3
	> ok 4 # skip passing test #4 (--run)
	> ok 5 - passing test #5
	> ok 6 # skip passing test #6 (--run)
	> # passed all 6 test(s)
	> 1..6
	EOF

ok 31 - --run empty selectors

expecting success of 0000.32 '--run substring selector': 
	run_sub_test_lib_test run-substring-selector 		'--run empty selectors' 		--run='relevant' <<-\EOF &&
	test_expect_success "relevant test" 'true'
	for i in 1 2 3 4 5 6
	do
		test_expect_success "other test #$i" 'true'
	done
	test_done
	EOF
	check_sub_test_lib_test run-substring-selector <<-\EOF
	> ok 1 - relevant test
	> ok 2 # skip other test #1 (--run)
	> ok 3 # skip other test #2 (--run)
	> ok 4 # skip other test #3 (--run)
	> ok 5 # skip other test #4 (--run)
	> ok 6 # skip other test #5 (--run)
	> ok 7 # skip other test #6 (--run)
	> # passed all 7 test(s)
	> 1..7
	EOF

ok 32 - --run substring selector

expecting success of 0000.33 '--run keyword selection': 
	run_sub_test_lib_test_err run-inv-range-start 		'--run invalid range start' 		--run='a-5' <<-\EOF &&
	test_expect_success "passing test #1" 'true'
	test_done
	EOF
	check_sub_test_lib_test_err run-inv-range-start 		<<-\EOF_OUT 3<<-\EOF_ERR
	> FATAL: Unexpected exit with code 1
	EOF_OUT
	> error: --run: invalid non-numeric in range start: 'a-5'
	EOF_ERR

ok 33 - --run keyword selection

expecting success of 0000.34 '--run invalid range end': 
	run_sub_test_lib_test_err run-inv-range-end 		'--run invalid range end' 		--run='1-z' <<-\EOF &&
	test_expect_success "passing test #1" 'true'
	test_done
	EOF
	check_sub_test_lib_test_err run-inv-range-end 		<<-\EOF_OUT 3<<-\EOF_ERR
	> FATAL: Unexpected exit with code 1
	EOF_OUT
	> error: --run: invalid non-numeric in range end: '1-z'
	EOF_ERR

ok 34 - --run invalid range end

expecting success of 0000.35 'test runs if prerequisite is satisfied': 
	test_have_prereq HAVEIT &&
	haveit=yes

ok 35 - test runs if prerequisite is satisfied

ok 36 # skip unmet prerequisite causes test to be skipped (missing DONTHAVEIT)

expecting success of 0000.37 'test runs if prerequisites are satisfied': 
	test_have_prereq HAVEIT &&
	test_have_prereq HAVETHIS &&
	haveit=yes

ok 37 - test runs if prerequisites are satisfied

ok 38 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of HAVEIT,DONTHAVEIT)

ok 39 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of DONTHAVEIT,HAVEIT)

checking prerequisite: LAZY_TRUE

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LAZY_TRUE" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-LAZY_TRUE" &&true
)
prerequisite LAZY_TRUE ok
expecting success of 0000.40 'test runs if lazy prereq is satisfied': 
	havetrue=yes

ok 40 - test runs if lazy prereq is satisfied

ok 41 # skip missing lazy prereqs skip tests (missing !LAZY_TRUE)

checking prerequisite: LAZY_FALSE

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LAZY_FALSE" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-LAZY_FALSE" &&false
)
prerequisite LAZY_FALSE not satisfied
expecting success of 0000.42 'negative lazy prereqs checked': 
	nothavefalse=yes

ok 42 - negative lazy prereqs checked

ok 43 # skip missing negative lazy prereqs will skip (missing LAZY_FALSE)

expecting success of 0000.44 'tests clean up after themselves': 
	test_when_finished clean=yes

ok 44 - tests clean up after themselves

checking prerequisite: NESTED_PREREQ

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NESTED_PREREQ" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-NESTED_PREREQ" &&
	>outer &&
	test_have_prereq NESTED_INNER &&
	echo "can create new file in cwd" >file &&
	test -f outer &&
	test ! -f inner

)
checking prerequisite: NESTED_INNER

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NESTED_INNER" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-NESTED_INNER" &&
	>inner &&
	rm -f outer

)
prerequisite NESTED_INNER ok
prerequisite NESTED_PREREQ ok
expecting success of 0000.45 'evaluating nested lazy prereqs dont interfere with each other': 
	nestedworks=yes

ok 45 - evaluating nested lazy prereqs dont interfere with each other

expecting success of 0000.46 'lazy prereqs do not turn off tracing': 
	run_sub_test_lib_test lazy-prereq-and-tracing 		'lazy prereqs and -x' -v -x <<-\EOF &&
	test_lazy_prereq LAZY true

	test_expect_success lazy 'test_have_prereq LAZY && echo trace'

	test_done
	EOF

	grep 'echo trace' lazy-prereq-and-tracing/err

+ echo trace
ok 46 - lazy prereqs do not turn off tracing

expecting success of 0000.47 'tests clean up even on failures': 
	run_sub_test_lib_test_err 		failing-cleanup 'Failing tests with cleanup commands' <<-\EOF &&
	test_expect_success 'tests clean up even after a failure' '
		touch clean-after-failure &&
		test_when_finished rm clean-after-failure &&
		(exit 1)
	'
	test_expect_success 'failure to clean up causes the test to fail' '
		test_when_finished "(exit 2)"
	'
	test_done
	EOF
	check_sub_test_lib_test failing-cleanup <<-\EOF
	> not ok 1 - tests clean up even after a failure
	> #	Z
	> #	touch clean-after-failure &&
	> #	test_when_finished rm clean-after-failure &&
	> #	(exit 1)
	> #	Z
	> not ok 2 - failure to clean up causes the test to fail
	> #	Z
	> #	test_when_finished "(exit 2)"
	> #	Z
	> # failed 2 among 2 test(s)
	> 1..2
	EOF

ok 47 - tests clean up even on failures

expecting success of 0000.48 'test_atexit is run': 
	run_sub_test_lib_test_err 		atexit-cleanup 'Run atexit commands' -i <<-\EOF &&
	test_expect_success 'tests clean up even after a failure' '
		> ../../clean-atexit &&
		test_atexit rm ../../clean-atexit &&
		> ../../also-clean-atexit &&
		test_atexit rm ../../also-clean-atexit &&
		> ../../dont-clean-atexit &&
		(exit 1)
	'
	test_done
	EOF
	test_path_is_file dont-clean-atexit &&
	test_path_is_missing clean-atexit &&
	test_path_is_missing also-clean-atexit

ok 48 - test_atexit is run

expecting success of 0000.49 'test_oid provides sane info by default': 
	test_oid zero >actual &&
	grep "^00*\$" actual &&
	rawsz="$(test_oid rawsz)" &&
	hexsz="$(test_oid hexsz)" &&
	test "$hexsz" -eq $(wc -c <actual) &&
	test $(( $rawsz * 2)) -eq "$hexsz"

0000000000000000000000000000000000000000
ok 49 - test_oid provides sane info by default

expecting success of 0000.50 '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 40 &&
	test "$rawsz" -eq 20 &&
	test "$hexsz" -eq 40

0000000000000000000000000000000000000000
ok 50 - test_oid can look up data for SHA-1

expecting success of 0000.51 '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 64 &&
	test "$rawsz" -eq 32 &&
	test "$hexsz" -eq 64

0000000000000000000000000000000000000000000000000000000000000000
ok 51 - test_oid can look up data for SHA-256

expecting success of 0000.52 '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 52 - test_oid can look up data for a specified algorithm

expecting success of 0000.53 '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 numeric config value 'invalid' for 'envvar': invalid unit
error: test_bool_env requires bool values both for $envvar and for the default fallback
error: option `--default' expects a boolean value with `--type=bool`, not `invalid`
usage: git env--helper --type=[bool|ulong] <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 53 - test_bool_env

expecting success of 0000.54 'git update-index without --add should fail adding': 
	test_must_fail git update-index should-be-empty

error: should-be-empty: cannot add to the index - missing --add option?
fatal: Unable to process path should-be-empty
ok 54 - git update-index without --add should fail adding

expecting success of 0000.55 'git update-index with --add should succeed': 
	git update-index --add should-be-empty

ok 55 - git update-index with --add should succeed

expecting success of 0000.56 'writing tree out with git write-tree': 
	tree=$(git write-tree)

ok 56 - writing tree out with git write-tree

expecting success of 0000.57 'validate object ID of a known tree': 
	test "$tree" = "$(test_oid simpletree)"
    
ok 57 - validate object ID of a known tree

expecting success of 0000.58 'git update-index without --remove should fail removing': 
	rm -f should-be-empty full-of-directories &&
	test_must_fail git update-index should-be-empty

error: should-be-empty: does not exist and --remove not passed
fatal: Unable to process path should-be-empty
ok 58 - git update-index without --remove should fail removing

expecting success of 0000.59 'git update-index with --remove should be able to remove': 
	git update-index --remove should-be-empty

ok 59 - git update-index with --remove should be able to remove

expecting success of 0000.60 'git write-tree should be able to write an empty tree': 
	tree=$(git write-tree)

ok 60 - git write-tree should be able to write an empty tree

expecting success of 0000.61 'validate object ID of a known tree': 
	test "$tree" = $EMPTY_TREE

ok 61 - validate object ID of a known tree

expecting success of 0000.62 'adding various types of objects with git update-index --add': 
	mkdir path2 path3 path3/subp3 &&
	paths="path0 path2/file2 path3/file3 path3/subp3/file3" &&
	(
		for p in $paths
		do
			echo "hello $p" >$p || exit 1
			test_ln_s_add "hello $p" ${p}sym || exit 1
		done
	) &&
	find path* ! -type d -print | xargs git update-index --add

checking prerequisite: SYMLINKS

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" &&
	# test whether the filesystem supports symbolic links
	ln -s x y && test -h y

)
prerequisite SYMLINKS ok
ok 62 - adding various types of objects with git update-index --add

expecting success of 0000.63 'showing stage with git ls-files --stage': 
	git ls-files --stage >current

ok 63 - showing stage with git ls-files --stage

expecting success of 0000.64 'validate git ls-files output for a known tree': 
	cat >expected <<-EOF &&
	100644 $(test_oid path0f) 0	path0
	120000 $(test_oid path0s) 0	path0sym
	100644 $(test_oid path2f) 0	path2/file2
	120000 $(test_oid path2s) 0	path2/file2sym
	100644 $(test_oid path3f) 0	path3/file3
	120000 $(test_oid path3s) 0	path3/file3sym
	100644 $(test_oid subp3f) 0	path3/subp3/file3
	120000 $(test_oid subp3s) 0	path3/subp3/file3sym
	EOF
	test_cmp expected current

ok 64 - validate git ls-files output for a known tree

expecting success of 0000.65 'writing tree out with git write-tree': 
	tree=$(git write-tree)

ok 65 - writing tree out with git write-tree

expecting success of 0000.66 'validate object ID for a known tree': 
	test "$tree" = "$(test_oid root)"

ok 66 - validate object ID for a known tree

expecting success of 0000.67 'showing tree with git ls-tree': 
    git ls-tree $tree >current

ok 67 - showing tree with git ls-tree

expecting success of 0000.68 'git ls-tree output for a known tree': 
	cat >expected <<-EOF &&
	100644 blob $(test_oid path0f)	path0
	120000 blob $(test_oid path0s)	path0sym
	040000 tree $(test_oid path2d)	path2
	040000 tree $(test_oid path3d)	path3
	EOF
	test_cmp expected current

ok 68 - git ls-tree output for a known tree

expecting success of 0000.69 'showing tree with git ls-tree -r': 
	git ls-tree -r $tree >current

ok 69 - showing tree with git ls-tree -r

expecting success of 0000.70 'git ls-tree -r output for a known tree': 
	cat >expected <<-EOF &&
	100644 blob $(test_oid path0f)	path0
	120000 blob $(test_oid path0s)	path0sym
	100644 blob $(test_oid path2f)	path2/file2
	120000 blob $(test_oid path2s)	path2/file2sym
	100644 blob $(test_oid path3f)	path3/file3
	120000 blob $(test_oid path3s)	path3/file3sym
	100644 blob $(test_oid subp3f)	path3/subp3/file3
	120000 blob $(test_oid subp3s)	path3/subp3/file3sym
	EOF
	test_cmp expected current

ok 70 - git ls-tree -r output for a known tree

expecting success of 0000.71 'showing tree with git ls-tree -r -t': 
	git ls-tree -r -t $tree >current

ok 71 - showing tree with git ls-tree -r -t

expecting success of 0000.72 'git ls-tree -r output for a known tree': 
	cat >expected <<-EOF &&
	100644 blob $(test_oid path0f)	path0
	120000 blob $(test_oid path0s)	path0sym
	040000 tree $(test_oid path2d)	path2
	100644 blob $(test_oid path2f)	path2/file2
	120000 blob $(test_oid path2s)	path2/file2sym
	040000 tree $(test_oid path3d)	path3
	100644 blob $(test_oid path3f)	path3/file3
	120000 blob $(test_oid path3s)	path3/file3sym
	040000 tree $(test_oid subp3d)	path3/subp3
	100644 blob $(test_oid subp3f)	path3/subp3/file3
	120000 blob $(test_oid subp3s)	path3/subp3/file3sym
	EOF
	test_cmp expected current

ok 72 - git ls-tree -r output for a known tree

expecting success of 0000.73 'writing partial tree out with git write-tree --prefix': 
	ptree=$(git write-tree --prefix=path3)

ok 73 - writing partial tree out with git write-tree --prefix

expecting success of 0000.74 'validate object ID for a known tree': 
	test "$ptree" = $(test_oid path3d)

ok 74 - validate object ID for a known tree

expecting success of 0000.75 'writing partial tree out with git write-tree --prefix': 
	ptree=$(git write-tree --prefix=path3/subp3)

ok 75 - writing partial tree out with git write-tree --prefix

expecting success of 0000.76 'validate object ID for a known tree': 
	test "$ptree" = $(test_oid subp3d)

ok 76 - validate object ID for a known tree

expecting success of 0000.77 'put invalid objects into the index': 
	rm -f .git/index &&
	suffix=$(echo $ZERO_OID | sed -e "s/^.//") &&
	cat >badobjects <<-EOF &&
	100644 blob $(test_oid 001)	dir/file1
	100644 blob $(test_oid 002)	dir/file2
	100644 blob $(test_oid 003)	dir/file3
	100644 blob $(test_oid 004)	dir/file4
	100644 blob $(test_oid 005)	dir/file5
	EOF
	git update-index --index-info <badobjects

ok 77 - put invalid objects into the index

expecting success of 0000.78 '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 78 - writing this tree without --missing-ok

expecting success of 0000.79 'writing this tree with --missing-ok': 
	git write-tree --missing-ok

6718b1dd2231ec9ad958238ceeaa06fbfbefda94
ok 79 - writing this tree with --missing-ok

expecting success of 0000.80 '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 80 - git read-tree followed by write-tree should be idempotent

expecting success of 0000.81 '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 81 - validate git diff-files output for a know cache/work tree state

expecting success of 0000.82 'git update-index --refresh should succeed': 
	git update-index --refresh

ok 82 - git update-index --refresh should succeed

expecting success of 0000.83 'no diff after checkout and git update-index --refresh': 
	git diff-files >current &&
	cmp -s current /dev/null

ok 83 - no diff after checkout and git update-index --refresh

expecting success of 0000.84 'git commit-tree records the correct tree in a commit': 
	commit0=$(echo NO | git commit-tree $P) &&
	tree=$(git show --pretty=raw $commit0 |
		 sed -n -e "s/^tree //p" -e "/^author /q") &&
	test "z$tree" = "z$P"

ok 84 - git commit-tree records the correct tree in a commit

expecting success of 0000.85 'git commit-tree records the correct parent in a commit': 
	commit1=$(echo NO | git commit-tree $P -p $commit0) &&
	parent=$(git show --pretty=raw $commit1 |
		sed -n -e "s/^parent //p" -e "/^author /q") &&
	test "z$commit0" = "z$parent"

ok 85 - git commit-tree records the correct parent in a commit

expecting success of 0000.86 'git commit-tree omits duplicated parent in a commit': 
	commit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) &&
	     parent=$(git show --pretty=raw $commit2 |
		sed -n -e "s/^parent //p" -e "/^author /q" |
		sort -u) &&
	test "z$commit0" = "z$parent" &&
	numparent=$(git show --pretty=raw $commit2 |
		sed -n -e "s/^parent //p" -e "/^author /q" |
		wc -l) &&
	test $numparent = 1

error: duplicate parent d664f4b2f72710b8e019acf96c4773c8ac3993b8 ignored
ok 86 - git commit-tree omits duplicated parent in a commit

expecting success of 0000.87 'update-index D/F conflict': 
	mv path0 tmp &&
	mv path2 path0 &&
	mv tmp path2 &&
	git update-index --add --replace path2 path0/file2 &&
	numpath0=$(git ls-files path0 | wc -l) &&
	test $numpath0 = 1

ok 87 - update-index D/F conflict

expecting success of 0000.88 'very long name in the index handled sanely': 

	a=a && # 1
	a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 16
	a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 256
	a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 4096
	a=${a}q &&

	>path4 &&
	git update-index --add path4 &&
	(
		git ls-files -s path4 |
		sed -e "s/	.*/	/" |
		tr -d "\012" &&
		echo "$a"
	) | git update-index --index-info &&
	len=$(git ls-files "a*" | wc -c) &&
	test $len = 4098

ok 88 - very long name in the index handled sanely

expecting success of 0000.89 'test_must_fail on a failing git command': 
	test_must_fail git notacommand

git: 'notacommand' is not a git command. See 'git --help'.
ok 89 - test_must_fail on a failing git command

expecting success of 0000.90 'test_must_fail on a failing git command with env': 
	test_must_fail env var1=a var2=b git notacommand

git: 'notacommand' is not a git command. See 'git --help'.
ok 90 - test_must_fail on a failing git command with env

expecting success of 0000.91 'test_must_fail rejects a non-git command': 
	! test_must_fail grep ^$ notafile 2>err &&
	grep -F "test_must_fail: only 'git' is allowed" err

test_must_fail: only 'git' is allowed: grep ^$ notafile
ok 91 - test_must_fail rejects a non-git command

expecting success of 0000.92 'test_must_fail rejects a non-git command with env': 
	! test_must_fail env var1=a var2=b grep ^$ notafile 2>err &&
	grep -F "test_must_fail: only 'git' is allowed" err

test_must_fail: only 'git' is allowed: env var1=a var2=b grep ^$ notafile
ok 92 - test_must_fail rejects a non-git command with env

# passed all 92 test(s)
1..92
make[4]: Leaving directory '/<<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) 6ee20c2] Initial
 Author: A U Thor <author@example.com>
 1 file changed, 33 insertions(+)
 create mode 100644 sample
[master d248b45] Second
 Author: A U Thor <author@example.com>
 1 file changed, 33 insertions(+), 33 deletions(-)
 rename sample => elpmas (94%)
ok 1 - setup

expecting success of 0022.2 'diff -M': 

	git diff-tree -M -r --name-status HEAD^ HEAD |
	sed -e "s/R[0-9]*/RNUM/" >actual &&
	echo "RNUM	sample	elpmas" >expect &&
	test_cmp expect actual


ok 2 - diff -M

# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<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: LF will be replaced by CRLF in bar.
The file will have its original line endings in your working directory
[master (root-commit) 1adb513] initial
 Author: A U Thor <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 10.2.1 20210110 for Unix (Linux ELF).

UnZip special compilation options:
        ACORN_FTYPE_NFS
        COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported)
        SET_DIR_ATTRIB
        SYMLINKS (symbolic links supported, if RTL and file system permit)
        TIMESTAMP
        UNIXBACKUP
        USE_EF_UT_TIME
        USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported)
        USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported)
        UNICODE_SUPPORT [wide-chars, char coding: other] (handle UTF-8 paths)
        LARGE_FILE_SUPPORT (large files over 2 GiB supported)
        ZIP64_SUPPORT (archives using Zip64 for large files supported)
        USE_BZIP2 (PKZIP 4.6+, using bzip2 lib version 1.0.8, 13-Jul-2019)
        VMS_TEXT_CONV
        WILD_STOP_AT_DIR
        [decryption, version 2.11 of 05 Jan 2007]

UnZip and ZipInfo environment options:
           UNZIP:  [none]
        UNZIPOPT:  [none]
         ZIPINFO:  [none]
      ZIPINFOOPT:  [none]
prerequisite UNZIP ok
expecting success of 0024.3 'zip archive': 

	git archive --format=zip HEAD >test.zip &&

	( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&

	test_cmp sample unzipped/sample


Archive:  ../test.zip
4f7f1aaec1ee996d8f5e13c2cfbd43a378578e1f
 extracting: sample                  
ok 3 - zip archive

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<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 |
	sed -e "s/	/ /g" -e "s/  */ /g" |
	sort >actual &&
	test_cmp expect actual

ok 2 - renormalize CRLF in repo

expecting success of 0025.3 'ignore-errors not mistaken for renormalize': 
	git reset --hard &&
	echo "*.txt text=auto" >.gitattributes &&
	git ls-files --eol >expect &&
	git add --ignore-errors "*.txt" &&
	git ls-files --eol >actual &&
	test_cmp expect actual

HEAD is now at 98c48e8 initial
ok 3 - ignore-errors not mistaken for renormalize

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<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 &&

	for w in Hello world how are you; do echo $w; done >one &&
	for w in I am very very fine thank you; do echo $w; done >two &&
	git add . &&

	git commit -m initial &&

	one=$(git rev-parse HEAD:one) &&
	two=$(git rev-parse HEAD:two) &&

	echo happy.

[master (root-commit) f7a09ee] initial
 Author: A U Thor <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'
*** 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):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

source (test.utf16lebom, considered UTF-16LE-BOM):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16lebom, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

source (test.utf16, considered utf-16):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

source (test.utf16lebom, considered UTF-16LE-BOM):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16lebom, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

[master (root-commit) dfb2bb8] initial
 Author: A U Thor <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):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16lebom, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

ok 3 - re-encode to UTF-16 on checkout

expecting success of 0028.4 're-encode to UTF-16-LE-BOM on checkout': 
	rm test.utf16lebom &&
	git checkout test.utf16lebom &&
	test_cmp_bin test.utf16lebom.raw test.utf16lebom

Updated 1 path from the index
source (test.utf16, considered utf-16):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

ok 4 - re-encode to UTF-16-LE-BOM on checkout

expecting success of 0028.5 'check $GIT_DIR/info/attributes support': 
	test_when_finished "rm -f test.utf32.git" &&
	test_when_finished "git reset --hard HEAD" &&

	echo "*.utf32 text working-tree-encoding=utf-32" >.git/info/attributes &&
	git add test.utf32 &&

	git cat-file -p :test.utf32 >test.utf32.git &&
	test_cmp_bin test.utf8.raw test.utf32.git

source (test.utf32, considered utf-32):
|  0: ff   |  1: fe   |  2:  0   |  3:  0   |  4: 68 h |  5:  0   |  6:  0   |  7:  0  
|  8: 61 a |  9:  0   | 10:  0   | 11:  0   | 12: 6c l | 13:  0   | 14:  0   | 15:  0  
| 16: 6c l | 17:  0   | 18:  0   | 19:  0   | 20: 6f o | 21:  0   | 22:  0   | 23:  0  
| 24: 20   | 25:  0   | 26:  0   | 27:  0   | 28: 74 t | 29:  0   | 30:  0   | 31:  0  
| 32: 68 h | 33:  0   | 34:  0   | 35:  0   | 36: 65 e | 37:  0   | 38:  0   | 39:  0  
| 40: 72 r | 41:  0   | 42:  0   | 43:  0   | 44: 65 e | 45:  0   | 46:  0   | 47:  0  
| 48: 21 ! | 49:  0   | 50:  0   | 51:  0   | 52:  a   | 53:  0   | 54:  0   | 55:  0  
| 56: 63 c | 57:  0   | 58:  0   | 59:  0   | 60: 61 a | 61:  0   | 62:  0   | 63:  0  
| 64: 6e n | 65:  0   | 66:  0   | 67:  0   | 68: 20   | 69:  0   | 70:  0   | 71:  0  
| 72: 79 y | 73:  0   | 74:  0   | 75:  0   | 76: 6f o | 77:  0   | 78:  0   | 79:  0  
| 80: 75 u | 81:  0   | 82:  0   | 83:  0   | 84: 20   | 85:  0   | 86:  0   | 87:  0  
| 88: 72 r | 89:  0   | 90:  0   | 91:  0   | 92: 65 e | 93:  0   | 94:  0   | 95:  0  
| 96: 61 a | 97:  0   | 98:  0   | 99:  0   | 100: 64 d | 101:  0   | 102:  0   | 103:  0  
| 104: 20   | 105:  0   | 106:  0   | 107:  0   | 108: 6d m | 109:  0   | 110:  0   | 111:  0  
| 112: 65 e | 113:  0   | 114:  0   | 115:  0   | 116: 3f ? | 117:  0   | 118:  0   | 119:  0  

destination (test.utf32, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

source (test.utf16, considered utf-16):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

source (test.utf16lebom, considered UTF-16LE-BOM):
|  0: ff   |  1: fe   |  2: 68 h |  3:  0   |  4: 61 a |  5:  0   |  6: 6c l |  7:  0  
|  8: 6c l |  9:  0   | 10: 6f o | 11:  0   | 12: 20   | 13:  0   | 14: 74 t | 15:  0  
| 16: 68 h | 17:  0   | 18: 65 e | 19:  0   | 20: 72 r | 21:  0   | 22: 65 e | 23:  0  
| 24: 21 ! | 25:  0   | 26:  a   | 27:  0   | 28: 63 c | 29:  0   | 30: 61 a | 31:  0  
| 32: 6e n | 33:  0   | 34: 20   | 35:  0   | 36: 79 y | 37:  0   | 38: 6f o | 39:  0  
| 40: 75 u | 41:  0   | 42: 20   | 43:  0   | 44: 72 r | 45:  0   | 46: 65 e | 47:  0  
| 48: 61 a | 49:  0   | 50: 64 d | 51:  0   | 52: 20   | 53:  0   | 54: 6d m | 55:  0  
| 56: 65 e | 57:  0   | 58: 3f ? | 59:  0  

destination (test.utf16lebom, considered UTF-8):
|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h
|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12:  a   | 13: 63 c | 14: 61 a | 15: 6e n
| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a
| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ?

HEAD is now at dfb2bb8 initial
ok 5 - check $GIT_DIR/info/attributes support

expecting success of 0028.6 'check prohibited UTF-16 BOM': 
		test_when_finished "git reset --hard HEAD" &&

		echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes &&
		echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes &&

		# Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian)
		# but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32).
		# In these cases the BOM is prohibited.
		cp bebom.utf${i}be.raw bebom.utf${i}be &&
		test_must_fail git add bebom.utf${i}be 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&

		cp lebom.utf${i}le.raw lebom.utf${i}be &&
		test_must_fail git add lebom.utf${i}be 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&

		cp bebom.utf${i}be.raw bebom.utf${i}le &&
		test_must_fail git add bebom.utf${i}le 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&

		cp lebom.utf${i}le.raw lebom.utf${i}le &&
		test_must_fail git add lebom.utf${i}le 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: BOM is prohibited in 'bebom.utf16be' if encoded as utf-16be
hint: The file 'bebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
fatal: BOM is prohibited in 'lebom.utf16be' if encoded as utf-16be
hint: The file 'lebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
fatal: BOM is prohibited in 'bebom.utf16le' if encoded as utf-16LE
hint: The file 'bebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
fatal: BOM is prohibited in 'lebom.utf16le' if encoded as utf-16LE
hint: The file 'lebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
HEAD is now at dfb2bb8 initial
ok 6 - check prohibited UTF-16 BOM

expecting success of 0028.7 'check required UTF-16 BOM': 
		test_when_finished "git reset --hard HEAD" &&

		echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes &&

		cp nobom.utf${i}be.raw nobom.utf${i} &&
		test_must_fail git add nobom.utf${i} 2>err.out &&
		test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
		test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out &&

		cp nobom.utf${i}le.raw nobom.utf${i} &&
		test_must_fail git add nobom.utf${i} 2>err.out &&
		test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
		test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out
	
fatal: BOM is required in 'nobom.utf16' if encoded as utf-16
hint: The file 'nobom.utf16' is missing a byte order mark (BOM). Please use UTF-16BE or UTF-16LE (depending on the byte order) as working-tree-encoding.
fatal: BOM is required in 'nobom.utf16' if encoded as utf-16
hint: The file 'nobom.utf16' is missing a byte order mark (BOM). Please use UTF-16BE or UTF-16LE (depending on the byte order) as working-tree-encoding.
HEAD is now at dfb2bb8 initial
ok 7 - check required UTF-16 BOM

expecting success of 0028.8 'eol conversion for UTF-16 encoded files on checkout': 
		test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" &&
		test_when_finished "git reset --hard HEAD^" &&

		cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw &&
		cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw &&
		cp crlf.utf${i}.raw eol.utf${i} &&

		cat >expectIndexLF <<-EOF &&
			i/lf    w/-text attr/text             	eol.utf${i}
		EOF

		git add eol.utf${i} &&
		git commit -m eol &&

		# UTF-${i} with CRLF (Windows line endings)
		rm eol.utf${i} &&
		git -c core.eol=crlf checkout eol.utf${i} &&
		test_cmp_bin crlf.utf${i}.raw eol.utf${i} &&

		# Although the file has CRLF in the working tree,
		# ensure LF in the index
		git ls-files --eol eol.utf${i} >actual &&
		test_cmp expectIndexLF actual &&

		# UTF-${i} with LF (Unix line endings)
		rm eol.utf${i} &&
		git -c core.eol=lf checkout eol.utf${i} &&
		test_cmp_bin lf.utf${i}.raw eol.utf${i} &&

		# The file LF in the working tree, ensure LF in the index
		git ls-files --eol eol.utf${i} >actual &&
		test_cmp expectIndexLF actual
	
checking prerequisite: NO_UTF16_BOM

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" &&
	test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6

)
prerequisite NO_UTF16_BOM not satisfied
checking prerequisite: NO_UTF16_BOM

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" &&
	test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6

)
prerequisite NO_UTF16_BOM not satisfied
source (eol.utf16, considered utf-16):
|  0: ff   |  1: fe   |  2: 6f o |  3:  0   |  4: 6e n |  5:  0   |  6: 65 e |  7:  0  
|  8:  d   |  9:  0   | 10:  a   | 11:  0   | 12: 74 t | 13:  0   | 14: 77 w | 15:  0  
| 16: 6f o | 17:  0   | 18:  d   | 19:  0   | 20:  a   | 21:  0   | 22: 74 t | 23:  0  
| 24: 68 h | 25:  0   | 26: 72 r | 27:  0   | 28: 65 e | 29:  0   | 30: 65 e | 31:  0  
| 32:  d   | 33:  0   | 34:  a   | 35:  0  

destination (eol.utf16, considered UTF-8):
|  0: 6f o |  1: 6e n |  2: 65 e |  3:  d   |  4:  a   |  5: 74 t |  6: 77 w |  7: 6f o
|  8:  d   |  9:  a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15:  d  
| 16:  a  

warning: CRLF will be replaced by LF in eol.utf16.
The file will have its original line endings in your working directory
source (eol.utf16, considered utf-16):
|  0: ff   |  1: fe   |  2: 6f o |  3:  0   |  4: 6e n |  5:  0   |  6: 65 e |  7:  0  
|  8:  d   |  9:  0   | 10:  a   | 11:  0   | 12: 74 t | 13:  0   | 14: 77 w | 15:  0  
| 16: 6f o | 17:  0   | 18:  d   | 19:  0   | 20:  a   | 21:  0   | 22: 74 t | 23:  0  
| 24: 68 h | 25:  0   | 26: 72 r | 27:  0   | 28: 65 e | 29:  0   | 30: 65 e | 31:  0  
| 32:  d   | 33:  0   | 34:  a   | 35:  0  

destination (eol.utf16, considered UTF-8):
|  0: 6f o |  1: 6e n |  2: 65 e |  3:  d   |  4:  a   |  5: 74 t |  6: 77 w |  7: 6f o
|  8:  d   |  9:  a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15:  d  
| 16:  a  

[master 85a4f33] eol
 Author: A U Thor <author@example.com>
 1 file changed, 3 insertions(+)
 create mode 100644 eol.utf16
Updated 1 path from the index
Updated 1 path from the index
HEAD is now at dfb2bb8 initial
ok 8 - eol conversion for UTF-16 encoded files on checkout

expecting success of 0028.9 'check prohibited UTF-32 BOM': 
		test_when_finished "git reset --hard HEAD" &&

		echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes &&
		echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes &&

		# Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian)
		# but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32).
		# In these cases the BOM is prohibited.
		cp bebom.utf${i}be.raw bebom.utf${i}be &&
		test_must_fail git add bebom.utf${i}be 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&

		cp lebom.utf${i}le.raw lebom.utf${i}be &&
		test_must_fail git add lebom.utf${i}be 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&

		cp bebom.utf${i}be.raw bebom.utf${i}le &&
		test_must_fail git add bebom.utf${i}le 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&

		cp lebom.utf${i}le.raw lebom.utf${i}le &&
		test_must_fail git add lebom.utf${i}le 2>err.out &&
		test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
		test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out
	
fatal: BOM is prohibited in 'bebom.utf32be' if encoded as utf-32be
hint: The file 'bebom.utf32be' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding.
fatal: BOM is prohibited in 'lebom.utf32be' if encoded as utf-32be
hint: The file 'lebom.utf32be' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding.
fatal: BOM is prohibited in 'bebom.utf32le' if encoded as utf-32LE
hint: The file 'bebom.utf32le' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding.
fatal: BOM is prohibited in 'lebom.utf32le' if encoded as utf-32LE
hint: The file 'lebom.utf32le' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding.
HEAD is now at dfb2bb8 initial
ok 9 - check prohibited UTF-32 BOM

expecting success of 0028.10 'check required UTF-32 BOM': 
		test_when_finished "git reset --hard HEAD" &&

		echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes &&

		cp nobom.utf${i}be.raw nobom.utf${i} &&
		test_must_fail git add nobom.utf${i} 2>err.out &&
		test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
		test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out &&

		cp nobom.utf${i}le.raw nobom.utf${i} &&
		test_must_fail git add nobom.utf${i} 2>err.out &&
		test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
		test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out
	
fatal: BOM is required in 'nobom.utf32' if encoded as utf-32
hint: The file 'nobom.utf32' is missing a byte order mark (BOM). Please use UTF-32BE or UTF-32LE (depending on the byte order) as working-tree-encoding.
fatal: BOM is required in 'nobom.utf32' if encoded as utf-32
hint: The file 'nobom.utf32' is missing a byte order mark (BOM). Please use UTF-32BE or UTF-32LE (depending on the byte order) as working-tree-encoding.
HEAD is now at dfb2bb8 initial
ok 10 - check required UTF-32 BOM

expecting success of 0028.11 'eol conversion for UTF-32 encoded files on checkout': 
		test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" &&
		test_when_finished "git reset --hard HEAD^" &&

		cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw &&
		cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw &&
		cp crlf.utf${i}.raw eol.utf${i} &&

		cat >expectIndexLF <<-EOF &&
			i/lf    w/-text attr/text             	eol.utf${i}
		EOF

		git add eol.utf${i} &&
		git commit -m eol &&

		# UTF-${i} with CRLF (Windows line endings)
		rm eol.utf${i} &&
		git -c core.eol=crlf checkout eol.utf${i} &&
		test_cmp_bin crlf.utf${i}.raw eol.utf${i} &&

		# Although the file has CRLF in the working tree,
		# ensure LF in the index
		git ls-files --eol eol.utf${i} >actual &&
		test_cmp expectIndexLF actual &&

		# UTF-${i} with LF (Unix line endings)
		rm eol.utf${i} &&
		git -c core.eol=lf checkout eol.utf${i} &&
		test_cmp_bin lf.utf${i}.raw eol.utf${i} &&

		# The file LF in the working tree, ensure LF in the index
		git ls-files --eol eol.utf${i} >actual &&
		test_cmp expectIndexLF actual
	
checking prerequisite: NO_UTF32_BOM

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" &&
	test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12

)
prerequisite NO_UTF32_BOM not satisfied
checking prerequisite: NO_UTF32_BOM

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" &&
	test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12

)
prerequisite NO_UTF32_BOM not satisfied
source (eol.utf32, considered utf-32):
|  0: ff   |  1: fe   |  2:  0   |  3:  0   |  4: 6f o |  5:  0   |  6:  0   |  7:  0  
|  8: 6e n |  9:  0   | 10:  0   | 11:  0   | 12: 65 e | 13:  0   | 14:  0   | 15:  0  
| 16:  d   | 17:  0   | 18:  0   | 19:  0   | 20:  a   | 21:  0   | 22:  0   | 23:  0  
| 24: 74 t | 25:  0   | 26:  0   | 27:  0   | 28: 77 w | 29:  0   | 30:  0   | 31:  0  
| 32: 6f o | 33:  0   | 34:  0   | 35:  0   | 36:  d   | 37:  0   | 38:  0   | 39:  0  
| 40:  a   | 41:  0   | 42:  0   | 43:  0   | 44: 74 t | 45:  0   | 46:  0   | 47:  0  
| 48: 68 h | 49:  0   | 50:  0   | 51:  0   | 52: 72 r | 53:  0   | 54:  0   | 55:  0  
| 56: 65 e | 57:  0   | 58:  0   | 59:  0   | 60: 65 e | 61:  0   | 62:  0   | 63:  0  
| 64:  d   | 65:  0   | 66:  0   | 67:  0   | 68:  a   | 69:  0   | 70:  0   | 71:  0  

destination (eol.utf32, considered UTF-8):
|  0: 6f o |  1: 6e n |  2: 65 e |  3:  d   |  4:  a   |  5: 74 t |  6: 77 w |  7: 6f o
|  8:  d   |  9:  a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15:  d  
| 16:  a  

warning: CRLF will be replaced by LF in eol.utf32.
The file will have its original line endings in your working directory
source (eol.utf32, considered utf-32):
|  0: ff   |  1: fe   |  2:  0   |  3:  0   |  4: 6f o |  5:  0   |  6:  0   |  7:  0  
|  8: 6e n |  9:  0   | 10:  0   | 11:  0   | 12: 65 e | 13:  0   | 14:  0   | 15:  0  
| 16:  d   | 17:  0   | 18:  0   | 19:  0   | 20:  a   | 21:  0   | 22:  0   | 23:  0  
| 24: 74 t | 25:  0   | 26:  0   | 27:  0   | 28: 77 w | 29:  0   | 30:  0   | 31:  0  
| 32: 6f o | 33:  0   | 34:  0   | 35:  0   | 36:  d   | 37:  0   | 38:  0   | 39:  0  
| 40:  a   | 41:  0   | 42:  0   | 43:  0   | 44: 74 t | 45:  0   | 46:  0   | 47:  0  
| 48: 68 h | 49:  0   | 50:  0   | 51:  0   | 52: 72 r | 53:  0   | 54:  0   | 55:  0  
| 56: 65 e | 57:  0   | 58:  0   | 59:  0   | 60: 65 e | 61:  0   | 62:  0   | 63:  0  
| 64:  d   | 65:  0   | 66:  0   | 67:  0   | 68:  a   | 69:  0   | 70:  0   | 71:  0  

destination (eol.utf32, considered UTF-8):
|  0: 6f o |  1: 6e n |  2: 65 e |  3:  d   |  4:  a   |  5: 74 t |  6: 77 w |  7: 6f o
|  8:  d   |  9:  a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15:  d  
| 16:  a  

[master 674dc3f] eol
 Author: A U Thor <author@example.com>
 1 file changed, 3 insertions(+)
 create mode 100644 eol.utf32
Updated 1 path from the index
Updated 1 path from the index
HEAD is now at dfb2bb8 initial
ok 11 - eol conversion for UTF-32 encoded files on checkout

expecting success of 0028.12 'check unsupported encodings': 
	test_when_finished "git reset --hard HEAD" &&

	echo "*.set text working-tree-encoding" >.gitattributes &&
	printf "set" >t.set &&
	test_must_fail git add t.set 2>err.out &&
	test_i18ngrep "true/false are no valid working-tree-encodings" err.out &&

	echo "*.unset text -working-tree-encoding" >.gitattributes &&
	printf "unset" >t.unset &&
	git add t.unset &&

	echo "*.empty text working-tree-encoding=" >.gitattributes &&
	printf "empty" >t.empty &&
	git add t.empty &&

	echo "*.garbage text working-tree-encoding=garbage" >.gitattributes &&
	printf "garbage" >t.garbage &&
	test_must_fail git add t.garbage 2>err.out &&
	test_i18ngrep "failed to encode" err.out

fatal: true/false are no valid working-tree-encodings
fatal: failed to encode 't.garbage' from garbage to UTF-8
HEAD is now at dfb2bb8 initial
ok 12 - check unsupported encodings

expecting success of 0028.13 'error if encoding round trip is not the same during refresh': 
	BEFORE_STATE=$(git rev-parse HEAD) &&
	test_when_finished "git reset --hard $BEFORE_STATE" &&

	# Add and commit a UTF-16 file but skip the "working-tree-encoding"
	# filter. Consequently, the in-repo representation is UTF-16 and not
	# UTF-8. This simulates a Git version that has no working tree encoding
	# support.
	echo "*.utf16le text working-tree-encoding=utf-16le" >.gitattributes &&
	echo "hallo" >nonsense.utf16le &&
	TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16le) &&
	git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16le &&
	COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) &&
	git update-ref refs/heads/master $COMMIT &&

	test_must_fail git checkout HEAD^ 2>err.out &&
	test_i18ngrep "error: .* overwritten by checkout:" err.out

error: Your local changes to the following files would be overwritten by checkout:
HEAD is now at dfb2bb8 initial
ok 13 - error if encoding round trip is not the same during refresh

expecting success of 0028.14 'error if encoding garbage is already in Git': 
	BEFORE_STATE=$(git rev-parse HEAD) &&
	test_when_finished "git reset --hard $BEFORE_STATE" &&

	# Skip the UTF-16 filter for the added file
	# This simulates a Git version that has no checkoutEncoding support
	cp nobom.utf16be.raw nonsense.utf16 &&
	TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16) &&
	git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16 &&
	COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) &&
	git update-ref refs/heads/master $COMMIT &&

	git diff 2>err.out &&
	test_i18ngrep "error: BOM is required" err.out

error: BOM is required in 'nonsense.utf16' if encoded as utf-16
error: BOM is required in 'nonsense.utf16' if encoded as utf-16
HEAD is now at dfb2bb8 initial
ok 14 - error if encoding garbage is already in Git

checking prerequisite: ICONV_SHIFT_JIS

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-ICONV_SHIFT_JIS" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-ICONV_SHIFT_JIS" &&
	iconv -f UTF-8 -t SHIFT-JIS </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...
Unstaged changes after reset:
M	.gitattributes
Unstaged changes after reset:
M	.gitattributes
Unstaged changes after reset:
M	.gitattributes
Checking roundtrip encoding for utf-16...
Unstaged changes after reset:
M	.gitattributes
Checking roundtrip encoding for utf-16...
Unstaged changes after reset:
M	.gitattributes
HEAD is now at dfb2bb8 initial
ok 15 - check roundtrip encoding

expecting success of 0028.16 'Commit UTF-8, checkout UTF-8': 
		test_when_finished "git checkout HEAD -- .gitattributes" &&

		test_ext="commit_utf8_checkout_$encoding" &&
		test_file="test.$test_ext" &&

		# Commit as UTF-8
		echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes &&
		printf "$orig_string" >$test_file &&
		git add $test_file &&
		git commit -m "Test data" &&

		# Checkout in tested encoding
		rm $test_file &&
		echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes &&
		git checkout HEAD -- $test_file &&

		# Test
		printf $expect_bytes >$test_file.raw &&
		test_cmp_bin $test_file.raw $test_file
	
[master 7887505] Test data
 Author: A U Thor <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
	
[master 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
	
[master 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
	
[master 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
	
[master 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
	
[master 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
	
[master 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'
*** 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'
*** 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
	done &&
	git add -f ignored-but-in-index a/ignored-but-in-index &&
	cat <<-\EOF >a/.gitignore &&
		two*
		*three
	EOF
	cat <<-\EOF >a/b/.gitignore &&
		four
		five
		# this comment should affect the line numbers
		six
		ignored-dir/
		# and so should this blank line:

		!on*
		!two
	EOF
	echo "seven" >a/b/ignored-dir/.gitignore &&
	test -n "$HOME" &&
	cat <<-\EOF >"$global_excludes" &&
		globalone
		!globaltwo
		globalthree
	EOF
	cat <<-\EOF >>.git/info/exclude
		per-repo
	EOF

checking prerequisite: SYMLINKS

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" &&
	# test whether the filesystem supports symbolic links
	ln -s x y && test -h y

)
prerequisite SYMLINKS ok
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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"
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: no 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:7:per-repo	per-repo
		a/.gitignore:2:*three	a/globalthree
		.git/info/exclude:7: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:7:per-repo	per-repo
		$global_excludes:3:globalthree	globalthree
		a/.gitignore:2:*three	a/globalthree
		.git/info/exclude:7: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 '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 386 - trailing whitespace is ignored

expecting success of 0008.387 '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 387 - quoting allows trailing whitespace

expecting success of 0008.388 '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 388 - correct handling of backslashes

expecting success of 0008.389 '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 389 - info/exclude trumps core.excludesfile

# passed all 389 test(s)
1..389
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'
	git config --global --add safe.directory '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 1 - safe.directory is not set

expecting success of 0033.2 'safe.directory does not match': 
	git config --global safe.directory bogus &&
	expect_rejected_dir

fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
	git config --global --add safe.directory '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 2 - safe.directory does not match

expecting success of 0033.3 'path exist as different key': 
	git config --global foo.bar "$(pwd)" &&
	expect_rejected_dir

fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
	git config --global --add safe.directory '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 3 - path exist as different key

expecting success of 0033.4 'safe.directory matches': 
	git config --global --add safe.directory "$(pwd)" &&
	git status

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitconfig
	err

nothing added to commit but untracked files present (use "git add" to track)
ok 4 - safe.directory matches

expecting success of 0033.5 'safe.directory matches, but is reset': 
	git config --global --add safe.directory "" &&
	expect_rejected_dir

fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
	git config --global --add safe.directory '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 5 - safe.directory matches, but is reset

expecting success of 0033.6 'safe.directory=*': 
	git config --global --add safe.directory "*" &&
	git status

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitconfig
	err

nothing added to commit but untracked files present (use "git add" to track)
ok 6 - safe.directory=*

expecting success of 0033.7 'safe.directory=*, but is reset': 
	git config --global --add safe.directory "" &&
	expect_rejected_dir

fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
	git config --global --add safe.directory '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 7 - safe.directory=*, but is reset

# passed all 7 test(s)
1..7
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'
*** 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 $(printf "$ttt" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$ttt" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0

ok 8 - text without newline at end should end with newline

expecting success of 0030.9 'text plus spaces without newline at end should end with newline': 
    test $(printf "$ttt$sss" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$sss$sss" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$ttt$sss$sss" | git stripspace | wc -l) -gt 0 &&
    test $(printf "$ttt$sss$sss$sss" | git stripspace | wc -l) -gt 0

ok 9 - text plus spaces without newline at end should end with newline

expecting success of 0030.10 'text plus spaces without newline at end should not show spaces': 
    ! (printf "$ttt$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (printf "$ttt$ttt$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (printf "$ttt$sss$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (printf "$ttt$sss$sss$sss" | git stripspace | grep "  " >/dev/null)

ok 10 - text plus spaces without newline at end should not show spaces

expecting success of 0030.11 'text plus spaces without newline should show the correct lines': 
    printf "$ttt\n" >expect &&
    printf "$ttt$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt\n" >expect &&
    printf "$ttt$sss$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt\n" >expect &&
    printf "$ttt$sss$sss$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt$ttt\n" >expect &&
    printf "$ttt$ttt$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt$ttt\n" >expect &&
    printf "$ttt$ttt$sss$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt$ttt$ttt\n" >expect &&
    printf "$ttt$ttt$ttt$sss" | git stripspace >actual &&
    test_cmp expect actual

ok 11 - text plus spaces without newline should show the correct lines

expecting success of 0030.12 'text plus spaces at end should not show spaces': 
    ! (echo "$ttt$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (echo "$ttt$ttt$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (echo "$ttt$sss$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep "  " >/dev/null) &&
    ! (echo "$ttt$sss$sss$sss" | git stripspace | grep "  " >/dev/null)

ok 12 - text plus spaces at end should not show spaces

expecting success of 0030.13 'text plus spaces at end should be cleaned and newline must remain': 
    echo "$ttt" >expect &&
    echo "$ttt$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    echo "$ttt" >expect &&
    echo "$ttt$sss$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    echo "$ttt" >expect &&
    echo "$ttt$sss$sss$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    echo "$ttt$ttt" >expect &&
    echo "$ttt$ttt$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    echo "$ttt$ttt" >expect &&
    echo "$ttt$ttt$sss$sss" | git stripspace >actual &&
    test_cmp expect actual &&

    echo "$ttt$ttt$ttt" >expect &&
    echo "$ttt$ttt$ttt$sss" | git stripspace >actual &&
    test_cmp expect actual

ok 13 - text plus spaces at end should be cleaned and newline must remain

expecting success of 0030.14 'spaces with newline at end should be replaced with empty string': 
    echo | git stripspace >actual &&
    test_must_be_empty actual &&

    echo "$sss" | git stripspace >actual &&
    test_must_be_empty actual &&

    echo "$sss$sss" | git stripspace >actual &&
    test_must_be_empty actual &&

    echo "$sss$sss$sss" | git stripspace >actual &&
    test_must_be_empty actual &&

    echo "$sss$sss$sss$sss" | git stripspace >actual &&
    test_must_be_empty actual

ok 14 - spaces with newline at end should be replaced with empty string

expecting success of 0030.15 'spaces without newline at end should not show spaces': 
    ! (printf "" | git stripspace | grep " " >/dev/null) &&
    ! (printf "$sss" | git stripspace | grep " " >/dev/null) &&
    ! (printf "$sss$sss" | git stripspace | grep " " >/dev/null) &&
    ! (printf "$sss$sss$sss" | git stripspace | grep " " >/dev/null) &&
    ! (printf "$sss$sss$sss$sss" | git stripspace | grep " " >/dev/null)

ok 15 - spaces without newline at end should not show spaces

expecting success of 0030.16 'spaces without newline at end should be replaced with empty string': 
    printf "" | git stripspace >actual &&
    test_must_be_empty actual &&

    printf "$sss$sss" | git stripspace >actual &&
    test_must_be_empty actual &&

    printf "$sss$sss$sss" | git stripspace >actual &&
    test_must_be_empty actual &&

    printf "$sss$sss$sss$sss" | git stripspace >actual &&
    test_must_be_empty actual

ok 16 - spaces without newline at end should be replaced with empty string

expecting success of 0030.17 'consecutive text lines should be unchanged': 
    printf "$ttt$ttt\n$ttt\n" >expect &&
    printf "$ttt$ttt\n$ttt\n" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt\n$ttt$ttt\n$ttt\n" >expect &&
    printf "$ttt\n$ttt$ttt\n$ttt\n" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" >expect &&
    printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" >expect &&
    printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" >expect &&
    printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" | git stripspace >actual &&
    test_cmp expect actual &&

    printf "$ttt\n$ttt$ttt\n\n$ttt\n" >expect &&
    printf "$ttt\n$ttt$ttt\n\n$ttt\n" | git stripspace >actual &&
    test_cmp expect actual

ok 17 - consecutive text lines should be unchanged

expecting success of 0030.18 'strip comments, too': 
	test ! -z "$(echo "# comment" | git stripspace)" &&
	test -z "$(echo "# comment" | git stripspace -s)"

ok 18 - strip comments, too

expecting success of 0030.19 'strip comments with changed comment char': 
	test ! -z "$(echo "; comment" | git -c core.commentchar=";" stripspace)" &&
	test -z "$(echo "; comment" | git -c core.commentchar=";" stripspace -s)"

ok 19 - strip comments with changed comment char

expecting success of 0030.20 '-c with single line': 
	printf "# foo\n" >expect &&
	printf "foo" | git stripspace -c >actual &&
	test_cmp expect actual

ok 20 - -c with single line

expecting success of 0030.21 '-c with single line followed by empty line': 
	printf "# foo\n#\n" >expect &&
	printf "foo\n\n" | git stripspace -c >actual &&
	test_cmp expect actual

ok 21 - -c with single line followed by empty line

expecting success of 0030.22 '-c with newline only': 
	printf "#\n" >expect &&
	printf "\n" | git stripspace -c >actual &&
	test_cmp expect actual

ok 22 - -c with newline only

expecting success of 0030.23 '--comment-lines with single line': 
	printf "# foo\n" >expect &&
	printf "foo" | git stripspace -c >actual &&
	test_cmp expect actual

ok 23 - --comment-lines with single line

expecting success of 0030.24 '-c with changed comment char': 
	printf "; foo\n" >expect &&
	printf "foo" | git -c core.commentchar=";" stripspace -c >actual &&
	test_cmp expect actual

ok 24 - -c with changed comment char

expecting success of 0030.25 '-c with comment char defined in .git/config': 
	test_config core.commentchar = &&
	printf "= foo\n" >expect &&
	rm -fr sub &&
	mkdir sub &&
	printf "foo" | git -C sub stripspace -c >actual &&
	test_cmp expect actual

ok 25 - -c with comment char defined in .git/config

expecting success of 0030.26 '-c outside git repository': 
	printf "# foo\n" >expect &&
	printf "foo" | nongit git stripspace -c >actual &&
	test_cmp expect actual

ok 26 - -c outside git repository

expecting success of 0030.27 'avoid SP-HT sequence in commented line': 
	printf "#\tone\n#\n# two\n" >expect &&
	printf "\tone\n\ntwo\n" | git stripspace -c >actual &&
	test_cmp expect actual

ok 27 - avoid SP-HT sequence in commented line

# passed all 27 test(s)
1..27
make[4]: Leaving directory '/<<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"

[master (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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: malformed object name notag
ok 3 - tag --contains <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>]
ok 6 - tag usage error

expecting success of 0041.7 'branch --contains <existent_commit>': 
	git branch --contains "master" >actual 2>actual.err &&
	test_i18ngrep "master" actual &&
	test_line_count = 0 actual.err

* master
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 "master" >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 "master" >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 "master" >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_i18ncmp expect output

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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': 
	test_expect_code 129 test-tool parse-options -s &&
	test_expect_code 129 test-tool parse-options --string &&
	test_expect_code 129 test-tool parse-options --file

error: switch `s' requires a value
error: option `string' requires a value
error: option `file' requires a value
ok 22 - missing required value

expecting success of 0040.23 '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 23 - intermingled arguments

expecting success of 0040.24 '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 24 - unambiguously abbreviated option

expecting success of 0040.25 'unambiguously abbreviated option with "="': 
	GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
	test-tool parse-options --expect="integer: 2" --int=2

ok 25 - unambiguously abbreviated option with "="

expecting success of 0040.26 '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
    --quux                means --quux
    -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 26 - ambiguously abbreviated option

expecting success of 0040.27 'non ambiguous option (after two options it abbreviates)': 
	GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
	test-tool parse-options --expect="string: 123" --st 123

ok 27 - non ambiguous option (after two options it abbreviates)

expecting success of 0040.28 '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 28 - Alias options do not contribute to abbreviation

expecting success of 0040.29 'detect possible typos': 
	test_must_fail test-tool parse-options -boolean >output 2>output.err &&
	test_must_be_empty output &&
	test_i18ncmp typo.err output.err

ok 29 - detect possible typos

expecting success of 0040.30 'detect possible typos': 
	test_must_fail test-tool parse-options -ambiguous >output 2>output.err &&
	test_must_be_empty output &&
	test_i18ncmp typo.err output.err

ok 30 - detect possible typos

expecting success of 0040.31 'keep some options as arguments': 
	test-tool parse-options --expect="arg 00: --quux" --quux

ok 31 - keep some options as arguments

expecting success of 0040.32 '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 32 - OPT_CALLBACK() and OPT_BIT() work

expecting success of 0040.33 '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 33 - OPT_CALLBACK() and callback errors work

expecting success of 0040.34 '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 34 - OPT_BIT() and OPT_SET_INT() work

expecting success of 0040.35 '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 35 - OPT_NEGBIT() and OPT_SET_INT() work

expecting success of 0040.36 'OPT_BIT() works': 
	test-tool parse-options --expect="boolean: 6" -bb --or4

ok 36 - OPT_BIT() works

expecting success of 0040.37 'OPT_NEGBIT() works': 
	test-tool parse-options --expect="boolean: 6" -bb --no-neg-or4

ok 37 - OPT_NEGBIT() works

expecting success of 0040.38 'OPT_CMDMODE() works': 
	test-tool parse-options --expect="integer: 1" --mode1

ok 38 - OPT_CMDMODE() works

expecting success of 0040.39 '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 39 - OPT_CMDMODE() detects incompatibility

expecting success of 0040.40 '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 40 - OPT_CMDMODE() detects incompatibility with something else

expecting success of 0040.41 'OPT_COUNTUP() with PARSE_OPT_NODASH works': 
	test-tool parse-options --expect="boolean: 6" + + + + + +

ok 41 - OPT_COUNTUP() with PARSE_OPT_NODASH works

expecting success of 0040.42 'OPT_NUMBER_CALLBACK() works': 
	test-tool parse-options --expect="integer: 12345" -12345

ok 42 - OPT_NUMBER_CALLBACK() works

expecting success of 0040.43 '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 43 - negation of OPT_NONEG flags is not ambiguous

expecting success of 0040.44 '--list keeps list of strings': 
	test-tool parse-options --list foo --list=bar --list=baz >output &&
	test_cmp expect output

ok 44 - --list keeps list of strings

expecting success of 0040.45 '--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 45 - --no-list resets list

expecting success of 0040.46 'multiple quiet levels': 
	test-tool parse-options --expect="quiet: 3" -q -q -q

ok 46 - multiple quiet levels

expecting success of 0040.47 'multiple verbose levels': 
	test-tool parse-options --expect="verbose: 3" -v -v -v

ok 47 - multiple verbose levels

expecting success of 0040.48 '--no-quiet sets --quiet to 0': 
	test-tool parse-options --expect="quiet: 0" --no-quiet

ok 48 - --no-quiet sets --quiet to 0

expecting success of 0040.49 '--no-quiet resets multiple -q to 0': 
	test-tool parse-options --expect="quiet: 0" -q -q -q --no-quiet

ok 49 - --no-quiet resets multiple -q to 0

expecting success of 0040.50 '--no-verbose sets verbose to 0': 
	test-tool parse-options --expect="verbose: 0" --no-verbose

ok 50 - --no-verbose sets verbose to 0

expecting success of 0040.51 '--no-verbose resets multiple verbose to 0': 
	test-tool parse-options --expect="verbose: 0" -v -v -v --no-verbose

ok 51 - --no-verbose resets multiple verbose to 0

expecting success of 0040.52 '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 52 - GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS works

expecting success of 0040.53 '--end-of-options treats remainder as args': 
	test-tool parse-options \
	    --expect="verbose: -1" \
	    --expect="arg 00: --verbose" \
	    --end-of-options --verbose

ok 53 - --end-of-options treats remainder as args

# passed all 53 test(s)
1..53
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/
ok 1 # skip o_append write to named pipe (missing MINGW)

# passed all 1 test(s)
1..1
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'
*** 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 master

[master (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 'master'
ok 3 - setup case tests

expecting success of 0050.4 'rename (case change)': 
	git mv camelcase CamelCase &&
	git commit -m "rename"

[master 0a6fec9] rename
 Author: A U Thor <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 master

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0050-filesystem/unicode/.git/
[master (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 'master'
ok 8 - setup unicode normalization tests

expecting success of 0050.9 'rename (silent unicode normalization)': 
	git mv "$aumlcdiar" "$auml" &&
	git commit -m rename

[master 591d19c] rename
 Author: A U Thor <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'
*** 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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" 2>actual &&
	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 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" 2>actual &&
	test_cmp expect actual

ok 12 - run_command runs in parallel with as many jobs as tasks

expecting success of 0061.13 '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" 2>actual &&
	test_cmp expect actual

ok 13 - run_command runs in parallel with more tasks than jobs available

expecting success of 0061.14 'run_command is asked to abort gracefully': 
	test-tool run-command run-command-abort 3 false 2>actual &&
	test_cmp expect actual

ok 14 - run_command is asked to abort gracefully

expecting success of 0061.15 'run_command outputs ': 
	test-tool run-command run-command-no-jobs 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
	test_cmp expect actual

ok 15 - run_command outputs 

expecting success of 0061.16 '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 16 - GIT_TRACE with environment variables

ok 17 # skip verify curlies are quoted properly (missing MINGW)

ok 18 # skip can spawn .bat with argv[0] containing spaces (missing MINGW)

# passed all 18 test(s)
1..18
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 &&

	mkdir -p dir5/a/b &&
	mkdir -p dir5/a/c &&
	ln -s ../c dir5/a/b/d &&
	ln -s ../ dir5/a/b/e &&
	ln -s ../../ dir5/a/b/f &&

	ln -s dir4 dir6

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 should follow symlinks w/ follow flag': 
	cat >expected-follow-sorted-output <<-EOF &&
	[d] (a) [a] ./dir4/a
	[d] (a/f) [f] ./dir4/a/f
	[d] (a/f/c) [c] ./dir4/a/f/c
	[d] (b) [b] ./dir4/b
	[d] (b/c) [c] ./dir4/b/c
	[f] (a/d) [d] ./dir4/a/d
	[f] (a/e) [e] ./dir4/a/e
	EOF

	test-tool dir-iterator --follow-symlinks ./dir4 >out &&
	sort out >actual-follow-sorted-output &&

	test_cmp expected-follow-sorted-output actual-follow-sorted-output

ok 10 - dir-iterator should follow symlinks w/ follow flag

expecting success of 0066.11 'dir-iterator does not resolve top-level symlinks': 
	test_must_fail test-tool dir-iterator ./dir6 >out &&

	grep "ENOTDIR" out

dir_iterator_begin failure: ENOTDIR
ok 11 - dir-iterator does not resolve top-level symlinks

expecting success of 0066.12 'dir-iterator resolves top-level symlinks w/ follow flag': 
	cat >expected-follow-sorted-output <<-EOF &&
	[d] (a) [a] ./dir6/a
	[d] (a/f) [f] ./dir6/a/f
	[d] (a/f/c) [c] ./dir6/a/f/c
	[d] (b) [b] ./dir6/b
	[d] (b/c) [c] ./dir6/b/c
	[f] (a/d) [d] ./dir6/a/d
	[f] (a/e) [e] ./dir6/a/e
	EOF

	test-tool dir-iterator --follow-symlinks ./dir6 >out &&
	sort out >actual-follow-sorted-output &&

	test_cmp expected-follow-sorted-output actual-follow-sorted-output

ok 12 - dir-iterator resolves top-level symlinks w/ follow flag

# passed all 12 test(s)
1..12
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'
*** 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': 
	{
		echo "File with expanded keywords"
		echo "\$Id\$"
		echo "\$Id:\$"
		echo "\$Id: 0000000000000000000000000000000000000000 \$"
		echo "\$Id: NoSpaceAtEnd\$"
		echo "\$Id:NoSpaceAtFront \$"
		echo "\$Id:NoSpaceAtEitherEnd\$"
		echo "\$Id: NoTerminatingSymbol"
		echo "\$Id: Foreign Commit With Spaces \$"
	} >expanded-keywords.0 &&

	{
		cat expanded-keywords.0 &&
		printf "\$Id: NoTerminatingSymbolAtEOF"
	} >expanded-keywords &&
	cat expanded-keywords >expanded-keywords-crlf &&
	git add expanded-keywords expanded-keywords-crlf &&
	git commit -m "File with keywords expanded" &&
	id=$(git rev-parse --verify :expanded-keywords) &&

	{
		echo "File with expanded keywords"
		echo "\$Id: $id \$"
		echo "\$Id: $id \$"
		echo "\$Id: $id \$"
		echo "\$Id: $id \$"
		echo "\$Id: $id \$"
		echo "\$Id: $id \$"
		echo "\$Id: NoTerminatingSymbol"
		echo "\$Id: Foreign Commit With Spaces \$"
	} >expected-output.0 &&
	{
		cat expected-output.0 &&
		printf "\$Id: NoTerminatingSymbolAtEOF"
	} >expected-output &&
	{
		append_cr <expected-output.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

[master (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 '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; done >30MB &&
	echo "30MB filter=devnull" >.gitattributes &&
	GIT_MMAP_LIMIT=1m GIT_ALLOC_LIMIT=1m git add 30MB

ok 8 - filtering large input to small output should use little memory

expecting success of 0021.9 '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 9 - 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 10 # skip filter large file (missing EXPENSIVE)

expecting success of 0021.11 '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 11 - filter: clean empty file

expecting success of 0021.12 '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 12 - filter: smudge empty file

expecting success of 0021.13 '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 13 - disable filter with empty override

expecting success of 0021.14 '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

[master 77379c5] one
 Author: A U Thor <author@example.com>
 8 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.disable
 create mode 100644 test.fs
 create mode 100644 test.r
[master 8868b52] two
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
8868b52c33dfc55cb5d031950895ef4d451f9f03
diff --git a/file b/file
index e4a1655..0c54b7b 100644
--- a/file
+++ b/file
@@ -1 +1 @@
-clean:one
+clean:two
ok 14 - diff does not reuse worktree files that need cleaning

expecting success of 0021.15 'required process filter should filter data': 
	test_config_global filter.protocol.process "rot13-filter.pl 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" &&
		MASTER=$(git rev-parse --verify master) &&
		META="ref=refs/heads/master treeish=$MASTER" &&
		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 master &&
		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"
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
[master (root-commit) 56d459b] test commit 1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 .gitattributes
[master 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 15 - required process filter should filter data

expecting success of 0021.16 'required process filter should filter data for various subcommands': 
	test_config_global filter.protocol.process "rot13-filter.pl 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) &&

		MASTER=$(git rev-parse --verify master) &&

		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 master^^ master &&
		MASTER2=$(git rev-parse --verify master) &&
		META="ref=refs/heads/master treeish=$MASTER2" &&
		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 $MASTER &&
		META="treeish=$MASTER" &&
		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-master $MASTER &&
		git reset --hard empty-branch &&
		filter_git reset --hard old-master &&
		META="ref=refs/heads/old-master treeish=$MASTER" &&
		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 master $MASTER2 &&
		filter_git merge master &&
		META="treeish=$MASTER2" &&
		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 master >/dev/null &&
		META="ref=refs/heads/master treeish=$MASTER2" &&
		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 $MASTER2^{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
	)

[master 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 master 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 16 - required process filter should filter data for various subcommands

expecting success of 0021.17 'required process filter takes precedence': 
	test_config_global filter.protocol.clean false &&
	test_config_global filter.protocol.process "rot13-filter.pl 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
ok 17 - required process filter takes precedence

expecting success of 0021.18 'required process filter should be used only for "clean" operation only': 
	test_config_global filter.protocol.process "rot13-filter.pl 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
ok 18 - required process filter should be used only for "clean" operation only

expecting success of 0021.19 'required process filter should process multiple packets': 
	test_config_global filter.protocol.process "rot13-filter.pl 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"
		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
		done
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
ok 19 - required process filter should process multiple packets

expecting success of 0021.20 'required process filter with clean error should fail': 
	test_config_global filter.protocol.process "rot13-filter.pl 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 .
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
clean write error at /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/rot13-filter.pl line 225.
error: external filter 'rot13-filter.pl debug.log clean smudge' failed
fatal: clean-write-fail.r: clean filter 'protocol' failed
ok 20 - required process filter with clean error should fail

expecting success of 0021.21 'process filter should restart after unexpected write failure': 
	test_config_global filter.protocol.process "rot13-filter.pl 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 at" 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
smudge write error at /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/rot13-filter.pl line 225.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: external filter 'rot13-filter.pl debug.log clean smudge' failed
--- smudge-write-fail.o	2023-02-23 16:49:20.827694723 +0000
+++ smudge-write-fail.r	2023-02-23 16:49:22.667742498 +0000
@@ -1 +1 @@
-this is going to fail
+guvf vf tbvat gb snvy
ok 21 - process filter should restart after unexpected write failure

expecting success of 0021.22 'process filter should not be restarted if it signals an error': 
	test_config_global filter.protocol.process "rot13-filter.pl 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
ok 22 - process filter should not be restarted if it signals an error

expecting success of 0021.23 'process filter abort stops processing of all further files': 
	test_config_global filter.protocol.process "rot13-filter.pl 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
ok 23 - process filter abort stops processing of all further files

expecting success of 0021.24 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
error: Unexpected line 'git-filter-client', expected git-filter-server
ok 24 - invalid process filter must fail (and not hang!)

expecting success of 0021.25 'delayed checkout in process filter': 
	test_config_global filter.a.process "rot13-filter.pl a.log clean smudge delay" &&
	test_config_global filter.a.required true &&
	test_config_global filter.b.process "rot13-filter.pl 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/master treeish=$(git -C repo rev-parse --verify master) " &&
	M="${PM}blob=$(git -C repo rev-parse --verify master: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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
[master (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 9 paths from the index
ok 25 - delayed checkout in process filter

expecting success of 0021.26 'missing file in delayed checkout': 
	test_config_global filter.bug.process "rot13-filter.pl 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
[master (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 26 - missing file in delayed checkout

expecting success of 0021.27 'invalid file in delayed checkout': 
	test_config_global filter.bug.process "rot13-filter.pl 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0021-conversion/repo/.git/
[master (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 'rot13-filter.pl bug.log clean smudge delay' signaled that 'unfiltered' is now available although it has not been delayed earlier
ok 27 - 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 28 # skip delayed checkout with case-collision don't write to the wrong place (missing CASE_INSENSITIVE_FS of PERL,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 29 # skip delayed checkout with utf-8-collision don't write to the wrong place (missing UTF8_NFD_TO_NFC of PERL,SYMLINKS,UTF8_NFD_TO_NFC)

ok 30 # skip delayed checkout with submodule collision don't write to the wrong place (missing CASE_INSENSITIVE_FS of PERL,SYMLINKS,CASE_INSENSITIVE_FS)

# passed all 30 test(s)
1..30
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 -C two commit --allow-empty -m "DID NOT RUN" &&
	git config run.key "$TRASH_DIRECTORY/one" &&
	git config --add run.key "$TRASH_DIRECTORY/three" &&
	git for-each-repo --config=run.key commit --allow-empty -m "ran" &&
	git -C one log -1 --pretty=format:%s >message &&
	grep ran message &&
	git -C two log -1 --pretty=format:%s >message &&
	! grep ran message &&
	git -C three log -1 --pretty=format:%s >message &&
	grep ran message &&
	git for-each-repo --config=run.key -- commit --allow-empty -m "ran again" &&
	git -C one log -1 --pretty=format:%s >message &&
	grep again message &&
	git -C two log -1 --pretty=format:%s >message &&
	! grep again message &&
	git -C three log -1 --pretty=format:%s >message &&
	grep again message

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t0068-for-each-repo/one/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t0068-for-each-repo/two/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t0068-for-each-repo/three/.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>
ran
ran
[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
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/testrQKvUU': 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/testDOdJeU': 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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'
*** 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")"

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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/master => bar/logs/refs/heads/master': 
		GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/heads/master >actual &&
		echo bar/logs/refs/heads/master >expect &&
		test_cmp expect actual
	
ok 154 - git-path GIT_COMMON_DIR=bar logs/refs/heads/master => bar/logs/refs/heads/master

expecting success of 0060.155 'git-path GIT_COMMON_DIR=bar refs/heads/master => bar/refs/heads/master': 
		GIT_COMMON_DIR=bar git rev-parse --git-path refs/heads/master >actual &&
		echo bar/refs/heads/master >expect &&
		test_cmp expect actual
	
ok 155 - git-path GIT_COMMON_DIR=bar refs/heads/master => bar/refs/heads/master

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=$(git submodule--helper resolve-relative-url-test '../' '../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=$(git submodule--helper resolve-relative-url-test '../' '../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=$(git submodule--helper resolve-relative-url-test '../' '../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=$(git submodule--helper resolve-relative-url-test '../' './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=$(git submodule--helper resolve-relative-url-test '../' './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=$(git submodule--helper resolve-relative-url-test '../../../' '../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=$(git submodule--helper resolve-relative-url-test '../' '/<<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=$(git submodule--helper resolve-relative-url-test '../' '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=$(git submodule--helper resolve-relative-url-test '../' '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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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=$(git submodule--helper resolve-relative-url-test '(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: '.git‌modules' 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

ok 213 # skip is_valid_path() on Windows (missing MINGW)

# passed all 213 test(s)
1..213
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.30.2: No such file or directory
grep: cpu: arm: No such file or directory
grep: no commit associated with this build: No such file or directory
grep: sizeof-long: 4: No such file or directory
grep: sizeof-size_t: 4: No such file or directory
grep: shell-path: /bin/sh: No such file or directory
grep: uname: Linux 4.9.0-0.bpo.4-armmp #1 SMP Debian 4.9.51-1~bpo8+1 (2017-10-17) armv7l: No such file or directory
grep: compiler info: gnuc: 10.2: No such file or directory
grep: libc info: glibc: 2.31: No such file or directory
grep: $SHELL (typically, interactive shell): /bin/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: couldn't create a new file at 'git-bugreport-duplicate.txt'
ok 2 - dies if file with same name as report already exists

expecting success of 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-02-23-1649.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-*

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
usage: git bugreport [-o|--output-directory <file>] [-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-02-23-1649.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-02-23-1649.txt'.
ok 6 - can create leading directories outside of a git dir

expecting success of 0091.7 'indicates populated hooks': 
	test_when_finished rm git-bugreport-hooks.txt &&
	test_when_finished rm -fr .git/hooks &&
	rm -fr .git/hooks &&
	mkdir .git/hooks &&
	for hook in applypatch-msg prepare-commit-msg.sample
	do
		write_script ".git/hooks/$hook" <<-EOF || return 1
		echo "hook $hook exists"
		EOF
	done &&
	git bugreport -s hooks &&
	grep applypatch-msg git-bugreport-hooks.txt &&
	! grep prepare-commit-msg git-bugreport-hooks.txt

Created new report at 'git-bugreport-hooks.txt'.
applypatch-msg
ok 7 - indicates populated hooks

# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<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
	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/master &&
	git branch -d @{-1} &&
	test_must_fail git rev-parse --verify refs/heads/junk

[master (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 'master'
Deleted branch junk (was 0ddfaf1).
fatal: Needed a single revision
ok 1 - branch -d @{-1}

expecting success of 0100.2 'branch -d @{-12} when there is not enough switches yet': 
	git reflog expire --expire=now &&
	git checkout -b junk2 &&
	git checkout - &&
	test "$(git symbolic-ref HEAD)" = refs/heads/master &&
	test_must_fail git branch -d @{-12} &&
	git rev-parse --verify refs/heads/master

Switched to a new branch 'junk2'
Switched to branch 'master'
error: branch '@{-12}' not found.
0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050
ok 2 - branch -d @{-12} when there is not enough switches yet

expecting success of 0100.3 'merge @{-1}': 
	git checkout A &&
	test_commit B &&
	git checkout A &&
	test_commit C &&
	test_commit D &&
	git branch -f master B &&
	git branch -f other &&
	git checkout other &&
	git checkout master &&
	git merge @{-1} &&
	git cat-file commit HEAD | grep "Merge branch 'other'"

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 'master'
Merging:
d9df450 B
virtual @{-1}
found 1 common ancestor:
0ddfaf1 A
Merge made by the 'recursive' strategy.
 C.t | 1 +
 D.t | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 C.t
 create mode 100644 D.t
Merge branch 'other'
ok 3 - merge @{-1}

expecting success of 0100.4 'merge @{-1}~1': 
	git checkout master &&
	git reset --hard B &&
	git checkout other &&
	git checkout master &&
	git merge @{-1}~1 &&
	git cat-file commit HEAD >actual &&
	grep "Merge branch 'other'" actual

Already on 'master'
HEAD is now at d9df450 B
Switched to branch 'other'
Switched to branch 'master'
Merging:
d9df450 B
virtual @{-1}~1
found 1 common ancestor:
0ddfaf1 A
Merge made by the 'recursive' strategy.
 C.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 C.t
Merge branch 'other' (early part)
ok 4 - merge @{-1}~1

expecting success of 0100.5 'merge @{-100} before checking out that many branches yet': 
	git reflog expire --expire=now &&
	git checkout -f master &&
	git reset --hard B &&
	git branch -f other C &&
	git checkout other &&
	git checkout master &&
	test_must_fail git merge @{-100}

Already on 'master'
HEAD is now at d9df450 B
Switched to branch 'other'
Switched to branch 'master'
merge: @{-100} - not something we can merge
ok 5 - merge @{-100} before checking out that many branches yet

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'
*** t0200-gettext-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0200-gettext-basic/.git/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
# lib-gettext: 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'
*** t0201-gettext-fallbacks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0201-gettext-fallbacks/.git/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
expecting success of 0201.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)': 
    test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME"

ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)

expecting success of 0201.2 'sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set': 
    test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"

ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set

expecting success of 0201.3 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough': 
    echo fallthrough >expect &&
    echo $GIT_INTERNAL_GETTEXT_SH_SCHEME >actual &&
    test_cmp expect actual

ok 3 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough

expecting success of 0201.4 'gettext: our gettext() fallback has pass-through semantics': 
    printf "test" >expect &&
    gettext "test" >actual &&
    test_i18ncmp expect actual &&
    printf "test more words" >expect &&
    gettext "test more words" >actual &&
    test_i18ncmp expect actual

ok 4 - gettext: our gettext() fallback has pass-through semantics

expecting success of 0201.5 'eval_gettext: our eval_gettext() fallback has pass-through semantics': 
    printf "test" >expect &&
    eval_gettext "test" >actual &&
    test_i18ncmp expect actual &&
    printf "test more words" >expect &&
    eval_gettext "test more words" >actual &&
    test_i18ncmp expect actual

ok 5 - eval_gettext: our eval_gettext() fallback has pass-through semantics

expecting success of 0201.6 'eval_gettext: our eval_gettext() fallback can interpolate variables': 
    printf "test YesPlease" >expect &&
    GIT_INTERNAL_GETTEXT_TEST_FALLBACKS=YesPlease eval_gettext "test \$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" >actual &&
    test_i18ncmp expect actual

ok 6 - eval_gettext: our eval_gettext() fallback can interpolate variables

expecting success of 0201.7 'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces': 
    cmdline="git am" &&
    export cmdline &&
    printf "When you have resolved this problem, run git am --resolved." >expect &&
    eval_gettext "When you have resolved this problem, run \$cmdline --resolved." >actual &&
    test_i18ncmp expect actual

ok 7 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces

expecting success of 0201.8 'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes': 
    cmdline="git am" &&
    export cmdline &&
    printf "When you have resolved this problem, run \"git am --resolved\"." >expect &&
    eval_gettext "When you have resolved this problem, run \"\$cmdline --resolved\"." >actual &&
    test_i18ncmp expect actual

ok 8 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes

# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<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'
*** t0203-gettext-setlocale-sanity.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0203-gettext-setlocale-sanity/.git/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
expecting success of 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'
*** t0204-gettext-reencode-sanity.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0204-gettext-reencode-sanity/.git/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
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/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
# run 0: Perl Git::I18N API (perl /<<PKGBUILDDIR>>/t/t0202/test.pl)
1..13
ok 1 - Testing Git::I18N with NO Perl gettext library
ok 2 - Git::I18N is located at /<<PKGBUILDDIR>>/t/../perl/build/lib/Git/I18N.pm
ok 3 - sanity: Git::I18N has 3 export(s)
ok 4 - sanity: Git::I18N exports everything by default
ok 5 - sanity: N__ has a $ prototype
ok 6 - sanity: __n has a $$$ prototype
ok 7 - sanity: __ has a $ prototype
ok 8 - Passing a string through __() in the C locale works
ok 9 - Get singular string through __n() in C locale
ok 10 - Get plural string through __n() in C locale
ok 11 - Passing a string through N__() in the C locale works
ok 12 # 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
# test_external test Perl Git::I18N API was ok
# expecting no stderr from previous command
# test_external_without_stderr test no stderr: Perl Git::I18N API was ok
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0205-gettext-poison.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0205-gettext-poison/.git/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT not satisfied
expecting success of 0205.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison': 
    test "$GIT_INTERNAL_GETTEXT_SH_SCHEME" = "poison"

ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison

expecting success of 0205.2 'gettext: our gettext() fallback has poison semantics': 
    printf "# GETTEXT POISON #" >expect &&
    gettext "test" >actual &&
    test_cmp expect actual &&
    printf "# GETTEXT POISON #" >expect &&
    gettext "test more words" >actual &&
    test_cmp expect actual

ok 2 - gettext: our gettext() fallback has poison semantics

expecting success of 0205.3 'eval_gettext: our eval_gettext() fallback has poison semantics': 
    printf "# GETTEXT POISON #" >expect &&
    eval_gettext "test" >actual &&
    test_cmp expect actual &&
    printf "# GETTEXT POISON #" >expect &&
    eval_gettext "test more words" >actual &&
    test_cmp expect actual

ok 3 - eval_gettext: our eval_gettext() fallback has poison semantics

expecting success of 0205.4 'gettext: invalid GIT_TEST_GETTEXT_POISON value doesn't infinitely loop': 
	test_must_fail env GIT_TEST_GETTEXT_POISON=xyz git version 2>error &&
	grep "fatal: bad numeric config value 'xyz' for 'GIT_TEST_GETTEXT_POISON': invalid unit" error

fatal: bad numeric config value 'xyz' for 'GIT_TEST_GETTEXT_POISON': invalid unit
ok 4 - gettext: invalid GIT_TEST_GETTEXT_POISON value doesn't infinitely loop

# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<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 &&
	cmp_cache_tree before &&
	echo "I changed this file" >dir1/a &&
	git add dir1/a &&
	cmp_cache_tree expect

[master 365c8fc] dir1/a
 Author: A U Thor <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': 
	cat <<-\EOT >foo.c &&
	int foo()
	{
		return 42;
	}
	int bar()
	{
		return 42;
	}
	EOT
	git add foo.c &&
	test_invalid_cache_tree &&
	git commit -m "add a file" &&
	test_cache_tree &&
	cat <<-\EOT >foo.c &&
	int foo()
	{
		return 43;
	}
	int bar()
	{
		return 44;
	}
	EOT
	test_write_lines p 1 "" s n y q |
	git commit --interactive -m foo &&
	test_cache_tree

[master d1075a6] add a file
 Author: A U Thor <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(-)
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'
diff --git a/foo.c b/foo.c
index f0f3133..3f7f049 100644
--- a/foo.c
+++ b/foo.c
@@ -1,6 +1,6 @@
 int foo()
 {
-return 42;
+return 43;
 }
 int bar()
 {
(1/1) Stage this hunk [y,n,q,a,d,e,?]? 
[master 73c66c3] delete
 Author: A U Thor <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 reset --hard &&
	test_cache_tree

HEAD is now at d3413ee dir/child.t
ok 14 - reset --hard without index gives cache-tree

expecting success of 0090.15 'checkout gives cache-tree': 
	git tag current &&
	git checkout HEAD^ &&
	test_cache_tree

Note: switching to 'HEAD^'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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
Merging:
5a63c6d struthio
virtual changes2
found 1 common ancestor:
d3413ee dir/child.t
Merge made by the 'recursive' strategy.
 alpacas.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 alpacas.t
ok 19 - merge maintains cache-tree

expecting success of 0090.20 'partial commit gives cache-tree': 
	git checkout -b partial no-children &&
	test_commit one &&
	test_commit two &&
	echo "some change" >one.t &&
	git add one.t &&
	echo "some other change" >two.t &&
	git commit two.t -m partial &&
	test_cache_tree

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  e104fa1 Merge branch 'changes2' into HEAD

If you want to keep it by creating a new branch, this may be a good time
to do so with:

 git branch <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'
*** 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

# passed all 5 test(s)
1..5
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 '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 7 - using global config, normal stream, return code 0

expecting success of 0210.8 '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 8 - using global config with include

# passed all 8 test(s)
1..8
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":"20230223T164953.981029Z-Hc56d7619-P00004054","thread":"main","time":"2023-02-23T16:49:53.982286Z","file":"common-main.c","line":48,"evt":"2","exe":"2.30.2"}
{"event":"too_many_files","sid":"20230223T164953.981029Z-Hc56d7619-P00004054","thread":"main","time":"2023-02-23T16:49:53.982492Z","file":"common-main.c","line":48}
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

	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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 2 - 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 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 6 - credential_fill passes along metadata

expecting success of 0300.7 '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 7 - credential_approve calls all helpers

expecting success of 0300.8 'do not bother storing password-less credential': 
	check approve useless <<-\EOF
	protocol=http
	host=example.com
	username=foo
	--
	--
	EOF

ok 8 - do not bother storing password-less credential

expecting success of 0300.9 '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 9 - credential_reject calls all helpers

expecting success of 0300.10 '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 10 - usernames can be preserved

expecting success of 0300.11 '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 11 - usernames can be overridden

expecting success of 0300.12 '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 12 - do not bother completing already-full credential

expecting success of 0300.13 '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 13 - empty helper list falls back to internal getpass

expecting success of 0300.14 '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 14 - internal getpass does not ask for known username

expecting success of 0300.15 '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 15 - git-credential respects core.askPass

expecting success of 0300.16 '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 16 - respect configured credentials

expecting success of 0300.17 '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 17 - match configured credential

expecting success of 0300.18 '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 18 - do not match configured credential

expecting success of 0300.19 '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 19 - match multiple configured helpers

expecting success of 0300.20 '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 20 - match multiple configured helpers with URLs

expecting success of 0300.21 '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 21 - match percent-encoded values

expecting success of 0300.22 '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 22 - match percent-encoded UTF-8 values in path

expecting success of 0300.23 '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 23 - match percent-encoded values in username

expecting success of 0300.24 '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 24 - fetch with multiple path components

expecting success of 0300.25 '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 25 - pull username from config

expecting success of 0300.26 '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 26 - honors username from URL over helper (URL)

expecting success of 0300.27 '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 27 - honors username from URL over helper (components)

expecting success of 0300.28 '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 28 - last matching username wins

expecting success of 0300.29 '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 29 - http paths can be part of context

expecting success of 0300.30 '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 30 - context uses urlmatch

expecting success of 0300.31 '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_i18ncmp expect stderr

ok 31 - helpers can abort the process

expecting success of 0300.32 '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 32 - empty helper spec resets helper list

expecting success of 0300.33 '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_i18ncmp expect stderr

ok 33 - url parser rejects embedded newlines

expecting success of 0300.34 '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 34 - host-less URLs are parsed as empty host

expecting success of 0300.35 '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_i18ncmp expect stderr

ok 35 - credential system refuses to work with missing host

expecting success of 0300.36 '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_i18ncmp expect stderr

ok 36 - credential system refuses to work with missing protocol

expecting success of 0300.37 'url parser handles bare query marker': 
	check_host_and_path https://example.com?foo.git example.com ?foo.git

ok 37 - url parser handles bare query marker

expecting success of 0300.38 'url parser handles bare fragment marker': 
	check_host_and_path https://example.com#foo.git example.com "#foo.git"

ok 38 - url parser handles bare fragment marker

expecting success of 0300.39 'url parser not confused by encoded markers': 
	check_host_and_path https://example.com%23%3f%2f/foo.git \
		"example.com#?/" foo.git

ok 39 - url parser not confused by encoded markers

expecting success of 0300.40 '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 40 - credential config with partial URLs

# passed all 40 test(s)
1..40
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
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 1 - 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 -S "$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 -S "$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 -S "$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 -S "$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 -S "$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 -m 700 "$HOME/.git-credential-cache/" &&
	check approve cache <<-\EOF &&
	protocol=https
	host=example.com
	username=store-user
	password=store-pass
	EOF
	test -S "$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 -S "$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'
*** 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 &&
	update
	progress 1
	update
	progress 2
	progress 3
	progress 4
	update
	progress 5
	EOF
	test-tool progress "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 1 - simple progress display

expecting success of 0500.2 'progress display with total': 
	cat >expect <<-\EOF &&
	Working hard:  33% (1/3)<CR>
	Working hard:  66% (2/3)<CR>
	Working hard: 100% (3/3)<CR>
	Working hard: 100% (3/3), done.
	EOF

	cat >in <<-\EOF &&
	progress 1
	progress 2
	progress 3
	EOF
	test-tool progress --total=3 "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 2 - progress display with total

expecting success of 0500.3 'progress display breaks long lines #1': 
	sed -e "s/Z$//" >expect <<\EOF &&
Working hard.......2.........3.........4.........5.........6:   0% (100/100000)<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 &&
	progress 100
	progress 1000
	progress 10000
	progress 100000
	EOF
	test-tool progress --total=100000 \
		"Working hard.......2.........3.........4.........5.........6" \
		<in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 3 - progress display breaks long lines #1

expecting success of 0500.4 'progress display breaks long lines #2': 
	# Note: we do not need that many spaces after the title to cover up
	# the last line before breaking the progress line.
	sed -e "s/Z$//" >expect <<\EOF &&
Working hard.......2.........3.........4.........5.........6:   0% (1/100000)<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 &&
	update
	progress 1
	update
	progress 2
	progress 10000
	progress 100000
	EOF
	test-tool progress --total=100000 \
		"Working hard.......2.........3.........4.........5.........6" \
		<in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 4 - progress display breaks long lines #2

expecting success of 0500.5 'progress display breaks long lines #3 - even the first is too long': 
	# Note: we do not actually need any spaces at the end of the title
	# line, because there is no previous progress line to cover up.
	sed -e "s/Z$//" >expect <<\EOF &&
Working hard.......2.........3.........4.........5.........6:                   Z
   25% (25000/100000)<CR>
   50% (50000/100000)<CR>
   75% (75000/100000)<CR>
  100% (100000/100000)<CR>
  100% (100000/100000), done.
EOF

	cat >in <<-\EOF &&
	progress 25000
	progress 50000
	progress 75000
	progress 100000
	EOF
	test-tool progress --total=100000 \
		"Working hard.......2.........3.........4.........5.........6" \
		<in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 5 - progress display breaks long lines #3 - even the first is too long

expecting success of 0500.6 'progress display breaks long lines #4 - title line matches terminal width': 
	cat >expect <<\EOF &&
Working hard.......2.........3.........4.........5.........6.........7.........:
   25% (25000/100000)<CR>
   50% (50000/100000)<CR>
   75% (75000/100000)<CR>
  100% (100000/100000)<CR>
  100% (100000/100000), done.
EOF

	cat >in <<-\EOF &&
	progress 25000
	progress 50000
	progress 75000
	progress 100000
	EOF
	test-tool progress --total=100000 \
		"Working hard.......2.........3.........4.........5.........6.........7........." \
		<in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 6 - progress display breaks long lines #4 - title line matches terminal width

expecting success of 0500.7 'progress shortens - crazy caller': 
	cat >expect <<-\EOF &&
	Working hard:  10% (100/1000)<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 &&
	progress 100
	progress 200
	progress 1
	progress 1000
	EOF
	test-tool progress --total=1000 "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 7 - progress shortens - crazy caller

expecting success of 0500.8 'progress display with throughput': 
	cat >expect <<-\EOF &&
	Working hard: 10<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 &&
	throughput 102400 1000
	update
	progress 10
	throughput 204800 2000
	update
	progress 20
	throughput 307200 3000
	update
	progress 30
	throughput 409600 4000
	update
	progress 40
	EOF
	test-tool progress "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 8 - progress display with throughput

expecting success of 0500.9 'progress display with throughput and total': 
	cat >expect <<-\EOF &&
	Working hard:  25% (10/40)<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 &&
	throughput 102400 1000
	progress 10
	throughput 204800 2000
	progress 20
	throughput 307200 3000
	progress 30
	throughput 409600 4000
	progress 40
	EOF
	test-tool progress --total=40 "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 9 - progress display with throughput and total

expecting success of 0500.10 'cover up after throughput shortens': 
	cat >expect <<-\EOF &&
	Working hard: 1<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 &&
	throughput 409600 1000
	update
	progress 1
	throughput 819200 2000
	update
	progress 2
	throughput 1228800 3000
	update
	progress 3
	throughput 1638400 4000
	update
	progress 4
	EOF
	test-tool progress "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 10 - cover up after throughput shortens

expecting success of 0500.11 'cover up after throughput shortens a lot': 
	cat >expect <<-\EOF &&
	Working hard: 1<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 &&
	throughput 1 1000
	update
	progress 1
	throughput 1024000 2000
	update
	progress 2
	throughput 3145728 3000
	update
	progress 3
	EOF
	test-tool progress "Working hard" <in 2>stderr &&

	show_cr <stderr >out &&
	test_i18ncmp expect out

ok 11 - cover up after throughput shortens a lot

expecting success of 0500.12 'progress generates traces': 
	cat >in <<-\EOF &&
	throughput 102400 1000
	update
	progress 10
	throughput 204800 2000
	update
	progress 20
	throughput 307200 3000
	update
	progress 30
	throughput 409600 4000
	update
	progress 40
	EOF

	GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool progress --total=40 \
		"Working hard" <in 2>stderr &&

	# t0212/parse_events.perl intentionally omits regions and data.
	grep -e "region_enter" -e "\"category\":\"progress\"" trace.event &&
	grep -e "region_leave" -e "\"category\":\"progress\"" trace.event &&
	grep "\"key\":\"total_objects\",\"value\":\"40\"" trace.event &&
	grep "\"key\":\"total_bytes\",\"value\":\"409600\"" trace.event

{"event":"region_enter","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.345270Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"data","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346324Z","file":"progress.c","line":328,"repo":0,"t_abs":0.005219,"t_rel":0.001051,"nesting":2,"category":"progress","key":"total_objects","value":"40"}
{"event":"data","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346592Z","file":"progress.c","line":332,"repo":0,"t_abs":0.005493,"t_rel":0.001325,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"}
{"event":"region_leave","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346781Z","file":"progress.c","line":336,"repo":0,"t_rel":0.001524,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"region_enter","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.345270Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"data","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346324Z","file":"progress.c","line":328,"repo":0,"t_abs":0.005219,"t_rel":0.001051,"nesting":2,"category":"progress","key":"total_objects","value":"40"}
{"event":"data","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346592Z","file":"progress.c","line":332,"repo":0,"t_abs":0.005493,"t_rel":0.001325,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"}
{"event":"region_leave","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346781Z","file":"progress.c","line":336,"repo":0,"t_rel":0.001524,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"data","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346324Z","file":"progress.c","line":328,"repo":0,"t_abs":0.005219,"t_rel":0.001051,"nesting":2,"category":"progress","key":"total_objects","value":"40"}
{"event":"data","sid":"20230223T165000.343809Z-Hc56d7619-P00004a47","thread":"main","time":"2023-02-23T16:50:00.346592Z","file":"progress.c","line":332,"repo":0,"t_abs":0.005493,"t_rel":0.001325,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"}
ok 12 - progress generates traces

# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<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
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 1 - 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'
*** 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 --super-prefix fictional/ read-tree -u -m "$treeH" "$treeM" 2>actual &&
	test_cmp expect actual

ok 26 - read-tree supports the super-prefix

expecting success of 1001.27 'a/b vs a, plus c/d case setup.': 
	rm -f .git/index &&
	rm -fr a &&
	: >a &&
	mkdir c &&
	: >c/d &&
	git update-index --add a c/d &&
	treeM=$(git write-tree) &&
	echo treeM $treeM &&
	git ls-tree $treeM &&
	git ls-files --stage >treeM.out &&

	rm -f a &&
	mkdir a &&
	: >a/b &&
	git update-index --add --remove a a/b &&
	treeH=$(git write-tree) &&
	echo treeH $treeH &&
	git ls-tree $treeH

treeM 3e82e8b9894d6c7982dcd25a6dad66400d52735f
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391	a
040000 tree 2a26db49a6962700da5bd4084ae0e5a22d6583ee	c
treeH 02c6f058fb950781e5b773c21e4c237db1ff4d5a
040000 tree 4277b6e69d25e5efa77c455340557b384a4c018a	a
040000 tree 2a26db49a6962700da5bd4084ae0e5a22d6583ee	c
ok 27 - a/b vs a, plus c/d case setup.

expecting success of 1001.28 'a/b vs a, plus c/d case test.': 
	read_tree_u_must_succeed -u -m "$treeH" "$treeM" &&
	git ls-files --stage | tee >treeMcheck.out &&
	test_cmp treeM.out treeMcheck.out

ok 28 - a/b vs a, plus c/d case test.

expecting success of 1001.29 '-m references the correct modified tree': 
	echo >file-a &&
	echo >file-b &&
	git add file-a file-b &&
	git commit -a -m "test for correct modified tree" &&
	git branch initial-mod &&
	echo b >file-b &&
	git commit -a -m "B" &&
	echo a >file-a &&
	git add file-a &&
	git ls-tree $(git write-tree) file-a >expect &&
	read_tree_must_succeed -m HEAD initial-mod &&
	git ls-tree $(git write-tree) file-a >actual &&
	test_cmp expect actual

[master (root-commit) 0d16b8a] test for correct modified tree
 Author: A U Thor <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'
*** 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 MD
ok 14 - change in branch A (modification)

expecting success of 1000.15 'change in branch A (modification)': git update-index MM
ok 15 - change in branch A (modification)

expecting success of 1000.16 'change in branch A (modification)': git update-index MN
ok 16 - change in branch A (modification)

expecting success of 1000.17 'change in branch A (modification)': git update-index Z/MD
ok 17 - change in branch A (modification)

expecting success of 1000.18 'change in branch A (modification)': git update-index Z/MM
ok 18 - change in branch A (modification)

expecting success of 1000.19 'change in branch A (modification)': git update-index Z/MN
ok 19 - change in branch A (modification)

expecting success of 1000.20 'change in branch A (addition)': git update-index --add AN
ok 20 - change in branch A (addition)

expecting success of 1000.21 'change in branch A (addition)': git update-index --add AA
ok 21 - change in branch A (addition)

expecting success of 1000.22 'change in branch A (addition)': git update-index --add Z/AN
ok 22 - change in branch A (addition)

expecting success of 1000.23 'change in branch A (addition)': git update-index --add Z/AA
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 DD MD ND Z/DD Z/MD Z/ND
ok 29 - change in branch B (removal)

expecting success of 1000.30 'change in branch B (modification)': git update-index DM
ok 30 - change in branch B (modification)

expecting success of 1000.31 'change in branch B (modification)': git update-index MM
ok 31 - change in branch B (modification)

expecting success of 1000.32 'change in branch B (modification)': git update-index NM
ok 32 - change in branch B (modification)

expecting success of 1000.33 'change in branch B (modification)': git update-index Z/DM
ok 33 - change in branch B (modification)

expecting success of 1000.34 'change in branch B (modification)': git update-index Z/MM
ok 34 - change in branch B (modification)

expecting success of 1000.35 'change in branch B (modification)': git update-index Z/NM
ok 35 - change in branch B (modification)

expecting success of 1000.36 'change in branch B (addition)': git update-index --add NA
ok 36 - change in branch B (addition)

expecting success of 1000.37 'change in branch B (addition)': git update-index --add AA
ok 37 - change in branch B (addition)

expecting success of 1000.38 'change in branch B (addition)': git update-index --add Z/NA
ok 38 - change in branch B (addition)

expecting success of 1000.39 'change in branch B (addition)': git update-index --add Z/AA
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'
*** 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

# passed all 2 test(s)
1..2
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 master branch anymore &&
	rm -f file2 subdir/file2 &&
	git update-index --remove file2 subdir/file2 &&
	git commit -a -m "master removes file2 and subdir/file2"

[master (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 master branch anymore
[master ee8fdb2] master 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 master creates untracked file2 &&
	echo >subdir/file2 master creates untracked subdir/file2 &&
	if err=$(read_tree_u_must_succeed -m -u master 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 master 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 master side 2>&1)
	then
		echo should have complained
		false
	else
		echo "happy to see $err"
	fi

happy to see fatal: more than one --exclude-per-directory given.
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 master 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 master &&
	echo >file2 file two is untracked on the master side &&
	echo >subdir/file2 file two is untracked on the master side &&

	read_tree_u_must_succeed -m -u branch-point master 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 'master'
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 master &&
	echo >file3 file three created in master, untracked &&
	echo >subdir/file3 file three created in master, untracked &&
	if err=$(read_tree_u_must_succeed -m -u branch-point master side 2>&1)
	then
		echo should have complained
		false
	else
		echo "happy to see $err"
	fi

HEAD is now at ee8fdb2 master removes file2 and subdir/file2
Already on 'master'
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 master &&
	echo >file3 file three created in master, untracked &&
	echo >subdir/file3 file three created in master, untracked &&

	read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore branch-point master side

HEAD is now at ee8fdb2 master removes file2 and subdir/file2
Already on 'master'
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 ee8fdb2 master 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


warning: unable to unlink 'subdir/file2/another': Not a directory
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'
*** 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 &&
     if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi
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 &&
     if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi
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 &&
     if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi
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 &&
     if read_tree_u_must_succeed -m -u $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 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 &&
     if read_tree_u_must_succeed -m -u $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 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 &&
     if read_tree_u_must_succeed -m -u $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 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 &&
     if read_tree_u_must_succeed -m -u $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 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 &&
     if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi
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'
*** 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] [--] <file>...
   or: git hash-object  --stdin-paths

    -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] [--] <file>...
   or: git hash-object  --stdin-paths

    -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] [--] <file>...
   or: git hash-object  --stdin-paths

    -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] [--] <file>...
   or: git hash-object  --stdin-paths

    -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] [--] <file>...
   or: git hash-object  --stdin-paths

    -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] [--] <file>...
   or: git hash-object  --stdin-paths

    -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 &&
	test_i18ngrep "too-short tree object" err

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: too-short tree object
ok 31 - too-short tree

expecting success of 1007.32 'malformed mode in tree': 
	hex_sha1=$(echo foo | git hash-object --stdin -w) &&
	bin_sha1=$(echo $hex_sha1 | hex2oct) &&
	printf "9100644 \0$bin_sha1" >tree-with-malformed-mode &&
	test_must_fail git hash-object -t tree tree-with-malformed-mode 2>err &&
	test_i18ngrep "malformed mode in tree entry" err

fatal: malformed mode in tree entry
ok 32 - malformed mode in tree

expecting success of 1007.33 'empty filename in tree': 
	hex_sha1=$(echo foo | git hash-object --stdin -w) &&
	bin_sha1=$(echo $hex_sha1 | hex2oct) &&
	printf "100644 \0$bin_sha1" >tree-with-empty-filename &&
	test_must_fail git hash-object -t tree tree-with-empty-filename 2>err &&
	test_i18ngrep "empty filename in tree entry" err

fatal: empty filename in tree entry
ok 33 - empty filename in tree

expecting success of 1007.34 'corrupt commit': 
	test_must_fail git hash-object -t commit --stdin </dev/null

error: bogus commit object 0000000000000000000000000000000000000000
fatal: corrupt commit
ok 34 - corrupt commit

expecting success of 1007.35 'corrupt tag': 
	test_must_fail git hash-object -t tag --stdin </dev/null

fatal: corrupt tag
ok 35 - corrupt tag

expecting success of 1007.36 'hash-object complains about bogus type name': 
	test_must_fail git hash-object -t bogus --stdin </dev/null

fatal: invalid object type "bogus"
ok 36 - hash-object complains about bogus type name

expecting success of 1007.37 'hash-object complains about truncated type name': 
	test_must_fail git hash-object -t bl --stdin </dev/null

fatal: invalid object type "bl"
ok 37 - hash-object complains about truncated type name

expecting success of 1007.38 '--literally': 
	t=1234567890 &&
	echo example | git hash-object -t $t --literally --stdin

f78b23c3f872d473c764d5fcf4fb39af8bbf2123
ok 38 - --literally

expecting success of 1007.39 '--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 39 - --literally with extra-long type

# passed all 39 test(s)
1..39
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

[master (root-commit) 4d54ff5] initial
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a
[master 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 master side &&
	test_write_lines a b/c >expect &&
	git ls-files >actual &&
	test_cmp expect actual

ok 2 - multi-read

# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<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

[master (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 master

ok 2 - non-existent index file

expecting success of 1009.3 'empty index file': 
	rm -f new-index &&
	> new-index &&
	GIT_INDEX_FILE=new-index git read-tree master

ok 3 - empty index file

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<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
error: refs/tags/1 does not point to a valid object!
777e8eb59ffb5b5722c8cd4f7d423cf3cd5ba1c8
error: refs/tags/1 does not point to a valid object!
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"
error: refs/tags/1 does not point to a valid object!
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 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 ref-in-want
ok 12 - fetching of missing objects works with ref-in-want enabled

expecting success of 0410.13 '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 dcd9300] 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> 1112912893 -0700
committer C O Mitter <committer@example.com> 1112912893 -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> 1112912893 -0700
committer C O Mitter <committer@example.com> 1112912893 -0700

bar
dcd93000cb3620e00e92f7bf15dd15265b7945e3 commit 215 156 12
ok 13 - fetching of missing objects from another promisor remote

expecting success of 0410.14 '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 e3103d2] 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            e3103d2f75518c211dd5b6abe06ec88c7ac1d760 -> FETCH_HEAD
e3103d2f75518c211dd5b6abe06ec88c7ac1d760 commit 215 157 12
ok 14 - fetching of missing objects configures a promisor remote

expecting success of 0410.15 '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) a4efc16] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo.t
Cloning into 'repo'...
foo
ok 15 - fetching of missing blobs works

expecting success of 0410.16 '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) bbef54c] 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 16 - fetching of missing trees does not fetch blobs

expecting success of 0410.17 '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_TEST_COMMIT_GRAPH=0 git -C repo -c core.commitGraph=false 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) 6aab15f] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo.t
[master b1dec3b] bar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 bar.t
6957fa0a452191e604d77bee487c33c045870def
b1dec3bac444a8f7cf518a7b91ace0b63f3a2b4d
ok 17 - rev-list stops traversal at missing and promised commit

expecting success of 0410.18 '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) 64e4430] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo.t
[master 7d4554d] bar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 bar.t
[master cd99eb2] baz
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 baz.t
5a7677c1cfd341d40bd44c43b4f874297f1ec02f
73268b48a1d52e8d7427a13e5e0a53d1ce3a2cde
45cdf0e3b8883f1e635118044731f8007b425446
ok 18 - missing tree objects with --missing=allow-promisor and --exclude-promisor-objects

expecting success of 0410.19 '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) a5e7939] commit dir/foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 dir/foo
7ce7d28db10a68b678ada6d4ecb4c006ef98efdf
ok 19 - missing non-root tree object and rev-list

expecting success of 0410.20 '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) 96b8fe3] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo.t
[master 8de0a7d] bar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a_dir/something
21f60db37d541c539ce18abed9c34cca08275e75
6caf607f93808b23e8773d5ceaf964a46fb56c9e
96b8fe3464a11619c1a316025ca9559d70376519
8de0a7d1831a9b960ff060dd7a5b24ad6d24d64e
ok 20 - rev-list stops traversal at missing and promised tree

expecting success of 0410.21 '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) 01a8213] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 something
d6f316ffccd3991a4054699cd282e93f0a553231
01a82131db12b84e117cf2846b6fa9a3725295b8
ok 21 - rev-list stops traversal at missing and promised blob

expecting success of 0410.22 '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) 17fbdf8] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo.t
[master ea417f4] bar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 bar.t
[master 77b3ab0] baz
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 baz.t
213f85e674040d949d96a3cd96c377e01a7489e5
ea417f432d150bbcc6ffcbe70901b68a8827c5ed
ok 22 - rev-list stops traversal at promisor commit, tree, and blob

expecting success of 0410.23 '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"
	done

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) dbd5891] foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo.t
[master f8d3fbb] bar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 bar.t
[master 82a6de6] baz
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 baz.t
fe36566d86f850e97a356bb713f16fdce42ae943
error: refs/tags/foo does not point to a valid object!
2466985ce14937f9b8316aabdc58fd495d2c4715
error: refs/tags/foo does not point to a valid object!
83bee6f9cf9ae59ed554e7b770aa3432ee1e0dd3
fatal: ambiguous argument 'dbd58910fc0548e9de113d1f0fe29b2019c8c2d7': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: ambiguous argument 'dbd58910fc0548e9de113d1f0fe29b2019c8c2d7': 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 23 - rev-list dies for missing objects on cmd line

expecting success of 0410.24 '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 24 - single promisor remote can be re-initialized gracefully

expecting success of 0410.25 '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) 113e21e] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 one.t
[master ba941b5] 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
113e21eacaa73fca9d70b1192181d92f218dbbe2 commit 167 126 168
ba941b5d2cdf1d78e421a6b2caaabb9edfaf502b commit 215 156 12
ok 25 - gc repacks promisor objects separately from non-promisor objects

expecting success of 0410.26 '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) 937aaf2] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 one.t
ok 26 - gc does not repack promisor objects if there are none

expecting success of 0410.27 '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 -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) 946817d] one
 Author: A U Thor <author@example.com>
[master bd6a669] two
 Author: A U Thor <author@example.com>
[master 3251618] three
 Author: A U Thor <author@example.com>
[master 4a1ecf2] four
 Author: A U Thor <author@example.com>
65865e3fad8bccd08b2c629f3f58c6294bdf6c4a
a75f34deda336372829f18b2b99616163b28120b
warning: reflog of 'HEAD' references pruned commits
warning: reflog of 'refs/heads/master' references pruned commits
warning: reflog of 'HEAD' references pruned commits
warning: reflog of 'refs/heads/master' references pruned commits
warning: reflog of 'HEAD' references pruned commits
warning: reflog of 'refs/heads/master' references pruned commits
ok 27 - repack -d does not irreversibly delete promisor objects

expecting success of 0410.28 'gc stops traversal when a missing but promised object is reached': 
	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) 5f8b2fd] my_commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 my_commit.t
5f8b2fd9bb66eeb04df79bb70601d558cc1ff3cd commit 173 129 12
ok 28 - gc stops traversal when a missing but promised object is reached

expecting success of 0410.29 '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) 307bd8f] base
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 base.t
[master fc18fe7] 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 307bd8f base
[detached HEAD 33a4c41] side2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 side2.t
[detached HEAD d42937a] side1
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:49:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 side1.t
ok 29 - do not fetch when checking existence of tree we construct ourselves

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 29 test(s)
# SKIP no web server found at '/usr/sbin/apache2'
1..29
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"
	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'
*** t1006-cat-file.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1006-cat-file/.git/
expecting success of 1006.1 'setup': 
	echo_without_newline "$hello_content" > hello &&
	git update-index --add hello

ok 1 - setup

expecting success of 1006.2 'blob exists': 
	git cat-file -e $sha1
    
ok 2 - blob exists

expecting success of 1006.3 'Type of blob is correct': 
	echo $type >expect &&
	git cat-file -t $sha1 >actual &&
	test_cmp expect actual
    
ok 3 - Type of blob is correct

expecting success of 1006.4 'Size of blob is correct': 
	echo $size >expect &&
	git cat-file -s $sha1 >actual &&
	test_cmp expect actual
    
ok 4 - Size of blob is correct

expecting success of 1006.5 '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 5 - Type of blob is correct using --allow-unknown-type

expecting success of 1006.6 '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 6 - Size of blob is correct using --allow-unknown-type

expecting success of 1006.7 '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 7 - Content of blob is correct

expecting success of 1006.8 '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 8 - Pretty content of blob is correct

expecting success of 1006.9 '--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 9 - --batch output of blob is correct

expecting success of 1006.10 '--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 10 - --batch-check output of blob is correct

expecting success of 1006.11 'custom --batch-check format': 
	echo "$type $sha1" >expect &&
	echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
	test_cmp expect actual
    
ok 11 - custom --batch-check format

expecting success of 1006.12 '--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 12 - --batch-check with %(rest)

expecting success of 1006.13 '--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 13 - --batch without type (blob)

expecting success of 1006.14 '--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 14 - --batch without size (blob)

expecting success of 1006.15 '--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 15 - --batch-check without %(rest) considers whole line

expecting success of 1006.16 'tree exists': 
	git cat-file -e $sha1
    
ok 16 - tree exists

expecting success of 1006.17 'Type of tree is correct': 
	echo $type >expect &&
	git cat-file -t $sha1 >actual &&
	test_cmp expect actual
    
ok 17 - Type of tree is correct

expecting success of 1006.18 'Size of tree is correct': 
	echo $size >expect &&
	git cat-file -s $sha1 >actual &&
	test_cmp expect actual
    
ok 18 - Size of tree is correct

expecting success of 1006.19 '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 19 - Type of tree is correct using --allow-unknown-type

expecting success of 1006.20 '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 20 - Size of tree is correct using --allow-unknown-type

expecting success of 1006.21 '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 21 - Pretty content of tree is correct

expecting success of 1006.22 '--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 22 - --batch-check output of tree is correct

expecting success of 1006.23 'custom --batch-check format': 
	echo "$type $sha1" >expect &&
	echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
	test_cmp expect actual
    
ok 23 - custom --batch-check format

expecting success of 1006.24 '--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 24 - --batch-check with %(rest)

expecting success of 1006.25 'commit exists': 
	git cat-file -e $sha1
    
ok 25 - commit exists

expecting success of 1006.26 'Type of commit is correct': 
	echo $type >expect &&
	git cat-file -t $sha1 >actual &&
	test_cmp expect actual
    
ok 26 - Type of commit is correct

expecting success of 1006.27 'Size of commit is correct': 
	echo $size >expect &&
	git cat-file -s $sha1 >actual &&
	test_cmp expect actual
    
ok 27 - Size of commit is correct

expecting success of 1006.28 '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 28 - Type of commit is correct using --allow-unknown-type

expecting success of 1006.29 '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 29 - Size of commit is correct using --allow-unknown-type

expecting success of 1006.30 '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 30 - Content of commit is correct

expecting success of 1006.31 '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 31 - Pretty content of commit is correct

expecting success of 1006.32 '--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 32 - --batch output of commit is correct

expecting success of 1006.33 '--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 33 - --batch-check output of commit is correct

expecting success of 1006.34 'custom --batch-check format': 
	echo "$type $sha1" >expect &&
	echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
	test_cmp expect actual
    
ok 34 - custom --batch-check format

expecting success of 1006.35 '--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 35 - --batch-check with %(rest)

expecting success of 1006.36 '--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 36 - --batch without type (commit)

expecting success of 1006.37 '--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 37 - --batch without size (commit)

expecting success of 1006.38 'tag exists': 
	git cat-file -e $sha1
    
ok 38 - tag exists

expecting success of 1006.39 'Type of tag is correct': 
	echo $type >expect &&
	git cat-file -t $sha1 >actual &&
	test_cmp expect actual
    
ok 39 - Type of tag is correct

expecting success of 1006.40 'Size of tag is correct': 
	echo $size >expect &&
	git cat-file -s $sha1 >actual &&
	test_cmp expect actual
    
ok 40 - Size of tag is correct

expecting success of 1006.41 '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 41 - Type of tag is correct using --allow-unknown-type

expecting success of 1006.42 '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 42 - Size of tag is correct using --allow-unknown-type

expecting success of 1006.43 '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 43 - Content of tag is correct

expecting success of 1006.44 '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 44 - Pretty content of tag is correct

expecting success of 1006.45 '--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 45 - --batch output of tag is correct

expecting success of 1006.46 '--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 46 - --batch-check output of tag is correct

expecting success of 1006.47 'custom --batch-check format': 
	echo "$type $sha1" >expect &&
	echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
	test_cmp expect actual
    
ok 47 - custom --batch-check format

expecting success of 1006.48 '--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 48 - --batch-check with %(rest)

expecting success of 1006.49 '--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 49 - --batch without type (tag)

expecting success of 1006.50 '--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 50 - --batch without size (tag)

expecting success of 1006.51 'Reach a blob from a tag pointing to it': test 'Hello World' = "$(git cat-file blob bb50ec8a71343279c59ba488a3445888e3fb624b)"
ok 51 - Reach a blob from a tag pointing to it

expecting success of 1006.52 'Passing -t with --batch fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 52 - Passing -t with --batch fails

expecting success of 1006.53 'Passing --batch with -t fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 53 - Passing --batch with -t fails

expecting success of 1006.54 'Passing -s with --batch fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 54 - Passing -s with --batch fails

expecting success of 1006.55 'Passing --batch with -s fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 55 - Passing --batch with -s fails

expecting success of 1006.56 'Passing -e with --batch fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 56 - Passing -e with --batch fails

expecting success of 1006.57 'Passing --batch with -e fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 57 - Passing --batch with -e fails

expecting success of 1006.58 'Passing -p with --batch fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 58 - Passing -p with --batch fails

expecting success of 1006.59 'Passing --batch with -p fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 59 - Passing --batch with -p fails

expecting success of 1006.60 'Passing <type> with --batch fails': 
	test_must_fail git cat-file --$batch blob $hello_sha1
    
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 60 - Passing <type> with --batch fails

expecting success of 1006.61 'Passing --batch with <type> fails': 
	test_must_fail git cat-file blob --$batch $hello_sha1
    
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 61 - Passing --batch with <type> fails

expecting success of 1006.62 'Passing sha1 with --batch fails': 
	test_must_fail git cat-file --$batch $hello_sha1
    
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 62 - Passing sha1 with --batch fails

expecting success of 1006.63 'Passing -t with --batch-check fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 63 - Passing -t with --batch-check fails

expecting success of 1006.64 'Passing --batch-check with -t fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 64 - Passing --batch-check with -t fails

expecting success of 1006.65 'Passing -s with --batch-check fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 65 - Passing -s with --batch-check fails

expecting success of 1006.66 'Passing --batch-check with -s fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 66 - Passing --batch-check with -s fails

expecting success of 1006.67 'Passing -e with --batch-check fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 67 - Passing -e with --batch-check fails

expecting success of 1006.68 'Passing --batch-check with -e fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 68 - Passing --batch-check with -e fails

expecting success of 1006.69 'Passing -p with --batch-check fails': 
	    test_must_fail git cat-file --$batch -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 69 - Passing -p with --batch-check fails

expecting success of 1006.70 'Passing --batch-check with -p fails': 
	    test_must_fail git cat-file -$opt --$batch $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 70 - Passing --batch-check with -p fails

expecting success of 1006.71 'Passing <type> with --batch-check fails': 
	test_must_fail git cat-file --$batch blob $hello_sha1
    
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 71 - Passing <type> with --batch-check fails

expecting success of 1006.72 'Passing --batch-check with <type> fails': 
	test_must_fail git cat-file blob --$batch $hello_sha1
    
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 72 - Passing --batch-check with <type> fails

expecting success of 1006.73 'Passing sha1 with --batch-check fails': 
	test_must_fail git cat-file --$batch $hello_sha1
    
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 73 - Passing sha1 with --batch-check fails

expecting success of 1006.74 'Passing -t with --follow-symlinks fails': 
	    test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 74 - Passing -t with --follow-symlinks fails

expecting success of 1006.75 'Passing -s with --follow-symlinks fails': 
	    test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 75 - Passing -s with --follow-symlinks fails

expecting success of 1006.76 'Passing -e with --follow-symlinks fails': 
	    test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 76 - Passing -e with --follow-symlinks fails

expecting success of 1006.77 'Passing -p with --follow-symlinks fails': 
	    test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
	
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>
   or: git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --filters             for blob objects, run filters on object's content
    --path <blob>         use a specific path for --textconv/--filters
    --allow-unknown-type  allow -s and -t to work with broken/corrupt objects
    --buffer              buffer --batch output
    --batch[=<format>]    show info and content of objects fed from the standard input
    --batch-check[=<format>]
                          show info about objects fed from the standard input
    --follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)
    --batch-all-objects   show all objects with --batch or --batch-check
    --unordered           do not order --batch-all-objects output

ok 77 - Passing -p with --follow-symlinks fails

expecting success of 1006.78 '--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 78 - --batch-check for a non-existent named object

expecting success of 1006.79 '--batch-check for a non-existent hash': 
    test "0000000000000000000000000000000000000042 missing
0000000000000000000000000000000000000084 missing" = \
    "$( ( echo 0000000000000000000000000000000000000042;
	 echo_without_newline 0000000000000000000000000000000000000084; ) |
       git cat-file --batch-check)"

ok 79 - --batch-check for a non-existent hash

expecting success of 1006.80 '--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 80 - --batch for an existent and a non-existent hash

expecting success of 1006.81 '--batch-check for an empty line': 
    test " missing" = "$(echo | git cat-file --batch-check)"

ok 81 - --batch-check for an empty line

expecting success of 1006.82 '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 82 - empty --batch-check notices missing object

expecting success of 1006.83 '--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 83 - --batch with multiple sha1s gives correct format

expecting success of 1006.84 '--batch-check with multiple sha1s gives correct format': 
    test "$batch_check_output" = \
    "$(echo_without_newline "$batch_check_input" | git cat-file --batch-check)"

ok 84 - --batch-check with multiple sha1s gives correct format

expecting success of 1006.85 '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 (root-commit) 8ebd92f] foo
 Author: A U Thor <author@example.com>
 3 files changed, 1 insertion(+)
 create mode 100644 foo
 create mode 100644 foo-plus
 create mode 100644 hello
ok 85 - setup blobs which are likely to delta

expecting success of 1006.86 '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 86 - confirm that neither loose blob is a delta

expecting success of 1006.87 '%(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 87 - %(deltabase) reports packed delta bases

expecting success of 1006.88 'Type of broken object is correct': 
	echo $bogus_type >expect &&
	git cat-file -t --allow-unknown-type $bogus_sha1 >actual &&
	test_cmp expect actual

ok 88 - Type of broken object is correct

expecting success of 1006.89 'Size of broken object is correct': 
	echo $bogus_size >expect &&
	git cat-file -s --allow-unknown-type $bogus_sha1 >actual &&
	test_cmp expect actual

ok 89 - Size of broken object is correct

expecting success of 1006.90 'Type of broken object is correct when type is large': 
	echo $bogus_type >expect &&
	git cat-file -t --allow-unknown-type $bogus_sha1 >actual &&
	test_cmp expect actual

ok 90 - Type of broken object is correct when type is large

expecting success of 1006.91 'Size of large broken object is correct when type is large': 
	echo $bogus_size >expect &&
	git cat-file -s --allow-unknown-type $bogus_sha1 >actual &&
	test_cmp expect actual

ok 91 - Size of large broken object is correct when type is large

expecting success of 1006.92 '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 4673f52] 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 92 - prep for symlink tests

expecting success of 1006.93 '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 93 - git cat-file --batch-check --follow-symlinks works for non-links

expecting success of 1006.94 '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 94 - git cat-file --batch-check --follow-symlinks works for in-repo, same-dir links

expecting success of 1006.95 '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 95 - git cat-file --batch-check --follow-symlinks works for in-repo, links to dirs

expecting success of 1006.96 '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 96 - git cat-file --batch-check --follow-symlinks works for broken in-repo, same-dir links

expecting success of 1006.97 '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 97 - git cat-file --batch-check --follow-symlinks works for same-dir links-to-links

expecting success of 1006.98 '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 98 - git cat-file --batch-check --follow-symlinks works for parent-dir links

expecting success of 1006.99 '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 99 - git cat-file --batch-check --follow-symlinks works for .. links

expecting success of 1006.100 '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 100 - git cat-file --batch-check --follow-symlinks works for ../.. links

expecting success of 1006.101 '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 101 - git cat-file --batch-check --follow-symlinks works for dir/ links

expecting success of 1006.102 '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 102 - git cat-file --batch-check --follow-symlinks works for dir/subdir links

expecting success of 1006.103 '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 103 - git cat-file --batch-check --follow-symlinks works for dir ->subdir links

expecting success of 1006.104 '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 104 - git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks

expecting success of 1006.105 '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 105 - git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks in dirs

expecting success of 1006.106 '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 106 - git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks in subdirs

expecting success of 1006.107 '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 107 - git cat-file --batch-check --follow-symlinks works for symlinks with internal ..

expecting success of 1006.108 '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 108 - git cat-file --batch-check --follow-symlink breaks loops

expecting success of 1006.109 '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 109 - git cat-file --batch --follow-symlink returns correct sha and mode

expecting success of 1006.110 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1006-cat-file/all-one/.git/
Cloning into 'all-two'...
done.
2d40090ddd2c612f2679520aaab9f69d52e41628
ok 110 - cat-file --batch-all-objects shows all objects

expecting success of 1006.111 '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 111 - cat-file --unordered works

# passed all 111 test(s)
1..111
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'
*** 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': 
	echo >.git/info/sparse-checkout &&
	read_tree_u_must_succeed -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt result &&
	test -f init.t &&
	test -f sub/added

ok 3 - read-tree with .git/info/sparse-checkout but disabled

expecting success of 1011.4 'read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled': 
	git config core.sparsecheckout true &&
	echo >.git/info/sparse-checkout &&
	read_tree_u_must_succeed --no-sparse-checkout -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt result &&
	test -f init.t &&
	test -f sub/added

ok 4 - read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled

expecting success of 1011.5 'read-tree with empty .git/info/sparse-checkout': 
	git config core.sparsecheckout true &&
	echo >.git/info/sparse-checkout &&
	read_tree_u_must_succeed -m -u HEAD &&
	git ls-files --stage >result &&
	test_cmp expected result &&
	git ls-files -t >result &&
	cat >expected.swt <<-\EOF &&
	S init.t
	S sub/added
	S sub/addedtoo
	S subsub/added
	EOF
	test_cmp expected.swt result &&
	! test -f init.t &&
	! test -f sub/added

ok 5 - read-tree with empty .git/info/sparse-checkout

expecting success of 1011.6 'match directories with trailing slash': 
	cat >expected.swt-noinit <<-\EOF &&
	S init.t
	H sub/added
	H sub/addedtoo
	S subsub/added
	EOF

	echo sub/ > .git/info/sparse-checkout &&
	read_tree_u_must_succeed -m -u HEAD &&
	git ls-files -t > result &&
	test_cmp expected.swt-noinit result &&
	test ! -f init.t &&
	test -f sub/added

ok 6 - match directories with trailing slash

expecting success of 1011.7 'match directories without trailing slash': 
	echo sub >.git/info/sparse-checkout &&
	read_tree_u_must_succeed -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt-noinit result &&
	test ! -f init.t &&
	test -f sub/added

ok 7 - match directories without trailing slash

expecting success of 1011.8 'match directories with negated patterns': 
	cat >expected.swt-negation <<\EOF &&
S init.t
S sub/added
H sub/addedtoo
S subsub/added
EOF

	cat >.git/info/sparse-checkout <<\EOF &&
sub
!sub/added
EOF
	git read-tree -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt-negation result &&
	test ! -f init.t &&
	test ! -f sub/added &&
	test -f sub/addedtoo

ok 8 - match directories with negated patterns

expecting success of 1011.9 'match directories with negated patterns (2)': 
	cat >expected.swt-negation2 <<\EOF &&
H init.t
H sub/added
S sub/addedtoo
H subsub/added
EOF

	cat >.git/info/sparse-checkout <<\EOF &&
/*
!sub
sub/added
EOF
	git read-tree -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt-negation2 result &&
	test -f init.t &&
	test -f sub/added &&
	test ! -f sub/addedtoo

ok 9 - match directories with negated patterns (2)

expecting success of 1011.10 'match directory pattern': 
	echo "s?b" >.git/info/sparse-checkout &&
	read_tree_u_must_succeed -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt-noinit result &&
	test ! -f init.t &&
	test -f sub/added

ok 10 - match directory pattern

expecting success of 1011.11 'checkout area changes': 
	cat >expected.swt-nosub <<-\EOF &&
	H init.t
	S sub/added
	S sub/addedtoo
	S subsub/added
	EOF

	echo init.t >.git/info/sparse-checkout &&
	read_tree_u_must_succeed -m -u HEAD &&
	git ls-files -t >result &&
	test_cmp expected.swt-nosub result &&
	test -f init.t &&
	test ! -f sub/added

ok 11 - checkout area changes

expecting success of 1011.12 'read-tree updates worktree, absent case': 
	echo sub/added >.git/info/sparse-checkout &&
	git checkout -f top &&
	read_tree_u_must_succeed -m -u HEAD^ &&
	test ! -f init.t

HEAD is now at 9598e22 modified and added
ok 12 - read-tree updates worktree, absent case

expecting success of 1011.13 'read-tree updates worktree, dirty case': 
	echo sub/added >.git/info/sparse-checkout &&
	git checkout -f top &&
	echo dirty >init.t &&
	read_tree_u_must_succeed -m -u HEAD^ &&
	grep -q dirty init.t &&
	rm init.t

HEAD is now at 9598e22 modified and added
ok 13 - read-tree updates worktree, dirty case

expecting success of 1011.14 'read-tree removes worktree, dirty case': 
	echo init.t >.git/info/sparse-checkout &&
	git checkout -f top &&
	echo dirty >added &&
	read_tree_u_must_succeed -m -u HEAD^ &&
	grep -q dirty added

HEAD is now at 9598e22 modified and added
ok 14 - read-tree removes worktree, dirty case

expecting success of 1011.15 'read-tree adds to worktree, absent case': 
	echo init.t >.git/info/sparse-checkout &&
	git checkout -f removed &&
	read_tree_u_must_succeed -u -m HEAD^ &&
	test ! -f sub/added

Previous HEAD position was 9598e22 modified and added
HEAD is now at de70956 removed
ok 15 - read-tree adds to worktree, absent case

expecting success of 1011.16 'read-tree adds to worktree, dirty case': 
	echo init.t >.git/info/sparse-checkout &&
	git checkout -f removed &&
	mkdir sub &&
	echo dirty >sub/added &&
	read_tree_u_must_succeed -u -m HEAD^ &&
	grep -q dirty sub/added

HEAD is now at de70956 removed
ok 16 - read-tree adds to worktree, dirty case

expecting success of 1011.17 'index removal and worktree narrowing at the same time': 
	echo init.t >.git/info/sparse-checkout &&
	echo sub/added >>.git/info/sparse-checkout &&
	git checkout -f top &&
	echo init.t >.git/info/sparse-checkout &&
	git checkout removed &&
	git ls-files sub/added >result &&
	test ! -f sub/added &&
	test_must_be_empty result

Previous HEAD position was de70956 removed
HEAD is now at 9598e22 modified and added
Previous HEAD position was 9598e22 modified and added
HEAD is now at de70956 removed
ok 17 - index removal and worktree narrowing at the same time

expecting success of 1011.18 'read-tree --reset removes outside worktree': 
	echo init.t >.git/info/sparse-checkout &&
	git checkout -f top &&
	git reset --hard removed &&
	git ls-files sub/added >result &&
	test_must_be_empty result

Previous HEAD position was de70956 removed
HEAD is now at 9598e22 modified and added
HEAD is now at de70956 removed
ok 18 - read-tree --reset removes outside worktree

expecting success of 1011.19 'print warnings when some worktree updates disabled': 
	echo sub >.git/info/sparse-checkout &&
	git checkout -f init &&
	mkdir sub &&
	touch sub/added sub/addedtoo &&
	# Use -q to suppress "Previous HEAD position" and "Head is now at" msgs
	git checkout -q top 2>actual &&
	cat >expected <<\EOF &&
warning: The following paths were already present and thus not updated despite sparse patterns:
	sub/added
	sub/addedtoo

After fixing the above paths, you may want to run `git sparse-checkout reapply`.
EOF
	test_i18ncmp expected actual

Previous HEAD position was de70956 removed
HEAD is now at 2519212 init
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 19 - print warnings when some worktree updates disabled

expecting success of 1011.20 'checkout without --ignore-skip-worktree-bits': 
	echo "*" >.git/info/sparse-checkout &&
	git checkout -f top &&
	test_path_is_file init.t &&
	echo sub >.git/info/sparse-checkout &&
	git checkout &&
	echo modified >> sub/added &&
	git checkout . &&
	test_path_is_missing init.t &&
	git diff --exit-code HEAD

HEAD is now at 9598e22 modified and added
Updated 1 path from the index
ok 20 - checkout without --ignore-skip-worktree-bits

expecting success of 1011.21 'checkout with --ignore-skip-worktree-bits': 
	echo "*" >.git/info/sparse-checkout &&
	git checkout -f top &&
	test_path_is_file init.t &&
	echo sub >.git/info/sparse-checkout &&
	git checkout &&
	echo modified >> sub/added &&
	git checkout --ignore-skip-worktree-bits . &&
	test_path_is_file init.t &&
	git diff --exit-code HEAD

HEAD is now at 9598e22 modified and added
Updated 3 paths from the index
ok 21 - checkout with --ignore-skip-worktree-bits

# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<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 '.gI‌T'
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 '.gI‌T/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'
*** 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
Merging:
380ce95 deleted
virtual modify
found 1 common ancestor:
461649b initial
Adding letters/file
CONFLICT (add/add): Merge conflict in letters.txt
Auto-merging letters.txt
CONFLICT (modify/delete): letters deleted in HEAD and modified in modify. Version modify of letters left in tree at letters~modify.
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
Merging:
380ce95 deleted
virtual modify
found 1 common ancestor:
461649b initial
Adding letters/file
CONFLICT (add/add): Merge conflict in letters.txt
Auto-merging letters.txt
CONFLICT (modify/delete): letters deleted in HEAD and modified in modify. Version modify of letters left in tree at letters~modify.
Automatic merge failed; fix conflicts and then commit the result.
warning: unable to unlink 'letters': Is a directory
HEAD is now at 380ce95 deleted
HEAD is now at 380ce95 deleted
Removing conflicts
Removing letters~modify
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
Merging:
ea28ef2 file and edit
virtual d-edit^0
found 1 common ancestor:
e5e228a initial
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 d-edit^0. Adding foo as foo~HEAD
Automatic merge failed; fix conflicts and then commit the result.
HEAD is now at ea28ef2 file and edit
Removing conflicts
Removing foo~HEAD
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'
*** 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 master

[master (root-commit) 21975ff] initial
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 world
[master 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 'master'
ok 1 - setup

expecting success of 1021.2 'rerere in workdir': 
	rm -rf .git/rr-cache &&
	"$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . work &&
	(
		cd work &&
		test_must_fail git merge side &&
		git rerere status >actual &&
		echo world >expect &&
		test_cmp expect actual
	)

Merging:
02943d2 hello
virtual side
found 1 common ancestor:
21975ff initial
Auto-merging world
CONFLICT (content): Merge conflict in world
Recorded preimage for 'world'
Automatic merge failed; fix conflicts and then commit the result.
ok 2 - rerere in workdir

checking known breakage of 1021.3 'rerere in workdir (relative)': 
	rm -rf .git/rr-cache &&
	"$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . krow &&
	(
		cd krow &&
		rm -f .git/rr-cache &&
		ln -s ../.git/rr-cache .git/rr-cache &&
		test_must_fail git merge side &&
		git rerere status >actual &&
		echo world >expect &&
		test_cmp expect actual
	)

Merging:
02943d2 hello
virtual side
found 1 common ancestor:
21975ff initial
Auto-merging world
CONFLICT (content): Merge conflict in world
fatal: could not create directory '.git/rr-cache'
fatal: could not create directory '.git/rr-cache'
not ok 3 - rerere in workdir (relative) # TODO known breakage

# still have 1 known breakage(s)
# passed all remaining 2 test(s)
1..3
make[4]: Leaving directory '/<<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" &&
	for c in $long; do echo $c; done >one &&
	mkdir dir &&
	for c in x y z $long a b c; do echo $c; done >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; exit 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; exit 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; exit 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'
*** 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

# passed all 10 test(s)
1..10
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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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.000601682 s, 1.7 kB/s
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
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.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)"
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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"
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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: index-pack failed
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.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed
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: index-pack failed
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
	)

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 15 - 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1060-object-corruption/missing-empty/.git/
2093db06f424f426e05da2ca90f40d2663e89387
4b825dc642cb6eb9a060e54bf8d69288fbee4904 
ok 16 - internal tree objects are not "missing"

# still have 1 known breakage(s)
# passed all remaining 15 test(s)
1..16
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"

[master (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 master': 
	git config --local --bool core.sparsecheckout true &&
	echo "!/*" >.git/info/sparse-checkout &&
	echo "/a" >>.git/info/sparse-checkout &&
	echo "/c" >>.git/info/sparse-checkout &&
	git checkout master &&
	test_path_is_file a &&
	test_path_is_missing b &&
	test_path_is_file c

Switched to branch 'master'
ok 3 - perform sparse checkout of master

expecting success of 1090.4 'merge feature branch into sparse checkout of master': 
	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 master

expecting success of 1090.5 'return to full checkout of master': 
	git checkout feature &&
	echo "/*" >.git/info/sparse-checkout &&
	git checkout master &&
	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 'master'
ok 5 - return to full checkout of master

expecting success of 1090.6 'in partial clone, sparse checkout only fetches needed blobs': 
	test_create_repo server &&
	git clone "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 &&
	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.
[master (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]      master     -> origin/master
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 6 - in partial clone, sparse checkout only fetches needed blobs

# passed all 6 test(s)
1..6
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 'setup': 
	# clone does not allow us to pass core.bigfilethreshold to
	# new repos, so set core.bigfilethreshold globally
	git config --global core.bigfilethreshold 200k &&
	printf "%2000000s" X >large1 &&
	cp large1 large2 &&
	cp large1 large3 &&
	printf "%2500000s" Y >huge &&
	GIT_ALLOC_LIMIT=1500k &&
	export GIT_ALLOC_LIMIT

ok 1 - setup

expecting success of 1050.2 'add with -c core.compression=0': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 2 - add with -c core.compression=0

expecting success of 1050.3 'add with -c core.compression=9': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 3 - add with -c core.compression=9

expecting success of 1050.4 'add with -c core.compression=0 -c pack.compression=0': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 4 - add with -c core.compression=0 -c pack.compression=0

expecting success of 1050.5 'add with -c core.compression=9 -c pack.compression=0': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 5 - add with -c core.compression=9 -c pack.compression=0

expecting success of 1050.6 'add with -c core.compression=0 -c pack.compression=9': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 6 - add with -c core.compression=0 -c pack.compression=9

expecting success of 1050.7 'add with -c core.compression=9 -c pack.compression=9': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 7 - add with -c core.compression=9 -c pack.compression=9

expecting success of 1050.8 'add with -c pack.compression=0': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 8 - add with -c pack.compression=0

expecting success of 1050.9 'add with -c pack.compression=9': 
		test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
		git $config add large1 &&
		sz=$(test_file_size .git/objects/pack/pack-*.pack) &&
		case "$expect" in
		small) test "$sz" -le 100000 ;;
		large) test "$sz" -ge 100000 ;;
		esac
	
ok 9 - add with -c pack.compression=9

expecting success of 1050.10 'add a large file or two': 
	git add large1 huge large2 &&
	# make sure we got a single packfile and no loose objects
	bad= count=0 idx= &&
	for p in .git/objects/pack/pack-*.pack
	do
		count=$(( $count + 1 ))
		if test_path_is_file "$p" &&
		   idx=${p%.pack}.idx && test_path_is_file "$idx"
		then
			continue
		fi
		bad=t
	done &&
	test -z "$bad" &&
	test $count = 1 &&
	cnt=$(git show-index <"$idx" | wc -l) &&
	test $cnt = 2 &&
	for l in .git/objects/$OIDPATH_REGEX
	do
		test_path_is_file "$l" || continue
		bad=t
	done &&
	test -z "$bad" &&

	# attempt to add another copy of the same
	git add large3 &&
	bad= count=0 &&
	for p in .git/objects/pack/pack-*.pack
	do
		count=$(( $count + 1 ))
		if test_path_is_file "$p" &&
		   idx=${p%.pack}.idx && test_path_is_file "$idx"
		then
			continue
		fi
		bad=t
	done &&
	test -z "$bad" &&
	test $count = 1

File .git/objects/[0-9a-f][0-9a-f]/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f] doesn't exist. 
ok 10 - add a large file or two

expecting success of 1050.11 'checkout a large file': 
	large1=$(git rev-parse :large1) &&
	git update-index --add --cacheinfo 100644 $large1 another &&
	git checkout another &&
	test_cmp large1 another

Updated 1 path from the index
ok 11 - checkout a large file

expecting success of 1050.12 'packsize limit': 
	test_create_repo mid &&
	(
		cd mid &&
		git config core.bigfilethreshold 64k &&
		git config pack.packsizelimit 256k &&

		# mid1 and mid2 will fit within 256k limit but
		# appending mid3 will bust the limit and will
		# result in a separate packfile.
		test-tool genrandom "a" $(( 66 * 1024 )) >mid1 &&
		test-tool genrandom "b" $(( 80 * 1024 )) >mid2 &&
		test-tool genrandom "c" $(( 128 * 1024 )) >mid3 &&
		git add mid1 mid2 mid3 &&

		count=0 &&
		for pi in .git/objects/pack/pack-*.idx
		do
			test_path_is_file "$pi" && count=$(( $count + 1 ))
		done &&
		test $count = 2 &&

		(
			git hash-object --stdin <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"
		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 12 - packsize limit

expecting success of 1050.13 'diff --raw': 
	git commit -q -m initial &&
	echo modified >>large1 &&
	git add large1 &&
	git commit -q -m modified &&
	git diff --raw HEAD^

:100644 100644 6cef6d8 171a2cf M	large1
ok 13 - diff --raw

expecting success of 1050.14 'diff --stat': 
	git diff --stat HEAD^ HEAD

 large1 | Bin 2000000 -> 2000009 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
ok 14 - diff --stat

expecting success of 1050.15 'diff': 
	git diff HEAD^ HEAD >actual &&
	grep "Binary files.*differ" actual

Binary files a/large1 and b/large1 differ
ok 15 - diff

expecting success of 1050.16 'diff --cached': 
	git diff --cached HEAD^ >actual &&
	grep "Binary files.*differ" actual

Binary files a/large1 and b/large1 differ
ok 16 - diff --cached

expecting success of 1050.17 'hash-object': 
	git hash-object large1

171a2cf5cd75bd8d405266c986591716925e9712
ok 17 - hash-object

expecting success of 1050.18 'cat-file a large file': 
	git cat-file blob :large1 >/dev/null

ok 18 - cat-file a large file

expecting success of 1050.19 'cat-file a large file from a tag': 
	git tag -m largefile largefiletag :large1 &&
	git cat-file blob largefiletag >/dev/null

ok 19 - cat-file a large file from a tag

expecting success of 1050.20 'git-show a large file': 
	git show :large1 >/dev/null


ok 20 - git-show a large file

expecting success of 1050.21 'index-pack': 
	git clone file://"$(pwd)"/.git foo &&
	GIT_DIR=non-existent git index-pack --object-format=$(test_oid algo) \
		--strict --verify foo/.git/objects/pack/*.pack

Cloning into 'foo'...
ok 21 - index-pack

expecting success of 1050.22 'repack': 
	git repack -ad

ok 22 - repack

expecting success of 1050.23 'pack-objects with large loose object': 
	SHA1=$(git hash-object huge) &&
	test_create_repo loose &&
	echo $SHA1 | git pack-objects --stdout |
		GIT_ALLOC_LIMIT=0 GIT_DIR=loose/.git git unpack-objects &&
	echo $SHA1 | GIT_DIR=loose/.git git pack-objects pack &&
	test_create_repo packed &&
	mv pack-* packed/.git/objects/pack &&
	GIT_DIR=packed/.git git cat-file blob $SHA1 >actual &&
	test_cmp huge actual

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1050-large/loose/.git/
dc5b4c5413c9a2a6ca4f121474e1c9c8ea086153
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1050-large/packed/.git/
ok 23 - pack-objects with large loose object

expecting success of 1050.24 'tar archiving': 
	git archive --format=tar HEAD >/dev/null

ok 24 - tar archiving

expecting success of 1050.25 'zip archiving, store only': 
	git archive --format=zip -0 HEAD >/dev/null

ok 25 - zip archiving, store only

expecting success of 1050.26 'zip archiving, deflate': 
	git archive --format=zip HEAD >/dev/null

ok 26 - zip archiving, deflate

expecting success of 1050.27 'fsck large blobs': 
	git fsck 2>err &&
	test_must_be_empty err

ok 27 - fsck large blobs

# passed all 27 test(s)
1..27
make[4]: Leaving directory '/<<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'
*** 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"
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1091-sparse-checkout-builtin/repo/.git/
[master (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 (empty)': 
	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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
warning: this worktree is not sparse (sparse-checkout file may not exist)
ok 2 - git sparse-checkout list (empty)

expecting success of 1091.3 '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

ok 3 - git sparse-checkout list (populated)

expecting success of 1091.4 'git sparse-checkout init': 
	git -C repo sparse-checkout init &&
	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 4 - git sparse-checkout init

expecting success of 1091.5 'git sparse-checkout list after init': 
	git -C repo sparse-checkout list >actual &&
	cat >expect <<-\EOF &&
	/*
	!/*/
	EOF
	test_cmp expect actual

ok 5 - git sparse-checkout list after init

expecting success of 1091.6 '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 6 - init with existing sparse-checkout

expecting success of 1091.7 'clone --sparse': 
	git clone --sparse "file://$(pwd)/repo" clone &&
	git -C clone sparse-checkout list >actual &&
	cat >expect <<-\EOF &&
	/*
	!/*/
	EOF
	test_cmp expect actual &&
	check_files clone a

Cloning into 'clone'...
ok 7 - clone --sparse

expecting success of 1091.8 '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 master &&
	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 'master'
Your branch is up to date with 'origin/master'.
ok 8 - interaction with clone --no-checkout (unborn index)

expecting success of 1091.9 'set enables config': 
	git init empty-config &&
	(
		cd empty-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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1091-sparse-checkout-builtin/empty-config/.git/
[master (root-commit) 236e830] test
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
ok 9 - set enables config

expecting success of 1091.10 '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 10 - set sparse-checkout using builtin

expecting success of 1091.11 '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 11 - set sparse-checkout using --stdin

expecting success of 1091.12 'add to sparse-checkout': 
	cat repo/.git/info/sparse-checkout >expect &&
	cat >add <<-\EOF &&
	pattern1
	/folder1/
	pattern2
	EOF
	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 12 - add to sparse-checkout

expecting success of 1091.13 '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 13 - cone mode: match patterns

expecting success of 1091.14 '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/*'
ok 14 - cone mode: warn on bad pattern

expecting success of 1091.15 '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 15 - sparse-checkout disable

expecting success of 1091.16 '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 16 - cone mode: init and set

expecting success of 1091.17 '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 17 - cone mode: list

expecting success of 1091.18 '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 18 - cone mode: set with nested folders

expecting success of 1091.19 '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 19 - cone mode: add independent path

expecting success of 1091.20 '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 20 - cone mode: add sibling path

expecting success of 1091.21 '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 21 - cone mode: add parent path

expecting success of 1091.22 '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 22 - not-up-to-date does not block rest of sparsification

expecting success of 1091.23 '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 file
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t1091-sparse-checkout-builtin/empty-test/.git/
[master (root-commit) d402fe2] test
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
ok 23 - revert to old sparse-checkout on empty update

expecting success of 1091.24 '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 24 - fail when lock is taken

expecting success of 1091.25 '.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 25 - .gitignore should not warn about cone mode

expecting success of 1091.26 'sparse-checkout (init|set|disable) warns with dirty status': 
	git clone repo dirty &&
	echo dirty >dirty/folder1/a &&

	git -C dirty sparse-checkout init 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 &&
	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 26 - sparse-checkout (init|set|disable) warns with dirty status

expecting success of 1091.27 '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 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 &&
	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 27 - sparse-checkout (init|set|disable) warns with unmerged status

expecting success of 1091.28 '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 &&

	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:
ok 28 - sparse-checkout reapply

expecting success of 1091.29 '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 29 - cone mode: set with core.ignoreCase=true

expecting success of 1091.30 '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.
[master 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
ok 30 - interaction with submodules

expecting success of 1091.31 'different sparse-checkouts with worktrees': 
	git -C repo worktree add --detach ../worktree &&
	check_files worktree "a deep folder1 folder2" &&
	git -C worktree sparse-checkout init --cone &&
	git -C repo sparse-checkout set folder1 &&
	git -C worktree sparse-checkout set 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 31 - different sparse-checkouts with worktrees

expecting success of 1091.32 'set using filename keeps file on-disk': 
	git -C repo sparse-checkout set a deep &&
	cat >expect <<-\EOF &&
	/*
	!/*/
	/a/
	/deep/
	EOF
	test_cmp expect repo/.git/info/sparse-checkout &&
	check_files repo a deep

ok 32 - set using filename keeps file on-disk

expecting success of 1091.33 '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
ok 33 - pattern-checks: /A/**

expecting success of 1091.34 '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
ok 34 - pattern-checks: /A/**/B/

expecting success of 1091.35 '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 35 - pattern-checks: too short

expecting success of 1091.36 '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 36 - pattern-checks: not too short

expecting success of 1091.37 '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 37 - pattern-checks: trailing "*"

expecting success of 1091.38 '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
ok 38 - pattern-checks: starting "*"

expecting success of 1091.39 '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"
	done

warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
ok 39 - pattern-checks: contained glob characters

expecting success of 1091.40 '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 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 40 - pattern-checks: escaped characters

ok 41 # skip cone mode replaces backslashes with slashes (missing MINGW)

# passed all 41 test(s)
1..41
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': 
		mkdir sub && (
			cd sub &&
			umask $u &&
			git init --shared=1 &&
			test 1 = "$(git config core.sharedrepository)"
		) &&
		actual=$(ls -l sub/.git/HEAD) &&
		case "$actual" in
		-rw-rw-r--*)
			: happy
			;;
		*)
			echo Oops, .git/HEAD is not 0664 but $actual
			false
			;;
		esac
	
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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 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': 
		mkdir sub && (
			cd sub &&
			umask $u &&
			git init --shared=1 &&
			test 1 = "$(git config core.sharedrepository)"
		) &&
		actual=$(ls -l sub/.git/HEAD) &&
		case "$actual" in
		-rw-rw-r--*)
			: happy
			;;
		*)
			echo Oops, .git/HEAD is not 0664 but $actual
			false
			;;
		esac
	
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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 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': 
	mkdir sub &&
	cd sub &&
	git init --shared=all &&
	test 2 = $(git config core.sharedrepository)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 4 - shared=all

expecting success of 1301.5 'update-server-info honors core.sharedRepository': 
	: > a1 &&
	git add a1 &&
	test_tick &&
	git commit -m a1 &&
	umask 0277 &&
	git update-server-info &&
	actual="$(ls -l .git/info/refs)" &&
	case "$actual" in
	-r--r--r--*)
		: happy
		;;
	*)
		echo Oops, .git/info/refs is not 0444
		false
		;;
	esac

[master (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/master)" &&
	case "$actual" in
	-rw-rw-*)
		: happy
		;;
	*)
		echo Ooops, .git/logs/refs/heads/master is not 0662 [$actual]
		false
		;;
	esac

ok 17 - git reflog expire honors core.sharedRepository

expecting success of 1301.18 'forced modes': 
	mkdir -p templates/hooks &&
	echo update-server-info >templates/hooks/post-update &&
	chmod +x templates/hooks/post-update &&
	echo : >random-file &&
	mkdir new &&
	(
		cd new &&
		umask 002 &&
		git init --shared=0660 --template=templates &&
		>frotz &&
		git add frotz &&
		git commit -a -m initial &&
		git repack
	) &&
	# List repository files meant to be protected; note that
	# COMMIT_EDITMSG does not matter---0mode is not about a
	# repository with a work tree.
	find new/.git -type f -name COMMIT_EDITMSG -prune -o -print |
	xargs ls -ld >actual &&

	# Everything must be unaccessible to others
	test -z "$(sed -e "/^.......---/d" actual)" &&

	# All directories must have either 2770 or 770
	test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" &&

	# post-update hook must be 0770
	test -z "$(sed -n -e "/post-update/{
		/^-rwxrwx---/d
		p
	}" actual)" &&

	# All files inside objects must be accessible by us
	test -z "$(sed -n -e "/objects\//{
		/^d/d
		/^-r.-r.----/d
		p
	}" actual)"

warning: templates not found in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/new/templates
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/new/.git/
[master (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': 
	git config core.sharedrepository 0666 &&
	umask 0022 &&
	git init --bare child.git &&
	echo "-rw-r--r--" >expect &&
	test_modebits child.git/config >actual &&
	test_cmp expect actual

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t1301-shared-repo/sub/child.git/
ok 19 - remote init does not use config from cwd

expecting success of 1301.20 're-init respects core.sharedrepository (local)': 
	git config core.sharedrepository 0666 &&
	umask 0022 &&
	echo whatever >templates/foo &&
	git init --template=templates &&
	echo "-rw-rw-rw-" >expect &&
	test_modebits .git/foo >actual &&
	test_cmp expect actual

Reinitialized existing shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 20 - re-init respects core.sharedrepository (local)

expecting success of 1301.21 're-init respects core.sharedrepository (remote)': 
	rm -rf child.git &&
	umask 0022 &&
	git init --bare --shared=0666 child.git &&
	test_path_is_missing child.git/foo &&
	git init --bare --template=templates child.git &&
	echo "-rw-rw-rw-" >expect &&
	test_modebits child.git/foo >actual &&
	test_cmp expect actual

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/child.git/
Reinitialized existing shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/child.git/
ok 21 - re-init respects core.sharedrepository (remote)

expecting success of 1301.22 'template can set core.sharedrepository': 
	rm -rf child.git &&
	umask 0022 &&
	git config core.sharedrepository 0666 &&
	cp .git/config templates/config &&
	git init --bare --template=templates child.git &&
	echo "-rw-rw-rw-" >expect &&
	test_modebits child.git/HEAD >actual &&
	test_cmp expect actual

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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 shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/child.git/
ok 22 - template can set core.sharedrepository

# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<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': 
	echo $(test_oid version) >expect &&
	git config core.repositoryformatversion >actual &&
	git -C test config core.repositoryformatversion >actual2 &&
	test_cmp expect actual &&
	test_cmp expect actual2

ok 2 - gitdir selection on normal repos

expecting success of 1302.3 'gitdir selection on unsupported repo': 
	# Make sure it would stop at test2, not trash
	test_expect_code 1 git -C test2 config core.repositoryformatversion >actual

warning: Expected git repo version <= 1, found 99
ok 3 - gitdir selection on unsupported repo

expecting success of 1302.4 'gitdir not required mode': 
	git apply --stat test.patch &&
	git -C test apply --stat ../test.patch &&
	git -C test2 apply --stat ../test.patch

 test.txt |    1 +
 1 file changed, 1 insertion(+)
 test.txt |    1 +
 1 file changed, 1 insertion(+)
warning: Expected git repo version <= 1, found 99
warning: ignoring git dir '.git': Expected git repo version <= 1, found 99
 test.txt |    1 +
 1 file changed, 1 insertion(+)
ok 4 - gitdir not required mode

expecting success of 1302.5 'gitdir required mode': 
	git apply --check --index test.patch &&
	git -C test apply --check --index ../test.patch &&
	test_must_fail git -C test2 apply --check --index ../test.patch

warning: Expected git repo version <= 1, found 99
warning: ignoring git dir '.git': Expected git repo version <= 1, found 99
error: --index outside a repository
ok 5 - gitdir required mode

expecting success of 1302.6 'allow version=0 ': 
		mkconfig 0  >.git/config &&
		check_allow
	
ok 6 - allow version=0 

expecting success of 1302.7 'allow version=1 ': 
		mkconfig 1  >.git/config &&
		check_allow
	
ok 7 - allow version=1 

expecting success of 1302.8 'allow version=1 noop': 
		mkconfig 1 noop >.git/config &&
		check_allow
	
ok 8 - allow version=1 noop

expecting success of 1302.9 'abort version=1 no-such-extension': 
		mkconfig 1 no-such-extension >.git/config &&
		check_abort
	
fatal: unknown repository extensions found:
	no-such-extension
ok 9 - abort version=1 no-such-extension

expecting success of 1302.10 'allow version=0 no-such-extension': 
		mkconfig 0 no-such-extension >.git/config &&
		check_allow
	
ok 10 - allow version=0 no-such-extension

expecting success of 1302.11 'allow version=0 noop': 
		mkconfig 0 noop >.git/config &&
		check_allow
	
ok 11 - allow version=0 noop

expecting success of 1302.12 'abort version=0 noop-v1': 
		mkconfig 0 noop-v1 >.git/config &&
		check_abort
	
fatal: repo version is 0, but v1-only extensions found:
	noop-v1
ok 12 - abort version=0 noop-v1

expecting success of 1302.13 'allow version=1 noop-v1': 
		mkconfig 1 noop-v1 >.git/config &&
		check_allow
	
ok 13 - allow version=1 noop-v1

expecting success of 1302.14 'precious-objects allowed': 
	mkconfig 1 preciousObjects >.git/config &&
	check_allow

ok 14 - precious-objects allowed

expecting success of 1302.15 'precious-objects blocks destructive repack': 
	test_must_fail git repack -ad

fatal: cannot delete packs in a precious-objects repo
ok 15 - precious-objects blocks destructive repack

expecting success of 1302.16 'other repacks are OK': 
	test_commit foo &&
	git repack

[master (root-commit) ddd63c9] foo
 Author: A U Thor <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'
*** 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'
*** 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 | egrep "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'
*** 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 master &&
	test_must_fail git config test.nine &&
	git checkout -b foo-branch &&
	echo 9 >expect &&
	git config test.nine >actual &&
	test_cmp expect actual

Switched to a new branch 'master'
Switched to a new branch 'foo-branch'
ok 30 - conditional include, onbranch

expecting success of 1305.31 'conditional include, onbranch, wildcard': 
	echo "[includeIf \"onbranch:?oo-*/**\"]path=bar10" >>.git/config &&
	echo "[test]ten=10" >.git/bar10 &&
	git checkout -b not-foo-branch/a &&
	test_must_fail git config test.ten &&

	echo 10 >expect &&
	git checkout -b foo-branch/a/b/c &&
	git config test.ten >actual &&
	test_cmp expect actual &&

	git checkout -b moo-bar/a &&
	git config test.ten >actual &&
	test_cmp expect actual

Switched to a new branch 'not-foo-branch/a'
Switched to a new branch 'foo-branch/a/b/c'
Switched to a new branch 'moo-bar/a'
ok 31 - conditional include, onbranch, wildcard

expecting success of 1305.32 'conditional include, onbranch, implicit /** for /': 
	echo "[includeIf \"onbranch:foo-dir/\"]path=bar11" >>.git/config &&
	echo "[test]eleven=11" >.git/bar11 &&
	git checkout -b not-foo-dir/a &&
	test_must_fail git config test.eleven &&

	echo 11 >expect &&
	git checkout -b foo-dir/a/b/c &&
	git config test.eleven >actual &&
	test_cmp expect actual

Switched to a new branch 'not-foo-dir/a'
Switched to a new branch 'foo-dir/a/b/c'
ok 32 - conditional include, onbranch, implicit /** for /

expecting success of 1305.33 'include cycles are detected': 
	git init --bare cycle &&
	git -C cycle config include.path cycle &&
	git config -f cycle/cycle include.path config &&
	test_must_fail \
		env GIT_TEST_GETTEXT_POISON=false \
		git -C cycle config --get-all test.value 2>stderr &&
	grep "exceeded maximum include depth" stderr

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1306-xdg-files/git/.git/
ok 8 - Setup

expecting success of 1306.9 'Exclusion of a file in the XDG ignore file': 
	mkdir -p "$HOME"/.config/git/ &&
	echo to_be_excluded >"$HOME"/.config/git/ignore &&
	test_must_fail git add to_be_excluded

The following paths are ignored by one of your .gitignore files:
to_be_excluded
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
ok 9 - Exclusion of a file in the XDG ignore file

expecting success of 1306.10 '$XDG_CONFIG_HOME overrides $HOME/.config/git/ignore': 
	mkdir -p "$HOME"/xdg/git &&
	echo content >excluded_by_xdg_only &&
	echo excluded_by_xdg_only >"$HOME"/xdg/git/ignore &&
	test_when_finished "git read-tree --empty" &&
	(XDG_CONFIG_HOME="$HOME/xdg" &&
	 export XDG_CONFIG_HOME &&
	 git add to_be_excluded &&
	 test_must_fail git add excluded_by_xdg_only
	)

The following paths are ignored by one of your .gitignore files:
excluded_by_xdg_only
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
ok 10 - $XDG_CONFIG_HOME overrides $HOME/.config/git/ignore

expecting success of 1306.11 'Exclusion in both XDG and local ignore files': 
	echo to_be_excluded >.gitignore &&
	test_must_fail git add to_be_excluded

The following paths are ignored by one of your .gitignore files:
to_be_excluded
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
ok 11 - Exclusion in both XDG and local ignore files

expecting success of 1306.12 'Exclusion in a non-XDG global ignore file': 
	rm .gitignore &&
	echo >"$HOME"/.config/git/ignore &&
	echo to_be_excluded >"$HOME"/my_gitignore &&
	git config core.excludesfile "$HOME"/my_gitignore &&
	test_must_fail git add to_be_excluded

The following paths are ignored by one of your .gitignore files:
to_be_excluded
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
ok 12 - Exclusion in a non-XDG global ignore file

expecting success of 1306.13 'Checking XDG ignore file when HOME is unset': 
	(sane_unset HOME &&
	 git config --unset core.excludesfile &&
	 git ls-files --exclude-standard --ignored >actual) &&
	test_must_be_empty actual

ok 13 - Checking XDG ignore file when HOME is unset

expecting success of 1306.14 'Checking attributes in the XDG attributes file': 
	echo foo >f &&
	git check-attr -a f >actual &&
	test_line_count -eq 0 actual &&
	echo "f attr_f" >"$HOME"/.config/git/attributes &&
	echo "f: attr_f: set" >expected &&
	git check-attr -a f >actual &&
	test_cmp expected actual

ok 14 - Checking attributes in the XDG attributes file

expecting success of 1306.15 'Checking XDG attributes when HOME is unset': 
	(sane_unset HOME &&
	 git check-attr -a f >actual) &&
	test_must_be_empty actual

ok 15 - Checking XDG attributes when HOME is unset

expecting success of 1306.16 '$XDG_CONFIG_HOME overrides $HOME/.config/git/attributes': 
	mkdir -p "$HOME"/xdg/git &&
	echo "f attr_f=xdg" >"$HOME"/xdg/git/attributes &&
	echo "f: attr_f: xdg" >expected &&
	XDG_CONFIG_HOME="$HOME/xdg" git check-attr -a f >actual &&
	test_cmp expected actual

ok 16 - $XDG_CONFIG_HOME overrides $HOME/.config/git/attributes

expecting success of 1306.17 'Checking attributes in both XDG and local attributes files': 
	echo "f -attr_f" >.gitattributes &&
	echo "f: attr_f: unset" >expected &&
	git check-attr -a f >actual &&
	test_cmp expected actual

ok 17 - Checking attributes in both XDG and local attributes files

expecting success of 1306.18 'Checking attributes in a non-XDG global attributes file': 
	rm -f .gitattributes &&
	echo "f attr_f=test" >"$HOME"/my_gitattributes &&
	git config core.attributesfile "$HOME"/my_gitattributes &&
	echo "f: attr_f: test" >expected &&
	git check-attr -a f >actual &&
	test_cmp expected actual

ok 18 - Checking attributes in a non-XDG global attributes file

expecting success of 1306.19 'write: xdg file exists and ~/.gitconfig doesn't': 
	mkdir -p "$HOME"/.config/git &&
	>"$HOME"/.config/git/config &&
	rm -f "$HOME"/.gitconfig &&
	git config --global user.name "write_config" &&
	echo "[user]" >expected &&
	echo "	name = write_config" >>expected &&
	test_cmp expected "$HOME"/.config/git/config

ok 19 - write: xdg file exists and ~/.gitconfig doesn't

expecting success of 1306.20 'write: xdg file exists and ~/.gitconfig exists': 
	>"$HOME"/.gitconfig &&
	git config --global user.name "write_gitconfig" &&
	echo "[user]" >expected &&
	echo "	name = write_gitconfig" >>expected &&
	test_cmp expected "$HOME"/.gitconfig

ok 20 - write: xdg file exists and ~/.gitconfig exists

expecting success of 1306.21 'write: ~/.config/git/ exists and config file doesn't': 
	rm -f "$HOME"/.gitconfig &&
	rm -f "$HOME"/.config/git/config &&
	git config --global user.name "write_gitconfig" &&
	echo "[user]" >expected &&
	echo "	name = write_gitconfig" >>expected &&
	test_cmp expected "$HOME"/.gitconfig

ok 21 - write: ~/.config/git/ exists and config file doesn't

# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<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 <>         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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
usage: git 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 'remove section': 
	git config --remove-section branch.zwei

ok 70 - remove section

expecting success of 1300.71 'section was removed properly': 
	test_cmp expect .git/config

ok 71 - section was removed properly

expecting success of 1300.72 '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 72 - section ending

expecting success of 1300.73 '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 73 - numbers

expecting success of 1300.74 '--int is at least 64 bits': 
	git config giga.watts 121g &&
	echo  >expect &&
	test_cmp_config 129922760704 --int --get giga.watts

ok 74 - --int is at least 64 bits

expecting success of 1300.75 '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 75 - invalid unit

expecting success of 1300.76 '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 76 - line number is reported correctly

expecting success of 1300.77 '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 77 - invalid stdin config

expecting success of 1300.78 '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
	done &&
	test_cmp expect result
ok 78 - bool

expecting success of 1300.79 'invalid bool (--get)': 

	git config bool.nobool foobar &&
	test_must_fail git config --bool --get bool.nobool
fatal: bad numeric config value 'foobar' for 'bool.nobool' in file .git/config: invalid unit
ok 79 - invalid bool (--get)

expecting success of 1300.80 'invalid bool (set)': 

	test_must_fail git config --bool bool.nobool foobar
fatal: bad numeric config value 'foobar' for 'bool.nobool': invalid unit
ok 80 - invalid bool (set)

expecting success of 1300.81 '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 81 - set --bool

expecting success of 1300.82 '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 82 - set --int

expecting success of 1300.83 '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 83 - get --bool-or-int

expecting success of 1300.84 '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 84 - set --bool-or-int

expecting success of 1300.85 '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 85 - set --path

expecting success of 1300.86 '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 86 - get --path

expecting success of 1300.87 '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 87 - get --path copes with unset $HOME

expecting success of 1300.88 '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 88 - get --path barfs on boolean variable

expecting success of 1300.89 '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 89 - get --expiry-date

expecting success of 1300.90 '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 90 - get --type=color

expecting success of 1300.91 'set --type=color': 
	rm .git/config &&
	git config --type=color foo.color "red" &&
	test_cmp expect .git/config

ok 91 - set --type=color

expecting success of 1300.92 '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 92 - get --type=color barfs on non-color

expecting success of 1300.93 '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 93 - set --type=color barfs on non-color

expecting success of 1300.94 '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 94 - quoting

expecting success of 1300.95 'key with newline': 
	test_must_fail git config "key.with
newline" 123
error: invalid key: key.with
newline
ok 95 - key with newline

expecting success of 1300.96 'value with newline': git config key.sub value.with\\\
newline
ok 96 - value with newline

expecting success of 1300.97 'value continued on next line': 
	git config --list > result &&
	test_cmp expect result

ok 97 - value continued on next line

expecting success of 1300.98 '--null --list': 
	git config --null --list >result.raw &&
	nul_to_q <result.raw >result &&
	echo >>result &&
	test_cmp expect result

ok 98 - --null --list

expecting success of 1300.99 '--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 99 - --null --get-regexp

expecting success of 1300.100 'inner whitespace kept verbatim': 
	git config section.val "foo 	  bar" &&
	test_cmp_config "foo 	  bar" section.val

ok 100 - 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.101 '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 101 - symlinked configuration

expecting success of 1300.102 '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 102 - symlink to nonexistent configuration

expecting success of 1300.103 '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.master.mergeoptions 'echo "' &&
	test_must_fail git merge master

fatal: bad alias.split-cmdline-fix string: unclosed quote
[master (root-commit) fecaf4f] initial commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo
fatal: Bad branch.master.mergeoptions string: unclosed quote
ok 103 - check split_cmdline return

expecting success of 1300.104 '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 104 - git -c "key=value" support

expecting success of 1300.105 'git -c can represent empty string': 
	echo >expect &&
	git -c foo.empty= config --path foo.empty >actual &&
	test_cmp expect actual

ok 105 - git -c can represent empty string

expecting success of 1300.106 '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 106 - key sanity-checking

expecting success of 1300.107 '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 107 - git -c works with aliases of builtins

expecting success of 1300.108 'aliases can be CamelCased': 
	test_config alias.CamelCased "rev-parse HEAD" &&
	git CamelCased >out &&
	git rev-parse HEAD >expect &&
	test_cmp expect out

ok 108 - aliases can be CamelCased

expecting success of 1300.109 '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 109 - git -c does not split values on equals

expecting success of 1300.110 'git -c dies on bogus config': 
	test_must_fail git -c core.bare=foo rev-parse

fatal: bad numeric config value 'foo' for 'core.bare': invalid unit
ok 110 - git -c dies on bogus config

expecting success of 1300.111 'git -c complains about empty key': 
	test_must_fail git -c "=foo" rev-parse

error: bogus config parameter: =foo
fatal: unable to parse command-line config
ok 111 - git -c complains about empty key

expecting success of 1300.112 'git -c complains about empty key and value': 
	test_must_fail git -c "" rev-parse

error: bogus config parameter: 
fatal: unable to parse command-line config
ok 112 - git -c complains about empty key and value

expecting success of 1300.113 '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 113 - multiple git -c appends config

expecting success of 1300.114 '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 114 - last one wins: two level vars

expecting success of 1300.115 '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 115 - last one wins: three level vars

expecting success of 1300.116 '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 116 - old-fashioned settings are case insensitive

expecting success of 1300.117 '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 117 - setting different case sensitive subsections 

expecting success of 1300.118 '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 118 - git -c a=VAL rejects invalid 'a'

expecting success of 1300.119 '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 119 - git -c .a=VAL rejects invalid '.a'

expecting success of 1300.120 '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 120 - git -c a.=VAL rejects invalid 'a.'

expecting success of 1300.121 '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 121 - git -c a.0b=VAL rejects invalid 'a.0b'

expecting success of 1300.122 '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 122 - git -c a.b c.=VAL rejects invalid 'a.b c.'

expecting success of 1300.123 '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 123 - git -c a.b c.0d=VAL rejects invalid 'a.b c.0d'

expecting success of 1300.124 '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 124 - git -c a.b=VAL works with valid 'a.b'

expecting success of 1300.125 '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 125 - git -c a.b c.d=VAL works with valid 'a.b c.d'

expecting success of 1300.126 '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.master.mergeoptions=echo "
foo.bar=true
foo.ba =z.bar=false
x.one=1
ok 126 - git -c is not confused by empty environment

expecting success of 1300.127 '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 127 - detect bogus GIT_CONFIG_PARAMETERS

expecting success of 1300.128 '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 128 - git config --edit works

expecting success of 1300.129 '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 129 - git config --edit respects core.editor

expecting success of 1300.130 '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 130 - barf on syntax error

expecting success of 1300.131 '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 131 - barf on incomplete section header

expecting success of 1300.132 '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 132 - barf on incomplete string

expecting success of 1300.133 '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 133 - urlmatch

expecting success of 1300.134 '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 134 - urlmatch favors more specific URLs

expecting success of 1300.135 '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 135 - urlmatch with wildcard

expecting success of 1300.136 '--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 136 - --unset last key removes section (except if commented)

expecting success of 1300.137 '--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 137 - --unset-all removes section if empty & uncommented

expecting success of 1300.138 '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 138 - adding a key into an empty section reuses header

expecting success of 1300.139 '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 139 - preserves existing permissions

expecting success of 1300.140 '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 140 - set up --show-origin tests

expecting success of 1300.141 '--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.cmdline=true
	EOF
	git -c user.cmdline=true config --list --show-origin >output &&
	test_cmp expect output

ok 141 - --show-origin with --list

expecting success of 1300.142 '--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 142 - --show-origin with --list --null

expecting success of 1300.143 '--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 143 - --show-origin with single file

expecting success of 1300.144 '--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 144 - --show-origin with --get-regexp

expecting success of 1300.145 '--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 145 - --show-origin getting a single key

expecting success of 1300.146 'set up custom config file': 
	CUSTOM_CONFIG_FILE="custom.conf" &&
	cat >"$CUSTOM_CONFIG_FILE" <<-\EOF
	[user]
		custom = true
	EOF

ok 146 - set up custom config file

expecting success of 1300.147 '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 147 - set up custom config file with special name characters

expecting success of 1300.148 '--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 148 - --show-origin escape special file name characters

expecting success of 1300.149 '--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 149 - --show-origin stdin

expecting success of 1300.150 '--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 150 - --show-origin stdin with file include

expecting success of 1300.151 '--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 151 - --show-origin blob

expecting success of 1300.152 '--show-origin blob ref': 
	cat >expect <<-\EOF &&
	blob:master:custom.conf	user.custom=true
	EOF
	git add "$CUSTOM_CONFIG_FILE" &&
	git commit -m "new config file" &&
	git config --blob=master:"$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
	test_cmp expect output

[master 21f66f7] new config file
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+)
 create mode 100644 custom.conf
ok 152 - --show-origin blob ref

expecting success of 1300.153 '--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
	command	user.cmdline=true
	EOF
	git -c user.cmdline=true config --list --show-scope >output &&
	test_cmp expect output

ok 153 - --show-scope with --list

expecting success of 1300.154 '--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 154 - --show-scope with --blob

expecting success of 1300.155 '--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 155 - --show-scope with --local

expecting success of 1300.156 '--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 156 - --show-scope getting a single value

expecting success of 1300.157 '--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 157 - --show-scope with --show-origin

expecting success of 1300.158 '--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 158 - --local requires a repo

expecting success of 1300.159 '--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 159 - --worktree requires a repo

expecting success of 1300.160 'identical modern --type specifiers are allowed': 
	test_cmp_config 1048576 --type=int --type=int section.big

ok 160 - identical modern --type specifiers are allowed

expecting success of 1300.161 'identical legacy --type specifiers are allowed': 
	test_cmp_config 1048576 --int --int section.big

ok 161 - identical legacy --type specifiers are allowed

expecting success of 1300.162 'identical mixed --type specifiers are allowed': 
	test_cmp_config 1048576 --int --type=int section.big

ok 162 - identical mixed --type specifiers are allowed

expecting success of 1300.163 '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 163 - non-identical modern --type specifiers are not allowed

expecting success of 1300.164 '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 164 - non-identical legacy --type specifiers are not allowed

expecting success of 1300.165 '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 165 - non-identical mixed --type specifiers are not allowed

expecting success of 1300.166 '--type allows valid type specifiers': 
	test_cmp_config true  --type=bool section.foo

ok 166 - --type allows valid type specifiers

expecting success of 1300.167 '--no-type unsets type specifiers': 
	test_cmp_config 10 --type=bool --no-type section.number

ok 167 - --no-type unsets type specifiers

expecting success of 1300.168 'unset type specifiers may be reset to conflicting ones': 
	test_cmp_config 1048576 --type=bool --no-type --type=int section.big

ok 168 - unset type specifiers may be reset to conflicting ones

expecting success of 1300.169 '--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 169 - --type rejects unknown specifiers

expecting success of 1300.170 '--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 170 - --replace-all does not invent newlines

expecting success of 1300.171 '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 171 - set all config with value-pattern

expecting success of 1300.172 '--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 172 - --replace-all and value-pattern

expecting success of 1300.173 '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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 <>         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 173 - refuse --fixed-value for incompatible actions

expecting success of 1300.174 '--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 174 - --fixed-value uses exact string matching

expecting success of 1300.175 '--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 175 - --get and --get-all with --fixed-value

# passed all 175 test(s)
1..175
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 <>         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(-)
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: bad config line 2 in blob HEAD:config
ok 11 - parse errors in blobs are properly attributed

expecting success of 1307.12 'can parse blob ending with CR': 
	printf "[some]key = value\\r" >config &&
	git add config &&
	git commit -m CR &&
	echo value >expect &&
	git config --blob=HEAD:config some.key >actual &&
	test_cmp expect actual

[master 2e1cb03] CR
 Author: A U Thor <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'
*** 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
warning: ignoring git dir '.git': Expected git repo version <= 1, found 999999
ok 6 - ignore .git/ with incompatible repository version

checking known breakage of 1309.7 'ignore .git/ with invalid repository version': 
	test_with_config "[core]repositoryformatversion = invalid"

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
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.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 "["

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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"

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 [--version] [--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>]
           <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
   sparse-checkout   Initialize and modify the sparse-checkout

examine the history and state (see also: git help revisions)
   bisect            Use binary search to find the commit that introduced a bug
   diff              Show changes between commits, commit and working tree, etc
   grep              Print lines matching a pattern
   log               Show commit logs
   show              Show various types of objects
   status            Show the working tree status

grow, mark and tweak your common history
   branch            List, create, or delete branches
   commit            Record changes to the repository
   merge             Join two or more development histories together
   rebase            Reapply commits on top of another base tip
   reset             Reset current HEAD to the specified state
   switch            Switch branches
   tag               Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch             Download objects and refs from another repository
   pull              Fetch from and integrate with another repository or a local branch
   push              Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <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'
*** 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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_i18ncmp expect actual

ok 25 - proper error on error in default config files

expecting success of 1308.26 'proper error on error in custom config files': 
	echo "[" >>syntax-error &&
	echo "fatal: bad config line 1 in file syntax-error" >expect &&
	test_expect_code 128 test-tool config configset_get_value foo.bar syntax-error 2>actual &&
	test_i18ncmp expect actual

ok 26 - proper error on error in custom config files

expecting success of 1308.27 'check line errors for malformed values': 
	mv .git/config .git/config.old &&
	test_when_finished "mv .git/config.old .git/config" &&
	cat >.git/config <<-\EOF &&
	[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'
*** 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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': 
	mkdir -p .git/custom-hooks .git/hooks &&
	write_script .git/custom-hooks/pre-commit <<-\EOF &&
	echo CUSTOM >>actual
	EOF
	write_script .git/hooks/pre-commit <<-\EOF
	echo NORMAL >>actual
	EOF

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 'symbolic-ref writes HEAD': 
	git symbolic-ref HEAD refs/heads/foo &&
	echo ref: refs/heads/foo >expect &&
	test_cmp expect .git/HEAD

ok 1 - symbolic-ref writes HEAD

expecting success of 1401.2 'symbolic-ref reads HEAD': 
	echo refs/heads/foo >expect &&
	git symbolic-ref HEAD >actual &&
	test_cmp expect actual

ok 2 - symbolic-ref reads HEAD

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': 
	echo content >file && git add file && git commit -m one &&
	test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD)

[foo (root-commit) f39a923] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
fatal: Refusing to point HEAD outside of refs/
ok 4 - symbolic-ref refuses bare sha1

expecting success of 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 &&
	test_path_is_file .git/refs/heads/foo &&
	test_path_is_missing .git/NOTHEAD

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_path_is_missing .git/refs/heads/missing &&
	test_path_is_missing .git/NOTHEAD

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

f39a92305d069e3dcdc4ce95c3001deec3642dc3
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 6782655] 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 4d9c76a] 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 39fb238] 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)

# passed all 18 test(s)
1..18
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/master $sha1 &&
	git update-ref refs/remotes/origin/master $sha1 &&
	git checkout master &&
	git checkout origin/master &&
	git checkout master &&
	refname=$(git check-ref-format --branch @{-1}) &&
	test "$refname" = "$sha1" &&
	refname2=$(git check-ref-format --branch @{-2}) &&
	test "$refname2" = master
Already on 'master'
Note: switching to 'origin/master'.

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 'master'
ok 82 - check-ref-format --branch @{-1}

expecting success of 1402.83 'check-ref-format --branch -naster': 
	test_must_fail git check-ref-format --branch -naster >actual &&
	test_must_be_empty actual

fatal: '-naster' is not a valid branch name
ok 83 - check-ref-format --branch -naster

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/master $sha1 &&
	git update-ref refs/remotes/origin/master $sha1 &&
	git checkout master &&
	git checkout origin/master &&
	git checkout master &&
	refname=$(
		cd subdir &&
		git check-ref-format --branch @{-1}
	) &&
	test "$refname" = "$sha1"

Already on 'master'
Note: switching to 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 'master'
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 master from non-repo': 
	echo master >expect &&
	nongit git check-ref-format --branch master >actual &&
	test_cmp expect actual

ok 86 - check-ref-format --branch master 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 A &&
	git tag -f -a -m "annotated A" A &&
	git checkout -b side &&
	test_commit B &&
	git tag -f -a -m "annotated B" B &&
	git checkout master &&
	test_commit C &&
	git branch B A^0

[master (root-commit) 0ddfaf1] A
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 A.t
Updated tag 'A' (was 0ddfaf1)
Switched to a new branch 'side'
[side d9df450] B
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 B.t
Updated tag 'B' (was d9df450)
Switched to branch 'master'
[master 5dee784] C
 Author: A U Thor <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/master) refs/heads/master >expect &&
	git show-ref -d master >actual &&
	test_cmp expect actual &&

	git show-ref -d heads/master >actual &&
	test_cmp expect actual &&

	git show-ref -d refs/heads/master >actual &&
	test_cmp expect actual &&

	git show-ref -d --verify refs/heads/master >actual &&
	test_cmp expect actual &&

	test_must_fail git show-ref -d --verify master >actual &&
	test_must_be_empty actual &&

	test_must_fail git show-ref -d --verify heads/master >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: 'master' - not a valid ref
fatal: 'heads/master' - not a valid ref
fatal: 'A' - not a valid ref
fatal: 'tags/A' - not a valid ref
ok 6 - show-ref -d

expecting success of 1403.7 'show-ref --heads, --tags, --head, pattern': 
	for branch in B master side
	do
		echo $(git rev-parse refs/heads/$branch) refs/heads/$branch
	done >expect.heads &&
	git show-ref --heads >actual &&
	test_cmp expect.heads actual &&

	for tag in A B C
	do
		echo $(git rev-parse refs/tags/$tag) refs/tags/$tag
	done >expect.tags &&
	git show-ref --tags >actual &&
	test_cmp expect.tags actual &&

	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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1403-show-ref/dangling/.git/
[master (root-commit) ceb9007] 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 (ceb9007ddae8b252f505d0ef9dcf579bfda7e91c)
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 "rm -rf .git/$m .git/logs expect" &&
	test_cmp expect .git/logs/$m

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 "rm -f .git/$m .git/logs/$m expect" &&
	test_cmp expect .git/logs/$m

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_i18ncmp expect e

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 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_i18ncmp 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_i18ncmp 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_cmp expect .git/logs/$m

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"
	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"
	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-02-23 16:51:59.841826210 +0000
+++ worktree-head	2023-02-23 16:51:59.701822570 +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

# passed all 189 test(s)
1..189
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"


checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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'
*** t1405-main-ref-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1405-main-ref-store/.git/
expecting success of 1405.1 'pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)': 
	test_commit one &&
	N=`find .git/refs -type f | wc -l` &&
	test "$N" != 0 &&
	$RUN pack-refs 3 &&
	N=`find .git/refs -type f | wc -l`

[master (root-commit) d79ce16] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 one.t
ok 1 - pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)

expecting success of 1405.2 'peel_ref(new-tag)': 
	git rev-parse HEAD >expected &&
	git tag -a -m new-tag new-tag HEAD &&
	$RUN peel-ref refs/tags/new-tag >actual &&
	test_cmp expected actual

ok 2 - peel_ref(new-tag)

expecting success of 1405.3 'create_symref(FOO, refs/heads/master)': 
	$RUN create-symref FOO refs/heads/master nothing &&
	echo refs/heads/master >expected &&
	git symbolic-ref FOO >actual &&
	test_cmp expected actual

ok 3 - create_symref(FOO, refs/heads/master)

expecting success of 1405.4 'delete_refs(FOO, refs/tags/new-tag)': 
	git rev-parse FOO -- &&
	git rev-parse refs/tags/new-tag -- &&
	m=$(git rev-parse master) &&
	REF_NO_DEREF=1 &&
	$RUN delete-refs $REF_NO_DEREF nothing FOO refs/tags/new-tag &&
	test_must_fail git rev-parse --symbolic-full-name FOO &&
	test_must_fail git rev-parse FOO -- &&
	test_must_fail git rev-parse refs/tags/new-tag --

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)

expecting success of 1405.5 'rename_refs(master, new-master)': 
	git rev-parse master >expected &&
	$RUN rename-ref refs/heads/master refs/heads/new-master &&
	git rev-parse new-master >actual &&
	test_cmp expected actual &&
	test_commit recreate-master

[master (root-commit) c90e4dc] recreate-master
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+)
 create mode 100644 one.t
 create mode 100644 recreate-master.t
ok 5 - rename_refs(master, new-master)

expecting success of 1405.6 'for_each_ref(refs/heads/)': 
	$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
	cat >expected <<-\EOF &&
	master 0x0
	new-master 0x0
	EOF
	test_cmp expected actual

ok 6 - for_each_ref(refs/heads/)

expecting success of 1405.7 'for_each_ref() is sorted': 
	$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
	sort actual > expected &&
	test_cmp expected actual

ok 7 - for_each_ref() is sorted

expecting success of 1405.8 'resolve_ref(new-master)': 
	SHA1=`git rev-parse new-master` &&
	echo "$SHA1 refs/heads/new-master 0x0" >expected &&
	$RUN resolve-ref refs/heads/new-master 0 >actual &&
	test_cmp expected actual

ok 8 - resolve_ref(new-master)

expecting success of 1405.9 'verify_ref(new-master)': 
	$RUN verify-ref refs/heads/new-master

ok 9 - verify_ref(new-master)

expecting success of 1405.10 'for_each_reflog()': 
	$RUN for-each-reflog | sort -k2 | cut -d" " -f 2- >actual &&
	cat >expected <<-\EOF &&
	HEAD 0x1
	refs/heads/master 0x0
	refs/heads/new-master 0x0
	EOF
	test_cmp expected actual

ok 10 - for_each_reflog()

expecting success of 1405.11 'for_each_reflog_ent()': 
	$RUN for-each-reflog-ent HEAD >actual &&
	head -n1 actual | grep one &&
	tail -n2 actual | head -n1 | grep recreate-master

0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter <committer@example.com> 1112911993 -700 commit (initial): one
0000000000000000000000000000000000000000 c90e4dc5e12224a428dedfbd45ba11e5531706a2 C O Mitter <committer@example.com> 1112912053 -700 commit (initial): recreate-master
ok 11 - for_each_reflog_ent()

expecting success of 1405.12 'for_each_reflog_ent_reverse()': 
	$RUN for-each-reflog-ent-reverse HEAD >actual &&
	head -n1 actual | grep recreate-master &&
	tail -n2 actual | head -n1 | grep one

0000000000000000000000000000000000000000 c90e4dc5e12224a428dedfbd45ba11e5531706a2 C O Mitter <committer@example.com> 1112912053 -700 commit (initial): recreate-master
0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter <committer@example.com> 1112911993 -700 commit (initial): one
ok 12 - for_each_reflog_ent_reverse()

expecting success of 1405.13 'reflog_exists(HEAD)': 
	$RUN reflog-exists HEAD

ok 13 - reflog_exists(HEAD)

expecting success of 1405.14 'delete_reflog(HEAD)': 
	$RUN delete-reflog HEAD &&
	! test -f .git/logs/HEAD

ok 14 - delete_reflog(HEAD)

expecting success of 1405.15 'create-reflog(HEAD)': 
	$RUN create-reflog HEAD 1 &&
	test -f .git/logs/HEAD

ok 15 - create-reflog(HEAD)

expecting success of 1405.16 'delete_ref(refs/heads/foo)': 
	git checkout -b foo &&
	FOO_SHA1=`git rev-parse foo` &&
	git checkout --detach &&
	test_commit bar-commit &&
	git checkout -b bar &&
	BAR_SHA1=`git rev-parse bar` &&
	$RUN update-ref updating refs/heads/foo $BAR_SHA1 $FOO_SHA1 0 &&
	echo $BAR_SHA1 >expected &&
	git rev-parse refs/heads/foo >actual &&
	test_cmp expected actual

Switched to a new branch 'foo'
HEAD is now at c90e4dc recreate-master
[detached HEAD 1e995a9] 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 16 - delete_ref(refs/heads/foo)

expecting success of 1405.17 'delete_ref(refs/heads/foo)': 
	SHA1=`git rev-parse foo` &&
	git checkout --detach &&
	$RUN delete-ref msg refs/heads/foo $SHA1 0 &&
	test_must_fail git rev-parse refs/heads/foo --

HEAD is now at 1e995a9 bar-commit
fatal: bad revision 'refs/heads/foo'
ok 17 - delete_ref(refs/heads/foo)

# passed all 17 test(s)
1..17
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-master wt &&
	(
		cd wt &&
		test_commit second
	)

[master (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-master')
HEAD is now at 50e526b first
[wt-master 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 master` &&
	echo "$SHA1 refs/heads/master 0x0" >expected &&
	$RWT resolve-ref refs/heads/master 0 >actual &&
	test_cmp expected actual &&
	$RMAIN resolve-ref refs/heads/master 0 >actual &&
	test_cmp expected actual

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-master 0x1" >expected &&
	$RWT resolve-ref HEAD 0 >actual &&
	test_cmp expected actual &&

	SHA1=`git rev-parse HEAD` &&
	echo "$SHA1 refs/heads/master 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/master)': 
	$RWT create-symref FOO refs/heads/master nothing &&
	echo refs/heads/master >expected &&
	git -C wt symbolic-ref FOO >actual &&
	test_cmp expected actual &&

	$RMAIN create-symref FOO refs/heads/wt-master nothing &&
	echo refs/heads/wt-master >expected &&
	git symbolic-ref FOO >actual &&
	test_cmp expected actual

ok 4 - create_symref(FOO, refs/heads/master)

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/master 0x0
	refs/heads/wt-master 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/master 0x0
	refs/heads/wt-master 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'
*** 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-master
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t1406-submodule-ref-store/sub/.git/
[master (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-master'
ok 1 - setup

expecting success of 1406.2 'pack_refs() not allowed': 
	test_must_fail $RUN pack-refs 3

BUG: refs/files-backend.c:138: operation pack_refs requires abilities 0x6, but only have 0x5
ok 2 - pack_refs() not allowed

expecting success of 1406.3 'peel_ref(new-tag)': 
	git -C sub rev-parse HEAD >expected &&
	git -C sub tag -a -m new-tag new-tag HEAD &&
	$RUN peel-ref refs/tags/new-tag >actual &&
	test_cmp expected actual

ok 3 - peel_ref(new-tag)

expecting success of 1406.4 'create_symref() not allowed': 
	test_must_fail $RUN create-symref FOO refs/heads/master nothing

BUG: refs/files-backend.c:138: operation create_symref requires abilities 0x2, but only have 0x5
ok 4 - create_symref() not allowed

expecting success of 1406.5 'delete_refs() not allowed': 
	test_must_fail $RUN delete-refs 0 nothing FOO refs/tags/new-tag

BUG: refs/files-backend.c:138: operation delete_refs requires abilities 0x2, but only have 0x5
ok 5 - delete_refs() not allowed

expecting success of 1406.6 'rename_refs() not allowed': 
	test_must_fail $RUN rename-ref refs/heads/master refs/heads/new-master

BUG: refs/files-backend.c:138: operation rename_ref requires abilities 0x2, but only have 0x5
ok 6 - rename_refs() not allowed

expecting success of 1406.7 'for_each_ref(refs/heads/)': 
	$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
	cat >expected <<-\EOF &&
	master 0x0
	new-master 0x0
	EOF
	test_cmp expected actual

ok 7 - for_each_ref(refs/heads/)

expecting success of 1406.8 'for_each_ref() is sorted': 
	$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
	sort actual > expected &&
	test_cmp expected actual

ok 8 - for_each_ref() is sorted

expecting success of 1406.9 'resolve_ref(master)': 
	SHA1=`git -C sub rev-parse master` &&
	echo "$SHA1 refs/heads/master 0x0" >expected &&
	$RUN resolve-ref refs/heads/master 0 >actual &&
	test_cmp expected actual

ok 9 - resolve_ref(master)

expecting success of 1406.10 'verify_ref(new-master)': 
	$RUN verify-ref refs/heads/new-master

ok 10 - verify_ref(new-master)

expecting success of 1406.11 'for_each_reflog()': 
	$RUN for-each-reflog | sort | cut -d" " -f 2- >actual &&
	cat >expected <<-\EOF &&
	HEAD 0x1
	refs/heads/master 0x0
	refs/heads/new-master 0x0
	EOF
	test_cmp expected actual

ok 11 - for_each_reflog()

expecting success of 1406.12 'for_each_reflog_ent()': 
	$RUN for-each-reflog-ent HEAD >actual &&
	head -n1 actual | grep first &&
	tail -n2 actual | head -n1 | grep master.to.new

0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -700 commit (initial): first
50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -700 checkout: moving from master to new-master
ok 12 - for_each_reflog_ent()

expecting success of 1406.13 'for_each_reflog_ent_reverse()': 
	$RUN for-each-reflog-ent-reverse HEAD >actual &&
	head -n1 actual | grep master.to.new &&
	tail -n2 actual | head -n1 | grep first

50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -700 checkout: moving from master to new-master
0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -700 commit (initial): first
ok 13 - for_each_reflog_ent_reverse()

expecting success of 1406.14 'reflog_exists(HEAD)': 
	$RUN reflog-exists HEAD

ok 14 - reflog_exists(HEAD)

expecting success of 1406.15 'delete_reflog() not allowed': 
	test_must_fail $RUN delete-reflog HEAD

BUG: refs/files-backend.c:138: operation delete_reflog requires abilities 0x2, but only have 0x5
ok 15 - delete_reflog() not allowed

expecting success of 1406.16 'create-reflog() not allowed': 
	test_must_fail $RUN create-reflog HEAD 1

BUG: refs/files-backend.c:138: operation create_reflog requires abilities 0x2, but only have 0x5
ok 16 - create-reflog() not allowed

# passed all 16 test(s)
1..16
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/master" >expect &&
	test_cmp expect actual &&

	git pack-refs --all &&
	git for-each-ref >actual &&
	echo "$one commit	refs/heads/master" >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 master &&
	git branch -D another &&

	git for-each-ref >actual &&
	echo "$two commit	refs/heads/master" >expect &&
	test_cmp expect actual &&

	git reflog expire --expire=now --all &&
	git prune &&
	git tag -m v1.0 v1.0 master

[master (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 'master'
Deleted branch another (was 169e1dc).
ok 1 - setup

expecting success of 1408.2 'no error from stale entry in packed-refs': 
	git describe master >actual 2>&1 &&
	echo "v1.0" >expect &&
	test_cmp expect actual

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'
*** 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

[master (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

[master 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

expecting success of 1411.18 'reflog exists works': 
	git reflog exists refs/heads/master &&
	! git reflog exists refs/heads/nonexistent

ok 18 - reflog exists works

# passed all 18 test(s)
1..18
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_tick &&
	echo content >file && git add file && git commit -m one &&
	git tag one &&
	echo content >>file && git add file && git commit -m two &&
	git tag two

[master (root-commit) e46513e] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
[master 441e5e0] 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 &&
	cat .git/logs/HEAD >saved_reflog

[master (root-commit) 66fe8b3] initial
 Author: A U Thor <author@example.com>
[master 5ce2b00] second
 Author: A U Thor <author@example.com>
ok 1 - setup

expecting success of 1413.2 'baseline': 
	reset_state &&
	git rev-parse master master^ >expect &&
	git log -g --format=%H >actual &&
	test_cmp expect actual

Already on 'master'
ok 2 - baseline

expecting success of 1413.3 'switch to branch': 
	reset_state &&
	git rev-parse side master master^ >expect &&
	git checkout side &&
	git log -g --format=%H >actual &&
	test_cmp expect actual

Already on 'master'
Switched to branch 'side'
ok 3 - switch to branch

expecting success of 1413.4 'detach to other': 
	reset_state &&
	git rev-parse master side master master^ >expect &&
	git checkout side &&
	git checkout master^0 &&
	git log -g --format=%H >actual &&
	test_cmp expect actual

Switched to branch 'master'
Switched to branch 'side'
Note: switching to 'master^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 master master master^ >expect &&
	git checkout master^0 &&
	git log -g --format=%H >actual &&
	test_cmp expect actual

Switched to branch 'master'
Note: switching to 'master^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 master master master master^ >expect &&
	git checkout master^0 &&
	git checkout master &&
	git log -g --format=%H >actual &&
	test_cmp expect actual

Switched to branch 'master'
Note: switching to 'master^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 'master'
ok 6 - attach to self

expecting success of 1413.7 'attach to other': 
	reset_state &&
	git rev-parse side master master master^ >expect &&
	git checkout master^0 &&
	git checkout side &&
	git log -g --format=%H >actual &&
	test_cmp expect actual

Already on 'master'
Note: switching to 'master^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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/master >output &&
	test_line_count = 4 output

[master (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
[master 7d1a0b8] dragon
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 C
[master 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
[master 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 '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/master >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 2 - rewind

expecting success of 1410.3 'corrupt and check': 

	corrupt $F &&
	check_fsck "missing blob $F"


checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
missing blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 3 - corrupt and check

expecting success of 1410.4 '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/master >output &&
	test_line_count = 5 output &&

	check_fsck "missing blob $F"

would prune commit: sheep
would prune commit: monkey
would prune reset: moving to HEAD~2
would prune commit: sheep
would prune commit: monkey
would prune reset: moving to HEAD~2
missing blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 4 - reflog expire --dry-run should not touch reflog

expecting success of 1410.5 'reflog expire': 

	git reflog expire --verbose \
		--expire=$(($test_tick - 10000)) \
		--expire-unreachable=$(($test_tick - 10000)) \
		--stale-fix \
		--all &&

	git reflog refs/heads/master >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 5 - reflog expire

expecting success of 1410.6 '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 6 - prune and fsck

expecting success of 1410.7 'recover and check': 

	recover $F &&
	check_fsck "dangling blob $F"


dangling blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 7 - recover and check

expecting success of 1410.8 '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) &&
	master_entry_count=$(git reflog show master | wc -l) &&

	test $HEAD_entry_count = 5 &&
	test $master_entry_count = 5 &&


	git reflog delete master@{1} &&
	git reflog show master > output &&
	test_line_count = $(($master_entry_count - 1)) output &&
	test $HEAD_entry_count = $(git reflog | wc -l) &&
	! grep ox < output &&

	master_entry_count=$(wc -l < output) &&

	git reflog delete HEAD@{1} &&
	test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) &&
	test $master_entry_count = $(git reflog show master | wc -l) &&

	HEAD_entry_count=$(git reflog | wc -l) &&

	git reflog delete master@{07.04.2005.15:15:00.-0700} &&
	git reflog show master > output &&
	test_line_count = $(($master_entry_count - 1)) output &&
	! grep dragon < output


[master b60a214] rat
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 9908ef9] ox
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master b93561f] tiger
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 8 - delete

expecting success of 1410.9 'rewind2': 

	test_tick && git reset --hard HEAD~2 &&
	git reflog refs/heads/master >output &&
	test_line_count = 4 output

HEAD is now at b60a214 rat
ok 9 - rewind2

expecting success of 1410.10 '--expire=never': 

	git reflog expire --verbose \
		--expire=never \
		--expire-unreachable=never \
		--all &&
	git reflog refs/heads/master >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 10 - --expire=never

expecting success of 1410.11 '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/master >output &&
	test_line_count = 4 output

ok 11 - gc.reflogexpire=never

expecting success of 1410.12 'gc.reflogexpire=false': 
	test_config gc.reflogexpire false &&
	test_config gc.reflogexpireunreachable false &&

	git reflog expire --verbose --all &&
	git reflog refs/heads/master >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 12 - gc.reflogexpire=false

expecting success of 1410.13 'git reflog expire unknown reference': 
	test_config gc.reflogexpire never &&
	test_config gc.reflogexpireunreachable never &&

	test_must_fail git reflog expire master@{123} 2>stderr &&
	test_i18ngrep "points nowhere" stderr &&
	test_must_fail git reflog expire does-not-exist 2>stderr &&
	test_i18ngrep "points nowhere" stderr

error: master@{123} points nowhere!
error: does-not-exist points nowhere!
ok 13 - git reflog expire unknown reference

expecting success of 1410.14 'checkout should not delete log for packed ref': 
	test $(git reflog master | wc -l) = 4 &&
	git branch foo &&
	git pack-refs --all &&
	git checkout foo &&
	test $(git reflog master | wc -l) = 4

Switched to branch 'foo'
ok 14 - checkout should not delete log for packed ref

expecting success of 1410.15 'stale dirs do not cause d/f conflicts (reflogs on)': 
	test_when_finished "git branch -d one || git branch -d one/two" &&

	git branch one/two master &&
	echo "one/two@{0} branch: Created from master" >expect &&
	git log -g --format="%gd %gs" one/two >actual &&
	test_cmp expect actual &&
	git branch -d one/two &&

	# now logs/refs/heads/one is a stale directory, but
	# we should move it out of the way to create "one" reflog
	git branch one master &&
	echo "one@{0} branch: Created from master" >expect &&
	git log -g --format="%gd %gs" one >actual &&
	test_cmp expect actual

Deleted branch one/two (was b60a214).
Deleted branch one (was b60a214).
ok 15 - stale dirs do not cause d/f conflicts (reflogs on)

expecting success of 1410.16 '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 master &&
	echo "one/two@{0} branch: Created from master" >expect &&
	git log -g --format="%gd %gs" one/two >actual &&
	test_cmp expect actual &&
	git branch -d one/two &&

	# same as before, but we only create a reflog for "one" if
	# it already exists, which it does not
	git -c core.logallrefupdates=false branch one master &&
	git log -g --format="%gd %gs" one >actual &&
	test_must_be_empty actual

Deleted branch one/two (was b60a214).
Deleted branch one (was b60a214).
ok 16 - 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.17 '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
			done
		else
			printf X
		fi &&
		printf "\n"
	done >.git/logs/refs/heads/reflogskip &&
	git rev-parse reflogskip@{73} >actual &&
	echo ${zf}03 >expect &&
	test_cmp expect actual

Switched to a new branch 'reflogskip'
ok 17 - parsing reverse reflogs at BUFSIZ boundaries

expecting success of 1410.18 'no segfaults for reflog containing non-commit sha1s': 
	git update-ref --create-reflog -m "Creating ref" \
		refs/tests/tree-in-reflog HEAD &&
	git update-ref -m "Forcing tree" refs/tests/tree-in-reflog HEAD^{tree} &&
	git update-ref -m "Restoring to commit" refs/tests/tree-in-reflog HEAD &&
	git reflog refs/tests/tree-in-reflog

b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit
b60a214 refs/tests/tree-in-reflog@{2}: Creating ref
ok 18 - no segfaults for reflog containing non-commit sha1s

checking known breakage of 1410.19 'reflog with non-commit entries displays all entries': 
	git reflog refs/tests/tree-in-reflog >actual &&
	test_line_count = 3 actual

test_line_count: line count for actual != 3
b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit
b60a214 refs/tests/tree-in-reflog@{2}: Creating ref
not ok 19 - reflog with non-commit entries displays all entries # TODO known breakage

expecting success of 1410.20 'reflog expire operates on symref not referrent': 
	git branch --create-reflog the_symref &&
	git branch --create-reflog referrent &&
	git update-ref referrent HEAD &&
	git symbolic-ref refs/heads/the_symref refs/heads/referrent &&
	test_when_finished "rm -f .git/refs/heads/referrent.lock" &&
	touch .git/refs/heads/referrent.lock &&
	git reflog expire --expire=all the_symref

ok 20 - reflog expire operates on symref not referrent

expecting success of 1410.21 'continue walking past root commits': 
	git init orphanage &&
	(
		cd orphanage &&
		cat >expect <<-\EOF &&
		HEAD@{0} commit (initial): orphan2-1
		HEAD@{1} commit: orphan1-2
		HEAD@{2} commit (initial): orphan1-1
		HEAD@{3} commit (initial): initial
		EOF
		test_commit initial &&
		git checkout --orphan orphan1 &&
		test_commit orphan1-1 &&
		test_commit orphan1-2 &&
		git checkout --orphan orphan2 &&
		test_commit orphan2-1 &&
		git log -g --format="%gd %gs" >actual &&
		test_cmp expect actual
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1410-reflog/orphanage/.git/
[master (root-commit) 2aabd22] 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) e2a0da2] 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 9bdda66] 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) b47ea8f] 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 21 - continue walking past root commits

expecting success of 1410.22 'expire with multiple worktrees': 
	git init main-wt &&
	(
		cd main-wt &&
		test_tick &&
		test_commit foo &&
		git  worktree add link-wt &&
		test_tick &&
		test_commit -C link-wt foobar &&
		test_tick &&
		git reflog expire --verbose --all --expire=$test_tick &&
		test_must_be_empty .git/worktrees/link-wt/logs/HEAD
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1410-reflog/main-wt/.git/
[master (root-commit) af4983b] 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 af4983b foo
[link-wt 7368abb] 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 22 - expire with multiple worktrees

# still have 1 known breakage(s)
# passed all remaining 21 test(s)
1..22
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 master &&
	echo evil-merge-content >>one.t &&
	test_tick &&
	git commit --no-edit -a

[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
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
Merging:
897c206 three
virtual master
found 1 common ancestor:
d79ce16 one
Automatic merge went well; stopped before committing as requested
[side 0a3eb79] Merge branch 'master' into side
 Author: A U Thor <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}master${SQ} into side
	HEAD@{1} commit: three
	HEAD@{2} checkout: moving from master to side
	HEAD@{3} commit: two
	HEAD@{4} commit (initial): one
	EOF

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 master before
	#      side when breaking ties.
	{
		do_walk --date=unix HEAD &&
		do_walk --date=unix side &&
		do_walk --date=unix master
	} >expect.raw &&
	sort -t "{" -k 2nr -k 1 <expect.raw >expect &&
	do_walk --date=unix HEAD master 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 [OPTION] <commit-id>... [ -- paths... ]
  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
    --quiet
  ordering output:
    --topo-order
    --date-order
    --reverse
  formatting output:
    --parents
    --children
    --objects | --objects-edge
    --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'
*** 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': 
	mkdir -p .git/refs/heads/main-worktree &&
	test_when_finished rm -f .git/refs/heads/main-worktree/HEAD &&
	cp .git/HEAD .git/refs/heads/main-worktree/HEAD &&
	git rev-parse main-worktree/HEAD 2>warn &&
	grep "main-worktree/HEAD.*ambiguous" warn

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': 
	mkdir -p .git/refs/heads/worktrees/wt1 &&
	test_when_finished rm -f .git/refs/heads/worktrees/wt1/HEAD &&
	cp .git/HEAD .git/refs/heads/worktrees/wt1/HEAD &&
	git rev-parse worktrees/wt1/HEAD 2>warn &&
	grep "worktrees/wt1/HEAD.*ambiguous" warn

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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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': 
	mkdir -p .git/hooks &&
	test_commit PRE &&
	PRE_OID=$(git rev-parse PRE) &&
	test_commit POST &&
	POST_OID=$(git rev-parse POST)

[master (root-commit) 63ac8e7] PRE
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 PRE.t
[master 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': 
	test_when_finished "rm .git/hooks/reference-transaction" &&
	git reset --hard PRE &&
	write_script .git/hooks/reference-transaction <<-\EOF &&
		echo "$*" >>actual
	EOF
	cat >expect <<-EOF &&
		prepared
		committed
	EOF
	git update-ref HEAD POST &&
	test_cmp expect actual

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': 
	test_when_finished "rm .git/hooks/reference-transaction" &&
	git reset --hard PRE &&
	write_script .git/hooks/reference-transaction <<-\EOF &&
		if test "$1" = prepared
		then
			exit 1
		fi
	EOF
	test_must_fail git update-ref HEAD POST 2>err &&
	test_i18ngrep "ref updates aborted by hook" err

HEAD is now at 63ac8e7 PRE
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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 .git/hooks/reference-transaction actual" &&
	git reset --hard PRE &&
	write_script .git/hooks/reference-transaction <<-\EOF &&
		if test "$1" = prepared
		then
			while read -r line
			do
				printf "%s\n" "$line"
			done >actual
		fi
	EOF
	cat >expect <<-EOF &&
		$ZERO_OID $POST_OID HEAD
		$ZERO_OID $POST_OID refs/heads/master
	EOF
	git update-ref HEAD POST <<-EOF &&
		update HEAD $ZERO_OID $POST_OID
		update refs/heads/master $ZERO_OID $POST_OID
	EOF
	test_cmp expect actual

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 .git/hooks/reference-transaction actual" &&
	git reset --hard PRE &&
	write_script .git/hooks/reference-transaction <<-\EOF &&
		if test "$1" = committed
		then
			while read -r line
			do
				printf "%s\n" "$line"
			done >actual
		fi
	EOF
	cat >expect <<-EOF &&
		$ZERO_OID $POST_OID HEAD
		$ZERO_OID $POST_OID refs/heads/master
	EOF
	git update-ref HEAD POST &&
	test_cmp expect actual

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 .git/hooks/reference-transaction actual" &&
	git reset --hard PRE &&
	write_script .git/hooks/reference-transaction <<-\EOF &&
		if test "$1" = aborted
		then
			while read -r line
			do
				printf "%s\n" "$line"
			done >actual
		fi
	EOF
	cat >expect <<-EOF &&
		$ZERO_OID $POST_OID HEAD
		$ZERO_OID $POST_OID refs/heads/master
	EOF
	git update-ref --stdin <<-EOF &&
		start
		update HEAD POST $ZERO_OID
		update refs/heads/master POST $ZERO_OID
		abort
	EOF
	test_cmp expect actual

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 &&

	write_script target-repo.git/hooks/reference-transaction <<-\EOF &&
		echo $0 "$@" >>actual
	EOF

	write_script target-repo.git/hooks/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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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'
*** 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

[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 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/master

	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_26734
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/master

	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_26777
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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
warning: ignoring 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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	git branch -d broken...ref &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	git branch -D broken...ref &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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 "rm -f .git/refs/heads/broken...ref" &&
	test_must_fail git branch broken...ref &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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 "rm -f .git/refs/heads/broken...ref" &&
	test_might_fail git branch -D goodref &&
	git branch goodref &&
	test_must_fail git branch -m goodref broken...ref &&
	test_cmp_rev master goodref &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	git branch -m broken...ref renamed &&
	test_cmp_rev master renamed &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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 "rm -f .git/refs/heads/broken...ref" &&
	test_must_fail git push "file://$(pwd)" HEAD:refs/heads/broken...ref &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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 &&
		cp .git/refs/heads/master .git/refs/heads/broken...ref
	) &&
	git -C src push --mirror "file://$top/dest" &&
	git -C dest branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1430-bad-ref-name/src/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t1430-bad-ref-name/dest/.git/
[master (root-commit) 4331c28] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 one.t
[master (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
remote: warning: ignoring ref with broken name refs/heads/broken...ref        
To file:///<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/dest
 + 9db02ea...4331c28 master -> master (forced update)
 - [deleted]         two
 * [new tag]         one -> one
warning: ignoring ref with broken name refs/heads/broken...ref
not ok 14 - push --mirror can delete badly named ref # TODO known breakage

expecting success of 1430.15 'rev-parse skips symref pointing to broken name': 
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	git branch shadow one &&
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	printf "ref: refs/heads/broken...ref\n" >.git/refs/tags/shadow &&
	test_when_finished "rm -f .git/refs/tags/shadow" &&
	git rev-parse --verify one >expect &&
	git rev-parse --verify shadow >actual 2>err &&
	test_cmp expect actual &&
	test_i18ngrep "ignoring dangling symref refs/tags/shadow" err

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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
	test_when_finished "rm -f .git/refs/heads/badname" &&
	printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref &&
	test_when_finished "rm -f .git/refs/heads/broken...symref" &&
	git for-each-ref >output 2>error &&
	! grep -e "broken\.\.\.ref" output &&
	! grep -e "badname" output &&
	! grep -e "broken\.\.\.symref" output &&
	test_i18ngrep "ignoring ref with broken name refs/heads/broken\.\.\.ref" error &&
	test_i18ngrep "ignoring broken ref refs/heads/badname" error &&
	test_i18ngrep "ignoring ref with broken name refs/heads/broken\.\.\.symref" error

warning: ignoring ref with broken name refs/heads/broken...ref
warning: ignoring broken ref refs/heads/badname
warning: ignoring ref with broken name refs/heads/broken...symref
ok 16 - for-each-ref emits warnings for broken names

expecting success of 1430.17 'update-ref -d can delete broken name': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	git update-ref -d refs/heads/broken...ref >output 2>error &&
	test_must_be_empty output &&
	test_must_be_empty error &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

ok 17 - update-ref -d can delete broken name

expecting success of 1430.18 'branch -d can delete broken name': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	git branch -d broken...ref >output 2>error &&
	test_i18ngrep "Deleted branch broken...ref (was broken)" output &&
	test_must_be_empty error &&
	git branch >output 2>error &&
	! grep -e "broken\.\.\.ref" error &&
	! grep -e "broken\.\.\.ref" output

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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
	test_when_finished "rm -f .git/refs/heads/badname" &&
	git update-ref --no-deref -d refs/heads/badname >output 2>error &&
	test_path_is_missing .git/refs/heads/badname &&
	test_must_be_empty output &&
	test_must_be_empty error

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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
	test_when_finished "rm -f .git/refs/heads/badname" &&
	git branch -d badname >output 2>error &&
	test_path_is_missing .git/refs/heads/badname &&
	test_i18ngrep "Deleted branch badname (was refs/heads/broken\.\.\.ref)" output &&
	test_must_be_empty error

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': 
	printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
	test_when_finished "rm -f .git/refs/heads/badname" &&
	git update-ref --no-deref -d refs/heads/badname >output 2>error &&
	test_path_is_missing .git/refs/heads/badname &&
	test_must_be_empty output &&
	test_must_be_empty error

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': 
	printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
	test_when_finished "rm -f .git/refs/heads/badname" &&
	git branch -d badname >output 2>error &&
	test_path_is_missing .git/refs/heads/badname &&
	test_i18ngrep "Deleted branch badname (was refs/heads/broken\.\.\.ref)" output &&
	test_must_be_empty error

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': 
	cp .git/refs/heads/master .git/refs/heads/broken...ref &&
	test_when_finished "rm -f .git/refs/heads/broken...ref" &&
	printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
	test_when_finished "rm -f .git/refs/heads/badname" &&
	git update-ref -d refs/heads/badname >output 2>error &&
	test_path_is_missing .git/refs/heads/broken...ref &&
	test_must_be_empty output &&
	test_must_be_empty error

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/master\n" >.git/refs/heads/broken...symref &&
	test_when_finished "rm -f .git/refs/heads/broken...symref" &&
	git update-ref --no-deref -d refs/heads/broken...symref >output 2>error &&
	test_path_is_missing .git/refs/heads/broken...symref &&
	test_must_be_empty output &&
	test_must_be_empty error

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/master\n" >.git/refs/heads/broken...symref &&
	test_when_finished "rm -f .git/refs/heads/broken...symref" &&
	git branch -d broken...symref >output 2>error &&
	test_path_is_missing .git/refs/heads/broken...symref &&
	test_i18ngrep "Deleted branch broken...symref (was refs/heads/master)" output &&
	test_must_be_empty error

Deleted branch broken...symref (was refs/heads/master).
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 "rm -f .git/refs/heads/broken...symref" &&
	git update-ref --no-deref -d refs/heads/broken...symref >output 2>error &&
	test_path_is_missing .git/refs/heads/broken...symref &&
	test_must_be_empty output &&
	test_must_be_empty error

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 "rm -f .git/refs/heads/broken...symref" &&
	git branch -d broken...symref >output 2>error &&
	test_path_is_missing .git/refs/heads/broken...symref &&
	test_i18ngrep "Deleted branch broken...symref (was refs/heads/idonotexist)" output &&
	test_must_be_empty error

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/master" >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/master" >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/master" >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/master >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/master "" >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/master >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'
*** 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

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 'git-common-dir from worktree root': 
	echo .git >expect &&
	git rev-parse --git-common-dir >actual &&
	test_cmp expect actual

ok 60 - git-common-dir from worktree root

expecting success of 1500.61 'git-common-dir inside sub-dir': 
	mkdir -p path/to/child &&
	test_when_finished "rm -rf path" &&
	echo "$(git -C path/to/child rev-parse --show-cdup).git" >expect &&
	git -C path/to/child rev-parse --git-common-dir >actual &&
	test_cmp expect actual

ok 61 - git-common-dir inside sub-dir

expecting success of 1500.62 'git-path from worktree root': 
	echo .git/objects >expect &&
	git rev-parse --git-path objects >actual &&
	test_cmp expect actual

ok 62 - git-path from worktree root

expecting success of 1500.63 'git-path inside sub-dir': 
	mkdir -p path/to/child &&
	test_when_finished "rm -rf path" &&
	echo "$(git -C path/to/child rev-parse --show-cdup).git/objects" >expect &&
	git -C path/to/child rev-parse --git-path objects >actual &&
	test_cmp expect actual

ok 63 - git-path inside sub-dir

expecting success of 1500.64 'rev-parse --is-shallow-repository in shallow repo': 
	test_commit test_commit &&
	echo true >expect &&
	git clone --depth 1 --no-local . shallow &&
	test_when_finished "rm -rf shallow" &&
	git -C shallow rev-parse --is-shallow-repository >actual &&
	test_cmp expect actual

[master (root-commit) 389d16e] test_commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 test_commit.t
Cloning into 'shallow'...
ok 64 - rev-parse --is-shallow-repository in shallow repo

expecting success of 1500.65 'rev-parse --is-shallow-repository in non-shallow repo': 
	echo false >expect &&
	git rev-parse --is-shallow-repository >actual &&
	test_cmp expect actual

ok 65 - rev-parse --is-shallow-repository in non-shallow repo

expecting success of 1500.66 'rev-parse --show-object-format in repo': 
	echo "$(test_oid algo)" >expect &&
	git rev-parse --show-object-format >actual &&
	test_cmp expect actual &&
	git rev-parse --show-object-format=storage >actual &&
	test_cmp expect actual &&
	git rev-parse --show-object-format=input >actual &&
	test_cmp expect actual &&
	git rev-parse --show-object-format=output >actual &&
	test_cmp expect actual &&
	test_must_fail git rev-parse --show-object-format=squeamish-ossifrage 2>err &&
	grep "unknown mode for --show-object-format: squeamish-ossifrage" err

fatal: unknown mode for --show-object-format: squeamish-ossifrage
ok 66 - rev-parse --show-object-format in repo

expecting success of 1500.67 '--show-toplevel from subdir of working tree': 
	pwd >expect &&
	git -C sub/dir rev-parse --show-toplevel >actual &&
	test_cmp expect actual

ok 67 - --show-toplevel from subdir of working tree

expecting success of 1500.68 '--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 68 - --show-toplevel from inside .git

expecting success of 1500.69 '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 master &&
	git -C super/dir/sub checkout -b branch2 master &&
	test_commit -C super/dir/sub branch2_commit &&
	git -C super add dir/sub &&
	test_commit -C super branch2_commit &&
	test_must_fail git -C super merge branch1 &&

	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/
[master (root-commit) cbdc642] 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/
[master (root-commit) 2eb1b96] 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.
[master 7cabc11] 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 2aa4ded] branch1_commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 branch1_commit.t
[branch1 7e8b966] 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 10a2528] branch2_commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 branch2_commit.t
[branch2 8d6224f] branch2_commit
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 branch2_commit.t
Merging:
8d6224f branch2_commit
virtual branch1
found 1 common ancestor:
7cabc11 submodule_add
Failed to merge submodule dir/sub (merge following commits not found)
Auto-merging dir/sub
CONFLICT (submodule): Merge conflict in dir/sub
Automatic merge failed; fix conflicts and then commit the result.
ok 69 - showing the superproject correctly

# passed all 69 test(s)
1..69
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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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_i18ncmp expect output

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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

# passed all 27 test(s)
1..27
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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 'setup: helpers for corruption tests': 
	sha1_file() {
		remainder=${1#??} &&
		firsttwo=${1%$remainder} &&
		echo ".git/objects/$firsttwo/$remainder"
	} &&

	remove_object() {
		rm "$(sha1_file "$1")"
	}

ok 4 - setup: helpers for corruption tests

expecting success of 1450.5 'object with bad sha1': 
	sha=$(echo blob | git hash-object -w --stdin) &&
	old=$(test_oid_to_path "$sha") &&
	new=$(dirname $old)/$(test_oid ff_2) &&
	sha="$(dirname $new)$(basename $new)" &&
	mv .git/objects/$old .git/objects/$new &&
	test_when_finished "remove_object $sha" &&
	git update-index --add --cacheinfo 100644 $sha foo &&
	test_when_finished "git read-tree -u --reset HEAD" &&
	tree=$(git write-tree) &&
	test_when_finished "remove_object $tree" &&
	cmt=$(echo bogus | git commit-tree $tree) &&
	test_when_finished "remove_object $cmt" &&
	git update-ref refs/heads/bogus $cmt &&
	test_when_finished "git update-ref -d refs/heads/bogus" &&

	test_must_fail git fsck 2>out &&
	test_i18ngrep "$sha.*corrupt" out

missing blob 63ffffffffffffffffffffffffffffffffffffff
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: 63ffffffffffffffffffffffffffffffffffffff: object corrupt or missing: .git/objects/63/ffffffffffffffffffffffffffffffffffffff
ok 5 - object with bad sha1

expecting success of 1450.6 'branch pointing to non-commit': 
	git rev-parse HEAD^{tree} >.git/refs/heads/invalid &&
	test_when_finished "git update-ref -d refs/heads/invalid" &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "not a commit" out

error: refs/heads/invalid: not a commit
ok 6 - branch pointing to non-commit

expecting success of 1450.7 'HEAD link pointing at a funny object': 
	test_when_finished "mv .git/SAVED_HEAD .git/HEAD" &&
	mv .git/HEAD .git/SAVED_HEAD &&
	echo $ZERO_OID >.git/HEAD &&
	# avoid corrupt/broken HEAD from interfering with repo discovery
	test_must_fail env GIT_DIR=.git git fsck 2>out &&
	test_i18ngrep "detached HEAD points" out

dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: HEAD: detached HEAD points at nothing
ok 7 - HEAD link pointing at a funny object

expecting success of 1450.8 'HEAD link pointing at a funny place': 
	test_when_finished "mv .git/SAVED_HEAD .git/HEAD" &&
	mv .git/HEAD .git/SAVED_HEAD &&
	echo "ref: refs/funny/place" >.git/HEAD &&
	# avoid corrupt/broken HEAD from interfering with repo discovery
	test_must_fail env GIT_DIR=.git git fsck 2>out &&
	test_i18ngrep "HEAD points to something strange" out

dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: HEAD points to something strange (refs/funny/place)
ok 8 - HEAD link pointing at a funny place

expecting success of 1450.9 'HEAD link pointing at a funny object (from different wt)': 
	test_when_finished "mv .git/SAVED_HEAD .git/HEAD" &&
	test_when_finished "rm -rf .git/worktrees wt" &&
	git worktree add wt &&
	mv .git/HEAD .git/SAVED_HEAD &&
	echo $ZERO_OID >.git/HEAD &&
	# avoid corrupt/broken HEAD from interfering with repo discovery
	test_must_fail git -C wt fsck 2>out &&
	test_i18ngrep "main-worktree/HEAD: detached HEAD points" out

Preparing worktree (new branch 'wt')
HEAD is now at c9145d6 B
error: main-worktree/HEAD: detached HEAD points at nothing
ok 9 - HEAD link pointing at a funny object (from different wt)

expecting success of 1450.10 'other worktree HEAD link pointing at a funny object': 
	test_when_finished "rm -rf .git/worktrees other" &&
	git worktree add other &&
	echo $ZERO_OID >.git/worktrees/other/HEAD &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "worktrees/other/HEAD: detached HEAD points" out

Preparing worktree (new branch 'other')
HEAD is now at c9145d6 B
error: worktrees/other/HEAD: detached HEAD points at nothing
ok 10 - other worktree HEAD link pointing at a funny object

expecting success of 1450.11 'other worktree HEAD link pointing at missing object': 
	test_when_finished "rm -rf .git/worktrees other" &&
	git worktree add other &&
	echo "Contents missing from repo" | git hash-object --stdin >.git/worktrees/other/HEAD &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "worktrees/other/HEAD: invalid sha1 pointer" out

Preparing worktree (checking out 'other')
HEAD is now at c9145d6 B
error: worktrees/other/HEAD: invalid sha1 pointer 45ea5fdbd862b3f0e413a6c2c951347efa0bb114
ok 11 - other worktree HEAD link pointing at missing object

expecting success of 1450.12 'other worktree HEAD link pointing at a funny place': 
	test_when_finished "rm -rf .git/worktrees other" &&
	git worktree add other &&
	echo "ref: refs/funny/place" >.git/worktrees/other/HEAD &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "worktrees/other/HEAD points to something strange" out

Preparing worktree (checking out 'other')
HEAD is now at c9145d6 B
error: worktrees/other/HEAD points to something strange (refs/funny/place)
ok 12 - other worktree HEAD link pointing at a funny place

expecting success of 1450.13 'commit with multiple signatures is okay': 
	git cat-file commit HEAD >basis &&
	cat >sigs <<-EOF &&
	gpgsig -----BEGIN PGP SIGNATURE-----
	  VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg==
	  -----END PGP SIGNATURE-----
	gpgsig-sha256 -----BEGIN PGP SIGNATURE-----
	  VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg==
	  -----END PGP SIGNATURE-----
	EOF
	sed -e "/^committer/q" basis >okay &&
	cat sigs >>okay &&
	echo >>okay &&
	sed -e "1,/^$/d" basis >>okay &&
	cat okay &&
	new=$(git hash-object -t commit -w --stdin <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 13 - commit with multiple signatures is okay

expecting success of 1450.14 'email without @ is okay': 
	git cat-file commit HEAD >basis &&
	sed "s/@/AT/" basis >okay &&
	new=$(git hash-object -t commit -w --stdin <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 14 - email without @ is okay

expecting success of 1450.15 'email with embedded > is not okay': 
	git cat-file commit HEAD >basis &&
	sed "s/@[a-z]/&>/" basis >bad-email &&
	new=$(git hash-object -t commit -w --stdin <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 15 - email with embedded > is not okay

expecting success of 1450.16 'missing < email delimiter is reported nicely': 
	git cat-file commit HEAD >basis &&
	sed "s/<//" basis >bad-email-2 &&
	new=$(git hash-object -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 16 - missing < email delimiter is reported nicely

expecting success of 1450.17 'missing email is reported nicely': 
	git cat-file commit HEAD >basis &&
	sed "s/[a-z]* <[^>]*>//" basis >bad-email-3 &&
	new=$(git hash-object -t commit -w --stdin <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 17 - missing email is reported nicely

expecting success of 1450.18 '> in name is reported': 
	git cat-file commit HEAD >basis &&
	sed "s/ </> </" basis >bad-email-4 &&
	new=$(git hash-object -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 18 - > in name is reported

expecting success of 1450.19 '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 -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 19 - integer overflow in timestamps is reported

expecting success of 1450.20 '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 -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 20 - commit with NUL in header

expecting success of 1450.21 'tree object with duplicate entries': 
	test_when_finished "for i in \$T; do remove_object \$i; done" &&
	T=$(
		GIT_INDEX_FILE=test-index &&
		export GIT_INDEX_FILE &&
		rm -f test-index &&
		>x &&
		git add x &&
		git rev-parse :x &&
		T=$(git write-tree) &&
		echo $T &&
		(
			git cat-file tree $T &&
			git cat-file tree $T
		) |
		git hash-object -w -t tree --stdin
	) &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "error in tree .*contains duplicate file entries" out

dangling tree 5805b676e247eb9a8046ad0c4d249cd2fb2513df
dangling tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580
error in tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580: duplicateEntries: contains duplicate file entries
ok 21 - tree object with duplicate entries

expecting success of 1450.22 'tree object with duplicate names: x x.1 x/': 
		test_when_finished "remove_object \$blob" &&
		test_when_finished "remove_object \$tree" &&
		test_when_finished "remove_object \$badtree" &&
		blob=$(echo blob | git hash-object -w --stdin) &&
		printf "100644 blob %s\t%s\n" $blob x.2 >tree &&
		tree=$(git mktree <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 22 - tree object with duplicate names: x x.1 x/

expecting success of 1450.23 'tree object with duplicate names: x x.1.2 x.1/ x/': 
		test_when_finished "remove_object \$blob" &&
		test_when_finished "remove_object \$tree" &&
		test_when_finished "remove_object \$badtree" &&
		blob=$(echo blob | git hash-object -w --stdin) &&
		printf "100644 blob %s\t%s\n" $blob x.2 >tree &&
		tree=$(git mktree <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 23 - tree object with duplicate names: x x.1.2 x.1/ x/

expecting success of 1450.24 'tree object with duplicate names: x x.1 x.1.2 x/': 
		test_when_finished "remove_object \$blob" &&
		test_when_finished "remove_object \$tree" &&
		test_when_finished "remove_object \$badtree" &&
		blob=$(echo blob | git hash-object -w --stdin) &&
		printf "100644 blob %s\t%s\n" $blob x.2 >tree &&
		tree=$(git mktree <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 24 - tree object with duplicate names: x x.1 x.1.2 x/

expecting success of 1450.25 'unparseable tree object': 
	test_oid_cache <<-\EOF &&
	junk sha1:twenty-bytes-of-junk
	junk sha256:twenty-bytes-of-junk-twelve-more
	EOF

	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 25 - unparseable tree object

expecting success of 1450.26 'tree entry with type mismatch': 
	test_when_finished "remove_object \$blob" &&
	test_when_finished "remove_object \$tree" &&
	test_when_finished "remove_object \$commit" &&
	test_when_finished "git update-ref -d refs/heads/type_mismatch" &&
	blob=$(echo blob | git hash-object -w --stdin) &&
	blob_bin=$(echo $blob | hex2oct) &&
	tree=$(
		printf "40000 dir\0${blob_bin}100644 file\0${blob_bin}" |
		git hash-object -t tree --stdin -w --literally
	) &&
	commit=$(git commit-tree $tree) &&
	git update-ref refs/heads/type_mismatch $commit &&
	test_must_fail git fsck >out 2>&1 &&
	test_i18ngrep "is a blob, not a tree" out &&
	test_i18ngrep ! "dangling blob" out

error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree
error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree
ok 26 - tree entry with type mismatch

expecting success of 1450.27 '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 27 - tag pointing to nonexistent

expecting success of 1450.28 'tag pointing to something else than its type': 
	sha=$(echo blob | git hash-object -w --stdin) &&
	test_when_finished "remove_object $sha" &&
	cat >wrong-tag <<-EOF &&
	object $sha
	type commit
	tag wrong
	tagger T A Gger <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 28 - tag pointing to something else than its type

expecting success of 1450.29 'tag with incorrect tag name & missing tagger': 
	sha=$(git rev-parse HEAD) &&
	cat >wrong-tag <<-EOF &&
	object $sha
	type commit
	tag wrong name format

	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" &&
	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_i18ncmp expect out

tagged commit c9145d6720f85544cc4bb6009a2e541660aa156b (wrong name format) in 6d73f1b4d41e4fdac4ba717a11e7409876bb75c3
ok 29 - tag with incorrect tag name & missing tagger

expecting success of 1450.30 'tag with bad tagger': 
	sha=$(git rev-parse HEAD) &&
	cat >wrong-tag <<-EOF &&
	object $sha
	type commit
	tag not-quite-wrong
	tagger Bad Tagger Name

	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 30 - tag with bad tagger

expecting success of 1450.31 'tag with NUL in header': 
	sha=$(git rev-parse HEAD) &&
	q_to_nul >tag-NUL-header <<-EOF &&
	object $sha
	type commit
	tag contains-Q-in-header
	tagger T A Gger <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 31 - tag with NUL in header

expecting success of 1450.32 'cleaned up': 
	git fsck >actual 2>&1 &&
	test_must_be_empty actual

ok 32 - cleaned up

expecting success of 1450.33 'rev-list --verify-objects': 
	git rev-list --verify-objects --all >/dev/null 2>out &&
	test_must_be_empty out

ok 33 - rev-list --verify-objects

expecting success of 1450.34 'rev-list --verify-objects with bad sha1': 
	sha=$(echo blob | git hash-object -w --stdin) &&
	old=$(test_oid_to_path $sha) &&
	new=$(dirname $old)/$(test_oid ff_2) &&
	sha="$(dirname $new)$(basename $new)" &&
	mv .git/objects/$old .git/objects/$new &&
	test_when_finished "remove_object $sha" &&
	git update-index --add --cacheinfo 100644 $sha foo &&
	test_when_finished "git read-tree -u --reset HEAD" &&
	tree=$(git write-tree) &&
	test_when_finished "remove_object $tree" &&
	cmt=$(echo bogus | git commit-tree $tree) &&
	test_when_finished "remove_object $cmt" &&
	git update-ref refs/heads/bogus $cmt &&
	test_when_finished "git update-ref -d refs/heads/bogus" &&

	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 34 - rev-list --verify-objects with bad sha1

expecting success of 1450.35 'force fsck to ignore double author': 
	git cat-file commit HEAD >basis &&
	sed "s/^author .*/&,&/" <basis | tr , \\n >multiple-authors &&
	new=$(git hash-object -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 35 - force fsck to ignore double author

expecting success of 1450.36 'fsck notices blob entry pointing to null sha1': 
	(git init null-blob &&
	 cd null-blob &&
	 sha=$(printf "100644 file$_bz$_bzoid" |
	       git hash-object -w --stdin -t tree) &&
	  git fsck 2>out &&
	  test_i18ngrep "warning.*null sha1" out
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1450-fsck/null-blob/.git/
dangling tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8
warning in tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8: nullSha1: contains entries pointing to null sha1
ok 36 - fsck notices blob entry pointing to null sha1

expecting success of 1450.37 'fsck notices submodule entry pointing to null sha1': 
	(git init null-commit &&
	 cd null-commit &&
	 sha=$(printf "160000 submodule$_bz$_bzoid" |
	       git hash-object -w --stdin -t tree) &&
	  git fsck 2>out &&
	  test_i18ngrep "warning.*null sha1" out
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1450-fsck/null-commit/.git/
dangling tree f87f3eabd15018382578c00e3a71a46c842e17e6
warning in tree f87f3eabd15018382578c00e3a71a46c842e17e6: nullSha1: contains entries pointing to null sha1
ok 37 - fsck notices submodule entry pointing to null sha1

expecting success of 1450.38 'fsck notices . as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 38 - fsck notices . as blob

expecting success of 1450.39 'fsck notices . as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 39 - fsck notices . as tree

expecting success of 1450.40 'fsck notices .. as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 40 - fsck notices .. as blob

expecting success of 1450.41 'fsck notices .. as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 41 - fsck notices .. as tree

expecting success of 1450.42 'fsck notices .git as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 42 - fsck notices .git as blob

expecting success of 1450.43 'fsck notices .git as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 43 - fsck notices .git as tree

expecting success of 1450.44 'fsck notices .GIT as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 44 - fsck notices .GIT as blob

expecting success of 1450.45 'fsck notices .GIT as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 45 - fsck notices .GIT as tree

expecting success of 1450.46 'fsck notices .gI{u200c}T as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 46 - fsck notices .gI{u200c}T as blob

expecting success of 1450.47 'fsck notices .gI{u200c}T as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 47 - fsck notices .gI{u200c}T 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
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 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
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 49 - fsck notices .Git as tree

expecting success of 1450.50 'fsck notices git~1 as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 50 - fsck notices git~1 as blob

expecting success of 1450.51 'fsck notices git~1 as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 51 - fsck notices git~1 as tree

expecting success of 1450.52 'fsck notices .git. as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 52 - fsck notices .git. as blob

expecting success of 1450.53 'fsck notices .git. as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 53 - fsck notices .git. as tree

expecting success of 1450.54 'fsck notices .\.GIT\foobar as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 54 - fsck notices .\.GIT\foobar as blob

expecting success of 1450.55 'fsck notices .\.GIT\foobar as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 55 - fsck notices .\.GIT\foobar as tree

expecting success of 1450.56 'fsck notices .git\foobar as blob': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 56 - fsck notices .git\foobar as blob

expecting success of 1450.57 'fsck notices .git\foobar as tree': 
		(
			git init $name-$type &&
			cd $name-$type &&
			git config core.protectNTFS false &&
			echo content >file &&
			git add file &&
			git commit -m base &&
			blob=$(git rev-parse :file) &&
			tree=$(git rev-parse HEAD^{tree}) &&
			value=$(eval "echo \$$type") &&
			printf "$mode $type %s\t%s" "$value" "$path" >bad &&
			bad_tree=$(git mktree <bad) &&
			git fsck 2>out &&
			test_i18ngrep "warning.*tree $bad_tree" out
		)
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 57 - fsck notices .git\foobar as tree

expecting success of 1450.58 'fsck allows .Ňit': 
	(
		git init not-dotgit &&
		cd not-dotgit &&
		echo content >file &&
		git add file &&
		git commit -m base &&
		blob=$(git rev-parse :file) &&
		printf "100644 blob $blob\t.\\305\\207it" >tree &&
		tree=$(git mktree <tree) &&
		git fsck 2>err &&
		test_line_count = 0 err
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 58 - fsck allows .Ňit

expecting success of 1450.59 'NUL in commit': 
	rm -fr nul-in-commit &&
	git init nul-in-commit &&
	(
		cd nul-in-commit &&
		git commit --allow-empty -m "initial commitQNUL after message" &&
		git cat-file commit HEAD >original &&
		q_to_nul <original >munged &&
		git hash-object -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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 59 - NUL in commit

expecting success of 1450.60 'fsck notices missing blob': 
	create_repo_missing HEAD:subdir/file &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 60 - fsck notices missing blob

expecting success of 1450.61 'fsck notices missing subtree': 
	create_repo_missing HEAD:subdir &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 61 - fsck notices missing subtree

expecting success of 1450.62 'fsck notices missing root tree': 
	create_repo_missing HEAD^{tree} &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 62 - fsck notices missing root tree

expecting success of 1450.63 'fsck notices missing parent': 
	create_repo_missing HEAD^ &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 63 - fsck notices missing parent

expecting success of 1450.64 'fsck notices missing tagged object': 
	create_repo_missing tag^{blob} &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 64 - fsck notices missing tagged object

expecting success of 1450.65 'fsck notices ref pointing to missing commit': 
	create_repo_missing HEAD &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 65 - fsck notices ref pointing to missing commit

expecting success of 1450.66 'fsck notices ref pointing to missing tag': 
	create_repo_missing tag &&
	test_must_fail git -C missing fsck

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 66 - fsck notices ref pointing to missing tag

expecting success of 1450.67 'fsck --connectivity-only': 
	rm -rf connectivity-only &&
	git init connectivity-only &&
	(
		cd connectivity-only &&
		touch empty &&
		git add empty &&
		test_commit empty &&

		# 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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: hash mismatch for .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 (expected e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
error: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391: object corrupt or missing: .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
missing blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
error: inflate: data stream error (incorrect header check)
error: unable to unpack 0d3d3508cb204b9201d016862e6025a49e8c01d6 header
fatal: loose object 0d3d3508cb204b9201d016862e6025a49e8c01d6 (stored in .git/objects/0d/3d3508cb204b9201d016862e6025a49e8c01d6) is corrupt
ok 67 - fsck --connectivity-only

expecting success of 1450.68 'fsck --connectivity-only with explicit head': 
	rm -rf connectivity-only &&
	git init connectivity-only &&
	(
		cd connectivity-only &&
		test_commit foo &&
		rm -f .git/index &&
		tree=$(git rev-parse HEAD^{tree}) &&
		remove_object $(git rev-parse HEAD:foo.t) &&
		test_must_fail git fsck --connectivity-only $tree
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 68 - fsck --connectivity-only with explicit head

expecting success of 1450.69 'fsck --name-objects': 
	rm -rf name-objects &&
	git init name-objects &&
	(
		cd name-objects &&
		test_commit julius caesar.t &&
		test_commit augustus &&
		test_commit caesar &&
		remove_object $(git rev-parse julius:caesar.t) &&
		test_must_fail git fsck --name-objects >out &&
		tree=$(git rev-parse --verify julius:) &&
		test_i18ngrep "$tree (refs/tags/julius:" out
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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 14a9c9c] augustus
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 augustus.t
[master 2d3dc47] caesar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
broken link from    tree c2fab98f409a47394d992eca10a20e0b22377c0c (refs/tags/julius:)
ok 69 - fsck --name-objects

expecting success of 1450.70 'alternate objects are correctly blamed': 
	test_when_finished "rm -rf alt.git .git/objects/info/alternates" &&
	name=$(test_oid numeric) &&
	path=$(test_oid_to_path "$name") &&
	git init --bare alt.git &&
	echo "../../alt.git/objects" >.git/objects/info/alternates &&
	mkdir alt.git/objects/$(dirname $path) &&
	>alt.git/objects/$(dirname $path)/$(basename $path) &&
	test_must_fail git fsck >out 2>&1 &&
	test_i18ngrep alt.git out

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 70 - alternate objects are correctly blamed

expecting success of 1450.71 '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 -t commit -w one) &&
	two=$(git hash-object -t commit -w two) &&
	pack=$(
		{
			echo $one &&
			echo $two
		} | git pack-objects .git/objects/pack/pack
	) &&
	test_when_finished "rm -f .git/objects/pack/pack-$pack.*" &&
	remove_object $one &&
	remove_object $two &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "error in commit $one.* - bad name" out &&
	test_i18ngrep "error in commit $two.* - bad name" out &&
	! grep corrupt out

dangling commit a55646b2b4c741ed105e2e5c54365a5b4051c7e2
dangling commit e705fceb9d8aec1503002ea31f4f68ea707e88ef
error in commit e705fceb9d8aec1503002ea31f4f68ea707e88ef: badName: invalid author/committer line - bad name
error in commit a55646b2b4c741ed105e2e5c54365a5b4051c7e2: badName: invalid author/committer line - bad name
ok 71 - fsck errors in packed objects

expecting success of 1450.72 'fsck fails on corrupt packfile': 
	hsh=$(git commit-tree -m mycommit HEAD^{tree}) &&
	pack=$(echo $hsh | git pack-objects .git/objects/pack/pack) &&

	# 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.000559681 s, 1.8 kB/s
error: .git/objects/pack/pack-8be9f6a4139bcddd74c3d2ed343bb71e87863c4b.pack pack checksum mismatch
ok 72 - fsck fails on corrupt packfile

expecting success of 1450.73 'fsck finds problems in duplicate loose objects': 
	rm -rf broken-duplicate &&
	git init broken-duplicate &&
	(
		cd broken-duplicate &&
		test_commit duplicate &&
		# no "-d" here, so we end up with duplicates
		git repack &&
		# now corrupt the loose copy
		file=$(sha1_file "$(git rev-parse HEAD)") &&
		rm "$file" &&
		echo broken >"$file" &&
		test_must_fail git fsck
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/d1/9e0e27f1e3e1ac93ebc6183333db3c4d9b00bd
error: d19e0e27f1e3e1ac93ebc6183333db3c4d9b00bd: object corrupt or missing: .git/objects/d1/9e0e27f1e3e1ac93ebc6183333db3c4d9b00bd
ok 73 - fsck finds problems in duplicate loose objects

expecting success of 1450.74 'fsck detects trailing loose garbage (commit)': 
	git cat-file commit HEAD >basis &&
	echo bump-commit-sha1 >>basis &&
	commit=$(git hash-object -w -t commit basis) &&
	file=$(sha1_file $commit) &&
	test_when_finished "remove_object $commit" &&
	chmod +w "$file" &&
	echo garbage >>"$file" &&
	test_must_fail git fsck 2>out &&
	test_i18ngrep "garbage.*$commit" out

error: garbage at end of loose object '59ac8713639e31797addb7a886b8f5f6637bda3c'
ok 74 - fsck detects trailing loose garbage (commit)

expecting success of 1450.75 'fsck detects trailing loose garbage (large blob)': 
	blob=$(echo trailing | git hash-object -w --stdin) &&
	file=$(sha1_file $blob) &&
	test_when_finished "remove_object $blob" &&
	chmod +w "$file" &&
	echo garbage >>"$file" &&
	test_must_fail git -c core.bigfilethreshold=5 fsck 2>out &&
	test_i18ngrep "garbage.*$blob" out

error: garbage at end of loose object '1e285548b47be8577f0549b6ebcecb242e692df3'
ok 75 - fsck detects trailing loose garbage (large blob)

expecting success of 1450.76 'fsck detects truncated loose object': 
	# make it big enough that we know we will truncate in the data
	# portion, not the header
	test-tool genrandom truncate 4096 >file &&
	blob=$(git hash-object -w file) &&
	file=$(sha1_file $blob) &&
	test_when_finished "remove_object $blob" &&
	test_copy_bytes 1024 <"$file" >tmp &&
	rm "$file" &&
	mv -f tmp "$file" &&

	# 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 76 - fsck detects truncated loose object

expecting success of 1450.77 'create dangling-object repository': 
	git init dangling &&
	(
		cd dangling &&
		blob=$(echo not-dangling | git hash-object -w --stdin) &&
		dblob=$(echo dangling | git hash-object -w --stdin) &&
		tree=$(printf "100644 blob %s\t%s\n" $blob one | git mktree) &&
		dtree=$(printf "100644 blob %s\t%s\n" $blob two | git mktree) &&
		commit=$(git commit-tree $tree) &&
		dcommit=$(git commit-tree -p $commit $tree) &&

		cat >expect <<-EOF
		dangling blob $dblob
		dangling commit $dcommit
		dangling tree $dtree
		EOF
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1450-fsck/dangling/.git/
ok 77 - create dangling-object repository

expecting success of 1450.78 'fsck notices dangling objects': 
	(
		cd dangling &&
		git fsck >actual &&
		# the output order is non-deterministic, as it comes from a hash
		sort <actual >actual.sorted &&
		test_i18ncmp expect actual.sorted
	)

notice: HEAD points to an unborn branch (master)
notice: No default references
ok 78 - fsck notices dangling objects

expecting success of 1450.79 'fsck --connectivity-only notices dangling objects': 
	(
		cd dangling &&
		git fsck --connectivity-only >actual &&
		# the output order is non-deterministic, as it comes from a hash
		sort <actual >actual.sorted &&
		test_i18ncmp expect actual.sorted
	)

notice: HEAD points to an unborn branch (master)
notice: No default references
ok 79 - fsck --connectivity-only notices dangling objects

expecting success of 1450.80 '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 80 - fsck $name notices bogus $name

expecting success of 1450.81 'bogus head does not fallback to all heads': 
	# set up a case that will cause a reachability complaint
	echo to-be-deleted >foo &&
	git add foo &&
	blob=$(git rev-parse :foo) &&
	test_when_finished "git rm --cached foo" &&
	remove_object $blob &&
	test_must_fail git fsck $ZERO_OID >out 2>&1 &&
	! grep $blob out

rm 'foo'
ok 81 - bogus head does not fallback to all heads

expecting success of 1450.82 'detect corrupt index file in fsck': 
	cp .git/index .git/index.backup &&
	test_when_finished "mv .git/index.backup .git/index" &&
	corrupt_index_checksum &&
	test_must_fail git fsck --cache 2>errors &&
	test_i18ngrep "bad index file" errors

error: bad index file sha1 signature
ok 82 - detect corrupt index file in fsck

# passed all 82 test(s)
1..82
make[4]: Leaving directory '/<<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_master=$(git rev-parse --verify master) &&
	test "$rev_master" = "$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@{0} &&
	test_must_fail git rev-parse -q --verify refs/test@{0} >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 master &&
	git rev-parse --verify --default master HEAD &&
	git rev-parse --default master --verify &&
	git rev-parse --default master --verify HEAD &&
	git rev-parse --verify HEAD --default master &&
	test_must_fail git rev-parse --verify foo --default master &&
	test_must_fail git rev-parse --default HEAD --verify bar &&
	test_must_fail git rev-parse --verify --default HEAD baz &&
	test_must_fail git rev-parse --default foo --verify &&
	test_must_fail git rev-parse --verify --default bar

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 'master@{n} for various n': 
	N=$(git reflog | wc -l) &&
	Nm1=$(($N-1)) &&
	Np1=$(($N+1)) &&
	git rev-parse --verify master@{0} &&
	git rev-parse --verify master@{1} &&
	git rev-parse --verify master@{$Nm1} &&
	test_must_fail git rev-parse --verify master@{$N} &&
	test_must_fail git rev-parse --verify master@{$Np1}

32a594a3fdac2d57cf6d02987e30eec68511498c
3de952f2416b6084f557ec417709eac740c6818c
88bcdc1839f0ad191ffdd65cae2a2a862d682151
fatal: log for 'master' only has 4 entries
fatal: log for 'master' only has 4 entries
ok 10 - master@{n} for various n

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'
*** 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 master &&
	git checkout master


[master (root-commit) c11cd10] 1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 1
[master ba98451] 2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 2
[master 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
Merging:
1d4df77 4
virtual master
found 1 common ancestor:
c11cd10 1
Merge made by the 'recursive' strategy.
 2 | 1 +
 3 | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 2
 create mode 100644 3
Switched to branch 'master'
ok 1 - setup

expecting success of 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 master @{-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'
*** 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'
*** 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 |
	sed -n -e "/TeBi_/{s!attr/[	]*!!g
	s!	! !g
	s!  *! !g
	p
	}" | sort >actual &&
	test_cmp expect actual

ok 1 - ls-files --eol -o Text/Binary

expecting success of 0027.2 'setup master': 
	echo >.gitattributes &&
	git checkout -b master &&
	git add .gitattributes &&
	git commit -m "add .gitattributes" . &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE"     >LF &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE"   >CRLF_mix_LF &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\rLINETHREE"     >LF_mix_CR &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\rLINETHREE"   >CRLF_mix_CR &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONEQ\r\nLINETWO\r\nLINETHREE" | q_to_nul >CRLF_nul &&
	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONEQ\nLINETWO\nLINETHREE" | q_to_nul >LF_nul &&
	create_NNO_MIX_files &&
	git -c core.autocrlf=false add NNO_*.txt MIX_*.txt &&
	git commit -m "mixed line endings" &&
	test_tick

Switched to a new branch 'master'
[master (root-commit) 92d411f] add .gitattributes
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 .gitattributes
[master 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 master

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" ""        ""

[master 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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
[master 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
[master 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" ""        ""

[master 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
[master 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
[master 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"

[master 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
[master 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
[master 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" ""       ""        ""        ""        ""

[master 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
[master 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
[master 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"

[master 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
[master 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
[master 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" ""

[master 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
[master 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
[master 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

[master 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 374 - ls-files --eol attr=-text  aeol= core.autocrlf=true core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 380 - ls-files --eol attr=-text  aeol=lf core.autocrlf=true core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 386 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=true core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 392 - ls-files --eol attr=text  aeol=lf core.autocrlf=true core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 398 - ls-files --eol attr=text  aeol=crlf core.autocrlf=true core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 404 - ls-files --eol attr=auto  aeol=lf core.autocrlf=true core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 410 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=true core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 416 - ls-files --eol attr=-text  aeol= core.autocrlf=false core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 422 - ls-files --eol attr=-text  aeol=lf core.autocrlf=false core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 428 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=false core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 434 - ls-files --eol attr=text  aeol=lf core.autocrlf=false core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 440 - ls-files --eol attr=text  aeol=crlf core.autocrlf=false core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 446 - ls-files --eol attr=auto  aeol=lf core.autocrlf=false core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 452 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=false core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 458 - ls-files --eol attr=-text  aeol= core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 464 - ls-files --eol attr=-text  aeol=lf core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 470 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 476 - ls-files --eol attr=text  aeol=lf core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 482 - ls-files --eol attr=text  aeol=crlf core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 488 - ls-files --eol attr=auto  aeol=lf core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 494 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=input core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 500 - ls-files --eol attr=  aeol= core.autocrlf=false core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 506 - ls-files --eol attr=  aeol= core.autocrlf=true core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 512 - ls-files --eol attr=auto  aeol= core.autocrlf=true core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 518 - ls-files --eol attr=text  aeol= core.autocrlf=true core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 524 - ls-files --eol attr=text  aeol= core.autocrlf=input core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 530 - ls-files --eol attr=auto  aeol= core.autocrlf=input core.eol=lf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 536 - ls-files --eol attr=-text  aeol= core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 542 - ls-files --eol attr=-text  aeol=lf core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 548 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 554 - ls-files --eol attr=text  aeol=lf core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 560 - ls-files --eol attr=text  aeol=crlf core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 566 - ls-files --eol attr=auto  aeol=lf core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 572 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=true core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 578 - ls-files --eol attr=-text  aeol= core.autocrlf=false core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 584 - ls-files --eol attr=-text  aeol=lf core.autocrlf=false core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 590 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=false core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 596 - ls-files --eol attr=text  aeol=lf core.autocrlf=false core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 602 - ls-files --eol attr=text  aeol=crlf core.autocrlf=false core.eol=crlf

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 608 - ls-files --eol attr=auto  aeol=lf core.autocrlf=false core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 614 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=false core.eol=crlf

expecting success of 0027.615 'checkout attr=auto  aeol=crlf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 615 - checkout attr=auto  aeol=crlf core.autocrlf=false core.eol=crlf file=LF

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 620 - ls-files --eol attr=-text  aeol= core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 626 - ls-files --eol attr=-text  aeol=lf core.autocrlf=input core.eol=crlf

expecting success of 0027.627 'checkout attr=-text  aeol=lf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 627 - checkout attr=-text  aeol=lf core.autocrlf=input core.eol=crlf file=LF

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 632 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 638 - ls-files --eol attr=text  aeol=lf core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 644 - ls-files --eol attr=text  aeol=crlf core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 650 - ls-files --eol attr=auto  aeol=lf core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 656 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 662 - ls-files --eol attr=  aeol= core.autocrlf=false core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 668 - ls-files --eol attr=  aeol= core.autocrlf=true core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 674 - ls-files --eol attr=auto  aeol= core.autocrlf=true core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 680 - ls-files --eol attr=text  aeol= core.autocrlf=true core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 686 - ls-files --eol attr=text  aeol= core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 692 - ls-files --eol attr=auto  aeol= core.autocrlf=input core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 698 - ls-files --eol attr=-text  aeol= core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 704 - ls-files --eol attr=-text  aeol=lf core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 710 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 716 - ls-files --eol attr=text  aeol=lf core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 722 - ls-files --eol attr=text  aeol=crlf core.autocrlf=true core.eol=native

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 728 - ls-files --eol attr=auto  aeol=lf core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 734 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 740 - ls-files --eol attr=-text  aeol= core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 746 - ls-files --eol attr=-text  aeol=lf core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 752 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 758 - ls-files --eol attr=text  aeol=lf core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 764 - ls-files --eol attr=text  aeol=crlf core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 770 - ls-files --eol attr=auto  aeol=lf core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 776 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 782 - ls-files --eol attr=-text  aeol= core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 788 - ls-files --eol attr=-text  aeol=lf core.autocrlf=input core.eol=native

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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 794 - ls-files --eol attr=-text  aeol=crlf core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 800 - ls-files --eol attr=text  aeol=lf core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 806 - ls-files --eol attr=text  aeol=crlf core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 812 - ls-files --eol attr=auto  aeol=lf core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 818 - ls-files --eol attr=auto  aeol=crlf core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 824 - ls-files --eol attr=  aeol= core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 830 - ls-files --eol attr=  aeol= core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 836 - ls-files --eol attr=auto  aeol= core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 842 - ls-files --eol attr=text  aeol= core.autocrlf=true core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 848 - ls-files --eol attr=text  aeol= core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 854 - ls-files --eol attr=auto  aeol= core.autocrlf=input core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 860 - ls-files --eol attr=text  aeol= core.autocrlf=false core.eol=crlf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 866 - ls-files --eol attr=text  aeol= core.autocrlf=false core.eol=lf

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 872 - ls-files --eol attr=text  aeol= core.autocrlf=false core.eol=

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 878 - ls-files --eol attr=text  aeol= core.autocrlf=false core.eol=native

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 884 - ls-files --eol attr=auto  aeol= core.autocrlf=false core.eol=

expecting success of 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__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 890 - ls-files --eol attr=auto  aeol= core.autocrlf=false core.eol=native

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=-text ident aeol= core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 896 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=lf

expecting success of 0027.897 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 897 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.898 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 898 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.899 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 899 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.900 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 900 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.901 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 901 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.902 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 902 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf

expecting success of 0027.903 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 903 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.904 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 904 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.905 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 905 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.906 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 906 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.907 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 907 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.908 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 908 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf

expecting success of 0027.909 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 909 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.910 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 910 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.911 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 911 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.912 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 912 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.913 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 913 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.914 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 914 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf

expecting success of 0027.915 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 915 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.916 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 916 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.917 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 917 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.918 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 918 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.919 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 919 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.920 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 920 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf

expecting success of 0027.921 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 921 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.922 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 922 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.923 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 923 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.924 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 924 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.925 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 925 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.926 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 926 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf

expecting success of 0027.927 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 927 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.928 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 928 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.929 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 929 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.930 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 930 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.931 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 931 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.932 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 932 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf

expecting success of 0027.933 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 933 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.934 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 934 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.935 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 935 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.936 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 936 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.937 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 937 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.938 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 938 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf

expecting success of 0027.939 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 939 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.940 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 940 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.941 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 941 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.942 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 942 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.943 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 943 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.944 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 944 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf

expecting success of 0027.945 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 945 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.946 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 946 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.947 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 947 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.948 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 948 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.949 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 949 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.950 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 950 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf

expecting success of 0027.951 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 951 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.952 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 952 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.953 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 953 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.954 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 954 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.955 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 955 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.956 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 956 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf

expecting success of 0027.957 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 957 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.958 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 958 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.959 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 959 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.960 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 960 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.961 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 961 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.962 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 962 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf

expecting success of 0027.963 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 963 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.964 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 964 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.965 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 965 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.966 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 966 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.967 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 967 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.968 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 968 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf

expecting success of 0027.969 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 969 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.970 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 970 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.971 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 971 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.972 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 972 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.973 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 973 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.974 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 974 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf

expecting success of 0027.975 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 975 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.976 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 976 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.977 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 977 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.978 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 978 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.979 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 979 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.980 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 980 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf

expecting success of 0027.981 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 981 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.982 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 982 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.983 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 983 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.984 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 984 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.985 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 985 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.986 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 986 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf

expecting success of 0027.987 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 987 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.988 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 988 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.989 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 989 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.990 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 990 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.991 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 991 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.992 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 992 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf

expecting success of 0027.993 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 993 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.994 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 994 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.995 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 995 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.996 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 996 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.997 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 997 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.998 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 998 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf

expecting success of 0027.999 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 999 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.1000 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1000 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.1001 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1001 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1002 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1002 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.1003 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1003 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.1004 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1004 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf

expecting success of 0027.1005 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1005 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.1006 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1006 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.1007 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1007 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1008 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1008 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.1009 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1009 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.1010 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1010 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf

expecting success of 0027.1011 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1011 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.1012 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1012 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.1013 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1013 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1014 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1014 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.1015 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1015 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.1016 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1016 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf

expecting success of 0027.1017 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1017 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.1018 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1018 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.1019 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1019 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1020 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1020 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.1021 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1021 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.1022 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1022 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf

expecting success of 0027.1023 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr__ LF    crlf_false_attr__LF.txt
	
ok 1023 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.1024 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr__ CRLF  crlf_false_attr__CRLF.txt
	
ok 1024 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.1025 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1025 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1026 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr__ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1026 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.1027 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr__ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1027 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.1028 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1028 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf

expecting success of 0027.1029 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr__ CRLF    crlf_false_attr__LF.txt
	
ok 1029 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.1030 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr__ CRLF  crlf_false_attr__CRLF.txt
	
ok 1030 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.1031 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1031 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1032 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr__ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1032 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.1033 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr__ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1033 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.1034 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1034 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf

expecting success of 0027.1035 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1035 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.1036 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1036 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.1037 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1037 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1038 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1038 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.1039 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1039 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.1040 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1040 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf

expecting success of 0027.1041 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1041 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF

expecting success of 0027.1042 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1042 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF

expecting success of 0027.1043 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1043 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1044 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1044 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR

expecting success of 0027.1045 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1045 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul

expecting success of 0027.1046 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1046 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf

expecting success of 0027.1047 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1047 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.1048 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1048 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.1049 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1049 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1050 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1050 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.1051 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1051 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.1052 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1052 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf

expecting success of 0027.1053 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1053 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF

expecting success of 0027.1054 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1054 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF

expecting success of 0027.1055 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1055 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1056 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1056 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR

expecting success of 0027.1057 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1057 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul

expecting success of 0027.1058 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1058 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf

expecting success of 0027.1059 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1059 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1060 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1060 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1061 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1061 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1062 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1062 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1063 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1063 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1064 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1064 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf

expecting success of 0027.1065 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1065 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1066 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1066 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1067 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1067 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1068 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1068 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1069 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1069 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1070 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1070 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf

expecting success of 0027.1071 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1071 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1072 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1072 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1073 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1073 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1074 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1074 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1075 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1075 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1076 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1076 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf

expecting success of 0027.1077 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1077 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1078 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1078 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1079 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1079 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1080 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1080 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1081 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1081 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1082 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1082 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf

expecting success of 0027.1083 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1083 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1084 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1084 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1085 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1085 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1086 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1086 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1087 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1087 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1088 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1088 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf

expecting success of 0027.1089 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1089 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1090 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1090 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1091 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1091 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1092 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1092 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1093 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1093 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1094 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1094 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf

expecting success of 0027.1095 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1095 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1096 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1096 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1097 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1097 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1098 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1098 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1099 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1099 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1100 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1100 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf

expecting success of 0027.1101 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1101 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1102 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1102 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1103 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1103 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1104 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1104 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1105 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1105 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1106 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1106 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf

expecting success of 0027.1107 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1107 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1108 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1108 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1109 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1109 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1110 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1110 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1111 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1111 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1112 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1112 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf

expecting success of 0027.1113 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1113 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1114 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1114 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1115 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1115 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1116 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1116 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1117 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1117 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1118 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1118 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf

expecting success of 0027.1119 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1119 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1120 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1120 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1121 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1121 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1122 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1122 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1123 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1123 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1124 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1124 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf

expecting success of 0027.1125 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1125 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1126 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1126 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1127 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1127 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1128 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1128 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1129 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1129 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1130 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1130 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf

expecting success of 0027.1131 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1131 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1132 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1132 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1133 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1133 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1134 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1134 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1135 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1135 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1136 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1136 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf

expecting success of 0027.1137 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1137 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1138 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1138 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1139 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1139 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1140 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1140 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1141 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1141 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1142 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1142 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf

expecting success of 0027.1143 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1143 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1144 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1144 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1145 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1145 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1146 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1146 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1147 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1147 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1148 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1148 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf

expecting success of 0027.1149 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1149 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1150 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1150 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1151 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1151 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1152 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1152 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1153 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1153 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1154 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1154 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf

expecting success of 0027.1155 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1155 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1156 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1156 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1157 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1157 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1158 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1158 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1159 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1159 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1160 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1160 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf

expecting success of 0027.1161 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1161 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1162 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1162 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1163 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1163 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1164 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1164 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1165 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1165 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1166 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1166 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf

expecting success of 0027.1167 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1167 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1168 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1168 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1169 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1169 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1170 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1170 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1171 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1171 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1172 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1172 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf

expecting success of 0027.1173 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1173 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1174 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1174 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1175 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1175 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1176 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1176 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1177 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1177 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1178 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1178 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf

expecting success of 0027.1179 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1179 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1180 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1180 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1181 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1181 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1182 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1182 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1183 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1183 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1184 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1184 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf

expecting success of 0027.1185 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr__ LF    crlf_false_attr__LF.txt
	
ok 1185 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1186 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr__ CRLF  crlf_false_attr__CRLF.txt
	
ok 1186 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1187 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1187 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1188 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr__ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1188 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1189 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr__ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1189 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1190 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1190 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf

expecting success of 0027.1191 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr__ CRLF    crlf_false_attr__LF.txt
	
ok 1191 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1192 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr__ CRLF  crlf_false_attr__CRLF.txt
	
ok 1192 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1193 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1193 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1194 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr__ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1194 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1195 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr__ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1195 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1196 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1196 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf

expecting success of 0027.1197 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1197 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1198 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1198 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1199 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1199 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1200 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1200 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1201 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1201 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1202 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1202 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf

expecting success of 0027.1203 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1203 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF

expecting success of 0027.1204 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1204 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF

expecting success of 0027.1205 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1205 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1206 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1206 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR

expecting success of 0027.1207 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1207 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul

expecting success of 0027.1208 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1208 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf

expecting success of 0027.1209 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1209 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1210 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1210 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1211 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1211 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1212 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1212 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1213 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1213 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1214 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1214 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf

expecting success of 0027.1215 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1215 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF

expecting success of 0027.1216 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1216 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF

expecting success of 0027.1217 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1217 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1218 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1218 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR

expecting success of 0027.1219 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1219 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul

expecting success of 0027.1220 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1220 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native

expecting success of 0027.1221 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1221 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1222 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1222 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1223 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1223 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1224 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1224 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1225 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1225 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1226 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1226 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native

expecting success of 0027.1227 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1227 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1228 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1228 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1229 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1229 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1230 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1230 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1231 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1231 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1232 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1232 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native

expecting success of 0027.1233 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1233 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1234 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1234 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1235 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1235 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1236 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1236 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1237 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1237 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1238 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1238 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native

expecting success of 0027.1239 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1239 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1240 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1240 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1241 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1241 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1242 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1242 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1243 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1243 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1244 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1244 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native

expecting success of 0027.1245 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1245 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1246 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1246 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1247 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1247 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1248 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1248 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1249 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1249 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1250 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1250 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native

expecting success of 0027.1251 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1251 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1252 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1252 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1253 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1253 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1254 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1254 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1255 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1255 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1256 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1256 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native

expecting success of 0027.1257 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1257 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1258 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1258 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1259 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1259 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1260 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1260 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1261 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1261 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1262 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1262 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native

expecting success of 0027.1263 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1263 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1264 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1264 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1265 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1265 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1266 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1266 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1267 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1267 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1268 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1268 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native

expecting success of 0027.1269 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1269 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1270 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1270 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1271 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1271 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1272 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1272 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1273 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1273 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1274 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1274 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native

expecting success of 0027.1275 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1275 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1276 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1276 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1277 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1277 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1278 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1278 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1279 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1279 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1280 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1280 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native

expecting success of 0027.1281 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1281 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1282 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1282 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1283 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1283 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1284 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1284 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1285 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1285 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1286 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1286 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native

expecting success of 0027.1287 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1287 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1288 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1288 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1289 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1289 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1290 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1290 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1291 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1291 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1292 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1292 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native

expecting success of 0027.1293 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1293 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1294 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1294 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1295 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1295 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1296 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1296 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1297 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1297 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1298 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1298 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native

expecting success of 0027.1299 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1299 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1300 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1300 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1301 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1301 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1302 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1302 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1303 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1303 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1304 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1304 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native

expecting success of 0027.1305 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1305 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1306 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1306 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1307 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1307 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1308 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1308 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1309 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1309 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1310 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1310 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native

expecting success of 0027.1311 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1311 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1312 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1312 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1313 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1313 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1314 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1314 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1315 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1315 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1316 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1316 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native

expecting success of 0027.1317 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF    crlf_false_attr__LF.txt
	
ok 1317 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1318 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1318 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1319 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1319 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1320 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1320 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1321 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1321 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1322 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1322 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native

expecting success of 0027.1323 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1323 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1324 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1324 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1325 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1325 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1326 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1326 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1327 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1327 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1328 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1328 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native

expecting success of 0027.1329 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1329 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1330 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1330 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1331 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1331 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1332 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1332 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1333 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1333 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1334 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1334 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native

expecting success of 0027.1335 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1335 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1336 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1336 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1337 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1337 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1338 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1338 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1339 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1339 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1340 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1340 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native

expecting success of 0027.1341 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1341 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1342 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1342 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1343 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1343 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1344 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1344 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1345 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1345 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1346 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1346 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native

expecting success of 0027.1347 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr__ LF    crlf_false_attr__LF.txt
	
ok 1347 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1348 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr__ CRLF  crlf_false_attr__CRLF.txt
	
ok 1348 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1349 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1349 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1350 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr__ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1350 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1351 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr__ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1351 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1352 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1352 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native

expecting success of 0027.1353 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr__ CRLF    crlf_false_attr__LF.txt
	
ok 1353 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1354 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr__ CRLF  crlf_false_attr__CRLF.txt
	
ok 1354 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1355 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1355 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1356 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr__ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1356 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1357 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr__ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1357 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1358 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1358 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native

expecting success of 0027.1359 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF    crlf_false_attr__LF.txt
	
ok 1359 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1360 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1360 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1361 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1361 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1362 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1362 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1363 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1363 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1364 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1364 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native

expecting success of 0027.1365 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1365 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF

expecting success of 0027.1366 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1366 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF

expecting success of 0027.1367 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1367 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF

expecting success of 0027.1368 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1368 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR

expecting success of 0027.1369 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1369 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul

expecting success of 0027.1370 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1370 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native

expecting success of 0027.1371 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1371 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1372 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1372 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1373 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1373 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1374 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1374 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1375 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1375 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1376 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1376 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native

expecting success of 0027.1377 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1377 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF

expecting success of 0027.1378 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1378 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF

expecting success of 0027.1379 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1379 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF

expecting success of 0027.1380 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1380 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR

expecting success of 0027.1381 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1381 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul

expecting success of 0027.1382 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1382 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf

expecting success of 0027.1383 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF    crlf_false_attr__LF.txt
	
ok 1383 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF

expecting success of 0027.1384 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1384 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF

expecting success of 0027.1385 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1385 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF

expecting success of 0027.1386 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1386 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR

expecting success of 0027.1387 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': 
		compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul   crlf_false_attr__LF_nul.txt
	
ok 1387 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul

expecting success of 0027.1388 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1388 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf

expecting success of 0027.1389 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1389 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF

expecting success of 0027.1390 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1390 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF

expecting success of 0027.1391 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': 
		compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1391 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF

expecting success of 0027.1392 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': 
		compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1392 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR

expecting success of 0027.1393 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': 
		compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1393 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul

expecting success of 0027.1394 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1394 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=

expecting success of 0027.1395 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF': 
		compare_ws_file eol__crlf_false_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1395 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF

expecting success of 0027.1396 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF': 
		compare_ws_file eol__crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1396 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF

expecting success of 0027.1397 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': 
		compare_ws_file eol__crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1397 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF

expecting success of 0027.1398 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR': 
		compare_ws_file eol__crlf_false_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1398 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR

expecting success of 0027.1399 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul': 
		compare_ws_file eol__crlf_false_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1399 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul

expecting success of 0027.1400 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1400 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native

expecting success of 0027.1401 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_text_ LF    crlf_false_attr__LF.txt
	
ok 1401 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1402 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1402 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1403 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1403 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1404 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1404 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1405 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_text_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1405 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1406 'ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1406 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=

expecting success of 0027.1407 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF': 
		compare_ws_file eol__crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1407 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF

expecting success of 0027.1408 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF': 
		compare_ws_file eol__crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1408 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF

expecting success of 0027.1409 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': 
		compare_ws_file eol__crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1409 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF

expecting success of 0027.1410 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR': 
		compare_ws_file eol__crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1410 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR

expecting success of 0027.1411 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul': 
		compare_ws_file eol__crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1411 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul

expecting success of 0027.1412 'ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native': 
		test_when_finished "rm expect actual" &&
		sort <<-EOF >expect &&
		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
		EOF
		git ls-files --eol crlf_false_attr__* |
		sed -e "s/	/ /g" -e "s/  */ /g" |
		sort >actual &&
		test_cmp expect actual
	
ok 1412 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native

expecting success of 0027.1413 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
	
ok 1413 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF

expecting success of 0027.1414 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF  crlf_false_attr__CRLF.txt
	
ok 1414 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF

expecting success of 0027.1415 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': 
		compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
	
ok 1415 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF

expecting success of 0027.1416 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR   crlf_false_attr__LF_mix_CR.txt
	
ok 1416 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR

expecting success of 0027.1417 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul': 
		compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul   crlf_false_attr__LF_nul.txt
	
ok 1417 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul

expecting success of 0027.1418 'ls-files --eol -d -z': 
	rm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&
	cat >expect <<-\EOF &&
	i/crlf w/ crlf_false_attr__CRLF.txt
	i/lf w/ .gitattributes
	i/lf w/ crlf_false_attr__LF.txt
	i/mixed w/ crlf_false_attr__CRLF_mix_LF.txt
	EOF
	git ls-files --eol -d |
	sed -e "s!attr/[^	]*!!g" -e "s/	/ /g" -e "s/  */ /g" |
	sort >actual &&
	test_cmp expect actual

ok 1418 - ls-files --eol -d -z

# passed all 1418 test(s)
1..1418
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

[master (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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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 master@{99999} >output 2>error &&
	test_must_be_empty output &&
	test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error  &&
	test_must_fail git rev-parse --verify master@{99999} >output 2>error &&
	test_must_be_empty output &&
	test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error

fatal: log for 'master' only has 1 entries
fatal: log for 'master' 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'
*** 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'
*** 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
		)
	
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[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'
Removing sub1/file3
Removing sub1/file2
Removing sub1/file1
Adding sub1
[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory"
 Author: A U Thor <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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
ok 1 - git read-tree -u -m --recurse-submodules: added submodule is checked out

expecting success of 1013.2 'git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			mkdir sub1 &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
ok 2 - git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir

expecting success of 1013.3 'git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_file &&
		(
			cd submodule_update &&
			git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 &&
			$command replace_file_with_sub1 &&
			test_superproject_content origin/replace_file_with_sub1 &&
			test_submodule_content sub1 origin/replace_file_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_file'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
ok 3 - git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule

expecting success of 1013.4 'git read-tree -u -m --recurse-submodules: replace directory with submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_directory &&
		(
			cd submodule_update &&
			git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 &&
			$command replace_directory_with_sub1 &&
			test_superproject_content origin/replace_directory_with_sub1 &&
			test_submodule_content sub1 origin/replace_directory_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_directory'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
ok 4 - git read-tree -u -m --recurse-submodules: replace directory with submodule

expecting success of 1013.5 'git read-tree -u -m --recurse-submodules: nested submodules are checked out': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t modify_sub1_recursively origin/modify_sub1_recursively &&
			$command modify_sub1_recursively &&
			test_superproject_content origin/modify_sub1_recursively &&
			test_submodule_content sub1 origin/modify_sub1_recursively &&
			test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'.
ok 5 - git read-tree -u -m --recurse-submodules: nested submodules are checked out

expecting success of 1013.6 'git read-tree -u -m --recurse-submodules: removed submodule removes submodules working tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			! test -e sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'remove_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
test_must_fail: command succeeded: git read-tree -u -m --recurse-submodules replace_sub1_with_file
not ok 9 - git read-tree -u -m --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage

expecting success of 1013.10 'git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed': 
		prolog &&
		reset_work_tree_to_interested add_nested_sub &&
		(
			cd submodule_update &&
			git branch -t no_submodule origin/no_submodule &&
			$command no_submodule &&
			test_superproject_content origin/no_submodule &&
			! test_path_is_dir sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree &&
			test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_nested_sub'
Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Directory sub1 doesn't exist. 
ok 10 - git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed

expecting success of 1013.11 'git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'invalid_sub1' from 'origin'.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: Submodule 'sub1' could not be updated.
error: Submodule 'sub1' cannot checkout new HEAD.
ok 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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'modify_sub1' from 'origin'.
fatal: ref HEAD is not a symbolic ref
ok 13 - git read-tree -u -m --recurse-submodules: submodule branch is not changed, detach HEAD instead

expecting success of 1013.14 'git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			: >sub1 &&
			test_must_fail $command add_sub1 &&
			test_superproject_content origin/no_submodule &&
			test_must_be_empty sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
error: Untracked working tree file 'sub1' would be overwritten by merge.
ok 14 - git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name

checking known breakage of 1013.15 'git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file': 
		test_when_finished "rm submodule_update/.git/info/exclude" &&
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			: >sub1 &&
			echo sub1 >.git/info/exclude &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
error: Untracked working tree file 'sub1' would be overwritten by merge.
not ok 15 - git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file # TODO known breakage

checking known breakage of 1013.16 'git read-tree -u -m --recurse-submodules: replace submodule with a directory': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory &&
			test_submodule_content sub1 origin/replace_sub1_with_directory
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: Untracked working tree file 'sub1/file1' would be overwritten by merge.
not ok 16 - git read-tree -u -m --recurse-submodules: replace submodule with a directory # TODO known breakage

checking known breakage of 1013.17 'git read-tree -u -m --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			rm -rf .git/modules &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory &&
			test_git_directory_exists sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: Untracked working tree file 'sub1/file1' would be overwritten by merge.
not ok 17 - git read-tree -u -m --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage

expecting success of 1013.18 'git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': 
		test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" &&
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			echo ignored >.git/modules/sub1/info/exclude &&
			: >sub1/ignored &&
			$command replace_sub1_with_file &&
			test_superproject_content origin/replace_sub1_with_file &&
			test -f sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
ok 18 - git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule

expecting success of 1013.19 'git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			git -c submodule.recurse=true $cmd_args modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
ok 19 - git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree

expecting success of 1013.20 'git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively': 
		prolog &&
		reset_work_tree_to_interested add_nested_sub &&
		(
			cd submodule_update &&
			git branch -t modify_sub1_recursively origin/modify_sub1_recursively &&
			$command modify_sub1_recursively &&
			test_superproject_content origin/modify_sub1_recursively &&
			test_submodule_content sub1 origin/modify_sub1_recursively &&
			test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_nested_sub'
Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1_recursively' from 'origin'.
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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
ok 21 - git read-tree -u --reset --recurse-submodules: added submodule is checked out

expecting success of 1013.22 'git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			mkdir sub1 &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
ok 22 - git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir

expecting success of 1013.23 'git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_file &&
		(
			cd submodule_update &&
			git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 &&
			$command replace_file_with_sub1 &&
			test_superproject_content origin/replace_file_with_sub1 &&
			test_submodule_content sub1 origin/replace_file_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_file'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
ok 23 - git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule

expecting success of 1013.24 'git read-tree -u --reset --recurse-submodules: replace directory with submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_directory &&
		(
			cd submodule_update &&
			git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 &&
			$command replace_directory_with_sub1 &&
			test_superproject_content origin/replace_directory_with_sub1 &&
			test_submodule_content sub1 origin/replace_directory_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_directory'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
ok 24 - git read-tree -u --reset --recurse-submodules: replace directory with submodule

expecting success of 1013.25 'git read-tree -u --reset --recurse-submodules: nested submodules are checked out': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t modify_sub1_recursively origin/modify_sub1_recursively &&
			$command modify_sub1_recursively &&
			test_superproject_content origin/modify_sub1_recursively &&
			test_submodule_content sub1 origin/modify_sub1_recursively &&
			test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'.
ok 25 - git read-tree -u --reset --recurse-submodules: nested submodules are checked out

expecting success of 1013.26 'git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			! test -e sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'remove_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
test_must_fail: command succeeded: git read-tree -u --reset --recurse-submodules replace_sub1_with_file
not ok 29 - git read-tree -u --reset --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage

expecting success of 1013.30 'git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed': 
		prolog &&
		reset_work_tree_to_interested add_nested_sub &&
		(
			cd submodule_update &&
			git branch -t no_submodule origin/no_submodule &&
			$command no_submodule &&
			test_superproject_content origin/no_submodule &&
			! test_path_is_dir sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree &&
			test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_nested_sub'
Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Directory sub1 doesn't exist. 
ok 30 - git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed

expecting success of 1013.31 'git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'invalid_sub1' from 'origin'.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: Submodule 'sub1' could not be updated.
error: Submodule 'sub1' cannot checkout new HEAD.
ok 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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'modify_sub1' from 'origin'.
fatal: ref HEAD is not a symbolic ref
ok 33 - git read-tree -u --reset --recurse-submodules: submodule branch is not changed, detach HEAD instead

expecting success of 1013.34 'git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			>sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
ok 34 - git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced

expecting success of 1013.35 'git read-tree -u --reset --recurse-submodules: replace submodule with a directory': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
ok 35 - git read-tree -u --reset --recurse-submodules: replace submodule with a directory

expecting success of 1013.36 'git read-tree -u --reset --recurse-submodules: replace submodule containing a .git directory with a directory must fail': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			rm -rf .git/modules/sub1 &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory &&
			test_git_directory_exists sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
ok 37 - git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files

expecting success of 1013.38 'git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit': 
		prolog &&
		reset_work_tree_to_interested invalid_sub1 &&
		(
			cd submodule_update &&
			git branch -t valid_sub1 origin/valid_sub1 &&
			$command valid_sub1 &&
			test_superproject_content origin/valid_sub1 &&
			test_submodule_content sub1 origin/valid_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'invalid_sub1'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: Needed a single revision
Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'.
ok 38 - git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit

expecting success of 1013.39 'git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			echo "gitdir: bogus/path" >sub1/.git &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 45 - git_test_func: removed submodule leaves submodule directory and its contents in place

expecting success of 1013.46 'git_test_func: removed submodule leaves submodule containing a .git directory alone': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			replace_gitfile_with_git_dir sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 46 - git_test_func: removed submodule leaves submodule containing a .git directory alone

expecting success of 1013.47 'git_test_func: replace submodule with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: Untracked working tree file 'sub1/file1' would be overwritten by merge.
ok 47 - git_test_func: replace submodule with a directory must fail

expecting success of 1013.48 'git_test_func: replace submodule containing a .git directory with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: Untracked working tree file 'sub1/file1' would be overwritten by merge.
ok 48 - git_test_func: replace submodule containing a .git directory with a directory must fail

checking known breakage of 1013.49 'git_test_func: replace submodule with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
test_must_fail: command succeeded: git read-tree -u -m replace_sub1_with_file
not ok 49 - git_test_func: replace submodule with a file must fail # TODO known breakage

checking known breakage of 1013.50 'git_test_func: replace submodule containing a .git directory with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
test_must_fail: command succeeded: git read-tree -u -m replace_sub1_with_file
not ok 50 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage

expecting success of 1013.51 'git_test_func: modified submodule does not update submodule work tree': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			git submodule update &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53'
ok 51 - git_test_func: modified submodule does not update submodule work tree

expecting success of 1013.52 'git_test_func: modified submodule does not update submodule work tree to invalid commit': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t invalid_sub1 origin/invalid_sub1 &&
			$command invalid_sub1 &&
			test_superproject_content origin/invalid_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			test_must_fail git submodule update &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'invalid_sub1' from 'origin'.
fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 52 - git_test_func: modified submodule does not update submodule work tree to invalid commit

expecting success of 1013.53 'git_test_func: modified submodule does not update submodule work tree from invalid commit': 
		prolog &&
		reset_work_tree_to invalid_sub1 &&
		(
			cd submodule_update &&
			git branch -t valid_sub1 origin/valid_sub1 &&
			$command valid_sub1 &&
			test_superproject_content origin/valid_sub1 &&
			test_dir_is_empty sub1 &&
			git submodule update --init --recursive &&
			test_submodule_content sub1 origin/valid_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'invalid_sub1'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: Needed a single revision
Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
error: Untracked working tree file 'sub1' would be overwritten by merge.
ok 54 - git_test_func: added submodule doesn't remove untracked unignored file with same name

expecting success of 1013.55 'git_test_func: added submodule creates empty directory': 
		prolog &&
		reset_work_tree_to no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_dir_is_empty sub1 &&
			git submodule update --init --recursive &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 59 - git_test_func: removed submodule leaves submodule directory and its contents in place

expecting success of 1013.60 'git_test_func: removed submodule leaves submodule containing a .git directory alone': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			replace_gitfile_with_git_dir sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 60 - git_test_func: removed submodule leaves submodule containing a .git directory alone

checking known breakage of 1013.61 'git_test_func: replace submodule with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_directory
not ok 61 - git_test_func: replace submodule with a directory must fail # TODO known breakage

checking known breakage of 1013.62 'git_test_func: replace submodule containing a .git directory with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_directory
not ok 62 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage

checking known breakage of 1013.63 'git_test_func: replace submodule with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_file
not ok 63 - git_test_func: replace submodule with a file must fail # TODO known breakage

checking known breakage of 1013.64 'git_test_func: replace submodule containing a .git directory with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_file
not ok 64 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage

expecting success of 1013.65 'git_test_func: modified submodule does not update submodule work tree': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			git submodule update &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53'
ok 65 - git_test_func: modified submodule does not update submodule work tree

expecting success of 1013.66 'git_test_func: modified submodule does not update submodule work tree to invalid commit': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t invalid_sub1 origin/invalid_sub1 &&
			$command invalid_sub1 &&
			test_superproject_content origin/invalid_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			test_must_fail git submodule update &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'invalid_sub1' from 'origin'.
fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 66 - git_test_func: modified submodule does not update submodule work tree to invalid commit

expecting success of 1013.67 'git_test_func: modified submodule does not update submodule work tree from invalid commit': 
		prolog &&
		reset_work_tree_to invalid_sub1 &&
		(
			cd submodule_update &&
			git branch -t valid_sub1 origin/valid_sub1 &&
			$command valid_sub1 &&
			test_superproject_content origin/valid_sub1 &&
			test_dir_is_empty sub1 &&
			git submodule update --init --recursive &&
			test_submodule_content sub1 origin/valid_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'invalid_sub1'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: Needed a single revision
Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
ok 68 - git_test_func: added submodule does remove untracked unignored file with same name when forced

# still have 11 known breakage(s)
# passed all remaining 57 test(s)
1..68
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 master &&
	git clone . clone &&
	test_commit 3 &&
	(cd clone &&
	 test_commit 4 &&
	 git branch --track my-side origin/side &&
	 git branch --track local-master master &&
	 git branch --track fun@ny origin/side &&
	 git branch --track @funny origin/side &&
	 git branch --track funny@ origin/side &&
	 git remote add -t master master-only .. &&
	 git fetch master-only &&
	 git branch bad-upstream &&
	 git config branch.bad-upstream.remote master-only &&
	 git config branch.bad-upstream.merge refs/heads/side
	)

[master (root-commit) d0dcf97] 1
 Author: A U Thor <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 'master'
Cloning into 'clone'...
done.
[master 8f489d0] 3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 3.t
[master 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 remote branch 'side' from 'origin'.
Branch 'local-master' set up to track local branch 'master'.
Branch 'fun@ny' set up to track remote branch 'side' from 'origin'.
Branch '@funny' set up to track remote branch 'side' from 'origin'.
Branch 'funny@' set up to track remote branch 'side' from 'origin'.
From ..
 * [new branch]      master     -> master-only/master
 * [new tag]         3          -> 3
ok 1 - setup

expecting success of 1507.2 '@{upstream} resolves to correct full name': 
	echo refs/remotes/origin/master >expect &&
	git -C clone rev-parse --symbolic-full-name @{upstream} >actual &&
	test_cmp expect actual &&
	git -C clone rev-parse --symbolic-full-name @{UPSTREAM} >actual &&
	test_cmp expect actual &&
	git -C clone rev-parse --symbolic-full-name @{UpSTReam} >actual &&
	test_cmp expect actual

ok 2 - @{upstream} resolves to correct full name

expecting success of 1507.3 '@{u} resolves to correct full name': 
	echo refs/remotes/origin/master >expect &&
	git -C clone rev-parse --symbolic-full-name @{u} >actual &&
	test_cmp expect actual &&
	git -C clone rev-parse --symbolic-full-name @{U} >actual &&
	test_cmp expect actual

ok 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  master     -> origin/master
   82335b2..e3f9627  side       -> origin/side
 * [new tag]         5          -> 5
ok 9 - my-side@{u} resolves to correct commit

expecting success of 1507.10 'not-tracking@{u} fails': 
	test_must_fail git -C clone rev-parse --symbolic-full-name non-tracking@{u} &&
	(cd clone && git checkout --no-track -b non-tracking) &&
	test_must_fail git -C clone rev-parse --symbolic-full-name non-tracking@{u}

fatal: no such branch: 'non-tracking'
Switched to a new branch 'non-tracking'
fatal: no upstream configured for branch 'non-tracking'
ok 10 - not-tracking@{u} fails

expecting success of 1507.11 '<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 remote branch 'side' from 'origin'.
ok 13 - checkout -b new my-side@{u} forks from the same

expecting success of 1507.14 'merge my-side@{u} records the correct name': 
(
	cd clone &&
	git checkout master &&
	test_might_fail git branch -D new &&
	git branch -t new my-side@{u} &&
	git merge -s ours new@{u} &&
	git show -s --pretty=tformat:%s >actual &&
	echo "Merge remote-tracking branch ${SQ}origin/side${SQ}" >expect &&
	test_cmp expect actual
)

Switched to branch 'master'
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
Deleted branch new (was 8bf5882).
Branch 'new' set up to track remote branch 'side' from 'origin'.
Merge made by the 'ours' strategy.
ok 14 - merge my-side@{u} records the correct name

expecting success of 1507.15 'branch -d other@{u}': 
	git checkout -t -b other master &&
	git branch -d @{u} &&
	git for-each-ref refs/heads/master >actual &&
	test_must_be_empty actual

Previous HEAD position was 8bf5882 6
Switched to a new branch 'other'
Branch 'other' set up to track local branch 'master'.
Deleted branch master (was 8f489d0).
ok 15 - branch -d other@{u}

expecting success of 1507.16 'checkout other@{u}': 
	git branch -f master HEAD &&
	git checkout -t -b another master &&
	git checkout @{u} &&
	git symbolic-ref HEAD >actual &&
	echo refs/heads/master >expect &&
	test_cmp expect actual

Switched to a new branch 'another'
Branch 'another' set up to track local branch 'master'.
Switched to branch 'master'
ok 16 - checkout other@{u}

expecting success of 1507.17 'branch@{u} works when tracking a local branch': 
	echo refs/heads/master >expect &&
	git -C clone rev-parse --symbolic-full-name local-master@{u} >actual &&
	test_cmp expect actual

ok 17 - branch@{u} works when tracking a local branch

expecting success of 1507.18 'branch@{u} error message when no upstream': 
	cat >expect <<-EOF &&
	fatal: no upstream configured for branch ${SQ}non-tracking${SQ}
	EOF
	error_message non-tracking@{u} &&
	test_i18ncmp expect error

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 18 - branch@{u} error message when no upstream

expecting success of 1507.19 '@{u} error message when no upstream': 
	cat >expect <<-EOF &&
	fatal: no upstream configured for branch ${SQ}master${SQ}
	EOF
	test_must_fail git rev-parse --verify @{u} 2>actual &&
	test_i18ncmp expect actual

ok 19 - @{u} error message when no upstream

expecting success of 1507.20 'branch@{u} error message with misspelt branch': 
	cat >expect <<-EOF &&
	fatal: no such branch: ${SQ}no-such-branch${SQ}
	EOF
	error_message no-such-branch@{u} &&
	test_i18ncmp expect error

ok 20 - branch@{u} error message with misspelt branch

expecting success of 1507.21 '@{u} error message when not on a branch': 
	cat >expect <<-EOF &&
	fatal: HEAD does not point to a branch
	EOF
	git checkout HEAD^0 &&
	test_must_fail git rev-parse --verify @{u} 2>actual &&
	test_i18ncmp expect actual

Note: switching to 'HEAD^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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_i18ncmp expect error

ok 22 - branch@{u} error message if upstream branch not fetched

expecting success of 1507.23 'pull works when tracking a local branch': 
(
	cd clone &&
	git checkout local-master &&
	git pull
)

Switched to branch 'local-master'
Your branch is behind 'master' by 4 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
From .
 * branch            master     -> FETCH_HEAD
Updating 6efda21..ac35135
Fast-forward
ok 23 - pull works when tracking a local branch

expecting success of 1507.24 '@{u} works when tracking a local branch': 
	echo refs/heads/master >expect &&
	git -C clone rev-parse --symbolic-full-name @{u} >actual &&
	test_cmp expect actual

ok 24 - @{u} works when tracking a local branch

expecting success of 1507.25 'log -g other@{u}': 
	commit=$(git rev-parse HEAD) &&
	cat >expect <<-EOF &&
	commit $commit
	Reflog: master@{0} (C O Mitter <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: master@{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'
*** 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 master-one &&
	test_commit master-two &&
	git checkout -b upstream-branch &&
	test_commit upstream-one &&
	test_commit upstream-two &&
	if test_have_prereq !MINGW
	then
		git checkout -b @/at-test
	fi &&
	git checkout -b @@/at-test &&
	git checkout -b @at-test &&
	git checkout -b old-branch &&
	test_commit old-one &&
	test_commit old-two &&
	git checkout -b new-branch &&
	test_commit new-one &&
	test_commit new-two &&
	git branch -u master old-branch &&
	git branch -u upstream-branch new-branch

[master (root-commit) 8ff5a25] master-one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 master-one.t
[master 8164ab4] master-two
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 master-two.t
Switched to a new branch 'upstream-branch'
[upstream-branch 101729d] upstream-one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream-one.t
[upstream-branch 77f4b7f] 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 4e4e7fa] old-one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 old-one.t
[old-branch 3273d4d] 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 e49ce93] new-one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 new-one.t
[new-branch c493e4b] 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 local branch 'master'.
Branch 'new-branch' set up to track local branch '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/master': 
		echo 'refs/heads/master' >expect &&
		if test 'ref' = 'commit'
		then
			git log -1 --format=%s '@{-1}@{u}' >actual
		elif test 'ref' = 'ref'
		then
			git rev-parse --symbolic-full-name '@{-1}@{u}' >actual
		else
			git cat-file -p '@{-1}@{u}' >actual
		fi &&
		test_cmp expect actual
	
ok 13 - @{-1}@{u} = refs/heads/master

expecting success of 1508.14 '@{-1}@{u}@{1} = master-one': 
		echo 'master-one' >expect &&
		if test 'commit' = 'commit'
		then
			git log -1 --format=%s '@{-1}@{u}@{1}' >actual
		elif test 'commit' = 'ref'
		then
			git rev-parse --symbolic-full-name '@{-1}@{u}@{1}' >actual
		else
			git cat-file -p '@{-1}@{u}@{1}' >actual
		fi &&
		test_cmp expect actual
	
ok 14 - @{-1}@{u}@{1} = master-one

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 'master' 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 9d022ac] 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

# passed all 33 test(s)
1..33
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 master &&
	echo modified >>a-blob &&
	git add -u &&
	git commit -m Modified &&
	git branch modref &&
	echo changed! >>a-blob &&
	git add -u &&
	git commit -m !Exp &&
	git branch expref &&
	echo changed >>a-blob &&
	git add -u &&
	git commit -m Changed &&
	echo changed-again >>a-blob &&
	git add -u &&
	git commit -m Changed-again

[master (root-commit) 543146a] Initial
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+)
 create mode 100644 a-blob
 create mode 100644 a-tree/another-blob
Already on 'master'
[master 921b76a] Modified
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master e6ae3e8] !Exp
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master ee9e0b8] Changed
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master 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 master >expected &&
	git rev-parse master^{/.} >actual &&
	test_cmp expected actual

ok 7 - ref^{/.}

expecting success of 1511.8 'ref^{/non-existent}': 
	test_must_fail git rev-parse master^{/non-existent}

fatal: ambiguous argument 'master^{/non-existent}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
master^{/non-existent}
ok 8 - ref^{/non-existent}

expecting success of 1511.9 'ref^{/Initial}': 
	git rev-parse ref >expected &&
	git rev-parse master^{/Initial} >actual &&
	test_cmp expected actual

ok 9 - ref^{/Initial}

expecting success of 1511.10 'ref^{/!Exp}': 
	test_must_fail git rev-parse master^{/!Exp}

fatal: ambiguous argument 'master^{/!Exp}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
master^{/!Exp}
ok 10 - ref^{/!Exp}

expecting success of 1511.11 'ref^{/!}': 
	test_must_fail git rev-parse master^{/!}

fatal: ambiguous argument 'master^{/!}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
master^{/!}
ok 11 - ref^{/!}

expecting success of 1511.12 'ref^{/!!Exp}': 
	git rev-parse expref >expected &&
	git rev-parse master^{/!!Exp} >actual &&
	test_cmp expected actual

ok 12 - ref^{/!!Exp}

expecting success of 1511.13 'ref^{/!-}': 
	test_must_fail git rev-parse master^{/!-}

fatal: ambiguous argument 'master^{/!-}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
master^{/!-}
ok 13 - ref^{/!-}

expecting success of 1511.14 'ref^{/!-.}': 
	test_must_fail git rev-parse master^{/!-.}

fatal: ambiguous argument 'master^{/!-.}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
master^{/!-.}
ok 14 - ref^{/!-.}

expecting success of 1511.15 'ref^{/!-non-existent}': 
	git rev-parse master >expected &&
	git rev-parse master^{/!-non-existent} >actual &&
	test_cmp expected actual

ok 15 - ref^{/!-non-existent}

expecting success of 1511.16 'ref^{/!-Changed}': 
	git rev-parse expref >expected &&
	git rev-parse master^{/!-Changed} >actual &&
	test_cmp expected actual

ok 16 - ref^{/!-Changed}

expecting success of 1511.17 'ref^{/!-!Exp}': 
	git rev-parse modref >expected &&
	git rev-parse expref^{/!-!Exp} >actual &&
	test_cmp expected actual

ok 17 - ref^{/!-!Exp}

# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<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

[master (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/ master file1 >actual &&
	cat <<-EOF >expected &&
	$(git rev-parse master)
	sub1/file1
	EOF
	test_cmp expected actual

ok 10 - file and refs with prefix

expecting success of 1513.11 'two-levels deep': 
	git rev-parse --prefix sub1/sub2/ -- file2 >actual &&
	cat <<-\EOF >expected &&
	--
	sub1/sub2/file2
	EOF
	test_cmp expected actual

ok 11 - two-levels deep

# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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/master master &&
	git branch --track topic origin/master &&
	git push origin topic &&
	git push other topic

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
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.t1514-rev-parse-push/parent.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t1514-rev-parse-push/other.git/
[master (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 -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Branch 'topic' set up to track remote branch 'master' from 'origin'.
To parent.git
 * [new branch]      topic -> topic
To other.git
 * [new branch]      topic -> topic
ok 1 - setup

expecting success of 1514.2 '@{push} with default=nothing': 
	test_config push.default nothing &&
	test_must_fail git rev-parse master@{push} &&
	test_must_fail git rev-parse master@{PUSH} &&
	test_must_fail git rev-parse master@{PuSH}

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 master@{push} refs/remotes/origin/master &&
	resolve master@{PUSH} refs/remotes/origin/master &&
	resolve master@{pUSh} refs/remotes/origin/master

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]      master -> magic/master
 * [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 'master'
Your branch is up to date with 'origin/master'.
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'
*** 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>&1 | sed "s/[0-9]//" >actual.err &&
		sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
			warning: GIT_INDEX_VERSION set, but the value is invalid.
			Using version Z
		EOF
		test_i18ncmp expect.err actual.err
	)

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 2 - 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>&1 | sed "s/[0-9]//" >actual.err &&
		sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
			warning: GIT_INDEX_VERSION set, but the value is invalid.
			Using version Z
		EOF
		test_i18ncmp expect.err actual.err
	)

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 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>&1 | sed "s/[0-9]//" >actual.err &&
		sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
			warning: index.version set, but the value is invalid.
			Using version Z
		EOF
		test_i18ncmp expect.err actual.err
	)

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 5 - out of bounds index.version issues warning

expecting success of 1600.6 'index version config precedence': 
	test_index_version 0 false 0 2 &&
	test_index_version 2 false 0 2 &&
	test_index_version 3 false 0 2 &&
	test_index_version 4 false 0 4 &&
	test_index_version 2 false 4 4 &&
	test_index_version 2 true 0 2 &&
	test_index_version 0 true 0 4 &&
	test_index_version 0 true 2 2

ok 6 - index version config precedence

# passed all 6 test(s)
1..6
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/
checking prerequisite: SHA1

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SHA1" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-SHA1" &&
	case "$GIT_DEFAULT_HASH" in
	sha1) true ;;
	"") test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ;;
	*) false ;;
	esac

)
prerequisite SHA1 ok
expecting success of 1512.1 'blob and tree': 
	test_tick &&
	(
		for i in 0 1 2 3 4 5 6 7 8 9
		do
			echo $i
		done &&
		echo &&
		echo b1rwzyc3
	) >a0blgqsjc &&

	# create one blob 0000000000b36
	git add a0blgqsjc &&

	# create one tree 0000000000cdc
	git write-tree

0000000000cdcf04beb2fab69e65622616294984
ok 1 - blob and tree

expecting success of 1512.2 'warn ambiguity when no candidate matches type hint': 
	test_must_fail git rev-parse --verify 000000000^{commit} 2>actual &&
	test_i18ngrep "short SHA1 000000000 is ambiguous" actual

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: short SHA1 000000000 is ambiguous
ok 2 - warn ambiguity when no candidate matches type hint

expecting success of 1512.3 'disambiguate tree-ish': 
	# feed tree-ish in an unambiguous way
	git rev-parse --verify 0000000000cdc:a0blgqsjc &&

	# ambiguous at the object name level, but there is only one
	# such tree-ish (the other is a blob)
	git rev-parse --verify 000000000:a0blgqsjc

0000000000b36b6aa7ea4b75318ed078f55505c3
0000000000b36b6aa7ea4b75318ed078f55505c3
ok 3 - disambiguate tree-ish

expecting success of 1512.4 'disambiguate blob': 
	sed -e "s/|$//" >patch <<-EOF &&
	diff --git a/frotz b/frotz
	index 000000000..ffffff 100644
	--- a/frotz
	+++ b/frotz
	@@ -10,3 +10,4 @@
	 9
	 |
	 b1rwzyc3
	+irwry
	EOF
	(
		GIT_INDEX_FILE=frotz &&
		export GIT_INDEX_FILE &&
		git apply --build-fake-ancestor frotz patch &&
		git cat-file blob :frotz >actual
	) &&
	test_cmp a0blgqsjc actual

ok 4 - disambiguate blob

expecting success of 1512.5 'disambiguate tree': 
	commit=$(echo "d7xm" | git commit-tree 000000000) &&
	# this commit is fffff2e and not ambiguous with the 00000* objects
	test $(git rev-parse $commit^{tree}) = $(git rev-parse 0000000000cdc)

ok 5 - disambiguate tree

expecting success of 1512.6 'first commit': 
	# create one commit 0000000000e4f
	git commit -m a2onsxbvj

[master (root-commit) 0000000000e] a2onsxbvj
 Author: A U Thor <author@example.com>
 1 file changed, 12 insertions(+)
 create mode 100644 a0blgqsjc
ok 6 - first commit

expecting success of 1512.7 'disambiguate commit-ish': 
	# feed commit-ish in an unambiguous way
	git rev-parse --verify 0000000000e4f^{commit} &&

	# ambiguous at the object name level, but there is only one
	# such commit (the others are tree and blob)
	git rev-parse --verify 000000000^{commit} &&

	# likewise
	git rev-parse --verify 000000000^0

0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
ok 7 - disambiguate commit-ish

expecting success of 1512.8 'disambiguate commit': 
	commit=$(echo "hoaxj" | git commit-tree 0000000000cdc -p 000000000) &&
	# this commit is ffffffd8 and not ambiguous with the 00000* objects
	test $(git rev-parse $commit^) = $(git rev-parse 0000000000e4f)

ok 8 - disambiguate commit

expecting success of 1512.9 'log name1..name2 takes only commit-ishes on both ends': 
	# These are underspecified from the prefix-length point of view
	# to disambiguate the commit with other objects, but there is only
	# one commit that has 00000* prefix at this point.
	git log 000000000..000000000 &&
	git log ..000000000 &&
	git log 000000000.. &&
	git log 000000000...000000000 &&
	git log ...000000000 &&
	git log 000000000...

ok 9 - log name1..name2 takes only commit-ishes on both ends

expecting success of 1512.10 'rev-parse name1..name2 takes only commit-ishes on both ends': 
	# Likewise.
	git rev-parse 000000000..000000000 &&
	git rev-parse ..000000000 &&
	git rev-parse 000000000..

0000000000e4f9fbd19cf1e932319e5ad0d1d00b
^0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
^0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
^0000000000e4f9fbd19cf1e932319e5ad0d1d00b
ok 10 - rev-parse name1..name2 takes only commit-ishes on both ends

expecting success of 1512.11 'git log takes only commit-ish': 
	# Likewise.
	git log 000000000

commit 0000000000e4f9fbd19cf1e932319e5ad0d1d00b
Author: A U Thor <author@example.com>
Date:   Thu Apr 7 15:13:13 2005 -0700

    a2onsxbvj
ok 11 - git log takes only commit-ish

expecting success of 1512.12 'git reset takes only commit-ish': 
	# Likewise.
	git reset 000000000

ok 12 - git reset takes only commit-ish

expecting success of 1512.13 'first tag': 
	# create one tag 0000000000f8f
	git tag -a -m j7cp83um v1.0.0

ok 13 - first tag

checking known breakage of 1512.14 'two semi-ambiguous commit-ish': 
	# At this point, we have a tag 0000000000f8f that points
	# at a commit 0000000000e4f, and a tree and a blob that
	# share 0000000000 prefix with these tag and commit.
	#
	# Once the parser becomes ultra-smart, it could notice that
	# 0000000000 before ^{commit} name many different objects, but
	# that only two (HEAD and v1.0.0 tag) can be peeled to commit,
	# and that peeling them down to commit yield the same commit
	# without ambiguity.
	git rev-parse --verify 0000000000^{commit} &&

	# likewise
	git log 0000000000..0000000000 &&
	git log ..0000000000 &&
	git log 0000000000.. &&
	git log 0000000000...0000000000 &&
	git log ...0000000000 &&
	git log 0000000000...

error: short SHA1 0000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f tag v1.0.0
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
fatal: Needed a single revision
not ok 14 - two semi-ambiguous commit-ish # TODO known breakage

checking known breakage of 1512.15 'three semi-ambiguous tree-ish': 
	# Likewise for tree-ish.  HEAD, v1.0.0 and HEAD^{tree} share
	# the prefix but peeling them to tree yields the same thing
	git rev-parse --verify 0000000000^{tree}

error: short SHA1 0000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f tag v1.0.0
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000000c tree
fatal: Needed a single revision
not ok 15 - three semi-ambiguous tree-ish # TODO known breakage

expecting success of 1512.16 'parse describe name': 
	# feed an unambiguous describe name
	git rev-parse --verify v1.0.0-0-g0000000000e4f &&

	# ambiguous at the object name level, but there is only one
	# such commit (others are blob, tree and tag)
	git rev-parse --verify v1.0.0-0-g000000000

0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
ok 16 - parse describe name

expecting success of 1512.17 'more history': 
	# commit 0000000000043
	git mv a0blgqsjc d12cr3h8t &&
	echo h62xsjeu >>d12cr3h8t &&
	git add d12cr3h8t &&

	test_tick &&
	git commit -m czy8f73t &&

	# commit 00000000008ec
	git mv d12cr3h8t j000jmpzn &&
	echo j08bekfvt >>j000jmpzn &&
	git add j000jmpzn &&

	test_tick &&
	git commit -m ioiley5o &&

	# commit 0000000005b0
	git checkout v1.0.0^0 &&
	git mv a0blgqsjc f5518nwu &&

	for i in h62xsjeu j08bekfvt kg7xflhm
	do
		echo $i
	done >>f5518nwu &&
	git add f5518nwu &&

	test_tick &&
	git commit -m b3wettvi &&
	side=$(git rev-parse HEAD) &&

	# commit 000000000066
	git checkout master &&

	# 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


[master 00000000000] czy8f73t
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 rename a0blgqsjc => d12cr3h8t (76%)
[master 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 'master'
Merging:
00000000008 ioiley5o
virtual 0000000005b0d85f595e1a98533157ea161798da
found 1 common ancestor:
0000000000e a2onsxbvj
CONFLICT (rename/rename): Rename "a0blgqsjc"->"j000jmpzn" in branch "HEAD" rename "a0blgqsjc"->"f5518nwu" in "0000000005b0d85f595e1a98533157ea161798da"
Auto-merging j000jmpzn and f5518nwu, both renamed from a0blgqsjc
Automatic merge failed; fix conflicts and then commit the result.
rm 'f5518nwu'
rm 'j000jmpzn'
rm 'a0blgqsjc'
[master 00000000006] ad2uee
 Author: A U Thor <author@example.com>
ok 17 - more history

checking known breakage of 1512.18 'parse describe name taking advantage of generation': 
	# ambiguous at the object name level, but there is only one
	# such commit at generation 0
	git rev-parse --verify v1.0.0-0-g000000000 &&

	# 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 18 - parse describe name taking advantage of generation # TODO known breakage

expecting success of 1512.19 'parse describe name not ignoring ambiguity': 
	# ambiguous at the object name level, and there are two such
	# commits at generation 1
	test_must_fail git rev-parse --verify v1.0.0-1-g000000000

fatal: Needed a single revision
ok 19 - parse describe name not ignoring ambiguity

expecting success of 1512.20 'ambiguous commit-ish': 
	# Now there are many commits that begin with the
	# common prefix, none of these should pick one at
	# random.  They all should result in ambiguity errors.
	test_must_fail git rev-parse --verify 00000000^{commit} &&

	# likewise
	test_must_fail git log 000000000..000000000 &&
	test_must_fail git log ..000000000 &&
	test_must_fail git log 000000000.. &&
	test_must_fail git log 000000000...000000000 &&
	test_must_fail git log ...000000000 &&
	test_must_fail git log 000000000...

error: short SHA1 00000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: Needed a single revision
error: short SHA1 000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: ambiguous argument '000000000..000000000': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
error: short SHA1 000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: ambiguous argument '..000000000': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
error: short SHA1 000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: ambiguous argument '000000000..': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
error: short SHA1 000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: ambiguous argument '000000000...000000000': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
error: short SHA1 000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: ambiguous argument '...000000000': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
error: short SHA1 000000000 is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
fatal: ambiguous argument '000000000...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ok 20 - ambiguous commit-ish

expecting success of 1512.21 'ambiguous tags peel to treeish': 
	test_must_fail git rev-parse 0000000000f^{tree}

error: short SHA1 0000000000f is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   0000000000fd tree
fatal: ambiguous argument '0000000000f^{tree}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
0000000000f^{tree}
ok 21 - ambiguous tags peel to treeish

expecting success of 1512.22 'rev-parse --disambiguate': 
	# The test creates 16 objects that share the prefix and two
	# commits created by commit-tree in earlier tests share a
	# different prefix.
	git rev-parse --disambiguate=000000000 >actual &&
	test_line_count = 16 actual &&
	test "$(sed -e "s/^\(.........\).*/\1/" actual | sort -u)" = 000000000

ok 22 - rev-parse --disambiguate

expecting success of 1512.23 '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 23 - rev-parse --disambiguate drops duplicates

expecting success of 1512.24 '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 24 - ambiguous 40-hex ref

expecting success of 1512.25 '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 25 - ambiguous short sha1 ref

expecting success of 1512.26 'ambiguity errors are not repeated (raw)': 
	test_must_fail git rev-parse 00000 2>stderr &&
	grep "is ambiguous" stderr >errors &&
	test_line_count = 1 errors

00000
ok 26 - ambiguity errors are not repeated (raw)

expecting success of 1512.27 'ambiguity errors are not repeated (treeish)': 
	test_must_fail git rev-parse 00000:foo 2>stderr &&
	grep "is ambiguous" stderr >errors &&
	test_line_count = 1 errors

00000:foo
ok 27 - ambiguity errors are not repeated (treeish)

expecting success of 1512.28 'ambiguity errors are not repeated (peel)': 
	test_must_fail git rev-parse 00000^{commit} 2>stderr &&
	grep "is ambiguous" stderr >errors &&
	test_line_count = 1 errors

00000^{commit}
ok 28 - ambiguity errors are not repeated (peel)

expecting success of 1512.29 'ambiguity hints': 
	test_must_fail git rev-parse 000000000 2>stderr &&
	grep ^hint: stderr >hints &&
	# 16 candidates, plus one intro line
	test_line_count = 17 hints

000000000
ok 29 - ambiguity hints

expecting success of 1512.30 'ambiguity hints respect type': 
	test_must_fail git rev-parse 000000000^{commit} 2>stderr &&
	grep ^hint: stderr >hints &&
	# 5 commits, 1 tag (which is a committish), plus intro line
	test_line_count = 7 hints

000000000^{commit}
ok 30 - ambiguity hints respect type

expecting success of 1512.31 'failed type-selector still shows hint': 
	# these two blobs share the same prefix "ee3d", but neither
	# will pass for a commit
	echo 851 | git hash-object --stdin -w &&
	echo 872 | git hash-object --stdin -w &&
	test_must_fail git rev-parse ee3d^{commit} 2>stderr &&
	grep ^hint: stderr >hints &&
	test_line_count = 3 hints

ee3de9906b5e9a4a369e91cba4235487a7e10351
ee3d8abaa95a7395b373892b2593de2f426814e2
ee3d^{commit}
ok 31 - failed type-selector still shows hint

expecting success of 1512.32 'core.disambiguate config can prefer types': 
	# ambiguous between tree and tag
	sha1=0000000000f &&
	test_must_fail git rev-parse $sha1 &&
	git rev-parse $sha1^{commit} &&
	git -c core.disambiguate=committish rev-parse $sha1

error: short SHA1 0000000000f is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   0000000000fd tree
hint:   0000000000f2 blob
fatal: ambiguous argument '0000000000f': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
0000000000f
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000f8f5507ab27a0d7bd3c75c0f64ffe0
ok 32 - core.disambiguate config can prefer types

expecting success of 1512.33 'core.disambiguate does not override context': 
	# treeish ambiguous between tag and tree
	test_must_fail \
		git -c core.disambiguate=committish rev-parse $sha1^{tree}

error: short SHA1 0000000000f is ambiguous
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   0000000000fd tree
fatal: ambiguous argument '0000000000f^{tree}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
0000000000f^{tree}
ok 33 - core.disambiguate does not override context

expecting success of 1512.34 'ambiguous commits are printed by type first, then hash order': 
	test_must_fail git rev-parse 0000 2>stderr &&
	grep ^hint: stderr >hints &&
	grep 0000 hints >objects &&
	cat >expected <<-\EOF &&
	tag
	commit
	tree
	blob
	EOF
	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
	done

0000
ok 34 - ambiguous commits are printed by type first, then hash order

expecting success of 1512.35 'cat-file --batch and --batch-check show ambiguous': 
	echo "0000 ambiguous" >expect &&
	echo 0000 | git cat-file --batch-check >actual 2>err &&
	test_cmp expect actual &&
	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 v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
hint:   000000000002 tree
hint:   00000000005 tree
hint:   00000000009 tree
hint:   0000000000c tree
hint:   0000000000fd tree
hint:   00000000001 blob
hint:   00000000003 blob
hint:   0000000000a blob
hint:   0000000000b blob
hint:   0000000000f2 blob
hint: The candidates are:
hint:   0000000000f8 tag v1.0.0
hint:   000000000004 commit 2005-04-07 - czy8f73t
hint:   00000000006 commit 2005-04-07 - ad2uee
hint:   00000000008 commit 2005-04-07 - ioiley5o
hint:   0000000000e commit 2005-04-07 - a2onsxbvj
hint:   0000000005 commit 2005-04-07 - b3wettvi
hint:   000000000002 tree
hint:   00000000005 tree
hint:   00000000009 tree
hint:   0000000000c tree
hint:   0000000000fd tree
hint:   00000000001 blob
hint:   00000000003 blob
hint:   0000000000a blob
hint:   0000000000b blob
hint:   0000000000f2 blob
ok 35 - cat-file --batch and --batch-check show ambiguous

# still have 3 known breakage(s)
# passed all remaining 32 test(s)
1..35
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: invalid object 160000 0000000000000000000000000000000000000000 for 'broken'
error: cache entry has null sha1: broken
fatal: unable to write new index file
ok 2 - read-tree refuses to read null sha1

expecting success of 1601.3 'GIT_ALLOW_NULL_SHA1 overrides refusal': 
	GIT_ALLOW_NULL_SHA1=1 git read-tree $tree

error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken'
warning: cache entry has null sha1: broken
ok 3 - GIT_ALLOW_NULL_SHA1 overrides refusal

expecting success of 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'
*** 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'
*** 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t1700-split-index/same-mode/.git/
[master (root-commit) 0ddfaf1] A
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 A.t
On branch master
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/
[master (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

[master (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
error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken'
warning: cache entry has null sha1: broken
HEAD is now at 57cc685 add broken entry
error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken'
ok 26 - writing split index with null sha1 does not write cache tree

expecting success of 1700.27 'do not refresh null base index': 
	test_create_repo merge &&
	(
		cd merge &&
		test_commit initial &&
		git checkout -b side-branch &&
		test_commit extra &&
		git checkout master &&
		git update-index --split-index &&
		test_commit more &&
		# must not write a new shareindex, or we wont catch the problem
		git -c splitIndex.maxPercentChange=100 merge --no-edit side-branch 2>err &&
		# i.e. do not expect warnings like
		# could not freshen shared index .../shareindex.00000...
		test_must_be_empty err
	)

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/merge/.git/
[master (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 'master'
[master 34c8267] more
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 more.t
Merging:
34c8267 more
virtual side-branch
found 1 common ancestor:
5e30013 initial
Merge made by the 'recursive' strategy.
 extra.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 extra.t
ok 27 - do not refresh null base index

# passed all 27 test(s)
1..27
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
	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
	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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
git 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
usage: git 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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)

# passed all 6 test(s)
1..6
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 "master has file frotz/filfre" &&

	git branch side &&

	echo goodbye >nitfol &&
	git add nitfol &&
	test_tick &&
	git commit -m "master 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/"


[master (root-commit) f92d3a8] master has file frotz/filfre
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 frotz/filfre
[master ed594a0] master 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 1502bd7] 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 master


Switched to branch 'master'
ok 2 - switch from symlink to dir

expecting success of 2007.3 'Remove temporary directories & switch to master': 
	rm -fr frotz xyzzy nitfol &&
	git checkout -f master

Already on 'master'
ok 3 - Remove temporary directories & switch to master

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


[master (root-commit) b8cd0f7] initial
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 world
[master 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 master &&
	test "$(git diff-files --raw)" = "" &&

	git checkout side &&
	test "$(git diff-files --raw)" = "" &&

	git checkout master &&
	test "$(git diff-files --raw)" = ""


HEAD is now at 5892dcd second
Already on 'master'
Switched to branch 'side'
Switched to branch 'master'
ok 2 - branch switching

expecting success of 2009.3 'path checkout': 

	git reset --hard &&
	test "$(git diff-files --raw)" = "" &&

	git checkout master world &&
	test "$(git diff-files --raw)" = "" &&

	git checkout side world &&
	test "$(git diff-files --raw)" = "" &&

	git checkout master 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

[master (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/master" = "$(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 master -- 2>actual &&
	test_i18ngrep 2 actual &&
	test_i18ngrep "one reference expected, 2 given" actual

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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

[master (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 master^{tree}

fatal: Cannot switch branch to a non-commit 'master^{tree}'
ok 2 - checkout should not start branch from a tree

expecting success of 2011.3 'checkout master from invalid HEAD': 
	echo $ZERO_OID >.git/HEAD &&
	git checkout master --

Switched to branch 'master'
ok 3 - checkout master 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 master &&

	# 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 master

Switched to branch 'master'
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 master

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 master

Switched to branch 'master'
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 master

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': 
	echo hello >world &&
	git add world &&
	git commit -m initial &&
	git branch other &&
	echo "hello again" >>world &&
	git add world &&
	git commit -m second

[master (root-commit) b8cd0f7] initial
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 world
[master 261306f] 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 "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"

Switched to branch 'master'
ok 4 - "checkout -" switches back

expecting success of 2012.5 '"checkout -" switches forth': 
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"

Switched to branch 'other'
ok 5 - "checkout -" switches forth

expecting success of 2012.6 'detach HEAD': 
	git checkout $(git rev-parse HEAD)

Note: switching to 'b8cd0f7432d68cb7ccc99e41ef8985d197bfd99b'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 b8cd0f7 initial
ok 6 - detach HEAD

expecting success of 2012.7 '"checkout -" attaches again': 
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"

Switched to branch 'other'
ok 7 - "checkout -" attaches again

expecting success of 2012.8 '"checkout -" detaches again': 
	git checkout - &&
	test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" &&
	test_must_fail git symbolic-ref HEAD

Note: switching to 'b8cd0f7432d68cb7ccc99e41ef8985d197bfd99b'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 b8cd0f7 initial
fatal: ref HEAD is not a symbolic ref
ok 8 - "checkout -" detaches again

expecting success of 2012.9 'more switches': 
	for i in 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
	do
		git checkout -b branch$i
	done

Switched to a new branch 'branch16'
Switched to a new branch 'branch15'
Switched to a new branch 'branch14'
Switched to a new branch 'branch13'
Switched to a new branch 'branch12'
Switched to a new branch 'branch11'
Switched to a new branch 'branch10'
Switched to a new branch 'branch9'
Switched to a new branch 'branch8'
Switched to a new branch 'branch7'
Switched to a new branch 'branch6'
Switched to a new branch 'branch5'
Switched to a new branch 'branch4'
Switched to a new branch 'branch3'
Switched to a new branch 'branch2'
Switched to a new branch 'branch1'
ok 9 - more switches

expecting success of 2012.10 'switch to the last': 
	more_switches &&
	git checkout @{-1} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch2"

Switched to branch 'branch16'
Switched to branch 'branch15'
Switched to branch 'branch14'
Switched to branch 'branch13'
Switched to branch 'branch12'
Switched to branch 'branch11'
Switched to branch 'branch10'
Switched to branch 'branch9'
Switched to branch 'branch8'
Switched to branch 'branch7'
Switched to branch 'branch6'
Switched to branch 'branch5'
Switched to branch 'branch4'
Switched to branch 'branch3'
Switched to branch 'branch2'
Switched to branch 'branch1'
Switched to branch 'branch2'
ok 10 - switch to the last

expecting success of 2012.11 'switch to second from the last': 
	more_switches &&
	git checkout @{-2} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch3"

Switched to branch 'branch16'
Switched to branch 'branch15'
Switched to branch 'branch14'
Switched to branch 'branch13'
Switched to branch 'branch12'
Switched to branch 'branch11'
Switched to branch 'branch10'
Switched to branch 'branch9'
Switched to branch 'branch8'
Switched to branch 'branch7'
Switched to branch 'branch6'
Switched to branch 'branch5'
Switched to branch 'branch4'
Switched to branch 'branch3'
Switched to branch 'branch2'
Switched to branch 'branch1'
Switched to branch 'branch3'
ok 11 - switch to second from the last

expecting success of 2012.12 'switch to third from the last': 
	more_switches &&
	git checkout @{-3} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch4"

Switched to branch 'branch16'
Switched to branch 'branch15'
Switched to branch 'branch14'
Switched to branch 'branch13'
Switched to branch 'branch12'
Switched to branch 'branch11'
Switched to branch 'branch10'
Switched to branch 'branch9'
Switched to branch 'branch8'
Switched to branch 'branch7'
Switched to branch 'branch6'
Switched to branch 'branch5'
Switched to branch 'branch4'
Switched to branch 'branch3'
Switched to branch 'branch2'
Switched to branch 'branch1'
Switched to branch 'branch4'
ok 12 - switch to third from the last

expecting success of 2012.13 'switch to fourth from the last': 
	more_switches &&
	git checkout @{-4} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch5"

Switched to branch 'branch16'
Switched to branch 'branch15'
Switched to branch 'branch14'
Switched to branch 'branch13'
Switched to branch 'branch12'
Switched to branch 'branch11'
Switched to branch 'branch10'
Switched to branch 'branch9'
Switched to branch 'branch8'
Switched to branch 'branch7'
Switched to branch 'branch6'
Switched to branch 'branch5'
Switched to branch 'branch4'
Switched to branch 'branch3'
Switched to branch 'branch2'
Switched to branch 'branch1'
Switched to branch 'branch5'
ok 13 - switch to fourth from the last

expecting success of 2012.14 'switch to twelfth from the last': 
	more_switches &&
	git checkout @{-12} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch13"

Switched to branch 'branch16'
Switched to branch 'branch15'
Switched to branch 'branch14'
Switched to branch 'branch13'
Switched to branch 'branch12'
Switched to branch 'branch11'
Switched to branch 'branch10'
Switched to branch 'branch9'
Switched to branch 'branch8'
Switched to branch 'branch7'
Switched to branch 'branch6'
Switched to branch 'branch5'
Switched to branch 'branch4'
Switched to branch 'branch3'
Switched to branch 'branch2'
Switched to branch 'branch1'
Switched to branch 'branch13'
ok 14 - switch to twelfth from the last

expecting success of 2012.15 'merge base test setup': 
	git checkout -b another other &&
	echo "hello again" >>world &&
	git add world &&
	git commit -m third

Switched to a new branch 'another'
[another 7bc4f0b] third
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
ok 15 - merge base test setup

expecting success of 2012.16 'another...master': 
	git checkout another &&
	git checkout another...master &&
	test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)"

Already on 'another'
Note: switching to 'another...master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 b8cd0f7 initial
ok 16 - another...master

expecting success of 2012.17 '...master': 
	git checkout another &&
	git checkout ...master &&
	test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)"

Previous HEAD position was b8cd0f7 initial
Switched to branch 'another'
Note: switching to '...master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 b8cd0f7 initial
ok 17 - ...master

expecting success of 2012.18 'master...': 
	git checkout another &&
	git checkout master... &&
	test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)"

Previous HEAD position was b8cd0f7 initial
Switched to branch 'another'
Note: switching to 'master...'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 b8cd0f7 initial
ok 18 - master...

expecting success of 2012.19 '"checkout -" works after a rebase A': 
	git checkout master &&
	git checkout other &&
	git rebase master &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"

Previous HEAD position was b8cd0f7 initial
Switched to branch 'master'
Switched to branch 'other'

                                                                                
Successfully rebased and updated refs/heads/other.
Switched to branch 'master'
ok 19 - "checkout -" works after a rebase A

expecting success of 2012.20 '"checkout -" works after a rebase A B': 
	git branch moodle master~1 &&
	git checkout master &&
	git checkout other &&
	git rebase master moodle &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"

Already on 'master'
Switched to branch 'other'

                                                                                
Successfully rebased and updated refs/heads/moodle.
Switched to branch 'master'
ok 20 - "checkout -" works after a rebase A B

expecting success of 2012.21 '"checkout -" works after a rebase -i A': 
	git checkout master &&
	git checkout other &&
	git rebase -i master &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"

Already on 'master'
Switched to branch 'other'

                                                                                
Successfully rebased and updated refs/heads/other.
Switched to branch 'master'
ok 21 - "checkout -" works after a rebase -i A

expecting success of 2012.22 '"checkout -" works after a rebase -i A B': 
	git branch foodle master~1 &&
	git checkout master &&
	git checkout other &&
	git rebase master foodle &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"

Already on 'master'
Switched to branch 'other'

                                                                                
Successfully rebased and updated refs/heads/foodle.
Switched to branch 'master'
ok 22 - "checkout -" works after a rebase -i A B

# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<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 master:origin

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2015-checkout-unborn/parent/.git/
[master (root-commit) 5d770fe] base
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
From parent
 * [new branch]      master     -> origin
ok 1 - setup

expecting success of 2015.2 'checkout from unborn preserves untracked files': 
	echo precious >expect &&
	echo precious >file &&
	test_must_fail git checkout -b new origin &&
	test_cmp expect file

error: The following untracked working tree files would be overwritten by checkout:
	file
Please move or remove them before you switch branches.
Aborting
ok 2 - checkout from unborn preserves untracked files

expecting success of 2015.3 'checkout from unborn preserves index contents': 
	echo precious >expect &&
	echo precious >file &&
	git add file &&
	test_must_fail git checkout -b new origin &&
	test_cmp expect file &&
	git show :file >file &&
	test_cmp expect file

error: Your local changes to the following files would be overwritten by checkout:
	file
Please commit your changes or stash them before you switch branches.
Aborting
ok 3 - checkout from unborn preserves index contents

expecting success of 2015.4 'checkout from unborn merges identical index contents': 
	echo content >file &&
	git add file &&
	git checkout -b new origin

Switched to a new branch 'new'
ok 4 - checkout from unborn merges identical index contents

expecting success of 2015.5 'checking out another branch from unborn state': 
	git checkout --orphan newroot &&
	git checkout -b anothername &&
	test_must_fail git show-ref --verify refs/heads/newroot &&
	git symbolic-ref HEAD >actual &&
	echo refs/heads/anothername >expect &&
	test_cmp expect actual

Switched to a new branch 'newroot'
Switched to a new branch 'anothername'
fatal: 'refs/heads/newroot' - not a valid ref
ok 5 - checking out another branch from unborn state

expecting success of 2015.6 'checking out in a newly created repo': 
	test_create_repo empty &&
	(
		cd empty &&
		git symbolic-ref HEAD >expect &&
		test_must_fail git checkout &&
		git symbolic-ref HEAD >actual &&
		test_cmp expect actual
	)

Initialized empty Git repository in /<<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'
*** 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 initial

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'
*** 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'
*** 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"

[master (root-commit) df316c6] First Commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 foo
[master 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 master 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 master &&
	git checkout --orphan beta master^ &&
	test_must_fail git rev-parse --verify HEAD &&
	test "refs/heads/beta" = "$(git symbolic-ref HEAD)" &&
	test_tick &&
	git commit -m "Fourth Commit" &&
	test_must_fail git rev-parse --verify HEAD^ &&
	git diff-tree --quiet master^ beta

Switched to branch 'master'
Switched to a new branch 'beta'
fatal: Needed a single revision
[beta (root-commit) 530edda] Fourth Commit
 Author: A U Thor <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 master &&
	test_must_fail git checkout --orphan new -b newer &&
	test refs/heads/master = "$(git symbolic-ref HEAD)"

Switched to branch 'master'
fatal: -b, -B and --orphan are mutually exclusive
ok 4 - --orphan must be rejected with -b

expecting success of 2017.5 '--orphan must be rejected with -t': 
	git checkout master &&
	test_must_fail git checkout --orphan new -t master &&
	test refs/heads/master = "$(git symbolic-ref HEAD)"

Already on 'master'
fatal: '--orphan' cannot be used with '-t'
ok 5 - --orphan must be rejected with -t

expecting success of 2017.6 '--orphan ignores branch.autosetupmerge': 
	git checkout master &&
	git config branch.autosetupmerge always &&
	git checkout --orphan gamma &&
	test -z "$(git config branch.gamma.merge)" &&
	test refs/heads/gamma = "$(git symbolic-ref HEAD)" &&
	test_must_fail git rev-parse --verify HEAD^

Already on 'master'
Switched to a new branch 'gamma'
fatal: Needed a single revision
ok 6 - --orphan ignores branch.autosetupmerge

expecting success of 2017.7 '--orphan makes reflog by default': 
	git checkout master &&
	git config --unset core.logAllRefUpdates &&
	git checkout --orphan delta &&
	test_must_fail git rev-parse --verify delta@{0} &&
	git commit -m Delta &&
	git rev-parse --verify delta@{0}

Switched to branch 'master'
Switched to a new branch 'delta'
fatal: Needed a single revision
[delta (root-commit) 9beee35] Delta
 Author: A U Thor <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 master &&
	git config core.logAllRefUpdates false &&
	git checkout --orphan epsilon &&
	test_must_fail git rev-parse --verify epsilon@{0} &&
	git commit -m Epsilon &&
	test_must_fail git rev-parse --verify epsilon@{0}

Switched to branch 'master'
Switched to a new branch 'epsilon'
fatal: Needed a single revision
[epsilon (root-commit) c5e7701] Epsilon
 Author: A U Thor <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 master &&
	git checkout -l --orphan zeta &&
	test_must_fail git rev-parse --verify zeta@{0} &&
	git commit -m Zeta &&
	git rev-parse --verify zeta@{0}

Switched to branch 'master'
Switched to a new branch 'zeta'
fatal: Needed a single revision
[zeta (root-commit) 1b23595] Zeta
 Author: A U Thor <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 master &&
	git checkout -l --orphan eta &&
	test_must_fail git rev-parse --verify eta@{0} &&
	git checkout master &&
	test_must_fail git rev-parse --verify eta@{0}

Switched to branch 'master'
Switched to a new branch 'eta'
fatal: Needed a single revision
Switched to branch 'master'
fatal: Needed a single revision
ok 10 - giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog

expecting success of 2017.11 '--orphan is rejected with an existing name': 
	git checkout master &&
	test_must_fail git checkout --orphan master &&
	test refs/heads/master = "$(git symbolic-ref HEAD)"

Already on 'master'
fatal: A branch named 'master' already exists.
ok 11 - --orphan is rejected with an existing name

expecting success of 2017.12 '--orphan refuses to switch if a merge is needed': 
	git checkout master &&
	git reset --hard &&
	echo local >>"$TEST_FILE" &&
	cat "$TEST_FILE" >"$TEST_FILE.saved" &&
	test_must_fail git checkout --orphan new master^ &&
	test refs/heads/master = "$(git symbolic-ref HEAD)" &&
	test_cmp "$TEST_FILE" "$TEST_FILE.saved" &&
	git diff-index --quiet --cached HEAD &&
	git reset --hard

Already on 'master'
HEAD is now at 8c3f362 Second Commit
error: Your local changes to the following files would be overwritten by checkout:
	foo
Please commit your changes or stash them before you switch branches.
Aborting
HEAD is now at 8c3f362 Second Commit
ok 12 - --orphan refuses to switch if a merge is needed

expecting success of 2017.13 'cannot --detach on an unborn branch': 
	git checkout master &&
	git checkout --orphan new &&
	test_must_fail git checkout --detach

Already on 'master'
Switched to a new branch 'new'
fatal: You are on a branch yet to be born
ok 13 - cannot --detach on an unborn branch

# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Switched to branch 'ambiguity'
ok 5 - checkout reports switch to branch

expecting success of 2019.6 'checkout vague ref succeeds': 
	git checkout vagueness >stdout 2>stderr &&
	test_set_prereq VAGUENESS_SUCCESS

ok 6 - checkout vague ref succeeds

expecting success of 2019.7 'checkout produces ambiguity warning': 
	grep "warning.*ambiguous" stderr

warning: refname 'vagueness' is ambiguous.
ok 7 - checkout produces ambiguity warning

expecting success of 2019.8 'checkout chooses branch over tag': 
	echo refs/heads/vagueness >expect &&
	git symbolic-ref HEAD >actual &&
	test_cmp expect actual &&
	echo branch >expect &&
	test_cmp expect file

ok 8 - checkout chooses branch over tag

expecting success of 2019.9 'checkout reports switch to branch': 
	test_i18ngrep "Switched to branch" stderr &&
	test_i18ngrep ! "^HEAD is now at" stderr

Switched to branch 'vagueness'
ok 9 - checkout reports switch to branch

# passed all 9 test(s)
1..9
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 -b to a new branch, set to HEAD': 
	test_when_finished "
		git checkout branch1 &&
		test_might_fail git branch -D branch2" &&
	do_checkout branch2

Switched to a new branch 'branch2'
Switched to branch 'branch1'
Deleted branch branch2 (was 5be17a9).
ok 2 - checkout -b to a new branch, set to HEAD

expecting success of 2018.3 'checkout -b to a merge base': 
	test_when_finished "
		git checkout branch1 &&
		test_might_fail git branch -D branch2" &&
	git checkout -b branch2 branch1...

Switched to a new branch 'branch2'
Switched to branch 'branch1'
Deleted branch branch2 (was 5be17a9).
ok 3 - checkout -b to a merge base

expecting success of 2018.4 'checkout -b to a new branch, set to an explicit ref': 
	test_when_finished "
		git checkout branch1 &&
		test_might_fail git branch -D branch2" &&
	do_checkout branch2 $HEAD1

Switched to a new branch 'branch2'
Switched to branch 'branch1'
Deleted branch branch2 (was ee02a18).
ok 4 - checkout -b to a new branch, set to an explicit ref

expecting success of 2018.5 'checkout -b to a new branch with unmergeable changes fails': 
	setup_dirty_unmergeable &&
	do_checkout ! branch2 $HEAD1 &&
	test_dirty_unmergeable

error: Your local changes to the following files would be overwritten by checkout:
	file1
Please commit your changes or stash them before you switch branches.
Aborting
diff --git a/file1 b/file1
index 5be4a41..1725fe9 100644
--- a/file1
+++ b/file1
@@ -1 +1,2 @@
 change1
+change2
ok 5 - checkout -b to a new branch with unmergeable changes fails

expecting success of 2018.6 'checkout -f -b to a new branch with unmergeable changes discards changes': 
	test_when_finished "
		git checkout branch1 &&
		test_might_fail git branch -D branch2" &&

	# still dirty and on branch1
	do_checkout branch2 $HEAD1 "-f -b" &&
	test_dirty_unmergeable_discards_changes

Switched to a new branch 'branch2'
Switched to branch 'branch1'
Deleted branch branch2 (was ee02a18).
ok 6 - checkout -f -b to a new branch with unmergeable changes discards changes

expecting success of 2018.7 'checkout -b to a new branch preserves mergeable changes': 
	test_when_finished "
		git reset --hard &&
		git checkout branch1 &&
		test_might_fail git branch -D branch2" &&

	setup_dirty_mergeable &&
	do_checkout branch2 $HEAD1 &&
	test_dirty_mergeable

Switched to a new branch 'branch2'
A	file2
diff --git a/file2 b/file2
new file mode 100644
index 0000000..6c493ff
--- /dev/null
+++ b/file2
@@ -0,0 +1 @@
+file2
HEAD is now at ee02a18 initial
Switched to branch 'branch1'
Deleted branch branch2 (was ee02a18).
ok 7 - checkout -b to a new branch preserves mergeable changes

expecting success of 2018.8 'checkout -f -b to a new branch with mergeable changes discards changes': 
	test_when_finished git reset --hard HEAD &&
	setup_dirty_mergeable &&
	do_checkout branch2 $HEAD1 "-f -b" &&
	test_dirty_mergeable_discards_changes

Switched to a new branch 'branch2'
HEAD is now at ee02a18 initial
ok 8 - checkout -f -b to a new branch with mergeable changes discards changes

expecting success of 2018.9 'checkout -b to an existing branch fails': 
	test_when_finished git reset --hard HEAD &&
	do_checkout ! branch2 $HEAD2

fatal: A branch named 'branch2' already exists.
HEAD is now at ee02a18 initial
ok 9 - checkout -b to an existing branch fails

expecting success of 2018.10 'checkout -b to @{-1} fails with the right branch name': 
	git checkout branch1 &&
	git checkout branch2 &&
	echo  >expect "fatal: A branch named 'branch1' already exists." &&
	test_must_fail git checkout -b @{-1} 2>actual &&
	test_i18ncmp expect actual

Switched to branch 'branch1'
Switched to branch 'branch2'
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 10 - checkout -b to @{-1} fails with the right branch name

expecting success of 2018.11 'checkout -B to an existing branch resets branch to HEAD': 
	git checkout branch1 &&

	do_checkout branch2 "" -B

Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 11 - checkout -B to an existing branch resets branch to HEAD

expecting success of 2018.12 'checkout -B to a merge base': 
	git checkout branch1 &&

	git checkout -B branch2 branch1...

Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 12 - checkout -B to a merge base

expecting success of 2018.13 'checkout -B to an existing branch from detached HEAD resets branch to HEAD': 
	head=$(git rev-parse --verify HEAD) &&
	git checkout "$head" &&

	do_checkout branch2 "" -B

Note: switching to '5be17a9503605cbff49376bccdc74acb1ebd9160'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 13 - checkout -B to an existing branch from detached HEAD resets branch to HEAD

expecting success of 2018.14 'checkout -B to an existing branch with an explicit ref resets branch to that ref': 
	git checkout branch1 &&

	do_checkout branch2 $HEAD1 -B

Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 14 - checkout -B to an existing branch with an explicit ref resets branch to that ref

expecting success of 2018.15 'checkout -B to an existing branch with unmergeable changes fails': 
	git checkout branch1 &&

	setup_dirty_unmergeable &&
	do_checkout ! branch2 $HEAD1 -B &&
	test_dirty_unmergeable

Switched to branch 'branch1'
error: Your local changes to the following files would be overwritten by checkout:
	file1
Please commit your changes or stash them before you switch branches.
Aborting
diff --git a/file1 b/file1
index 5be4a41..1725fe9 100644
--- a/file1
+++ b/file1
@@ -1 +1,2 @@
 change1
+change2
ok 15 - checkout -B to an existing branch with unmergeable changes fails

expecting success of 2018.16 'checkout -f -B to an existing branch with unmergeable changes discards changes': 
	# still dirty and on branch1
	do_checkout branch2 $HEAD1 "-f -B" &&
	test_dirty_unmergeable_discards_changes

Switched to and reset branch 'branch2'
ok 16 - checkout -f -B to an existing branch with unmergeable changes discards changes

expecting success of 2018.17 'checkout -B to an existing branch preserves mergeable changes': 
	test_when_finished git reset --hard &&
	git checkout branch1 &&

	setup_dirty_mergeable &&
	do_checkout branch2 $HEAD1 -B &&
	test_dirty_mergeable

Switched to branch 'branch1'
Switched to and reset branch 'branch2'
A	file2
diff --git a/file2 b/file2
new file mode 100644
index 0000000..6c493ff
--- /dev/null
+++ b/file2
@@ -0,0 +1 @@
+file2
HEAD is now at ee02a18 initial
ok 17 - checkout -B to an existing branch preserves mergeable changes

expecting success of 2018.18 'checkout -f -B to an existing branch with mergeable changes discards changes': 
	git checkout branch1 &&

	setup_dirty_mergeable &&
	do_checkout branch2 $HEAD1 "-f -B" &&
	test_dirty_mergeable_discards_changes

Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 18 - checkout -f -B to an existing branch with mergeable changes discards changes

expecting success of 2018.19 'checkout -b <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 19 - checkout -b <describe>

expecting success of 2018.20 '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 20 - checkout -B to the current branch works

expecting success of 2018.21 'checkout -b after clone --no-checkout does a checkout of HEAD': 
	git init src &&
	test_commit -C src a &&
	rev="$(git -C src rev-parse HEAD)" &&
	git clone --no-checkout src dest &&
	git -C dest checkout "$rev" -b branch &&
	test_path_is_file dest/a.t

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 21 - checkout -b after clone --no-checkout does a checkout of HEAD

expecting success of 2018.22 'checkout -b to a new branch preserves mergeable changes despite sparse-checkout': 
	test_when_finished "
		git reset --hard &&
		git checkout branch1-scratch &&
		test_might_fail git branch -D branch3 &&
		git config core.sparseCheckout false &&
		rm .git/info/sparse-checkout" &&

	test_commit file2 &&

	echo stuff >>file1 &&
	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 22 - checkout -b to a new branch preserves mergeable changes despite sparse-checkout

expecting success of 2018.23 'checkout -b rejects an invalid start point': 
	test_must_fail git checkout -b branch4 file1 2>err &&
	test_i18ngrep "is not a commit" err

fatal: 'file1' is not a commit and a branch 'branch4' cannot be created from it
ok 23 - checkout -b rejects an invalid start point

expecting success of 2018.24 'checkout -b rejects an extra path argument': 
	test_must_fail git checkout -b branch5 branch1 file1 2>err &&
	test_i18ngrep "Cannot update paths and switch to branch" err

fatal: Cannot update paths and switch to branch 'branch5' at the same time.
ok 24 - checkout -b rejects an extra path argument

# 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 -h a/b

ok 6 - the symlink remained

# passed all 6 test(s)
1..6
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/master &&
	echo common >dir/common &&
	git add dir/master dir/common &&
	test_tick && git commit -m "master has dir/master" &&
	git checkout -b next &&
	git mv dir/master dir/next0 &&
	echo next >dir/next1 &&
	git add dir &&
	test_tick && git commit -m "next has dir/next but not dir/master"

[master (root-commit) de06282] master has dir/master
 Author: A U Thor <author@example.com>
 2 files changed, 1 insertion(+)
 create mode 100644 dir/common
 create mode 100644 dir/master
Switched to a new branch 'next'
[next 65d8465] next has dir/next but not dir/master
 Author: A U Thor <author@example.com>
 2 files changed, 1 insertion(+)
 rename dir/{master => next0} (100%)
 create mode 100644 dir/next1
ok 1 - setup

expecting success of 2022.2 'checking out paths out of a tree does not clobber unrelated paths': 
	git checkout next &&
	git reset --hard &&
	rm dir/next0 &&
	cat dir/common >expect.common &&
	echo modified >expect.next1 &&
	cat expect.next1 >dir/next1 &&
	echo untracked >expect.next2 &&
	cat expect.next2 >dir/next2 &&

	git checkout master dir &&

	test_cmp expect.common dir/common &&
	test_path_is_file dir/master &&
	git diff --exit-code master dir/master &&

	test_path_is_missing dir/next0 &&
	test_cmp expect.next1 dir/next1 &&
	test_path_is_file dir/next2 &&
	test_must_fail git ls-files --error-unmatch dir/next2 &&
	test_cmp expect.next2 dir/next2

Already on 'next'
HEAD is now at 65d8465 next has dir/next but not dir/master
Updated 1 path from 848cb0d
error: pathspec 'dir/next2' did not match any file(s) known to git
Did you forget to 'git add'?
ok 2 - checking out paths out of a tree does not clobber unrelated paths

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 master dir &&

	test_cmp expect.common dir/common &&
	test_path_is_file dir/master &&
	git diff --exit-code master dir/master &&
	git ls-files -s dir/next0 >actual.next0 &&
	test_cmp expect.next0 actual.next0

Already on 'next'
A	dir/master
D	dir/next0
M	dir/next1
HEAD is now at 65d8465 next has dir/next but not dir/master
rm 'dir/next0'
Updated 1 path from 848cb0d
ok 3 - do not touch unmerged entries matching $path but not in $tree

expecting success of 2022.4 'do not touch files that are already up-to-date': 
	git reset --hard &&
	echo one >file1 &&
	echo two >file2 &&
	git add file1 file2 &&
	git commit -m base &&
	echo modified >file1 &&
	test-tool chmtime =1000000000 file2 &&
	git update-index -q --refresh &&
	git checkout HEAD -- file1 file2 &&
	echo one >expect &&
	test_cmp expect file1 &&
	echo "1000000000" >expect &&
	test-tool chmtime --get file2 >actual &&
	test_cmp expect actual

HEAD is now at 65d8465 next has dir/next but not dir/master
[next 709a6c8] 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 5786e75] 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'
*** 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

[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
Deleted tag 'three' (was 7c7cd71)
[master 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 'master'
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 'master'
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 'master'
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 'master'
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 'master'
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 'master'
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 'master'
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 'master'
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 master &&
	test_must_fail git checkout --detach tag one.t &&
	check_not_detached

Already on 'master'
Already on 'master'
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 'master'
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 'master'
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 master 2>stderr

Previous HEAD position was 139b20d two
Switched to branch 'master'
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"

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Warning: 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 master 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 'master'
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 master 2>stderr

Already on 'master'
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 master^ &&
	git config branch.child.remote . &&
	git config branch.child.merge refs/heads/master &&
	git checkout child^ &&
	git checkout child >stdout &&
	test_i18ncmp expect stdout

Already on 'master'
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 'master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'master' 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_i18ncmp 1st_detach actual &&

	GIT_PRINT_SHA1_ELLIPSIS=no git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
	check_detached &&
	test_i18ncmp 2nd_detach actual &&

	GIT_PRINT_SHA1_ELLIPSIS= git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
	check_detached &&
	test_i18ncmp 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_i18ncmp 1st_detach actual &&

	GIT_PRINT_SHA1_ELLIPSIS='nope' &&
	git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
	check_detached &&
	test_i18ncmp 2nd_detach actual &&

	GIT_PRINT_SHA1_ELLIPSIS=nein &&
	git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
	check_detached &&
	test_i18ncmp 3rd_detach actual &&

	true

Previous HEAD position was 7c7cd71 three
Switched to branch 'master'
Previous HEAD position was d79ce16 one
Switched to branch 'master'
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_i18ncmp 1st_detach actual &&

	GIT_PRINT_SHA1_ELLIPSIS=Yes git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
	check_detached &&
	test_i18ncmp 2nd_detach actual &&

	GIT_PRINT_SHA1_ELLIPSIS=YES git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
	check_detached &&
	test_i18ncmp 3rd_detach actual &&

	true

Previous HEAD position was d79ce16 one
Switched to branch 'master'
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'
*** 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_master both.txt in_master &&
	test_commit added_in_master each.txt in_master &&
	git checkout topic &&
	test_commit modified_in_topic both.txt in_topic &&
	test_commit added_in_topic each.txt in_topic

[master (root-commit) 7a8c5bf] both.txt
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 both.txt
[master dc44449] modified_in_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 642a0cb] added_in_master
 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 master': 
    test_must_fail git merge master

Merging:
d46615c added_in_topic
virtual master
found 1 common ancestor:
7a8c5bf both.txt
CONFLICT (add/add): Merge conflict in each.txt
Auto-merging each.txt
Auto-merging both.txt
CONFLICT (content): Merge conflict in both.txt
Automatic merge failed; fix conflicts and then commit the result.
ok 2 - git merge master

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 master &&
		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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2023-checkout-m/co-force/.git/
[master (root-commit) b7442a0] a
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a
[master 7529dfa] b
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'topic'
Switched to branch 'master'
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'
*** 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: -p and --overlay are mutually exclusive" actual

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: -p and --overlay are mutually exclusive
ok 4 - checkout -p --overlay is disallowed

expecting success of 2025.5 '--no-overlay --theirs with D/F conflict deletes file': 
	test_commit file1 file1 &&
	test_commit file2 file2 &&
	git rm --cached file1 &&
	echo 1234 >file1 &&
	F1=$(git rev-parse HEAD:file1) &&
	F2=$(git rev-parse HEAD:file2) &&
	{
		echo "100644 $F1 1	file1" &&
		echo "100644 $F2 2	file1"
	} | git update-index --index-info &&
	test_path_is_file file1 &&
	git checkout --theirs --no-overlay -- file1 &&
	test_path_is_missing file1

[master a11d2b7] file1
 Author: A U Thor <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 "--pathspec-from-file is incompatible with --detach" err &&

	test_must_fail git checkout --pathspec-from-file=list --patch 2>err &&
	test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err &&

	test_must_fail git checkout --pathspec-from-file=list -- fileA.t 2>err &&
	test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&

	test_must_fail git checkout --pathspec-file-nul 2>err &&
	test_i18ngrep -e "--pathspec-file-nul requires --pathspec-from-file" err

HEAD is now at 774eb8e files 2
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: --pathspec-from-file is incompatible with --detach
fatal: --pathspec-from-file is incompatible with --patch
fatal: --pathspec-from-file is incompatible with pathspec arguments
fatal: --pathspec-file-nul requires --pathspec-from-file
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

[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 2027.2 'checkout --track -b creates a new tracking branch': 
	git checkout --track -b branch1 master &&
	test $(git rev-parse --abbrev-ref HEAD) = branch1 &&
	test $(git config --get branch.branch1.remote) = . &&
	test $(git config --get branch.branch1.merge) = refs/heads/master

Switched to a new branch 'branch1'
Branch 'branch1' set up to track local branch 'master'.
ok 2 - checkout --track -b creates a new tracking branch

expecting success of 2027.3 'checkout --track -b rejects an extra path argument': 
	test_must_fail git checkout --track -b branch2 master one.t 2>err &&
	test_i18ngrep "cannot be used with updating paths" err

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: '--track' cannot be used with updating paths
ok 3 - checkout --track -b rejects an extra path argument

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<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
index 9015a7a..0000000
--- a/dir/foo
+++ /dev/null
deleted file mode 100644
@@ -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
index 8c999e6..0000000
--- b/bar
+++ /dev/null
deleted file mode 100644
@@ -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
index 564b12f..0000000
--- b/dir/foo
+++ /dev/null
deleted file mode 100644
@@ -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'
*** 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'
*** 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_master &&
	git init repo_a &&
	(
		cd repo_a &&
		test_commit a_master &&
		git checkout -b foo &&
		test_commit a_foo &&
		git checkout -b bar &&
		test_commit a_bar &&
		git checkout -b ambiguous_branch_and_file &&
		test_commit a_ambiguous_branch_and_file
	) &&
	git init repo_b &&
	(
		cd repo_b &&
		test_commit b_master &&
		git checkout -b foo &&
		test_commit b_foo &&
		git checkout -b baz &&
		test_commit b_baz &&
		git checkout -b ambiguous_branch_and_file &&
		test_commit b_ambiguous_branch_and_file
	) &&
	git remote add repo_a repo_a &&
	git remote add repo_b repo_b &&
	git config remote.repo_b.fetch \
		"+refs/heads/*:refs/remotes/other_b/*" &&
	git fetch --all

[master (root-commit) 93159a7] my_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 my_master.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2024-checkout-dwim/repo_a/.git/
[master (root-commit) 9480204] a_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a_master.t
Switched to a new branch 'foo'
[foo ba3a763] a_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a_foo.t
Switched to a new branch 'bar'
[bar 1901e7e] a_bar
 Author: A U Thor <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 62502cc] 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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2024-checkout-dwim/repo_b/.git/
[master (root-commit) eb1360a] b_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 b_master.t
Switched to a new branch 'foo'
[foo 73c9fcf] b_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 b_foo.t
Switched to a new branch 'baz'
[baz a4f4a16] b_baz
 Author: A U Thor <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 85d6512] 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_master                    -> a_master
Fetching repo_b
From repo_b
 * [new branch]      ambiguous_branch_and_file   -> other_b/ambiguous_branch_and_file
 * [new branch]      baz                         -> other_b/baz
 * [new branch]      foo                         -> other_b/foo
 * [new branch]      master                      -> other_b/master
 * [new tag]         b_ambiguous_branch_and_file -> b_ambiguous_branch_and_file
 * [new tag]         b_baz                       -> b_baz
 * [new tag]         b_foo                       -> b_foo
 * [new tag]         b_master                    -> b_master
ok 1 - setup

expecting success of 2024.2 'checkout of non-existing branch fails': 
	git checkout -B master &&
	test_might_fail git branch -D xyzzy &&

	test_must_fail git checkout xyzzy &&
	status_uno_is_clean &&
	test_must_fail git rev-parse --verify refs/heads/xyzzy &&
	test_branch master

Reset branch 'master'
error: branch 'xyzzy' not found.
error: pathspec 'xyzzy' did not match any file(s) known to git
fatal: Needed a single revision
ok 2 - checkout of non-existing branch fails

expecting success of 2024.3 'checkout of branch from multiple remotes fails #1': 
	git checkout -B master &&
	test_might_fail git branch -D foo &&

	test_must_fail git checkout foo &&
	status_uno_is_clean &&
	test_must_fail git rev-parse --verify refs/heads/foo &&
	test_branch master

Reset branch 'master'
error: branch 'foo' not found.
hint: If you meant to check out a remote tracking branch on, e.g. 'origin',
hint: you can do so by fully qualifying the name with the --track option:
hint: 
hint:     git checkout --track origin/<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 314694c] 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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 'ambiguous_branch_and_file' matched multiple (2) remote tracking branches
ok 4 - when arg matches multiple remotes, do not fallback to interpreting as pathspec

expecting success of 2024.5 'checkout of branch from multiple remotes fails with advice': 
	git checkout -B master &&
	test_might_fail git branch -D foo &&
	test_must_fail git checkout foo 2>stderr &&
	test_branch master &&
	status_uno_is_clean &&
	test_i18ngrep "^hint: " stderr &&
	test_must_fail git -c advice.checkoutAmbiguousRemoteBranchName=false \
		checkout foo 2>stderr &&
	test_branch master &&
	status_uno_is_clean &&
	test_i18ngrep ! "^hint: " stderr

Switched to and reset branch 'master'
error: branch 'foo' not found.
hint: If you meant to check out a remote tracking branch on, e.g. 'origin',
hint: you can do so by fully qualifying the name with the --track option:
hint: 
hint:     git checkout --track origin/<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 master &&
	test_might_fail git branch -D foo &&

	git checkout -p foo 2>stderr &&
	test_i18ngrep ! "^hint: " stderr &&
	status_uno_is_clean

Reset branch 'master'
error: branch 'foo' not found.
ok 6 - checkout -p with multiple remotes does not print advice

expecting success of 2024.7 'checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D foo &&

	git -c checkout.defaultRemote=repo_a checkout foo &&
	status_uno_is_clean &&
	test_branch foo &&
	test_cmp_rev remotes/repo_a/foo HEAD &&
	test_branch_upstream foo repo_a foo

Reset branch 'master'
error: branch 'foo' not found.
Switched to a new branch 'foo'
Branch 'foo' set up to track remote branch 'foo' from 'repo_a'.
ok 7 - checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1

expecting success of 2024.8 'checkout of branch from a single remote succeeds #1': 
	git checkout -B master &&
	test_might_fail git branch -D bar &&

	git checkout bar &&
	status_uno_is_clean &&
	test_branch bar &&
	test_cmp_rev remotes/repo_a/bar HEAD &&
	test_branch_upstream bar repo_a bar

Switched to and reset branch 'master'
error: branch 'bar' not found.
Switched to a new branch 'bar'
Branch 'bar' set up to track remote branch 'bar' from 'repo_a'.
ok 8 - checkout of branch from a single remote succeeds #1

expecting success of 2024.9 'checkout of branch from a single remote succeeds #2': 
	git checkout -B master &&
	test_might_fail git branch -D baz &&

	git checkout baz &&
	status_uno_is_clean &&
	test_branch baz &&
	test_cmp_rev remotes/other_b/baz HEAD &&
	test_branch_upstream baz repo_b baz

Switched to and reset branch 'master'
error: branch 'baz' not found.
Switched to a new branch 'baz'
Branch 'baz' set up to track remote branch 'baz' from 'repo_b'.
ok 9 - checkout of branch from a single remote succeeds #2

expecting success of 2024.10 '--no-guess suppresses branch auto-vivification': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D bar &&

	test_must_fail git checkout --no-guess bar &&
	test_must_fail git rev-parse --verify refs/heads/bar &&
	test_branch master

Switched to and reset branch 'master'
Deleted branch bar (was 1901e7e).
error: pathspec 'bar' did not match any file(s) known to git
fatal: Needed a single revision
ok 10 - --no-guess suppresses branch auto-vivification

expecting success of 2024.11 'checkout.guess = false suppresses branch auto-vivification': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D bar &&

	test_config checkout.guess false &&
	test_must_fail git checkout bar &&
	test_must_fail git rev-parse --verify refs/heads/bar &&
	test_branch master

Reset branch 'master'
error: branch 'bar' not found.
error: pathspec 'bar' did not match any file(s) known to git
fatal: Needed a single revision
ok 11 - checkout.guess = false suppresses branch auto-vivification

expecting success of 2024.12 'setup more remotes with unconventional refspecs': 
	git checkout -B master &&
	status_uno_is_clean &&
	git init repo_c &&
	(
		cd repo_c &&
		test_commit c_master &&
		git checkout -b bar &&
		test_commit c_bar &&
		git checkout -b spam &&
		test_commit c_spam
	) &&
	git init repo_d &&
	(
		cd repo_d &&
		test_commit d_master &&
		git checkout -b baz &&
		test_commit d_baz &&
		git checkout -b eggs &&
		test_commit d_eggs
	) &&
	git remote add repo_c repo_c &&
	git config remote.repo_c.fetch \
		"+refs/heads/*:refs/remotes/extra_dir/repo_c/extra_dir/*" &&
	git remote add repo_d repo_d &&
	git config remote.repo_d.fetch \
		"+refs/heads/*:refs/repo_d/*" &&
	git fetch --all

Reset branch 'master'
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2024-checkout-dwim/repo_c/.git/
[master (root-commit) dc015ba] c_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 c_master.t
Switched to a new branch 'bar'
[bar a433ad7] c_bar
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 c_bar.t
Switched to a new branch 'spam'
[spam 1702b85] c_spam
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 c_spam.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2024-checkout-dwim/repo_d/.git/
[master (root-commit) f130d8f] d_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 d_master.t
Switched to a new branch 'baz'
[baz aff1e77] d_baz
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 d_baz.t
Switched to a new branch 'eggs'
[eggs fea4556] d_eggs
 Author: A U Thor <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_master   -> c_master
 * [new tag]         c_spam     -> c_spam
Fetching repo_d
From repo_d
 * [new branch]      baz        -> refs/repo_d/baz
 * [new branch]      eggs       -> refs/repo_d/eggs
 * [new branch]      master     -> refs/repo_d/master
 * [new tag]         d_baz      -> d_baz
 * [new tag]         d_eggs     -> d_eggs
 * [new tag]         d_master   -> d_master
ok 12 - setup more remotes with unconventional refspecs

expecting success of 2024.13 'checkout of branch from multiple remotes fails #2': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D bar &&

	test_must_fail git checkout bar &&
	status_uno_is_clean &&
	test_must_fail git rev-parse --verify refs/heads/bar &&
	test_branch master

Reset branch 'master'
error: branch 'bar' not found.
hint: If you meant to check out a remote tracking branch on, e.g. 'origin',
hint: you can do so by fully qualifying the name with the --track option:
hint: 
hint:     git checkout --track origin/<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 master &&
	status_uno_is_clean &&
	test_might_fail git branch -D baz &&

	test_must_fail git checkout baz &&
	status_uno_is_clean &&
	test_must_fail git rev-parse --verify refs/heads/baz &&
	test_branch master

Reset branch 'master'
Deleted branch baz (was a4f4a16).
hint: If you meant to check out a remote tracking branch on, e.g. 'origin',
hint: you can do so by fully qualifying the name with the --track option:
hint: 
hint:     git checkout --track origin/<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 master &&
	status_uno_is_clean &&
	test_might_fail git branch -D spam &&

	git checkout spam &&
	status_uno_is_clean &&
	test_branch spam &&
	test_cmp_rev refs/remotes/extra_dir/repo_c/extra_dir/spam HEAD &&
	test_branch_upstream spam repo_c spam

Reset branch 'master'
error: branch 'spam' not found.
Switched to a new branch 'spam'
Branch 'spam' set up to track remote branch 'spam' from 'repo_c'.
ok 15 - checkout of branch from a single remote succeeds #3

expecting success of 2024.16 'checkout of branch from a single remote succeeds #4': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D eggs &&

	git checkout eggs &&
	status_uno_is_clean &&
	test_branch eggs &&
	test_cmp_rev refs/repo_d/eggs HEAD &&
	test_branch_upstream eggs repo_d eggs

Switched to and reset branch 'master'
error: branch 'eggs' not found.
Switched to a new branch 'eggs'
Branch 'eggs' set up to track remote branch 'eggs' from 'repo_d'.
ok 16 - checkout of branch from a single remote succeeds #4

expecting success of 2024.17 'checkout of branch with a file having the same name fails': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D spam &&

	>spam &&
	test_must_fail git checkout spam &&
	status_uno_is_clean &&
	test_must_fail git rev-parse --verify refs/heads/spam &&
	test_branch master

Switched to and reset branch 'master'
Deleted branch spam (was 1702b85).
fatal: 'spam' could be both a local file and a tracking branch.
Please use -- (and optionally --no-guess) to disambiguate
fatal: Needed a single revision
ok 17 - checkout of branch with a file having the same name fails

expecting success of 2024.18 'checkout of branch with a file in subdir having the same name fails': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D spam &&

	>spam &&
	mkdir sub &&
	mv spam sub/spam &&
	test_must_fail git -C sub checkout spam &&
	status_uno_is_clean &&
	test_must_fail git rev-parse --verify refs/heads/spam &&
	test_branch master

Reset branch 'master'
error: branch 'spam' not found.
fatal: 'spam' could be both a local file and a tracking branch.
Please use -- (and optionally --no-guess) to disambiguate
fatal: Needed a single revision
ok 18 - checkout of branch with a file in subdir having the same name fails

expecting success of 2024.19 'checkout <branch> -- succeeds, even if a file with the same name exists': 
	git checkout -B master &&
	status_uno_is_clean &&
	test_might_fail git branch -D spam &&

	>spam &&
	git checkout spam -- &&
	status_uno_is_clean &&
	test_branch spam &&
	test_cmp_rev refs/remotes/extra_dir/repo_c/extra_dir/spam HEAD &&
	test_branch_upstream spam repo_c spam

Reset branch 'master'
error: branch 'spam' not found.
Switched to a new branch 'spam'
Branch 'spam' set up to track remote branch 'spam' from 'repo_c'.
ok 19 - checkout <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 master &&
	status_uno_is_clean &&
	git branch strict &&
	git branch loose &&
	git commit --allow-empty -m "a bit more" &&

	test_config branch.strict.remote . &&
	test_config branch.loose.remote . &&
	test_config branch.strict.merge refs/heads/master &&
	test_config branch.loose.merge master &&

	git checkout strict | sed -e "s/strict/BRANCHNAME/g" >expect &&
	status_uno_is_clean &&
	git checkout loose | sed -e "s/loose/BRANCHNAME/g" >actual &&
	status_uno_is_clean &&

	test_cmp expect actual

Switched to branch 'master'
[master b3a488e] a bit more
 Author: A U Thor <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 remote branch 'dwim-arg2' from 'foo'.
fea4556a03c9ebfd8846a6e5b9d34170eeb7706d
--
bar
ok 23 - disambiguate dwim branch and checkout path (2)

# passed all 23 test(s)
1..23
make[4]: Leaving directory '/<<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

[master (root-commit) 50e526b] first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 first.t
[master d662100] second
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 second.t
[master 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 master &&
	test_must_fail git switch master^{commit} &&
	git switch --detach master^{commit} &&
	test_must_fail git symbolic-ref HEAD

fatal: a branch is expected, got commit 'master^{commit}'
HEAD is now at cd7036d third
fatal: ref HEAD is not a symbolic ref
Switched to branch 'master'
ok 4 - switch and detach

expecting success of 2060.5 'switch and detach current branch': 
	test_when_finished git switch master &&
	git switch master &&
	git switch --detach &&
	test_must_fail git symbolic-ref HEAD

Already on 'master'
HEAD is now at cd7036d third
fatal: ref HEAD is not a symbolic ref
Switched to branch 'master'
ok 5 - switch and detach current branch

expecting success of 2060.6 'switch and create branch': 
	test_when_finished git switch master &&
	git switch -c temp master^ &&
	test_cmp_rev master^ 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 'master'
ok 6 - switch and create branch

expecting success of 2060.7 'force create branch from HEAD': 
	test_when_finished git switch master &&
	git switch --detach master &&
	test_must_fail git switch -c temp &&
	git switch -C temp &&
	test_cmp_rev master 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 'master'
ok 7 - force create branch from HEAD

expecting success of 2060.8 'new orphan branch from empty': 
	test_when_finished git switch master &&
	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 'master'
ok 8 - new orphan branch from empty

expecting success of 2060.9 'orphan branch works with --discard-changes': 
	test_when_finished git switch master &&
	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 'master'
ok 9 - orphan branch works with --discard-changes

expecting success of 2060.10 'switching ignores file of same branch name': 
	test_when_finished git switch master &&
	: >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 'master'
ok 10 - switching ignores file of same branch name

expecting success of 2060.11 'guess and create branch': 
	test_when_finished git switch master &&
	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 remote branch 'foo' from 'origin'.
Switched to branch 'master'
ok 11 - guess and create branch

expecting success of 2060.12 '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 12 - not switching when something is in progress

# passed all 12 test(s)
1..12
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 master

[master (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
[master 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 'master'
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
70d285e merged
virtual fourth^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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
Merging:
9a00f99 second
virtual third^0
found 1 common ancestor:
7b271e3 initial
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 &&
	printf "a\0c" >binary &&
	git commit -a -m binary &&
	test_must_fail git merge second &&
	git rerere forget binary

Previous HEAD position was 9a00f99 second
Switched to branch 'side'
[side 431a49e] binary
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
warning: Cannot merge binary files: binary (HEAD vs. second)
Merging:
431a49e binary
virtual second
found 1 common ancestor:
7b271e3 initial
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Auto-merging binary
CONFLICT (content): Merge conflict in binary
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
warning: Cannot merge binary files: binary (ours vs. theirs)
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 master &&
	echo master >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 'master'
[master 2aac45c] add differently
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 add-differently
Merging:
2aac45c add differently
virtual fifth
found 1 common ancestor:
7b271e3 initial
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
CONFLICT (add/add): Merge conflict in add-differently
Auto-merging add-differently
Recorded preimage for 'add-differently'
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: no remembered resolution for 'add-differently'
ok 10 - rerere forget (add-add conflict)

# passed all 10 test(s)
1..10
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 master

[master (root-commit) 50e526b] first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 first.t
[master 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 master &&
		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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2070-restore/unmerged/.git/
[master (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(-)
Merging:
06de6fa second
virtual first
found 1 common ancestor:
b83edd8 common
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

[master 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

[master 19f4790] both
 Author: A U Thor <author@example.com>
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 new1
 create mode 100644 new2
[master 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'
*** 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'
*** 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 "--pathspec-from-file is incompatible with --patch" err &&

	test_must_fail git restore --pathspec-from-file=list --source=HEAD^1 -- fileA.t 2>err &&
	test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&

	test_must_fail git restore --pathspec-file-nul --source=HEAD^1 2>err &&
	test_i18ngrep -e "--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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: --pathspec-from-file is incompatible with --patch
fatal: --pathspec-from-file is incompatible with pathspec arguments
fatal: --pathspec-file-nul requires --pathspec-from-file
fatal: 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'
*** 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; (exit 1);;
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'
*** 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'
*** 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 &&
	for i in one three two; do echo $i; done >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'
*** 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)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
usage: git 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 --cacheinfo 100644 $ZERO_OID file &&
	git rev-parse :file >actual &&
	test_cmp expect actual

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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 --cacheinfo "100644,$(cat expect),elif" &&
	git rev-parse :elif >actual &&
	test_cmp expect actual

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 &&
	! test -f .git/index.lock
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 --chmod=+x A --chmod=-x B &&
	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'
*** 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': 
	test "$(git ls-files dir1/sub1)" = ""

ok 3 - update noticed a removal

expecting success of 2200.4 'update touched correct path': 
	test "$(git diff-files --name-status dir2/sub3)" = ""

ok 4 - update touched correct path

expecting success of 2200.5 'update did not touch other tracked files': 
	test "$(git diff-files --name-status check)" = "M	check" &&
	test "$(git diff-files --name-status top)" = "M	top"

ok 5 - update did not touch other tracked files

expecting success of 2200.6 'update did not touch untracked files': 
	test "$(git ls-files dir2/other)" = ""

ok 6 - update did not touch untracked files

expecting success of 2200.7 'cache tree has not been corrupted': 

	git ls-files -s |
	sed -e "s/ 0	/	/" >expect &&
	git ls-tree -r $(git write-tree) |
	sed -e "s/ blob / /" >current &&
	test_cmp expect current


ok 7 - cache tree has not been corrupted

expecting success of 2200.8 'update from a subdirectory': 
	(
		cd dir1 &&
		echo more >sub2 &&
		git add -u sub2
	)

ok 8 - update from a subdirectory

expecting success of 2200.9 'change gets noticed': 

	test "$(git diff-files --name-status dir1)" = ""


ok 9 - change gets noticed

expecting success of 2200.10 'non-qualified update in subdir updates from the root': 
	(
		cd dir1 &&
		echo even more >>sub2 &&
		git --literal-pathspecs add -u &&
		echo even more >>sub2 &&
		git add -u
	) &&
	git diff-files --name-only >actual &&
	test_must_be_empty actual

ok 10 - non-qualified update in subdir updates from the root

expecting success of 2200.11 'replace a file with a symlink': 

	rm foo &&
	test_ln_s_add top foo


checking prerequisite: SYMLINKS

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" &&
	# test whether the filesystem supports symbolic links
	ln -s x y && test -h y

)
prerequisite SYMLINKS ok
ok 11 - replace a file with a symlink

expecting success of 2200.12 'add everything changed': 

	git add -u &&
	test -z "$(git diff-files)"


ok 12 - add everything changed

expecting success of 2200.13 'touch and then add -u': 

	touch check &&
	git add -u &&
	test -z "$(git diff-files)"


ok 13 - touch and then add -u

expecting success of 2200.14 'touch and then add explicitly': 

	touch check &&
	git add check &&
	test -z "$(git diff-files)"


ok 14 - touch and then add explicitly

expecting success of 2200.15 'add -n -u should not add but just report': 

	(
		echo "add 'check'" &&
		echo "remove 'top'"
	) >expect &&
	before=$(git ls-files -s check top) &&
	echo changed >>check &&
	rm -f top &&
	git add -n -u >actual &&
	after=$(git ls-files -s check top) &&

	test "$before" = "$after" &&
	test_i18ncmp expect actual


checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 15 - add -n -u should not add but just report

expecting success of 2200.16 'add -u resolves unmerged paths': 
	git reset --hard &&
	one=$(echo 1 | git hash-object -w --stdin) &&
	two=$(echo 2 | git hash-object -w --stdin) &&
	three=$(echo 3 | git hash-object -w --stdin) &&
	{
		for path in path1 path2
		do
			echo "100644 $one 1	$path"
			echo "100644 $two 2	$path"
			echo "100644 $three 3	$path"
		done
		echo "100644 $one 1	path3"
		echo "100644 $one 1	path4"
		echo "100644 $one 3	path5"
		echo "100644 $one 3	path6"
	} |
	git update-index --index-info &&
	echo 3 >path1 &&
	echo 2 >path3 &&
	echo 2 >path5 &&

	# Fail to explicitly resolve removed paths with "git add"
	test_must_fail git add --no-all path4 &&
	test_must_fail git add --no-all path6 &&

	# "add -u" should notice removals no matter what stages
	# the index entries are in.
	git add -u &&
	git ls-files -s path1 path2 path3 path4 path5 path6 >actual &&
	{
		echo "100644 $three 0	path1"
		echo "100644 $two 0	path3"
		echo "100644 $two 0	path5"
	} >expect &&
	test_cmp expect actual

HEAD is now at ec46c19 initial
fatal: unable to stat 'path4': No such file or directory
fatal: unable to stat 'path6': No such file or directory
ok 16 - add -u resolves unmerged paths

expecting success of 2200.17 '"add -u non-existent" should fail': 
	test_must_fail git add -u non-existent &&
	git ls-files >actual &&
	! grep "non-existent" actual

fatal: pathspec 'non-existent' did not match any files
ok 17 - "add -u non-existent" should fail

# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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>
 5 files changed, 2 insertions(+)
 rename caskly => nitfol (100%)
 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'
*** 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
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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"
		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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
	renamed:    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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
	renamed:    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'
*** 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'
*** 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
index 9015a7a..0000000
--- a/dir/foo
+++ /dev/null
deleted file mode 100644
@@ -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'
*** 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

[master (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 add [<options>] <path> [<commit-ish>]
   or: git worktree list [<options>]
   or: git worktree lock [<options>] <path>
   or: git worktree move <worktree> <new-path>
   or: git worktree prune [<options>]
   or: git worktree remove [<options>] <worktree>
   or: git worktree unlock <path>

    -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 >actual &&
	cat >expect <<EOF &&
Removing worktrees/abc: not a valid directory
EOF
	test_i18ncmp expect actual &&
	! test -f .git/worktrees/abc &&
	! test -d .git/worktrees

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 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 >actual &&
	test_i18ncmp 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 >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 >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 >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" master &&
	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 >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 >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/
[master (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

[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 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 master &&
	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 master &&
	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 master &&
	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 master &&
	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 with locked annotation': 
	test_when_finished "rm -rf locked unlocked out && git worktree prune" &&
	git worktree add --detach locked master &&
	git worktree add --detach unlocked master &&
	git worktree lock 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 7 - "list" all worktrees with locked annotation

expecting success of 2402.8 'bare repo setup': 
	git init --bare bare1 &&
	echo "data" >file1 &&
	git add file1 &&
	git commit -m"File1: add data" &&
	git push bare1 master &&
	git reset --hard HEAD^

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2402-worktree-list/bare1/
[master 7c81006] File1: add data
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file1
To bare1
 * [new branch]      master -> master
HEAD is now at 2519212 init
ok 8 - bare repo setup

expecting success of 2402.9 '"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 master &&
	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 9 - "list" all worktrees from bare main

expecting success of 2402.10 '"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 master &&
	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 10 - "list" all worktrees --porcelain from bare main

expecting success of 2402.11 '"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 master &&
	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 11 - "list" all worktrees from linked with a bare main

expecting success of 2402.12 'bare repo cleanup': 
	rm -rf bare1

ok 12 - bare repo cleanup

expecting success of 2402.13 '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 &&
		echo "ref: .broken" >../.git/HEAD &&
		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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2402-worktree-list/broken-main/.git/
[master (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 13 - broken main worktree still at the top

expecting success of 2402.14 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2402-worktree-list/sorted/main/.git/
[master (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 14 - linked worktrees are sorted

expecting success of 2402.15 'worktree path when called in .git directory': 
	git worktree list >list1 &&
	git -C .git worktree list >list2 &&
	test_cmp list1 list2

ok 15 - worktree path when called in .git directory

# passed all 15 test(s)
1..15
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'
*** 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
usage: git worktree add [<options>] <path> [<commit-ish>]
   or: git worktree list [<options>]
   or: git worktree lock [<options>] <path>
   or: git worktree move <worktree> <new-path>
   or: git worktree prune [<options>]
   or: git worktree remove [<options>] <worktree>
   or: git worktree unlock <path>

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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 e87ce0c] 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 e87ce0c)
HEAD is now at e87ce0c 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 e87ce0c)
HEAD is now at e87ce0c 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 e87ce0c)
HEAD is now at e87ce0c 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'
*** 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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: 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 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 13 - repo not found; .git file broken

expecting success of 2406.14 'repair broken gitdir': 
	test_when_finished "rm -rf orig moved && git worktree prune" &&
	git worktree add --detach orig &&
	sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect &&
	rm .git/worktrees/orig/gitdir &&
	mv orig moved &&
	git worktree repair moved >out 2>err &&
	test_cmp expect .git/worktrees/orig/gitdir &&
	test_i18ngrep "gitdir unreadable" out &&
	test_must_be_empty err

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir unreadable: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir
ok 14 - repair broken gitdir

expecting success of 2406.15 'repair incorrect gitdir': 
	test_when_finished "rm -rf orig moved && git worktree prune" &&
	git worktree add --detach orig &&
	sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect &&
	mv orig moved &&
	git worktree repair moved >out 2>err &&
	test_cmp expect .git/worktrees/orig/gitdir &&
	test_i18ngrep "gitdir incorrect" out &&
	test_must_be_empty err

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir incorrect: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir
ok 15 - repair incorrect gitdir

expecting success of 2406.16 'repair gitdir (implicit) from linked worktree': 
	test_when_finished "rm -rf orig moved && git worktree prune" &&
	git worktree add --detach orig &&
	sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect &&
	mv orig moved &&
	git -C moved worktree repair >out 2>err &&
	test_cmp expect .git/worktrees/orig/gitdir &&
	test_i18ngrep "gitdir incorrect" out &&
	test_must_be_empty err

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir incorrect: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir
ok 16 - repair gitdir (implicit) from linked worktree

expecting success of 2406.17 'unable to repair gitdir (implicit) from main worktree': 
	test_when_finished "rm -rf orig moved && git worktree prune" &&
	git worktree add --detach orig &&
	cat .git/worktrees/orig/gitdir >expect &&
	mv orig moved &&
	git worktree repair >out 2>err &&
	test_cmp expect .git/worktrees/orig/gitdir &&
	test_must_be_empty out &&
	test_must_be_empty err

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 17 - unable to repair gitdir (implicit) from main worktree

expecting success of 2406.18 'repair multiple gitdir files': 
	test_when_finished "rm -rf orig1 orig2 moved1 moved2 &&
		git worktree prune" &&
	git worktree add --detach orig1 &&
	git worktree add --detach orig2 &&
	sed s,orig1/\.git$,moved1/.git, .git/worktrees/orig1/gitdir >expect1 &&
	sed s,orig2/\.git$,moved2/.git, .git/worktrees/orig2/gitdir >expect2 &&
	mv orig1 moved1 &&
	mv orig2 moved2 &&
	git worktree repair moved1 moved2 >out 2>err &&
	test_cmp expect1 .git/worktrees/orig1/gitdir &&
	test_cmp expect2 .git/worktrees/orig2/gitdir &&
	test_i18ngrep "gitdir incorrect:.*orig1/gitdir$" out &&
	test_i18ngrep "gitdir incorrect:.*orig2/gitdir$" out &&
	test_must_be_empty err

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir incorrect: /<<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 18 - repair multiple gitdir files

# passed all 18 test(s)
1..18
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"

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2405-worktree-submodule/origin/sub/.git/
[master (root-commit) 69af168] file1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file1.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2405-worktree-submodule/origin/main/.git/
[master (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.
[master 322c452] add sub
 Author: A U Thor <author@example.com>
 2 files changed, 4 insertions(+)
 create mode 100644 .gitmodules
 create mode 160000 sub
[master 7829796] file1 updated
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file1
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
From /<<PKGBUILDDIR>>/t/trash directory.t2405-worktree-submodule/origin/sub
   69af168..7829796  master       -> origin/master
 * [new tag]         file1updated -> file1updated
Updating 69af168..7829796
Fast-forward
 file1 | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 file1
[master d717f19] sub updated
 Author: A U Thor <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 master"^!" >out &&
	grep "file1 updated" out

not ok 4 - submodule is checked out just after worktree add # TODO known breakage

expecting success of 2405.5 'add superproject worktree and initialize submodules': 
	git -C main worktree add "$base_path/worktree-submodule-update" "$rev1_hash_main" &&
	git -C worktree-submodule-update submodule update

Preparing worktree (detached HEAD 322c452)
HEAD is now at 322c452 add sub
Cloning into '/<<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 master"^!" >out &&
	grep "file1 updated" out

  > file1 updated
ok 6 - submodule is checked out just after submodule update in linked worktree

expecting success of 2405.7 'add superproject worktree and manually add submodule worktree': 
	git -C main worktree add "$base_path/linked_submodule" "$rev1_hash_main" &&
	git -C main/sub worktree add "$base_path/linked_submodule/sub" "$rev1_hash_sub"

Preparing worktree (detached HEAD 322c452)
HEAD is now at 322c452 add sub
Preparing worktree (detached HEAD 69af168)
HEAD is now at 69af168 file1
ok 7 - add superproject worktree and manually add submodule worktree

expecting success of 2405.8 'submodule is checked out after manually adding submodule worktree': 
	git -C linked_submodule diff --submodule master"^!" >out &&
	grep "file1 updated" out

  > file1 updated
ok 8 - submodule is checked out after manually adding submodule worktree

expecting success of 2405.9 'checkout --recurse-submodules uses $GIT_DIR for submodules in a linked worktree': 
	git -C main worktree add "$base_path/checkout-recurse" --detach  &&
	git -C checkout-recurse submodule update --init &&
	echo "gitdir: ../../main/.git/worktrees/checkout-recurse/modules/sub" >expect-gitfile &&
	cat checkout-recurse/sub/.git >actual-gitfile &&
	test_cmp expect-gitfile actual-gitfile &&
	git -C main/sub rev-parse HEAD >expect-head-main &&
	git -C checkout-recurse checkout --recurse-submodules HEAD~1 &&
	cat checkout-recurse/sub/.git >actual-gitfile &&
	git -C main/sub rev-parse HEAD >actual-head-main &&
	test_cmp expect-gitfile actual-gitfile &&
	test_cmp expect-head-main actual-head-main

Preparing worktree (detached HEAD d717f19)
HEAD is now at d717f19 sub updated
Cloning into '/<<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'
*** 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t3000-ls-files-others/super/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 no slashes': 
	git ls-files -o -i --exclude "one**a.1" >actual &&
	test_must_be_empty actual

ok 26 - ls-files with "**" patterns and no slashes

# passed all 26 test(s)
1..26
make[4]: Leaving directory '/<<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.': git ls-files --others >output &&
     test_cmp output - <<EOF
--
-foo
output
path0
EOF

ok 2 - git ls-files without path restriction.

expecting success of 3002.3 'git ls-files with path restriction.': git ls-files --others path0 >output &&
	test_cmp output - <<EOF
path0
EOF

ok 3 - git ls-files with path restriction.

expecting success of 3002.4 'git ls-files with path restriction with --.': git ls-files --others -- path0 >output &&
	test_cmp output - <<EOF
path0
EOF

ok 4 - git ls-files with path restriction with --.

expecting success of 3002.5 'git ls-files with path restriction with -- --.': git ls-files --others -- -- >output &&
	test_cmp output - <<EOF
--
EOF

ok 5 - git ls-files with path restriction with -- --.

expecting success of 3002.6 'git ls-files with no path restriction.': git ls-files --others -- >output &&
	test_cmp output - <<EOF
--
-foo
output
path0
EOF

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 lists only tracked-but-ignored files': 
	echo content >other-file &&
	git add other-file &&
	echo file >expect &&
	git ls-files -i --exclude-standard >output &&
	test_cmp expect output

ok 7 - ls-files -i lists only tracked-but-ignored files

# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
usage: git ls-files [<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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 &&
		for f in ../y*
		do
			echo "error: pathspec $SQ$f$SQ did not match any file(s) known to git"
		done >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_i18ncmp expect.err actual.err
	)

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 3 - ls-files -c

expecting success of 3005.4 'ls-files -o': 
	(
		cd top/sub &&
		for f in ../x*
		do
			echo "error: pathspec $SQ$f$SQ did not match any file(s) known to git"
		done >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_i18ncmp expect.err actual.err
	)

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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'
*** 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.011417 0.008417 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t3009-ls-files-others-nonsubmodule/repo-no-commit-no-files/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t3009-ls-files-others-nonsubmodule/repo-no-commit-untracked-file/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t3009-ls-files-others-nonsubmodule/repo-with-commit-no-files/.git/
[master (root-commit) b4b9816] msg
 Author: A U Thor <author@example.com>
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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

[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 2400.2 '"add" an existing worktree': 
	mkdir -p existing/subtree &&
	test_must_fail git worktree add --detach existing master

fatal: 'existing' already exists
Preparing worktree (detached HEAD 2519212)
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 master

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 master &&
	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 'master'
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 master &&
	! test -d zere &&
	! test -d .git/worktrees/zere

fatal: 'master' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add'
Preparing worktree (checking out 'master')
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 master -- 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 master &&
	(
		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 rev-parse HEAD >expect &&
	git worktree add --detach --lock here-with-lock master &&
	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 from a subdir': 
	(
		mkdir sub &&
		cd sub &&
		git worktree add --detach here master &&
		cd here &&
		test_cmp ../../init.t init.t
	)

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 10 - "add" worktree from a subdir

expecting success of 2400.11 '"add" from a linked checkout': 
	(
		cd here &&
		git worktree add --detach nested-here master &&
		cd nested-here &&
		git fsck
	)

Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 11 - "add" from a linked checkout

expecting success of 2400.12 '"add" worktree creating new branch': 
	git worktree add -b newmaster there master &&
	(
		cd there &&
		test_cmp ../init.t init.t &&
		git symbolic-ref HEAD >actual &&
		echo refs/heads/newmaster >expect &&
		test_cmp expect actual &&
		git fsck
	)

Preparing worktree (new branch 'newmaster')
HEAD is now at 2519212 init
ok 12 - "add" worktree creating new branch

expecting success of 2400.13 'die the same branch is already checked out': 
	(
		cd here &&
		test_must_fail git checkout newmaster
	)

fatal: 'newmaster' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/there'
ok 13 - 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.14 '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 newmaster

fatal: 'newmaster' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/there'
ok 14 - die the same branch is already checked out (symlink)

expecting success of 2400.15 'not die the same branch is already checked out': 
	(
		cd here &&
		git worktree add --force anothernewmaster newmaster
	)

Preparing worktree (checking out 'newmaster')
HEAD is now at 2519212 init
ok 15 - not die the same branch is already checked out

expecting success of 2400.16 'not die on re-checking out current branch': 
	(
		cd there &&
		git checkout newmaster
	)

Already on 'newmaster'
ok 16 - not die on re-checking out current branch

expecting success of 2400.17 '"add" from a bare repo': 
	(
		git clone --bare . bare &&
		cd bare &&
		git worktree add -b bare-master ../there2 master
	)

Cloning into bare repository 'bare'...
done.
Preparing worktree (new branch 'bare-master')
HEAD is now at 2519212 init
ok 17 - "add" from a bare repo

expecting success of 2400.18 'checkout from a bare repo without "add"': 
	(
		cd bare &&
		test_must_fail git checkout master
	)

fatal: this operation must be run in a work tree
ok 18 - checkout from a bare repo without "add"

expecting success of 2400.19 '"add" default branch of a bare repo': 
	(
		git clone --bare . bare2 &&
		cd bare2 &&
		git worktree add ../there3 master
	)

Cloning into bare repository 'bare2'...
done.
Preparing worktree (checking out 'master')
HEAD is now at 2519212 init
ok 19 - "add" default branch of a bare repo

expecting success of 2400.20 'checkout with grafts': 
	test_when_finished rm .git/info/grafts &&
	test_commit abc &&
	SHA1=$(git rev-parse HEAD) &&
	test_commit def &&
	test_commit xyz &&
	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 master &&
	git --git-dir=grafted/.git log --format=%s -2 >actual &&
	test_cmp expected actual

[master 6d278e0] abc
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 abc.t
[master 3c13a14] def
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 def.t
[master 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 20 - checkout with grafts

expecting success of 2400.21 '"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

[master e9a6308] a
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a.t
[master 15d3bfc] b
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 b.t
[master 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 21 - "add" from relative HEAD

expecting success of 2400.22 '"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 22 - "add -b" with <branch> omitted

expecting success of 2400.23 '"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 23 - "add --detach" with <branch> omitted

expecting success of 2400.24 '"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 24 - "add" with <branch> omitted

expecting success of 2400.25 '"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 25 - "add" checks out existing branch of dwimd name

expecting success of 2400.26 '"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'
fatal: 'test-branch' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add'
Preparing worktree (checking out 'test-branch')
ok 26 - "add <path>" dwim fails with checked out branch

expecting success of 2400.27 '"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 27 - "add --force" with existing dwimd name doesnt die

expecting success of 2400.28 '"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 28 - "add" no auto-vivify with --detach and <branch> omitted

expecting success of 2400.29 '"add" -b/-B mutually exclusive': 
	test_must_fail git worktree add -b poodle -B poodle bamboo master

fatal: -b, -B, and --detach are mutually exclusive
ok 29 - "add" -b/-B mutually exclusive

expecting success of 2400.30 '"add" -b/--detach mutually exclusive': 
	test_must_fail git worktree add -b poodle --detach bamboo master

fatal: -b, -B, and --detach are mutually exclusive
ok 30 - "add" -b/--detach mutually exclusive

expecting success of 2400.31 '"add" -B/--detach mutually exclusive': 
	test_must_fail git worktree add -B poodle --detach bamboo master

fatal: -b, -B, and --detach are mutually exclusive
ok 31 - "add" -B/--detach mutually exclusive

expecting success of 2400.32 '"add -B" fails if the branch is checked out': 
	git rev-parse newmaster >before &&
	test_must_fail git worktree add -B newmaster bamboo master &&
	git rev-parse newmaster >after &&
	test_cmp before after

fatal: 'newmaster' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/there'
ok 32 - "add -B" fails if the branch is checked out

expecting success of 2400.33 'add -B': 
	git worktree add -B poodle bamboo2 master^ &&
	git -C bamboo2 symbolic-ref HEAD >actual &&
	echo refs/heads/poodle >expected &&
	test_cmp expected actual &&
	test_cmp_rev master^ poodle

Preparing worktree (new branch 'poodle')
HEAD is now at 15d3bfc b
ok 33 - add -B

expecting success of 2400.34 'add --quiet': 
	git worktree add --quiet another-worktree master 2>actual &&
	test_must_be_empty actual

ok 34 - add --quiet

expecting success of 2400.35 'local clone from linked checkout': 
	git clone --local here here-clone &&
	( cd here-clone && git fsck )

Cloning into 'here-clone'...
done.
ok 35 - local clone from linked checkout

expecting success of 2400.36 '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 36 - local clone --shared from linked checkout

expecting success of 2400.37 '"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 37 - "add" worktree with --no-checkout

expecting success of 2400.38 '"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 38 - "add" worktree with --checkout

expecting success of 2400.39 '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 39 - put a worktree under rebase

expecting success of 2400.40 'add a worktree, checking out a rebased branch': 
	test_must_fail git worktree add new-rebase under-rebase &&
	! test -d new-rebase

fatal: 'under-rebase' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-rebase'
Preparing worktree (checking out 'under-rebase')
ok 40 - add a worktree, checking out a rebased branch

expecting success of 2400.41 '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 41 - checking out a rebased branch from another worktree

expecting success of 2400.42 '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 42 - not allow to delete a branch under rebase

expecting success of 2400.43 '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 43 - rename a branch under rebase not allowed

expecting success of 2400.44 '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 44 - check out from current worktree branch ok

expecting success of 2400.45 '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
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)
fatal: 'under-bisect' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-bisect'
Preparing worktree (checking out 'under-bisect')
ok 45 - checkout a branch under bisect

expecting success of 2400.46 '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 46 - rename a branch under bisect not allowed

expecting success of 2400.47 '--track sets up tracking': 
	test_when_finished rm -rf track &&
	git worktree add --track -b track track master &&
	test_branch_upstream track . master

Preparing worktree (new branch 'track')
Branch 'track' set up to track local branch 'master'.
HEAD is now at 179a9e0 c
ok 47 - --track sets up tracking

expecting success of 2400.48 '--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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_upstream/.git/
[master (root-commit) 8653142] repo_upstream_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_upstream_master.t
Switched to a new branch 'foo'
[foo 9273adc] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_local/.git/
[master (root-commit) 181be3d] repo_local_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_local_master.t
Fetching repo_upstream
From ../repo_upstream
 * [new branch]      foo                  -> repo_upstream/foo
 * [new branch]      master               -> repo_upstream/master
 * [new tag]         repo_upstream_master -> repo_upstream_master
 * [new tag]         upstream_foo         -> upstream_foo
Preparing worktree (new branch 'foo')
HEAD is now at 9273adc upstream_foo
ok 48 - --no-track avoids setting up tracking

expecting success of 2400.49 '"add" <path> <non-existent-branch> fails': 
	test_must_fail git worktree add foo non-existent

fatal: invalid reference: non-existent
ok 49 - "add" <path> <non-existent-branch> fails

expecting success of 2400.50 '"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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_upstream/.git/
[master (root-commit) 8653142] repo_upstream_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_upstream_master.t
Switched to a new branch 'foo'
[foo 9273adc] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_dwim/.git/
[master (root-commit) 81eb8eb] repo_dwim_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_dwim_master.t
Fetching repo_upstream
From ../repo_upstream
 * [new branch]      foo                  -> repo_upstream/foo
 * [new branch]      master               -> repo_upstream/master
 * [new tag]         repo_upstream_master -> repo_upstream_master
 * [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 remote branch 'foo' from 'repo_upstream'.
HEAD is now at 9273adc upstream_foo
ok 50 - "add" <path> <branch> dwims

expecting success of 2400.51 '"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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_upstream/.git/
[master (root-commit) 8653142] repo_upstream_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_upstream_master.t
Switched to a new branch 'foo'
[foo 9273adc] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_dwim/.git/
[master (root-commit) 81eb8eb] repo_dwim_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_dwim_master.t
Fetching repo_upstream
From ../repo_upstream
 * [new branch]      foo                  -> repo_upstream/foo
 * [new branch]      master               -> repo_upstream/master
 * [new tag]         repo_upstream_master -> repo_upstream_master
 * [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]      master     -> repo_upstream2/master
fatal: invalid reference: foo
Preparing worktree (new branch 'foo')
Branch 'foo' set up to track remote branch 'foo' from 'repo_upstream'.
HEAD is now at 9273adc upstream_foo
ok 51 - "add" <path> <branch> dwims with checkout.defaultRemote

expecting success of 2400.52 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_a/.git/
[master (root-commit) 58714c0] repo_a_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_a_master.t
Switched to a new branch 'foo'
[foo a445945] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_b/.git/
[master (root-commit) 0904084] repo_b_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_b_master.t
Fetching repo_a
From ../repo_a
 * [new branch]      foo           -> repo_a/foo
 * [new branch]      master        -> repo_a/master
 * [new tag]         repo_a_master -> repo_a_master
 * [new tag]         upstream_foo  -> upstream_foo
Preparing worktree (new branch 'foo')
HEAD is now at 0904084 repo_b_master
ok 52 - git worktree add does not match remote

expecting success of 2400.53 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_a/.git/
[master (root-commit) 58714c0] repo_a_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_a_master.t
Switched to a new branch 'foo'
[foo a445945] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_b/.git/
[master (root-commit) 0904084] repo_b_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_b_master.t
Fetching repo_a
From ../repo_a
 * [new branch]      foo           -> repo_a/foo
 * [new branch]      master        -> repo_a/master
 * [new tag]         repo_a_master -> repo_a_master
 * [new tag]         upstream_foo  -> upstream_foo
Preparing worktree (new branch 'foo')
Branch 'foo' set up to track remote branch 'foo' from 'repo_a'.
HEAD is now at a445945 upstream_foo
ok 53 - git worktree add --guess-remote sets up tracking

expecting success of 2400.54 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_a/.git/
[master (root-commit) 58714c0] repo_a_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_a_master.t
Switched to a new branch 'foo'
[foo a445945] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_b/.git/
[master (root-commit) 0904084] repo_b_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_b_master.t
Fetching repo_a
From ../repo_a
 * [new branch]      foo           -> repo_a/foo
 * [new branch]      master        -> repo_a/master
 * [new tag]         repo_a_master -> repo_a_master
 * [new tag]         upstream_foo  -> upstream_foo
Preparing worktree (new branch 'foo')
Branch 'foo' set up to track remote branch 'foo' from 'repo_a'.
HEAD is now at a445945 upstream_foo
ok 54 - git worktree add with worktree.guessRemote sets up tracking

expecting success of 2400.55 '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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/repo_a/.git/
[master (root-commit) 58714c0] repo_a_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_a_master.t
Switched to a new branch 'foo'
[foo a445945] upstream_foo
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 upstream_foo.t
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t2400-worktree-add/repo_b/.git/
[master (root-commit) 0904084] repo_b_master
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 repo_b_master.t
Fetching repo_a
From ../repo_a
 * [new branch]      foo           -> repo_a/foo
 * [new branch]      master        -> repo_a/master
 * [new tag]         repo_a_master -> repo_a_master
 * [new tag]         upstream_foo  -> upstream_foo
Preparing worktree (new branch 'foo')
HEAD is now at 0904084 repo_b_master
ok 55 - git worktree --no-guess-remote option overrides config

expecting success of 2400.56 '"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 56 - "add" invokes post-checkout hook (branch)

expecting success of 2400.57 '"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 57 - "add" invokes post-checkout hook (detached)

expecting success of 2400.58 '"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 58 - "add --no-checkout" suppresses post-checkout hook

expecting success of 2400.59 '"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 59 - "add" in other worktree invokes post-checkout hook

expecting success of 2400.60 '"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 60 - "add" in bare repo invokes post-checkout hook

expecting success of 2400.61 '"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
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)
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 61 - "add" an existing but missing worktree

expecting success of 2400.62 '"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
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)
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
fatal: 'gnoo' is not locked
ok 62 - "add" an existing locked but missing worktree

expecting success of 2400.63 '"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 63 - "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.64 '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 64 - sanitize generated worktree name

expecting success of 2400.65 '"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
	)

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t2400-worktree-add/add-fail/.git/
[master (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 65 - "add" should not fail because of another bad worktree

expecting success of 2400.66 '"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/
[master (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.
[master (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 66 - "add" with uninitialized submodule, with submodule.recurse unset

expecting success of 2400.67 '"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 67 - "add" with uninitialized submodule, with submodule.recurse set

expecting success of 2400.68 '"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 68 - "add" with initialized submodule, with submodule.recurse unset

expecting success of 2400.69 '"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 69 - "add" with initialized submodule, with submodule.recurse set

# passed all 69 test(s)
1..69
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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t3010-ls-files-killed-modified/submod1/.git/
[master (root-commit) 4da6488] empty 1
 Author: A U Thor <author@example.com>
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 '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 3 - ls-files correctly outputs files in submodule with -z

expecting success of 3007.4 '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 4 - ls-files does not output files not added to a repo

expecting success of 3007.5 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 5 - ls-files recurses more than 1 level

expecting success of 3007.6 '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 6 - ls-files works with GIT_DIR

expecting success of 3007.7 '--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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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 7 - --recurse-submodules and pathspecs setup

expecting success of 3007.8 '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 8 - inactive submodule

expecting success of 3007.9 '--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 9 - --recurse-submodules and pathspecs

expecting success of 3007.10 '--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 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
	EOF

	git ls-files --recurse-submodules ":(icase)*.txt" ":(exclude)submodule/subsub/*" >actual &&
	test_cmp expect actual

ok 11 - --recurse-submodules and pathspecs

expecting success of 3007.12 '--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 12 - --recurse-submodules and pathspecs

expecting success of 3007.13 '--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 13 - --recurse-submodules and pathspecs

expecting success of 3007.14 '--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 14 - --recurse-submodules and relative paths

expecting success of 3007.15 '--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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: ls-files --recurse-submodules does not support --error-unmatch
ok 15 - --recurse-submodules does not support --error-unmatch

expecting success of 3007.16 '--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 16 - --recurse-submodules and --deleted are incompatible

expecting success of 3007.17 '--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 17 - --recurse-submodules and --modified are incompatible

expecting success of 3007.18 '--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 18 - --recurse-submodules and --others are incompatible

expecting success of 3007.19 '--recurse-submodules and --stage are incompatible': 
		test_must_fail git ls-files --recurse-submodules --stage 2>actual &&
		test_i18ngrep 'unsupported mode' actual
	
fatal: ls-files --recurse-submodules unsupported mode
ok 19 - --recurse-submodules and --stage 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'
*** 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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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-02-23 16:54:47.316183504 +0000
+++ actual	2023-02-23 16:54:47.336184024 +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'
*** 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t3040-subprojects-basic/sub1/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.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'
*** 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 '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 2 - git ls-files --with-tree should succeed from subdir

expecting success of 3060.3 'git ls-files --with-tree should add entries from named tree.': test_cmp expected output
ok 3 - git ls-files --with-tree should add entries from named tree.

# passed all 3 test(s)
1..3
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"

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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

hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
From file:///<<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'
*** 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'
*** 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'
*** 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 --name-only $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 --name-only -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

# passed all 16 test(s)
1..16
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

# passed all 2 test(s)
1..2
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(+)
Merging:
5a0fd8a second on side
virtual main
found 1 common ancestor:
1bd44cb initial
Merge made by the 'recursive' 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>] [-l] [-f] <branch-name> [<start-point>]
   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           set up tracking mode (see git-pull(1))
    -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
    --format <format>     format to use for the output

usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
   or: git branch [<options>] [-l] [-f] <branch-name> [<start-point>]
   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           set up tracking mode (see git-pull(1))
    -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
    --format <format>     format to use for the output

usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
   or: git branch [<options>] [-l] [-f] <branch-name> [<start-point>]
   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           set up tracking mode (see git-pull(1))
    -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
    --format <format>     format to use for the output

usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
   or: git branch [<options>] [-l] [-f] <branch-name> [<start-point>]
   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           set up tracking mode (see git-pull(1))
    -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
    --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
Merging:
8b329c6 Merge branch 'main' into side
virtual side2
found 1 common ancestor:
f254a9d second on main
Merge made by the 'recursive' 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_i18ncmp expect actual

Branch 'topic' set up to track local branch '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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 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-octopus.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3202-show-branch-octopus/.git/
expecting success of 3202.1 'setup': 

	> file &&
	git add file &&
	test_tick &&
	git commit -m initial &&

	for i in $numbers
	do
		git checkout -b branch$i master &&
		> file$i &&
		git add file$i &&
		test_tick &&
		git commit -m branch$i || return 1
	done


[master (root-commit) 1bd44cb] initial
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file
Switched to a new branch 'branch1'
[branch1 eabeb5d] branch1
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1
Switched to a new branch 'branch2'
[branch2 b4fb685] branch2
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file2
Switched to a new branch 'branch3'
[branch3 8334722] branch3
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file3
Switched to a new branch 'branch4'
[branch4 142d8e4] branch4
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file4
Switched to a new branch 'branch5'
[branch5 c5402b6] branch5
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file5
Switched to a new branch 'branch6'
[branch6 d33aeab] branch6
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file6
Switched to a new branch 'branch7'
[branch7 cb80438] branch7
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file7
Switched to a new branch 'branch8'
[branch8 c922302] branch8
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file8
Switched to a new branch 'branch9'
[branch9 fabe124] branch9
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file9
Switched to a new branch 'branch10'
[branch10 4d9b8be] branch10
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file10
ok 1 - setup

expecting success of 3202.2 'show-branch with more than 8 branches': 

	git show-branch $(for i in $numbers; do echo branch$i; done) > out &&
	test_cmp expect out


ok 2 - show-branch with more than 8 branches

expecting success of 3202.3 'show-branch with showbranch.default': 
	for i in $numbers; do
		git config --add showbranch.default branch$i
	done &&
	git show-branch >out &&
	test_cmp expect out

ok 3 - show-branch with showbranch.default

# passed all 3 test(s)
1..3
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_i18ncmp expect actual

Note: switching to 'HEAD^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp 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_i18ncmp expect actual &&

	cat >expect <<-\EOF &&
	* (HEAD detached from fromtag)
	  branch-one
	  main
	  branch-two
	EOF
	git branch --sort=-objectsize >actual &&
	test_i18ncmp 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_i18ncmp expect actual &&

	cat >expect <<-\EOF &&
	* (HEAD detached from fromtag)
	  branch-one
	  branch-two
	  main
	EOF
	git branch --sort=-type >actual &&
	test_i18ncmp 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_i18ncmp expect actual &&

	cat >expect <<-\EOF &&
	* (HEAD detached from fromtag)
	  main
	  branch-two
	  branch-one
	EOF
	git branch --sort=-version:refname >actual &&
	test_i18ncmp 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_i18ncmp expect actual

ok 29 - git branch --format option

expecting success of 3203.30 '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_i18ncmp expect actual

Preparing worktree (checking out 'branch-two')
HEAD is now at f39a923 one
ok 30 - worktree colors correct

expecting success of 3203.31 'set up color tests': 
	echo "<RED>main<RESET>" >expect.color &&
	echo "main" >expect.bare &&
	color_args="--format=%(color:red)%(refname:short) --list main"

ok 31 - set up color tests

expecting success of 3203.32 '%(color) omitted without tty': 
	TERM=vt100 git branch $color_args >actual.raw &&
	test_decode_color <actual.raw >actual &&
	test_cmp expect.bare actual

ok 32 - %(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.33 '%(color) present with tty': 
	test_terminal git branch $color_args >actual.raw &&
	test_decode_color <actual.raw >actual &&
	test_cmp expect.color actual

ok 33 - %(color) present with tty

expecting success of 3203.34 '--color overrides auto-color': 
	git branch --color $color_args >actual.raw &&
	test_decode_color <actual.raw >actual &&
	test_cmp expect.color actual

ok 34 - --color overrides auto-color

expecting success of 3203.35 '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_i18ncmp expect actual

Preparing worktree (checking out 'branch-two')
HEAD is now at f39a923 one
ok 35 - verbose output lists worktree path

# passed all 35 test(s)
1..35
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

[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 - set up repo

expecting success of 3204.2 'update branch via @{-1}': 
	git branch previous one &&

	git checkout previous &&
	git checkout master &&

	git branch -f @{-1} two &&
	expect_branch previous two

Switched to branch 'previous'
Switched to branch 'master'
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 'master' set up to track local branch '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 'master' set up to track remote branch 'remote' from 'origin'.
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 'delete branch via @{-1}': 
	git branch previous-del &&

	git checkout previous-del &&
	git checkout master &&

	git branch -D @{-1} &&
	expect_deleted previous-del

Switched to branch 'previous-del'
Switched to branch 'master'
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 6 - delete branch via @{-1}

expecting success of 3204.7 '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 'master' set up to track local branch 'local-del'.
Deleted branch local-del (was 139b20d).
fatal: Needed a single revision
ok 7 - delete branch via local @{upstream}

expecting success of 3204.8 '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 'master' set up to track remote branch 'remote-del' from 'origin'.
Deleted remote-tracking branch origin/remote-del (was 139b20d).
fatal: Needed a single revision
ok 8 - delete branch via remote @{upstream}

expecting success of 3204.9 '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 'master' set up to track remote branch 'remote-del' from 'origin'.
error: branch '@{upstream}' not found.
ok 9 - delete @{upstream} expansion matches -r option

expecting success of 3204.10 'disallow deleting remote branch via @{-1}': 
	git update-ref refs/remotes/origin/previous one &&

	git checkout -b origin/previous two &&
	git checkout master &&

	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 'master'
Your branch is up to date with 'remotes/origin/remote-del'.
error: remote-tracking branch '@{-1}' not found.
ok 10 - disallow deleting remote branch via @{-1}

expecting success of 3204.11 'create branch named "@"': 
	git branch -f @ one &&
	expect_branch refs/heads/@ one

ok 11 - create branch named "@"

expecting success of 3204.12 '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 12 - delete branch named "@"

expecting success of 3204.13 '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 'master' set up to track remote branch 'checkout' from 'origin'.
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 13 - checkout does not treat remote @{upstream} as a branch

# passed all 13 test(s)
1..13
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

	# 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:          2434 KiB
       pools:          2122 KiB
     objects:           312 KiB
---------------------------------------------------------------------
pack_report: getpagesize()            =       4096
pack_report: core.packedGitWindowSize =   33554432
pack_report: core.packedGitLimit      =  268435456
pack_report: pack_used_ctr            =         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 master..topic master..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 master topic unmodified >actual &&
	# same "expect" as above
	test_cmp expect actual

ok 4 - simple A B C (unmodified)

expecting success of 3206.5 'trivial reordering': 
	git range-diff --no-color master 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 5 - trivial reordering

expecting success of 3206.6 'removed a commit': 
	git range-diff --no-color master 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 6 - removed a commit

expecting success of 3206.7 'added a commit': 
	git range-diff --no-color master 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 7 - added a commit

expecting success of 3206.8 'new base, A B C': 
	git range-diff --no-color master 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 8 - new base, A B C

expecting success of 3206.9 'new base, B...C': 
	# this syntax includes the commits from master!
	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 9 - new base, B...C

expecting success of 3206.10 '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 10 - changed commit

expecting success of 3206.11 '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 11 - changed commit with --no-patch diff option

expecting success of 3206.12 '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 12 - changed commit with --stat diff option

expecting success of 3206.13 '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 13 - changed commit with sm config

expecting success of 3206.14 '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 14 - renamed file

expecting success of 3206.15 '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 15 - file with mode only change

expecting success of 3206.16 '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 16 - file added and later removed

expecting success of 3206.17 'no commits on one side': 
	git commit --amend -m "new message" &&
	git range-diff master HEAD@{1} HEAD

[master 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 17 - no commits on one side

expecting success of 3206.18 '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 18 - changed message

expecting success of 3206.19 '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 19 - dual-coloring

expecting success of 3206.20 'format-patch --range-diff=topic': 
		git format-patch --cover-letter --range-diff=$prev \
			master..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-*
	
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
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 20 - format-patch --range-diff=topic

expecting success of 3206.21 'format-patch --range-diff=master..topic': 
		git format-patch --cover-letter --range-diff=$prev \
			master..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 21 - format-patch --range-diff=master..topic

expecting success of 3206.22 '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 22 - format-patch --range-diff as commentary

expecting success of 3206.23 'range-diff overrides diff.noprefix internally': 
	git -c diff.noprefix=true range-diff HEAD^...

-:  ------- > 1:  b4b08e4 new message
ok 23 - range-diff overrides diff.noprefix internally

expecting success of 3206.24 'basic with modified format.pretty with suffix': 
	git -c format.pretty="format:commit %H%d%n" range-diff \
		master..topic master..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 24 - basic with modified format.pretty with suffix

expecting success of 3206.25 'basic with modified format.pretty without "commit "': 
	git -c format.pretty="format:%H%n" range-diff \
		master..topic master..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 25 - basic with modified format.pretty without "commit "

expecting success of 3206.26 '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 master..topic master..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 26 - range-diff compares notes by default

expecting success of 3206.27 '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 master..topic master..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 27 - range-diff with --no-notes

expecting success of 3206.28 '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 master..topic master..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 28 - range-diff with multiple --notes

expecting success of 3206.29 '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 \
		master..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 29 - format-patch --range-diff does not compare notes by default

expecting success of 3206.30 '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 \
		master..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 30 - format-patch --range-diff with --no-notes

expecting success of 3206.31 '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 \
		master..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 31 - format-patch --range-diff with --notes

expecting success of 3206.32 '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 \
		master..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 32 - format-patch --range-diff with format.notes config

expecting success of 3206.33 '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 \
		master..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 33 - format-patch --range-diff with multiple notes

# passed all 33 test(s)
1..33
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)

[master (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/
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
usage: git 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 a/b/c should create a branch': 
	git branch a/b/c && test_path_is_file .git/refs/heads/a/b/c

ok 5 - git branch a/b/c should create a branch

expecting success of 3200.6 'git branch mb main... should create a branch': 
	git branch mb main... && test_path_is_file .git/refs/heads/mb

ok 6 - git branch mb main... should create a branch

expecting success of 3200.7 'git branch HEAD should fail': 
	test_must_fail git branch HEAD

fatal: 'HEAD' is not a valid branch name.
ok 7 - git branch HEAD should fail

expecting success of 3200.8 '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 8 - git branch --create-reflog d/e/f should create a branch and a log

expecting success of 3200.9 '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 9 - git branch -d d/e/f should delete a branch and a log

expecting success of 3200.10 '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 10 - git branch j/k should work after branch j has been deleted

expecting success of 3200.11 '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 11 - git branch l should work after branch l/m has been deleted

expecting success of 3200.12 '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 12 - git branch -m dumps usage

expecting success of 3200.13 '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 13 - git branch -m m broken_symref should work

expecting success of 3200.14 '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 14 - git branch -m m m/m should work

expecting success of 3200.15 '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 15 - git branch -m n/n n should work

expecting success of 3200.16 '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 16 - git branch -m bbb should rename checked out branch

expecting success of 3200.17 '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 17 - renaming checked out branch works with d/f conflict

expecting success of 3200.18 '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 18 - git branch -m o/o o should fail when o/p exists

expecting success of 3200.19 '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 19 - git branch -m o/q o/p should fail when o/p exists

expecting success of 3200.20 'git branch -M o/q o/p should work when o/p exists': 
	git branch -M o/q o/p

ok 20 - git branch -M o/q o/p should work when o/p exists

expecting success of 3200.21 '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 21 - git branch -m -f o/q o/p should work when o/p exists

expecting success of 3200.22 '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 22 - git branch -m q r/q should fail when r exists

expecting success of 3200.23 '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 current branch.
ok 23 - git branch -M foo bar should fail when bar is checked out

expecting success of 3200.24 '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 24 - git branch -M baz bam should succeed when baz is checked out

expecting success of 3200.25 'git branch -M baz bam should add entries to .git/logs/HEAD': 
	msg="Branch: renamed refs/heads/baz to refs/heads/bam" &&
	grep " 0\{40\}.*$msg$" .git/logs/HEAD &&
	grep "^0\{40\}.*$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 25 - git branch -M baz bam should add entries to .git/logs/HEAD

expecting success of 3200.26 '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 26 - git branch -M should leave orphaned HEAD alone

expecting success of 3200.27 '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 27 - resulting reflog can be shown by log -g

expecting success of 3200.28 '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 28 - git branch -M baz bam should succeed when baz is checked out as linked working tree

expecting success of 3200.29 '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 29 - git branch -M baz bam should succeed within a worktree in which baz is checked out

expecting success of 3200.30 'git branch -M main should work when main is checked out': 
	git checkout main &&
	git branch -M main

Switched to branch 'main'
ok 30 - git branch -M main should work when main is checked out

expecting success of 3200.31 'git branch -M main main should work when main is checked out': 
	git checkout main &&
	git branch -M main main

Already on 'main'
ok 31 - git branch -M main main should work when main is checked out

expecting success of 3200.32 '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 32 - git branch -M topic topic should work when main is checked out

expecting success of 3200.33 '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 33 - git branch -v -d t should work

expecting success of 3200.34 '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 34 - git branch -v -m t s should work

expecting success of 3200.35 '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>] [-l] [-f] <branch-name> [<start-point>]
   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           set up tracking mode (see git-pull(1))
    -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
    --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 35 - git branch -m -d t s should fail

expecting success of 3200.36 '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>] [-l] [-f] <branch-name> [<start-point>]
   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           set up tracking mode (see git-pull(1))
    -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
    --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 36 - git branch --list -d t should fail

expecting success of 3200.37 '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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t3200-branch/repo1/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t3200-branch/repo1/sub/.git/
[master (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
[master (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 37 - deleting checked-out branch from repo that is a submodule

expecting success of 3200.38 '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 38 - bare main worktree has HEAD at branch deleted by secondary worktree

expecting success of 3200.39 '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 &&
	test_cmp actual.noabbrev actual.0abbrev &&

	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 39 - git branch --list -v with --abbrev

expecting success of 3200.40 '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 40 - git branch --column

expecting success of 3200.41 '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 41 - git branch --column with an extremely long branch name

expecting success of 3200.42 '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 42 - git branch with column.*

expecting success of 3200.43 'git branch --column -v should fail': 
	test_must_fail git branch --column -v

fatal: --column and --verbose are incompatible
ok 43 - git branch --column -v should fail

expecting success of 3200.44 '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 44 - 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.45 'git branch -m q q2 without config should succeed': 
	git branch -m q q2 &&
	git branch -m q2 q

ok 45 - git branch -m q q2 without config should succeed

expecting success of 3200.46 '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 46 - git branch -m s/s s should work when s/t is deleted

expecting success of 3200.47 'config information was renamed, too': 
	test $(git config branch.s.dummy) = Hello &&
	test_must_fail git config branch.s/s.dummy

ok 47 - config information was renamed, too

expecting success of 3200.48 '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 48 - git branch -m correctly renames multiple config sections

expecting success of 3200.49 '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 49 - git branch -c dumps usage

expecting success of 3200.50 '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 50 - git branch --copy dumps usage

expecting success of 3200.51 '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 51 - git branch -c d e should work

expecting success of 3200.52 '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 52 - git branch --copy is a synonym for -c

expecting success of 3200.53 '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 53 - git branch -c ee ef should copy ee to create branch ef

expecting success of 3200.54 '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 54 - git branch -c f/f g/g should work

expecting success of 3200.55 '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 55 - git branch -c m2 m2 should work

expecting success of 3200.56 '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 56 - git branch -c zz zz/zz should fail

expecting success of 3200.57 '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 57 - git branch -c b/b b should fail

expecting success of 3200.58 '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 58 - git branch -C o/q o/p should work when o/p exists

expecting success of 3200.59 '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 59 - git branch -c -f o/q o/p should work when o/p exists

expecting success of 3200.60 '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 60 - git branch -c qq rr/qq should fail when rr exists

expecting success of 3200.61 '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 current branch.
ok 61 - git branch -C b1 b2 should fail when b2 is checked out

expecting success of 3200.62 '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 62 - git branch -C c1 c2 should succeed when c1 is checked out

expecting success of 3200.63 '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 63 - git branch -C c1 c2 should never touch HEAD

expecting success of 3200.64 'git branch -C main should work when main is checked out': 
	git checkout main &&
	git branch -C main

Switched to branch 'main'
ok 64 - git branch -C main should work when main is checked out

expecting success of 3200.65 'git branch -C main main should work when main is checked out': 
	git checkout main &&
	git branch -C main main

Already on 'main'
ok 65 - git branch -C main main should work when main is checked out

expecting success of 3200.66 '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 66 - git branch -C main5 main5 should work when main is checked out

expecting success of 3200.67 '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 67 - git branch -C ab cd should overwrite existing config for cd

expecting success of 3200.68 '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 68 - git branch -c correctly copies multiple config sections

expecting success of 3200.69 '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_i18ncmp expect actual

ok 69 - deleting a symref

expecting success of 3200.70 '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_i18ncmp expect actual

ok 70 - deleting a dangling symref

expecting success of 3200.71 '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_i18ncmp expect actual

ok 71 - deleting a self-referential symref

expecting success of 3200.72 '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 72 - 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.73 '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 73 - git branch -m u v should fail when the reflog for u is a symlink

expecting success of 3200.74 '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 remote branch 'main' from 'local'.
ok 74 - test tracking setup via --track

expecting success of 3200.75 '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 remote branch 'main' from 'local'.
ok 75 - test tracking setup (non-wildcard, matching)

expecting success of 3200.76 '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 setup tracking information; starting point 'local/main' is not a branch.
ok 76 - tracking setup fails on non-matching refspec

expecting success of 3200.77 '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 remote branch 'main' from 'local'.
ok 77 - test tracking setup via config

expecting success of 3200.78 '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 78 - test overriding tracking setup via --no-track

expecting success of 3200.79 '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 79 - no tracking without .fetch entries

expecting success of 3200.80 '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 remote branch 'o/o' from 'local'.
ok 80 - test tracking setup via --track but deeper

expecting success of 3200.81 '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 81 - test deleting branch deletes branch config

expecting success of 3200.82 '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_i18ncmp expect actual

ok 82 - test deleting branch without config

expecting success of 3200.83 '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 83 - deleting currently checked out branch fails

expecting success of 3200.84 '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 local branch 'main'.
ok 84 - test --track without .fetch entries

expecting success of 3200.85 'branch from non-branch HEAD w/autosetupmerge=always': 
	git config branch.autosetupmerge always &&
	git branch my9 HEAD^ &&
	git config branch.autosetupmerge false

ok 85 - branch from non-branch HEAD w/autosetupmerge=always

expecting success of 3200.86 'branch from non-branch HEAD w/--track causes failure': 
	test_must_fail git branch --track my10 HEAD^

fatal: Cannot setup tracking information; starting point 'HEAD^' is not a branch.
ok 86 - branch from non-branch HEAD w/--track causes failure

expecting success of 3200.87 'branch from tag w/--track causes failure': 
	git tag foobar &&
	test_must_fail git branch --track my11 foobar

fatal: Cannot setup tracking information; starting point 'foobar' is not a branch.
ok 87 - branch from tag w/--track causes failure

expecting success of 3200.88 '--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_i18ncmp expect err

ok 88 - --set-upstream-to fails on multiple branches

expecting success of 3200.89 '--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_i18ncmp 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 89 - --set-upstream-to fails on detached HEAD

expecting success of 3200.90 '--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_i18ncmp expect err

ok 90 - --set-upstream-to fails on a missing dst branch

expecting success of 3200.91 '--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

error: the requested upstream branch 'does-not-exist' does not exist
ok 91 - --set-upstream-to fails on a missing src branch

expecting success of 3200.92 '--set-upstream-to fails on a non-ref': 
	echo "fatal: Cannot setup tracking information; starting point 'HEAD^{}' is not a branch." >expect &&
	test_must_fail git branch --set-upstream-to HEAD^{} 2>err &&
	test_i18ncmp expect err

ok 92 - --set-upstream-to fails on a non-ref

expecting success of 3200.93 '--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 93 - --set-upstream-to fails on locked config

expecting success of 3200.94 '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 local branch 'my12'.
ok 94 - use --set-upstream-to modify HEAD

expecting success of 3200.95 '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 local branch 'main'.
ok 95 - use --set-upstream-to modify a particular branch

expecting success of 3200.96 '--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_i18ncmp expect err

ok 96 - --unset-upstream should fail if given a non-existent branch

expecting success of 3200.97 '--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 local branch 'locked'.
error: could not lock config file .git/config: File exists
ok 97 - --unset-upstream should fail if config is locked

expecting success of 3200.98 '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_i18ncmp expect err

Branch 'main' set up to track local branch 'my14'.
ok 98 - test --unset-upstream on HEAD

expecting success of 3200.99 '--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_i18ncmp expect err

ok 99 - --unset-upstream should fail on multiple branches

expecting success of 3200.100 '--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_i18ncmp 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 100 - --unset-upstream should fail on detached HEAD

expecting success of 3200.101 '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 local branch 'main'.
ok 101 - test --unset-upstream on a particular branch

expecting success of 3200.102 '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 102 - disabled option --set-upstream fails

expecting success of 3200.103 '--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_i18ncmp expect actual

ok 103 - --set-upstream-to notices an error to set branch as own upstream

expecting success of 3200.104 '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 104 - git checkout -b g/h/i -l should create a branch and a log

expecting success of 3200.105 '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 105 - checkout -b makes reflog by default

expecting success of 3200.106 '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 106 - checkout -b does not make reflog when core.logAllRefUpdates = false

expecting success of 3200.107 '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 107 - checkout -b with -l makes reflog when core.logAllRefUpdates = false

expecting success of 3200.108 'avoid ambiguous track': 
	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 &&
	test_must_fail git branch all1 main &&
	test -z "$(git config branch.all1.merge)"

fatal: Not tracking: ambiguous information for ref refs/heads/main
ok 108 - avoid ambiguous track

expecting success of 3200.109 '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]      my1        -> local/my1
 * [new branch]      my12       -> local/my12
 * [new branch]      my13       -> local/my13
 * [new branch]      my14       -> local/my14
 * [new branch]      my15       -> local/my15
 * [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
Branch 'myr1' set up to track local branch 'mybase' by rebasing.
ok 109 - autosetuprebase local on a tracked local branch

expecting success of 3200.110 '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 local branch 'mybase' by rebasing.
ok 110 - autosetuprebase always on a tracked local branch

expecting success of 3200.111 '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 local branch 'mybase2'.
ok 111 - autosetuprebase remote on a tracked local branch

expecting success of 3200.112 '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 local branch 'mybase2'.
ok 112 - autosetuprebase never on a tracked local branch

expecting success of 3200.113 '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 remote branch 'main' from 'local'.
ok 113 - autosetuprebase local on a tracked remote branch

expecting success of 3200.114 '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 remote branch 'main' from 'local'.
ok 114 - autosetuprebase never on a tracked remote branch

expecting success of 3200.115 '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 remote branch 'main' from 'local' by rebasing.
ok 115 - autosetuprebase remote on a tracked remote branch

expecting success of 3200.116 '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 remote branch 'main' from 'local' by rebasing.
ok 116 - autosetuprebase always on a tracked remote branch

expecting success of 3200.117 '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 remote branch 'main' from 'local'.
ok 117 - autosetuprebase unconfigured on a tracked remote branch

expecting success of 3200.118 '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 local branch 'mybase2'.
ok 118 - autosetuprebase unconfigured on a tracked local branch

expecting success of 3200.119 '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 119 - autosetuprebase unconfigured on untracked local branch

expecting success of 3200.120 '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 120 - autosetuprebase unconfigured on untracked remote branch

expecting success of 3200.121 '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 121 - autosetuprebase never on an untracked local branch

expecting success of 3200.122 '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 122 - autosetuprebase local on an untracked local branch

expecting success of 3200.123 '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 123 - autosetuprebase remote on an untracked local branch

expecting success of 3200.124 '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 124 - autosetuprebase always on an untracked local branch

expecting success of 3200.125 '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 125 - autosetuprebase never on an untracked remote branch

expecting success of 3200.126 '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 126 - autosetuprebase local on an untracked remote branch

expecting success of 3200.127 '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 127 - autosetuprebase remote on an untracked remote branch

expecting success of 3200.128 '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 128 - autosetuprebase always on an untracked remote branch

expecting success of 3200.129 '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 129 - autosetuprebase always on detached HEAD

expecting success of 3200.130 '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 81
ok 130 - detect misconfigured autosetuprebase (bad value)

expecting success of 3200.131 '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 127
ok 131 - detect misconfigured autosetuprebase (no value)

expecting success of 3200.132 '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 132 - attempt to delete a branch without base and unmerged to HEAD

expecting success of 3200.133 '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 133 - attempt to delete a branch merged to its base

expecting success of 3200.134 '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 228c508] Third commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Branch 'my10' set up to track local branch '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 134 - attempt to delete a branch merged to its base

expecting success of 3200.135 'use --edit-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 135 - use --edit-description

expecting success of 3200.136 '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 136 - detect typo in branch name when using --edit-description

expecting success of 3200.137 '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 137 - refuse --edit-description on unborn branch for now

expecting success of 3200.138 '--merged catches invalid object names': 
	test_must_fail git branch --merged 0000000000000000000000000000000000000000

error: option `merged' must point to a commit
ok 138 - --merged catches invalid object names

expecting success of 3200.139 '--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 da664a6 Second commit.
pick 228c508 Third commit

rebase -i script after editing:
pick da664a6 Second commit.
edit 228c508 Third commit
Rebasing (2/2)

                                                                                
Stopped at 228c508...  Third commit
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 228c508 Third commit
Removing .gitconfig
Removing EDITOR_OUTPUT
Removing actual
Removing actual.0abbrev
Removing actual.36abbrev
Removing actual.abbrev
Removing actual.default
Removing actual.noabbrev
Removing config.branch
Removing editor
Removing err
Removing expect
Removing fake-editor.sh
Removing real-u
ok 139 - --list during rebase

expecting success of 3200.140 '--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 228c508 Third commit
rebase -i script before editing:
pick da664a6 Second commit.
pick 228c508 Third commit

rebase -i script after editing:
pick da664a6 Second commit.
edit 228c508 Third commit
Rebasing (2/2)

                                                                                
Stopped at 228c508...  Third commit
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 228c508)
HEAD is now at 228c508 Third commit
Removing actual
Removing fake-editor.sh
Switched to branch 'main'
ok 140 - --list during rebase from detached HEAD

expecting success of 3200.141 '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) 7f0b538] 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) f869f6f] 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) 1aae479] 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 remote ref 'refs/remotes/a/main'.
ok 141 - tracking with unexpected .fetch refspec

expecting success of 3200.142 '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) d39e3de] 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 72bbe25] 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 e7c2d97] 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 80b142d] b
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 b.t
ok 142 - configured committerdate sort

expecting success of 3200.143 '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 143 - option override configured sort

expecting success of 3200.144 'invalid sort parameter in configuration': 
	(
		cd sort &&
		git config branch.sort "v:notvalid" &&
		test_must_fail git branch
	)

fatal: unknown field name: notvalid
ok 144 - invalid sort parameter in configuration

# passed all 144 test(s)
1..144
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

[master (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/master" &&
		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/master" &&
		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'
*** 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)
[master (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

[master 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 master &&
	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 'master'
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

[master 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

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: 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/master &&
	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 "$(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'
*** 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_i18ncmp expected current

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 18 - diffstat for rename quotes funny filename

expecting success of 3300.19 'numstat for rename quotes funny filename': 
	cat >expected <<-\EOF &&
	0	0	"tabs\t,\" (dq) and spaces"
	EOF
	git diff-index -M -p $t0 >diff &&
	git apply --numstat <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'
*** 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"
		)
	
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
*** 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

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
		)
	
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.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'
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[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'
Removing sub1/file3
Removing sub1/file2
Removing sub1/file1
Adding sub1
[replace_directory_with_sub1 2061bb3] Revert "Replace sub1 with directory"
 Author: A U Thor <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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 7 - git checkout --recurse-submodules: added submodule is checked out

expecting success of 2013.8 'git checkout --recurse-submodules: added submodule is checked out in empty dir': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			mkdir sub1 &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 8 - git checkout --recurse-submodules: added submodule is checked out in empty dir

expecting success of 2013.9 'git checkout --recurse-submodules: replace tracked file with submodule checks out submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_file &&
		(
			cd submodule_update &&
			git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 &&
			$command replace_file_with_sub1 &&
			test_superproject_content origin/replace_file_with_sub1 &&
			test_submodule_content sub1 origin/replace_file_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_file'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
Switched to branch 'replace_file_with_sub1'
Your branch is up to date with 'origin/replace_file_with_sub1'.
ok 9 - git checkout --recurse-submodules: replace tracked file with submodule checks out submodule

expecting success of 2013.10 'git checkout --recurse-submodules: replace directory with submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_directory &&
		(
			cd submodule_update &&
			git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 &&
			$command replace_directory_with_sub1 &&
			test_superproject_content origin/replace_directory_with_sub1 &&
			test_submodule_content sub1 origin/replace_directory_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_directory'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
Switched to branch 'replace_directory_with_sub1'
Your branch is up to date with 'origin/replace_directory_with_sub1'.
ok 10 - git checkout --recurse-submodules: replace directory with submodule

expecting success of 2013.11 'git checkout --recurse-submodules: nested submodules are checked out': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t modify_sub1_recursively origin/modify_sub1_recursively &&
			$command modify_sub1_recursively &&
			test_superproject_content origin/modify_sub1_recursively &&
			test_submodule_content sub1 origin/modify_sub1_recursively &&
			test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'.
Switched to branch 'modify_sub1_recursively'
Your branch is up to date with 'origin/modify_sub1_recursively'.
ok 11 - git checkout --recurse-submodules: nested submodules are checked out

expecting success of 2013.12 'git checkout --recurse-submodules: removed submodule removes submodules working tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			! test -e sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
Switched to branch 'remove_sub1'
Your branch is up to date with 'origin/remove_sub1'.
ok 12 - git checkout --recurse-submodules: removed submodule removes submodules working tree

expecting success of 2013.13 'git checkout --recurse-submodules: removed submodule absorbs submodules .git directory': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			replace_gitfile_with_git_dir sub1 &&
			rm -rf .git/modules &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			! test -e sub1 &&
			test_git_directory_exists sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
ok 14 - git checkout --recurse-submodules: replace submodule with a file

checking known breakage of 2013.15 'git checkout --recurse-submodules: replace submodule with a file must fail with untracked files': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			: >sub1/untrackedfile &&
			test_must_fail $command replace_sub1_with_file &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			test -f sub1/untracked_file
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
test_must_fail: command succeeded: git checkout --recurse-submodules replace_sub1_with_file
not ok 15 - git checkout --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage

expecting success of 2013.16 'git checkout --recurse-submodules: worktrees of nested submodules are removed': 
		prolog &&
		reset_work_tree_to_interested add_nested_sub &&
		(
			cd submodule_update &&
			git branch -t no_submodule origin/no_submodule &&
			$command no_submodule &&
			test_superproject_content origin/no_submodule &&
			! test_path_is_dir sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree &&
			test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_nested_sub'
Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Switched to branch 'no_submodule'
Your branch is up to date with 'origin/no_submodule'.
Directory sub1 doesn't exist. 
ok 16 - git checkout --recurse-submodules: worktrees of nested submodules are removed

expecting success of 2013.17 'git checkout --recurse-submodules: modified submodule updates submodule work tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
ok 17 - git checkout --recurse-submodules: modified submodule updates submodule work tree

expecting success of 2013.18 'git checkout --recurse-submodules: updating to a missing submodule commit fails': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t invalid_sub1 origin/invalid_sub1 &&
			test_must_fail $command invalid_sub1 2>err &&
			test_i18ngrep sub1 err &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'invalid_sub1' from 'origin'.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: Submodule 'sub1' could not be updated.
	sub1
ok 18 - git checkout --recurse-submodules: updating to a missing submodule commit fails

expecting success of 2013.19 'git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git -C sub1 checkout -b keep_branch &&
			git -C sub1 rev-parse HEAD >expect &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1 &&
			git -C sub1 rev-parse keep_branch >actual &&
			test_cmp expect actual &&
			test_must_fail git -C sub1 symbolic-ref HEAD
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
fatal: ref HEAD is not a symbolic ref
ok 19 - git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead

expecting success of 2013.20 'git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			: >sub1 &&
			test_must_fail $command add_sub1 &&
			test_superproject_content origin/no_submodule &&
			test_must_be_empty sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
error: The following untracked working tree files would be overwritten by checkout:
	sub1
Please move or remove them before you switch branches.
Aborting
ok 20 - git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name

expecting success of 2013.21 'git checkout --recurse-submodules: added submodule removes an untracked ignored file': 
		test_when_finished "rm submodule_update/.git/info/exclude" &&
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			: >sub1 &&
			echo sub1 >.git/info/exclude &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 21 - git checkout --recurse-submodules: added submodule removes an untracked ignored file

checking known breakage of 2013.22 'git checkout --recurse-submodules: replace submodule with a directory': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory &&
			test_submodule_content sub1 origin/replace_sub1_with_directory
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: The following untracked working tree files would be overwritten by checkout:
	sub1/file1
	sub1/file2
Please move or remove them before you switch branches.
Aborting
not ok 22 - git checkout --recurse-submodules: replace submodule with a directory # TODO known breakage

checking known breakage of 2013.23 'git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			rm -rf .git/modules &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory &&
			test_git_directory_exists sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: The following untracked working tree files would be overwritten by checkout:
	sub1/file1
	sub1/file2
Please move or remove them before you switch branches.
Aborting
not ok 23 - git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage

expecting success of 2013.24 'git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': 
		test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" &&
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			echo ignored >.git/modules/sub1/info/exclude &&
			: >sub1/ignored &&
			$command replace_sub1_with_file &&
			test_superproject_content origin/replace_sub1_with_file &&
			test -f sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
ok 24 - git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule

expecting success of 2013.25 'git -c submodule.recurse=true checkout: modified submodule updates submodule work tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			git -c submodule.recurse=true $cmd_args modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
ok 25 - git -c submodule.recurse=true checkout: modified submodule updates submodule work tree

expecting success of 2013.26 'git checkout --recurse-submodules: modified submodule updates submodule recursively': 
		prolog &&
		reset_work_tree_to_interested add_nested_sub &&
		(
			cd submodule_update &&
			git branch -t modify_sub1_recursively origin/modify_sub1_recursively &&
			$command modify_sub1_recursively &&
			test_superproject_content origin/modify_sub1_recursively &&
			test_submodule_content sub1 origin/modify_sub1_recursively &&
			test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_nested_sub'
Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1_recursively' from 'origin'.
Switched to branch 'modify_sub1_recursively'
Your branch is up to date with 'origin/modify_sub1_recursively'.
ok 26 - git checkout --recurse-submodules: modified submodule updates submodule recursively

expecting success of 2013.27 'git checkout -f --recurse-submodules: added submodule is checked out': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 27 - git checkout -f --recurse-submodules: added submodule is checked out

expecting success of 2013.28 'git checkout -f --recurse-submodules: added submodule is checked out in empty dir': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			mkdir sub1 &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 28 - git checkout -f --recurse-submodules: added submodule is checked out in empty dir

expecting success of 2013.29 'git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_file &&
		(
			cd submodule_update &&
			git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 &&
			$command replace_file_with_sub1 &&
			test_superproject_content origin/replace_file_with_sub1 &&
			test_submodule_content sub1 origin/replace_file_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_file'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
Switched to branch 'replace_file_with_sub1'
Your branch is up to date with 'origin/replace_file_with_sub1'.
ok 29 - git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule

expecting success of 2013.30 'git checkout -f --recurse-submodules: replace directory with submodule': 
		prolog &&
		reset_work_tree_to_interested replace_sub1_with_directory &&
		(
			cd submodule_update &&
			git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 &&
			$command replace_directory_with_sub1 &&
			test_superproject_content origin/replace_directory_with_sub1 &&
			test_submodule_content sub1 origin/replace_directory_with_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'replace_sub1_with_directory'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
Switched to branch 'replace_directory_with_sub1'
Your branch is up to date with 'origin/replace_directory_with_sub1'.
ok 30 - git checkout -f --recurse-submodules: replace directory with submodule

expecting success of 2013.31 'git checkout -f --recurse-submodules: nested submodules are checked out': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t modify_sub1_recursively origin/modify_sub1_recursively &&
			$command modify_sub1_recursively &&
			test_superproject_content origin/modify_sub1_recursively &&
			test_submodule_content sub1 origin/modify_sub1_recursively &&
			test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'.
Switched to branch 'modify_sub1_recursively'
Your branch is up to date with 'origin/modify_sub1_recursively'.
ok 31 - git checkout -f --recurse-submodules: nested submodules are checked out

expecting success of 2013.32 'git checkout -f --recurse-submodules: removed submodule removes submodules working tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			! test -e sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
Switched to branch 'remove_sub1'
Your branch is up to date with 'origin/remove_sub1'.
ok 32 - git checkout -f --recurse-submodules: removed submodule removes submodules working tree

expecting success of 2013.33 'git checkout -f --recurse-submodules: removed submodule absorbs submodules .git directory': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			replace_gitfile_with_git_dir sub1 &&
			rm -rf .git/modules &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			! test -e sub1 &&
			test_git_directory_exists sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
ok 34 - git checkout -f --recurse-submodules: replace submodule with a file

checking known breakage of 2013.35 'git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			: >sub1/untrackedfile &&
			test_must_fail $command replace_sub1_with_file &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			test -f sub1/untracked_file
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
test_must_fail: command succeeded: git checkout -f --recurse-submodules replace_sub1_with_file
not ok 35 - git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage

expecting success of 2013.36 'git checkout -f --recurse-submodules: worktrees of nested submodules are removed': 
		prolog &&
		reset_work_tree_to_interested add_nested_sub &&
		(
			cd submodule_update &&
			git branch -t no_submodule origin/no_submodule &&
			$command no_submodule &&
			test_superproject_content origin/no_submodule &&
			! test_path_is_dir sub1 &&
			test_must_fail git config -f .git/modules/sub1/config core.worktree &&
			test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_nested_sub'
Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Switched to branch 'no_submodule'
Your branch is up to date with 'origin/no_submodule'.
Directory sub1 doesn't exist. 
ok 36 - git checkout -f --recurse-submodules: worktrees of nested submodules are removed

expecting success of 2013.37 'git checkout -f --recurse-submodules: modified submodule updates submodule work tree': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
ok 37 - git checkout -f --recurse-submodules: modified submodule updates submodule work tree

expecting success of 2013.38 'git checkout -f --recurse-submodules: updating to a missing submodule commit fails': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t invalid_sub1 origin/invalid_sub1 &&
			test_must_fail $command invalid_sub1 2>err &&
			test_i18ngrep sub1 err &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'invalid_sub1' from 'origin'.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: Submodule 'sub1' could not be updated.
error: Submodule 'sub1' cannot checkout new HEAD.
ok 38 - git checkout -f --recurse-submodules: updating to a missing submodule commit fails

expecting success of 2013.39 'git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git -C sub1 checkout -b keep_branch &&
			git -C sub1 rev-parse HEAD >expect &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1 &&
			git -C sub1 rev-parse keep_branch >actual &&
			test_cmp expect actual &&
			test_must_fail git -C sub1 symbolic-ref HEAD
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
fatal: ref HEAD is not a symbolic ref
ok 39 - git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead

expecting success of 2013.40 'git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': 
		prolog &&
		reset_work_tree_to_interested no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			>sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 40 - git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced

expecting success of 2013.41 'git checkout -f --recurse-submodules: replace submodule with a directory': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
Switched to branch 'replace_sub1_with_directory'
Your branch is up to date with 'origin/replace_sub1_with_directory'.
ok 41 - git checkout -f --recurse-submodules: replace submodule with a directory

expecting success of 2013.42 'git checkout -f --recurse-submodules: replace submodule containing a .git directory with a directory must fail': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			rm -rf .git/modules/sub1 &&
			$command replace_sub1_with_directory &&
			test_superproject_content origin/replace_sub1_with_directory &&
			test_git_directory_exists sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
ok 43 - git checkout -f --recurse-submodules: replace submodule with a file ignoring ignored files

expecting success of 2013.44 'git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit': 
		prolog &&
		reset_work_tree_to_interested invalid_sub1 &&
		(
			cd submodule_update &&
			git branch -t valid_sub1 origin/valid_sub1 &&
			$command valid_sub1 &&
			test_superproject_content origin/valid_sub1 &&
			test_submodule_content sub1 origin/valid_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'invalid_sub1'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: Needed a single revision
Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'.
Switched to branch 'valid_sub1'
Your branch is up to date with 'origin/valid_sub1'.
ok 44 - git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit

expecting success of 2013.45 'git checkout -f --recurse-submodules: updating submodules fixes .git links': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			echo "gitdir: bogus/path" >sub1/.git &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
ok 45 - git checkout -f --recurse-submodules: updating submodules fixes .git links

expecting success of 2013.46 'git checkout -f --recurse-submodules: changed submodule worktree is reset': 
		prolog &&
		reset_work_tree_to_interested add_sub1 &&
		(
			cd submodule_update &&
			rm sub1/file1 &&
			: >sub1/new_file &&
			git -C sub1 add new_file &&
			$command HEAD &&
			test_path_is_file sub1/file1 &&
			test_path_is_missing sub1/new_file
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
Switched to branch 'replace_file_with_sub1'
Your branch is up to date with 'origin/replace_file_with_sub1'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
Switched to branch 'replace_directory_with_sub1'
Your branch is up to date with 'origin/replace_directory_with_sub1'.
Submodule 'sub1' (/<<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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Switched to branch 'remove_sub1'
Your branch is up to date with 'origin/remove_sub1'.
ok 51 - git_test_func: removed submodule leaves submodule directory and its contents in place

expecting success of 2013.52 'git_test_func: removed submodule leaves submodule containing a .git directory alone': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			replace_gitfile_with_git_dir sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Switched to branch 'remove_sub1'
Your branch is up to date with 'origin/remove_sub1'.
ok 52 - git_test_func: removed submodule leaves submodule containing a .git directory alone

expecting success of 2013.53 'git_test_func: replace submodule with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: The following untracked working tree files would be overwritten by checkout:
	sub1/file1
	sub1/file2
Please move or remove them before you switch branches.
Aborting
ok 53 - git_test_func: replace submodule with a directory must fail

expecting success of 2013.54 'git_test_func: replace submodule containing a .git directory with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
error: The following untracked working tree files would be overwritten by checkout:
	sub1/file1
	sub1/file2
Please move or remove them before you switch branches.
Aborting
ok 54 - git_test_func: replace submodule containing a .git directory with a directory must fail

checking known breakage of 2013.55 'git_test_func: replace submodule with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
test_must_fail: command succeeded: git checkout replace_sub1_with_file
not ok 55 - git_test_func: replace submodule with a file must fail # TODO known breakage

checking known breakage of 2013.56 'git_test_func: replace submodule containing a .git directory with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
test_must_fail: command succeeded: git checkout replace_sub1_with_file
not ok 56 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage

expecting success of 2013.57 'git_test_func: modified submodule does not update submodule work tree': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			git submodule update &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
Submodule path 'sub1': checked out 'e6d8148a306c904a34344fac267f4613e698d228'
ok 57 - git_test_func: modified submodule does not update submodule work tree

expecting success of 2013.58 'git_test_func: modified submodule does not update submodule work tree to invalid commit': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t invalid_sub1 origin/invalid_sub1 &&
			$command invalid_sub1 &&
			test_superproject_content origin/invalid_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			test_must_fail git submodule update &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'invalid_sub1' from 'origin'.
Switched to branch 'invalid_sub1'
Your branch is up to date with 'origin/invalid_sub1'.
fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 58 - git_test_func: modified submodule does not update submodule work tree to invalid commit

expecting success of 2013.59 'git_test_func: modified submodule does not update submodule work tree from invalid commit': 
		prolog &&
		reset_work_tree_to invalid_sub1 &&
		(
			cd submodule_update &&
			git branch -t valid_sub1 origin/valid_sub1 &&
			$command valid_sub1 &&
			test_superproject_content origin/valid_sub1 &&
			test_dir_is_empty sub1 &&
			git submodule update --init --recursive &&
			test_submodule_content sub1 origin/valid_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'invalid_sub1'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: Needed a single revision
Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'.
Switched to branch 'valid_sub1'
Your branch is up to date with 'origin/valid_sub1'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
error: The following untracked working tree files would be overwritten by checkout:
	sub1
Please move or remove them before you switch branches.
Aborting
ok 60 - git_test_func: added submodule doesn't remove untracked unignored file with same name

expecting success of 2013.61 'git_test_func: added submodule creates empty directory': 
		prolog &&
		reset_work_tree_to no_submodule &&
		(
			cd submodule_update &&
			git branch -t add_sub1 origin/add_sub1 &&
			$command add_sub1 &&
			test_superproject_content origin/add_sub1 &&
			test_dir_is_empty sub1 &&
			git submodule update --init --recursive &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'no_submodule'
Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
fatal: Needed a single revision
Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'.
Switched to branch 'replace_file_with_sub1'
Your branch is up to date with 'origin/replace_file_with_sub1'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
fatal: Needed a single revision
Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'.
Switched to branch 'replace_directory_with_sub1'
Your branch is up to date with 'origin/replace_directory_with_sub1'.
Submodule 'sub1' (/<<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 remote branch 'add_sub1' from 'origin'.
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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Switched to branch 'remove_sub1'
Your branch is up to date with 'origin/remove_sub1'.
ok 65 - git_test_func: removed submodule leaves submodule directory and its contents in place

expecting success of 2013.66 'git_test_func: removed submodule leaves submodule containing a .git directory alone': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t remove_sub1 origin/remove_sub1 &&
			replace_gitfile_with_git_dir sub1 &&
			$command remove_sub1 &&
			test_superproject_content origin/remove_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Switched to branch 'remove_sub1'
Your branch is up to date with 'origin/remove_sub1'.
ok 66 - git_test_func: removed submodule leaves submodule containing a .git directory alone

checking known breakage of 2013.67 'git_test_func: replace submodule with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Switched to branch 'replace_sub1_with_directory'
Your branch is up to date with 'origin/replace_sub1_with_directory'.
test_must_fail: command succeeded: git checkout -f replace_sub1_with_directory
not ok 67 - git_test_func: replace submodule with a directory must fail # TODO known breakage

checking known breakage of 2013.68 'git_test_func: replace submodule containing a .git directory with a directory must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_directory test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_directory' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Switched to branch 'replace_sub1_with_directory'
Your branch is up to date with 'origin/replace_sub1_with_directory'.
test_must_fail: command succeeded: git checkout -f replace_sub1_with_directory
not ok 68 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage

checking known breakage of 2013.69 'git_test_func: replace submodule with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
test_must_fail: command succeeded: git checkout -f replace_sub1_with_file
not ok 69 - git_test_func: replace submodule with a file must fail # TODO known breakage

checking known breakage of 2013.70 'git_test_func: replace submodule containing a .git directory with a file must fail': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
			replace_gitfile_with_git_dir sub1 &&
			$command replace_sub1_with_file test_must_fail &&
			test_superproject_content origin/add_sub1 &&
			test_git_directory_is_unchanged sub1 &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'replace_sub1_with_file' from 'origin'.
Switched to branch 'replace_sub1_with_file'
Your branch is up to date with 'origin/replace_sub1_with_file'.
test_must_fail: command succeeded: git checkout -f replace_sub1_with_file
not ok 70 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage

expecting success of 2013.71 'git_test_func: modified submodule does not update submodule work tree': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t modify_sub1 origin/modify_sub1 &&
			$command modify_sub1 &&
			test_superproject_content origin/modify_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			git submodule update &&
			test_submodule_content sub1 origin/modify_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'modify_sub1' from 'origin'.
Switched to branch 'modify_sub1'
Your branch is up to date with 'origin/modify_sub1'.
Submodule path 'sub1': checked out 'e6d8148a306c904a34344fac267f4613e698d228'
ok 71 - git_test_func: modified submodule does not update submodule work tree

expecting success of 2013.72 'git_test_func: modified submodule does not update submodule work tree to invalid commit': 
		prolog &&
		reset_work_tree_to add_sub1 &&
		(
			cd submodule_update &&
			git branch -t invalid_sub1 origin/invalid_sub1 &&
			$command invalid_sub1 &&
			test_superproject_content origin/invalid_sub1 &&
			test_submodule_content sub1 origin/add_sub1 &&
			test_must_fail git submodule update &&
			test_submodule_content sub1 origin/add_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'add_sub1'
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Submodule 'sub1' (/<<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 remote branch 'invalid_sub1' from 'origin'.
Switched to branch 'invalid_sub1'
Your branch is up to date with 'origin/invalid_sub1'.
fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 72 - git_test_func: modified submodule does not update submodule work tree to invalid commit

expecting success of 2013.73 'git_test_func: modified submodule does not update submodule work tree from invalid commit': 
		prolog &&
		reset_work_tree_to invalid_sub1 &&
		(
			cd submodule_update &&
			git branch -t valid_sub1 origin/valid_sub1 &&
			$command valid_sub1 &&
			test_superproject_content origin/valid_sub1 &&
			test_dir_is_empty sub1 &&
			git submodule update --init --recursive &&
			test_submodule_content sub1 origin/valid_sub1
		)
	
Cloning into 'submodule_update'...
done.
Switched to a new branch 'invalid_sub1'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: Needed a single revision
Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'.
Switched to branch 'valid_sub1'
Your branch is up to date with 'origin/valid_sub1'.
Submodule 'sub1' (/<<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 remote branch 'no_submodule' from 'origin'.
Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
ok 74 - git_test_func: added submodule does remove untracked unignored file with same name when forced

# still have 10 known breakage(s)
# passed all remaining 64 test(s)
1..74
make[4]: Leaving directory '/<<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/master
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/master
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/master^) &&
	commit2=$(git rev-parse refs/heads/master) &&
	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 '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 57 - list specific note with "git notes list <object>"

expecting success of 3301.58 '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 58 - listing non-existing notes fails

expecting success of 3301.59 '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 59 - append to existing note with "git notes append"

expecting success of 3301.60 '"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 60 - "git notes list" does not expand to "git notes list HEAD"

expecting success of 3301.61 'appending empty string does not change existing note': 
	git notes append -m "" &&
	git notes show >actual &&
	test_cmp expect actual

ok 61 - appending empty string does not change existing note

expecting success of 3301.62 '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 62 - git notes append == add when there is no existing note

expecting success of 3301.63 '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 63 - appending empty string to non-existing note does not create note

expecting success of 3301.64 '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 64 - create other note on a different notes ref (setup)

expecting success of 3301.65 'Do not show note on other ref by default': 
	git log -1 >actual &&
	test_cmp expect-not-other actual

ok 65 - Do not show note on other ref by default

expecting success of 3301.66 '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 66 - Do show note when ref is given in GIT_NOTES_REF

expecting success of 3301.67 '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 67 - Do show note when ref is given in core.notesRef config

expecting success of 3301.68 '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 68 - Do not show note when core.notesRef is overridden

expecting success of 3301.69 '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 69 - Show all notes when notes.displayRef=refs/notes/*

expecting success of 3301.70 '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 70 - core.notesRef is implicitly in notes.displayRef

expecting success of 3301.71 '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 71 - notes.displayRef can be given more than once

expecting success of 3301.72 '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 72 - notes.displayRef respects order

expecting success of 3301.73 '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 73 - notes.displayRef with no value handled gracefully

expecting success of 3301.74 '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 74 - GIT_NOTES_DISPLAY_REF works

expecting success of 3301.75 '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 75 - GIT_NOTES_DISPLAY_REF overrides config

expecting success of 3301.76 '--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 76 - --show-notes=* adds to GIT_NOTES_DISPLAY_REF

expecting success of 3301.77 '--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 77 - --no-standard-notes

expecting success of 3301.78 '--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 78 - --standard-notes

expecting success of 3301.79 '--show-notes=ref accumulates': 
	git log --show-notes=other --show-notes=commits \
		 --no-standard-notes -1 >actual &&
	test_cmp expect-both-reversed actual

ok 79 - --show-notes=ref accumulates

expecting success of 3301.80 '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 80 - Allow notes on non-commits (trees, blobs, tags)

expecting success of 3301.81 '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 81 - create note from other note with "git notes add -C"

expecting success of 3301.82 '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 82 - create note from non-existing note with "git notes add -C" fails

expecting success of 3301.83 '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 83 - create note from non-blob with "git notes add -C" fails

expecting success of 3301.84 '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 84 - create note from blob with "git notes add -C" reuses blob id

expecting success of 3301.85 '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 85 - create note from other note with "git notes add -c"

expecting success of 3301.86 '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 86 - create note from non-existing note with "git notes add -c" fails

expecting success of 3301.87 '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 87 - append to note from other note with "git notes append -C"

expecting success of 3301.88 '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 88 - create note from other note with "git notes append -c"

expecting success of 3301.89 '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 89 - append to note from other note with "git notes append -c"

expecting success of 3301.90 '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 90 - copy note with "git notes copy"

expecting success of 3301.91 '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 91 - copy note with "git notes copy" with default

expecting success of 3301.92 '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 92 - prevent overwrite with "git notes copy"

expecting success of 3301.93 '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 93 - allow overwrite with "git notes copy -f"

expecting success of 3301.94 '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 94 - allow overwrite with "git notes copy -f" with default

expecting success of 3301.95 '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 95 - cannot copy note from object without notes

expecting success of 3301.96 '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 96 - git notes copy --stdin

expecting success of 3301.97 '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 97 - git notes copy --for-rewrite (unconfigured)

expecting success of 3301.98 '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 98 - git notes copy --for-rewrite (enabled)

expecting success of 3301.99 '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 99 - git notes copy --for-rewrite (disabled)

expecting success of 3301.100 '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 100 - git notes copy --for-rewrite (overwrite)

expecting success of 3301.101 '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 101 - git notes copy --for-rewrite (ignore)

expecting success of 3301.102 '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 102 - git notes copy --for-rewrite (append)

expecting success of 3301.103 '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 103 - git notes copy --for-rewrite (append two to one)

expecting success of 3301.104 '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 104 - git notes copy --for-rewrite (append empty)

expecting success of 3301.105 '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 105 - GIT_NOTES_REWRITE_MODE works

expecting success of 3301.106 '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 106 - GIT_NOTES_REWRITE_REF works

expecting success of 3301.107 '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 107 - GIT_NOTES_REWRITE_REF overrides config

expecting success of 3301.108 'git notes copy diagnoses too many or too few parameters': 
	test_must_fail git notes copy 2>error &&
	test_i18ngrep "too few parameters" error &&
	test_must_fail git notes copy one two three 2>error &&
	test_i18ngrep "too many parameters" error

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
error: too few parameters
error: too many parameters
ok 108 - git notes copy diagnoses too many or too few parameters

expecting success of 3301.109 'git notes get-ref expands refs/heads/master to refs/notes/refs/heads/master': 
	test_unconfig core.notesRef &&
	sane_unset GIT_NOTES_REF &&
	echo refs/notes/refs/heads/master >expect &&
	git notes --ref=refs/heads/master get-ref >actual &&
	test_cmp expect actual

ok 109 - git notes get-ref expands refs/heads/master to refs/notes/refs/heads/master

expecting success of 3301.110 '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 110 - git notes get-ref (no overrides)

expecting success of 3301.111 '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 111 - git notes get-ref (core.notesRef)

expecting success of 3301.112 '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 112 - git notes get-ref (GIT_NOTES_REF)

expecting success of 3301.113 '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 113 - git notes get-ref (--ref)

expecting success of 3301.114 '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 114 - setup testing of empty notes

expecting success of 3301.115 ''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 115 - 'git notes add' removes empty note

expecting success of 3301.116 ''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 116 - 'git notes add --allow-empty' stores empty note

expecting success of 3301.117 ''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 117 - 'git notes add -F /dev/null' removes empty note

expecting success of 3301.118 ''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 118 - 'git notes add -F /dev/null --allow-empty' stores empty note

expecting success of 3301.119 ''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 119 - 'git notes add -m ""' removes empty note

expecting success of 3301.120 ''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 120 - 'git notes add -m "" --allow-empty' stores empty note

expecting success of 3301.121 ''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 121 - 'git notes add -c "$empty_blob"' removes empty note

expecting success of 3301.122 ''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 122 - 'git notes add -c "$empty_blob" --allow-empty' stores empty note

expecting success of 3301.123 ''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 123 - 'git notes add -C "$empty_blob"' removes empty note

expecting success of 3301.124 ''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 124 - 'git notes add -C "$empty_blob" --allow-empty' stores empty note

expecting success of 3301.125 ''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 125 - 'git notes append' removes empty note

expecting success of 3301.126 ''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 126 - 'git notes append --allow-empty' stores empty note

expecting success of 3301.127 ''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 127 - 'git notes append -F /dev/null' removes empty note

expecting success of 3301.128 ''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 128 - 'git notes append -F /dev/null --allow-empty' stores empty note

expecting success of 3301.129 ''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 129 - 'git notes append -m ""' removes empty note

expecting success of 3301.130 ''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 130 - 'git notes append -m "" --allow-empty' stores empty note

expecting success of 3301.131 ''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 131 - 'git notes append -c "$empty_blob"' removes empty note

expecting success of 3301.132 ''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 132 - 'git notes append -c "$empty_blob" --allow-empty' stores empty note

expecting success of 3301.133 ''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 133 - 'git notes append -C "$empty_blob"' removes empty note

expecting success of 3301.134 ''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 134 - 'git notes append -C "$empty_blob" --allow-empty' stores empty note

expecting success of 3301.135 ''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 135 - 'git notes edit' removes empty note

expecting success of 3301.136 ''git notes edit --allow-empty' stores empty note': 
		test_might_fail git notes remove HEAD &&
		MSG= git notes edit --allow-empty &&
		git notes list HEAD >actual &&
		test_cmp expect_empty actual
	
Object HEAD has no note

ok 136 - 'git notes edit --allow-empty' stores empty note

expecting success of 3301.137 'empty notes are displayed by git log': 
	test_commit 17th &&
	git log -1 >expect &&
	cat >>expect <<-EOF &&

		Notes:
	EOF
	git notes add -C "$empty_blob" --allow-empty &&
	git log -1 >actual &&
	test_cmp expect actual

[master 27a79f3] 17th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 17th.t
ok 137 - empty notes are displayed by git log

# passed all 137 test(s)
1..137
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3306-notes-prune.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3306-notes-prune/.git/
expecting success of 3306.1 'setup: create a few commits with notes': 

	: > file1 &&
	git add file1 &&
	test_tick &&
	git commit -m 1st &&
	git notes add -m "Note #1" &&
	first=$(git rev-parse HEAD) &&
	: > file2 &&
	git add file2 &&
	test_tick &&
	git commit -m 2nd &&
	git notes add -m "Note #2" &&
	second=$(git rev-parse HEAD) &&
	: > file3 &&
	git add file3 &&
	test_tick &&
	git commit -m 3rd &&
	third=$(git rev-parse HEAD) &&
	COMMIT_FILE=$(echo $third | sed "s!^..!.git/objects/&/!") &&
	test -f $COMMIT_FILE &&
	test-tool chmtime =+0 $COMMIT_FILE &&
	git notes add -m "Note #3"

[master (root-commit) ab5f302] 1st
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1
[master 08341ad] 2nd
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file2
[master 5ee1c35] 3rd
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file3
ok 1 - setup: create a few commits with notes

expecting success of 3306.2 'verify commits and notes': 

	git log > actual &&
	test_cmp expect actual

ok 2 - verify commits and notes

expecting success of 3306.3 'remove some commits': 

	git reset --hard HEAD~1 &&
	git reflog expire --expire=now HEAD &&
	git gc --prune=now

HEAD is now at 08341ad 2nd
ok 3 - remove some commits

expecting success of 3306.4 'verify that commits are gone': 

	test_must_fail git cat-file -p $third &&
	git cat-file -p $second &&
	git cat-file -p $first

fatal: Not a valid object name 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29
tree aefde3a01f6e10d72fd4899ce14c8b2654d3eb45
parent ab5f302035f2e7aaf04265f08b42034c23256e1f
author A U Thor <author@example.com> 1112912053 -0700
committer C O Mitter <committer@example.com> 1112912053 -0700

2nd
tree ad24149d789e59d4b5f9ce41cda90110ca0f98b7
author A U Thor <author@example.com> 1112911993 -0700
committer C O Mitter <committer@example.com> 1112911993 -0700

1st
ok 4 - verify that commits are gone

expecting success of 3306.5 'verify that notes are still present': 

	git notes show $third &&
	git notes show $second &&
	git notes show $first

Note #3
Note #2
Note #1
ok 5 - verify that notes are still present

expecting success of 3306.6 'prune -n does not remove notes': 

	git notes list > expect &&
	git notes prune -n &&
	git notes list > actual &&
	test_cmp expect actual

5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29
ok 6 - prune -n does not remove notes

expecting success of 3306.7 'prune -n lists prunable notes': 

	echo $third >expect &&
	git notes prune -n > actual &&
	test_cmp expect actual

ok 7 - prune -n lists prunable notes

expecting success of 3306.8 'prune notes': 

	git notes prune

ok 8 - prune notes

expecting success of 3306.9 'verify that notes are gone': 

	test_must_fail git notes show $third &&
	git notes show $second &&
	git notes show $first

error: no note found for object 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29.
Note #2
Note #1
ok 9 - verify that notes are gone

expecting success of 3306.10 'remove some commits': 

	git reset --hard HEAD~1 &&
	git reflog expire --expire=now HEAD &&
	git gc --prune=now

HEAD is now at ab5f302 1st
ok 10 - remove some commits

expecting success of 3306.11 'prune -v notes': 

	echo $second >expect &&
	git notes prune -v > actual &&
	test_cmp expect actual

ok 11 - prune -v notes

expecting success of 3306.12 'verify that notes are gone': 

	test_must_fail git notes show $third &&
	test_must_fail git notes show $second &&
	git notes show $first

error: no note found for object 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29.
error: no note found for object 08341ad9e94faa089d60fd3f523affb25c6da189.
Note #1
ok 12 - verify that notes are gone

# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3307-notes-man.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3307-notes-man/.git/
expecting success of 3307.1 'setup': 
	test_commit A &&
	test_commit B &&
	test_commit C

[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
[master 35a8500] C
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 C.t
ok 1 - setup

expecting success of 3307.2 'example 1: notes to add an Acked-by line': 
	cat <<-\EOF >expect &&
	    B

	Notes:
	    Acked-by: A C Ker <acker@example.com>
	EOF
	git notes add -m "Acked-by: A C Ker <acker@example.com>" B &&
	git show -s B^{commit} >log &&
	tail -n 4 log >actual &&
	test_cmp expect actual

ok 2 - example 1: notes to add an Acked-by line

expecting success of 3307.3 'example 2: binary notes': 
	cp "$TEST_DIRECTORY"/test-binary-1.png . &&
	git checkout B &&
	blob=$(git hash-object -w test-binary-1.png) &&
	git notes --ref=logo add -C "$blob" &&
	git notes --ref=logo copy B C &&
	git notes --ref=logo show C >actual &&
	test_cmp test-binary-1.png actual

Note: switching to '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 d9df450 B
ok 3 - example 2: binary notes

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3308-notes-merge.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3308-notes-merge/.git/
expecting success of 3308.1 'setup': 
	test_commit 1st &&
	test_commit 2nd &&
	test_commit 3rd &&
	test_commit 4th &&
	test_commit 5th &&
	# Create notes on 4 first commits
	git config core.notesRef refs/notes/x &&
	git notes add -m "Notes on 1st commit" 1st &&
	git notes add -m "Notes on 2nd commit" 2nd &&
	git notes add -m "Notes on 3rd commit" 3rd &&
	git notes add -m "Notes on 4th commit" 4th &&
	# Copy notes to remote-notes
	git fetch . refs/notes/*:refs/remote-notes/origin/* &&

	test_oid_cache <<-EOF
	hash4a sha1:5e93d24084d32e1cb61f7070505b9d2530cca987
	hash3a sha1:8366731eeee53787d2bdf8fc1eff7d94757e8da0
	hash2a sha1:eede89064cd42441590d6afec6c37b321ada3389
	hash1a sha1:daa55ffad6cb99bf64226532147ffcaf5ce8bdd1
	hash5b sha1:0f2efbd00262f2fd41dfae33df8765618eeacd99
	hash4b sha1:dec2502dac3ea161543f71930044deff93fa945c
	hash3b sha1:4069cdb399fd45463ec6eef8e051a16a03592d91
	hash2c sha1:d000d30e6ddcfce3a8122c403226a2ce2fd04d9d
	hash1c sha1:43add6bd0c8c0bc871ac7991e0f5573cfba27804
	hash4d sha1:1f257a3a90328557c452f0817d6cc50c89d315d4
	hash3d sha1:05a4927951bcef347f51486575b878b2b60137f2

	hash4a sha256:eef876be1d32ac2e2e42240e0429325cec116e55e88cb2969899fac695aa762f
	hash3a sha256:cf7cd1bc091d7ba4166a86df864110e42087cd893a5ae96bc50d637e0290939d
	hash2a sha256:21ddde7ebce2c285213898cb04deca0fd3209610cf7aaf8222e4e2f45262fae2
	hash1a sha256:f9fe0eda16c6027732ed9d4295689a03abd16f893be69b3dcbf4037ddb191921
	hash5b sha256:20046f2244577797a9e3d3f790ea9eca4d8a6bafb2a5570bcb0e03aa02ce100b
	hash4b sha256:f90563d134c61a95bb88afbd45d48ccc9e919c62aa6fbfcd483302b3e4d8dbcb
	hash3b sha256:988f2aca9f2d87e93e6a73197c2bb99560cc44a2f92d18653968f956f01221e0
	hash2c sha256:84153b777b4d42827a756c6578dcdb59d8ae5d1360b874fb37c430150c825c26
	hash1c sha256:9beb2bc4eef72e4c4087be168a20573e34d993d9ab1883055f23e322afa06567
	hash4d sha256:32de39dc06e679a7abb2d4a55ede7709b3124340a4a90aa305971b1c72ac319d
	hash3d sha256:fa73b20e41cbb7541c4c81d1535016131dbfbeb05bf6a71f6115e9cad31c7af5
	EOF

[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
[master d07d62e] 3rd
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 3rd.t
[master 0f7aa3e] 4th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 4th.t
[master 7f9ad88] 5th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 5th.t
From .
 * [new ref]         refs/notes/x -> refs/remote-notes/origin/x
ok 1 - setup

expecting success of 3308.2 'verify initial notes (x)': 
	verify_notes x

ok 2 - verify initial notes (x)

expecting success of 3308.3 'fail to merge empty notes ref into empty notes ref (z => y)': 
	test_must_fail git -c "core.notesRef=refs/notes/y" notes merge z

fatal: Cannot merge empty notes ref (refs/notes/z) into empty notes ref (refs/notes/y)
ok 3 - fail to merge empty notes ref into empty notes ref (z => y)

expecting success of 3308.4 'fail to merge into various non-notes refs': 
	test_must_fail git -c "core.notesRef=refs/notes" notes merge x &&
	test_must_fail git -c "core.notesRef=refs/notes/" notes merge x &&
	git update-ref refs/notes/dir/foo HEAD &&
	test_must_fail git -c "core.notesRef=refs/notes/dir" notes merge x &&
	test_must_fail git -c "core.notesRef=refs/notes/dir/" notes merge x &&
	test_must_fail git -c "core.notesRef=refs/heads/master" notes merge x &&
	test_must_fail git -c "core.notesRef=refs/notes/y:" notes merge x &&
	test_must_fail git -c "core.notesRef=refs/notes/y:foo" notes merge x &&
	test_must_fail git -c "core.notesRef=refs/notes/foo^{bar" notes merge x

fatal: refusing to merge notes in refs/notes (outside of refs/notes/)
fatal: Failed to resolve local notes ref 'refs/notes/'
fatal: update_ref failed for ref 'refs/notes/dir': cannot lock ref 'refs/notes/dir': 'refs/notes/dir/foo' exists; cannot create 'refs/notes/dir'
fatal: Failed to resolve local notes ref 'refs/notes/dir/'
fatal: refusing to merge notes in refs/heads/master (outside of refs/notes/)
fatal: Failed to resolve local notes ref 'refs/notes/y:'
fatal: Failed to resolve local notes ref 'refs/notes/y:foo'
fatal: Failed to resolve local notes ref 'refs/notes/foo^{bar'
ok 4 - fail to merge into various non-notes refs

expecting success of 3308.5 'merge non-notes ref into empty notes ref (remote-notes/origin/x => v)': 
	git config core.notesRef refs/notes/v &&
	git notes merge refs/remote-notes/origin/x &&
	verify_notes v &&
	# refs/remote-notes/origin/x and v should point to the same notes commit
	test "$(git rev-parse refs/remote-notes/origin/x)" = "$(git rev-parse refs/notes/v)"

ok 5 - merge non-notes ref into empty notes ref (remote-notes/origin/x => v)

expecting success of 3308.6 'merge notes into empty notes ref (x => y)': 
	git config core.notesRef refs/notes/y &&
	git notes merge x &&
	verify_notes y &&
	# x and y should point to the same notes commit
	test "$(git rev-parse refs/notes/x)" = "$(git rev-parse refs/notes/y)"

ok 6 - merge notes into empty notes ref (x => y)

expecting success of 3308.7 'merge empty notes ref (z => y)': 
	git notes merge z &&
	# y should not change (still == x)
	test "$(git rev-parse refs/notes/x)" = "$(git rev-parse refs/notes/y)"

ok 7 - merge empty notes ref (z => y)

expecting success of 3308.8 'change notes on other notes ref (y)': 
	# Not touching notes to 1st commit
	git notes remove 2nd &&
	git notes append -m "More notes on 3rd commit" 3rd &&
	git notes add -f -m "New notes on 4th commit" 4th &&
	git notes add -m "Notes on 5th commit" 5th

Removing note for object 2nd
Overwriting existing notes for object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
ok 8 - change notes on other notes ref (y)

expecting success of 3308.9 'merge previous notes commit (y^ => y) => No-op': 
	pre_state="$(git rev-parse refs/notes/y)" &&
	git notes merge y^ &&
	# y should not move
	test "$pre_state" = "$(git rev-parse refs/notes/y)"

Already up to date!
ok 9 - merge previous notes commit (y^ => y) => No-op

expecting success of 3308.10 'verify changed notes on other notes ref (y)': 
	verify_notes y

ok 10 - verify changed notes on other notes ref (y)

expecting success of 3308.11 'verify unchanged notes on original notes ref (x)': 
	verify_notes x

ok 11 - verify unchanged notes on original notes ref (x)

expecting success of 3308.12 'merge original notes (x) into changed notes (y) => No-op': 
	git notes merge -vvv x &&
	verify_notes y &&
	verify_notes x

One merge base found (bf2877f)
Merging remote commit bf2877f into local commit 21b8c5e with merge-base bf2877f
Already up to date!
ok 12 - merge original notes (x) into changed notes (y) => No-op

expecting success of 3308.13 'merge changed (y) into original (x) => Fast-forward': 
	git config core.notesRef refs/notes/x &&
	git notes merge y &&
	verify_notes x &&
	verify_notes y &&
	# x and y should point to same the notes commit
	test "$(git rev-parse refs/notes/x)" = "$(git rev-parse refs/notes/y)"

Fast-forward
ok 13 - merge changed (y) into original (x) => Fast-forward

expecting success of 3308.14 'merge empty notes ref (z => y)': 
	# Prepare empty (but valid) notes ref (z)
	git config core.notesRef refs/notes/z &&
	git notes add -m "foo" &&
	git notes remove &&
	git notes >output_notes_z &&
	test_must_be_empty output_notes_z &&
	# Do the merge (z => y)
	git config core.notesRef refs/notes/y &&
	git notes merge z &&
	verify_notes y &&
	# y should no longer point to the same notes commit as x
	test "$(git rev-parse refs/notes/x)" != "$(git rev-parse refs/notes/y)"

Removing note for object HEAD
ok 14 - merge empty notes ref (z => y)

expecting success of 3308.15 'change notes on other notes ref (y)': 
	# Append to 1st commit notes
	git notes append -m "More notes on 1st commit" 1st &&
	# Add new notes to 2nd commit
	git notes add -m "New notes on 2nd commit" 2nd &&
	verify_notes y

ok 15 - change notes on other notes ref (y)

expecting success of 3308.16 'change notes on notes ref (x)': 
	git config core.notesRef refs/notes/x &&
	git notes remove 3rd &&
	git notes append -m "More notes on 4th commit" 4th &&
	verify_notes x

Removing note for object 3rd
ok 16 - change notes on notes ref (x)

expecting success of 3308.17 'merge y into x => Non-conflicting 3-way merge': 
	git notes merge y &&
	verify_notes x &&
	verify_notes y

ok 17 - merge y into x => Non-conflicting 3-way merge

expecting success of 3308.18 'create notes on new, separate notes ref (w)': 
	git config core.notesRef refs/notes/w &&
	# Add same note as refs/notes/y on 2nd commit
	git notes add -m "New notes on 2nd commit" 2nd &&
	# Add new note on 3rd commit (non-conflicting)
	git notes add -m "New notes on 3rd commit" 3rd &&
	# Verify state of notes on new, separate notes ref (w)
	verify_notes w

ok 18 - create notes on new, separate notes ref (w)

expecting success of 3308.19 'merge w into x => Non-conflicting history-less merge': 
	git config core.notesRef refs/notes/x &&
	git notes merge w &&
	# Verify new state of notes on other notes ref (x)
	verify_notes x &&
	# Also verify that nothing changed on other notes refs (y and w)
	verify_notes y &&
	verify_notes w

ok 19 - merge w into x => Non-conflicting history-less merge

# passed all 19 test(s)
1..19
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3309-notes-merge-auto-resolve.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3309-notes-merge-auto-resolve/.git/
expecting success of 3309.1 'setup commits': 
	test_commit 1st &&
	test_commit 2nd &&
	test_commit 3rd &&
	test_commit 4th &&
	test_commit 5th &&
	test_commit 6th &&
	test_commit 7th &&
	test_commit 8th &&
	test_commit 9th &&
	test_commit 10th &&
	test_commit 11th &&
	test_commit 12th &&
	test_commit 13th &&
	test_commit 14th &&
	test_commit 15th &&

	test_oid_cache <<-EOF
	hash15a sha1:457a85d6c814ea208550f15fcc48f804ac8dc023
	hash14a sha1:b0c95b954301d69da2bc3723f4cb1680d355937c
	hash13a sha1:5d30216a129eeffa97d9694ffe8c74317a560315
	hash12a sha1:dd161bc149470fd890dd4ab52a4cbd79bbd18c36
	hash11a sha1:7abbc45126d680336fb24294f013a7cdfa3ed545
	hash10a sha1:b8d03e173f67f6505a76f6e00cf93440200dd9be
	hash09a sha1:20c613c835011c48a5abe29170a2402ca6354910
	hash08a sha1:a3daf8a1e4e5dc3409a303ad8481d57bfea7f5d6
	hash07a sha1:897003322b53bc6ca098e9324ee508362347e734
	hash06a sha1:11d97fdebfa5ceee540a3da07bce6fa0222bc082
	hash15b sha1:68b8630d25516028bed862719855b3d6768d7833
	hash14b sha1:5de7ea7ad4f47e7ff91989fb82234634730f75df
	hash13b sha1:3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc
	hash12b sha1:a66055fa82f7a03fe0c02a6aba3287a85abf7c62
	hash05b sha1:154508c7a0bcad82b6fe4b472bc4c26b3bf0825b
	hash04b sha1:e2bfd06a37dd2031684a59a6e2b033e212239c78
	hash03b sha1:5772f42408c0dd6f097a7ca2d24de0e78d1c46b1
	hash15c sha1:9b4b2c61f0615412da3c10f98ff85b57c04ec765
	hash11c sha1:7e3c53503a3db8dd996cb62e37c66e070b44b54d
	hash08c sha1:851e1638784a884c7dd26c5d41f3340f6387413a
	hash05c sha1:99fc34adfc400b95c67b013115e37e31aa9a6d23
	hash02c sha1:283b48219aee9a4105f6cab337e789065c82c2b9
	hash15d sha1:7c4e546efd0fe939f876beb262ece02797880b54
	hash05d sha1:6c841cc36ea496027290967ca96bd2bef54dbb47
	hash15e sha1:d682107b8bf7a7aea1e537a8d5cb6a12b60135f1
	hash05e sha1:357b6ca14c7afd59b7f8b8aaaa6b8b723771135b
	hash15f sha1:6be90240b5f54594203e25d9f2f64b7567175aee
	hash05f sha1:660311d7f78dc53db12ac373a43fca7465381a7e

	hash15a sha256:45b1558e5c1b75f570010fa48aaa67bb2289fcd431b34ad81cb4c8b95f4f872a
	hash14a sha256:6e7af179ea4dd28afdc83ae6912ba0098cdeff764b26a8b750b157dd81749092
	hash13a sha256:7353089961baf555388e1bac68c67c8ea94b08ccbd97532201cf7f6790703052
	hash12a sha256:5863e4521689ee1879ceab3b38d39e93ab5b51ec70aaf6a96ad388fbdedfa25e
	hash11a sha256:82a0ec0338b4ecf8b44304badf4ad38d7469dc41827f38d7ba6c42e3bae3ee98
	hash10a sha256:e84f2564e92de9792c93b8d197262c735d7ccb1de6025cef8759af8f6c3308eb
	hash09a sha256:4dd07764bcec696f195c0ea71ae89e174876403af1637e4642b8f4453fd23028
	hash08a sha256:02132c4546cd88a1d0aa5854dd55da120927f7904ba16afe36fe03e91a622067
	hash07a sha256:369baf7d00c6720efdc10273493555f943051f84a4706fb24caeb353fa4789db
	hash06a sha256:52d32c10353583b2d96a5849b1f1f43c8018e76f3e8ef1b0d46eb5cff7cdefaf
	hash15b sha256:345e6660b345fa174738a31a7a59423c394bdf414804e200bc510c65d971ae96
	hash14b sha256:7653a6596021c52e405cba979eea15a729993e7102b9a61ba4667e34f0ead4a1
	hash13b sha256:0f202a0b6b9690de2349c173dfd766a37e82744f61c14f1c389306f1d69f470b
	hash12b sha256:eb00f219c026136ea6535b16ff8ec3efa510e6bf50098ca041e1a2a1d4b79840
	hash05b sha256:993b2290cd0c24c27c849d99f1904f3b590f77af0f539932734ad05679ac5a2f
	hash04b sha256:c7fba0d6104917fbf35258f40b9fa4fc697cfa992deecd1570a3b08d0a5587a9
	hash03b sha256:7287a2d78a3766c181b08df38951d784b08b72a44f571ed6d855bd0be22c70f6
	hash15c sha256:62316660a22bf97857dc4a16709ec4d93a224e8c9f37d661ef91751e1f4c4166
	hash11c sha256:51c3763de9b08309370adc5036d58debb331980e73097902957c444602551daa
	hash08c sha256:22cf1fa29599898a7218c51135d66ed85d22aad584f77db3305dedce4c3d4798
	hash05c sha256:2508fd86db980f0508893a1c1571bdf3b2ee113dc25ddb1a3a2fb94bd6cd0d58
	hash02c sha256:63bb527e0b4e1c8e1dd0d54dd778ca7c3718689fd6e37c473044cfbcf1cacfdb
	hash15d sha256:667acb4e2d5f8df15e5aea4506dfd16d25bc7feca70fdb0d965a7222f983bb88
	hash05d sha256:09e6b5a6fe666c4a027674b6611a254b7d2528cd211c6b5288d1b4db6c741dfa
	hash15e sha256:e8cbf52f6fcadc6de3c7761e64a89e9fe38d19a03d3e28ef6ca8596d93fc4f3a
	hash05e sha256:cdb1e19f7ba1539f95af51a57edeb88a7ecc97d3c2f52da8c4c86af308595607
	hash15f sha256:29c14cb92da448a923963b8a43994268b19c2e57913de73f3667421fd2c0eeec
	hash05f sha256:14a6e641b2c0a9f398ebac6b4d34afa5efea4c52d2631382f45f8f662266903b
	EOF

[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
[master d07d62e] 3rd
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 3rd.t
[master 0f7aa3e] 4th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 4th.t
[master 7f9ad88] 5th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 5th.t
[master 2c12533] 6th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 6th.t
[master fb01e0c] 7th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 7th.t
[master 9a4c31c] 8th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 8th.t
[master 2e0db4b] 9th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 9th.t
[master 7c3b87a] 10th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 10th.t
[master a446fff] 11th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 11th.t
[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
[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 1 - setup commits

expecting success of 3309.2 'setup merge base (x)': 
	git config core.notesRef refs/notes/x &&
	git notes add -m "x notes on 6th commit" 6th &&
	git notes add -m "x notes on 7th commit" 7th &&
	git notes add -m "x notes on 8th commit" 8th &&
	git notes add -m "x notes on 9th commit" 9th &&
	git notes add -m "x notes on 10th commit" 10th &&
	git notes add -m "x notes on 11th commit" 11th &&
	git notes add -m "x notes on 12th commit" 12th &&
	git notes add -m "x notes on 13th commit" 13th &&
	git notes add -m "x notes on 14th commit" 14th &&
	git notes add -m "x notes on 15th commit" 15th

ok 2 - setup merge base (x)

expecting success of 3309.3 'verify state of merge base (x)': verify_notes x x
ok 3 - verify state of merge base (x)

expecting success of 3309.4 'setup local branch (y)': 
	git update-ref refs/notes/y refs/notes/x &&
	git config core.notesRef refs/notes/y &&
	git notes add -f -m "y notes on 3rd commit" 3rd &&
	git notes add -f -m "y notes on 4th commit" 4th &&
	git notes add -f -m "y notes on 5th commit" 5th &&
	git notes remove 6th &&
	git notes remove 7th &&
	git notes remove 8th &&
	git notes add -f -m "y notes on 12th commit" 12th &&
	git notes add -f -m "y notes on 13th commit" 13th &&
	git notes add -f -m "y notes on 14th commit" 14th &&
	git notes add -f -m "y notes on 15th commit" 15th

Removing note for object 6th
Removing note for object 7th
Removing note for object 8th
Overwriting existing notes for object 65e263ded02ae4e8839bc151095113737579dc12
Overwriting existing notes for object e871aa61182b1d95d0a6fb75445d891722863b6b
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
Overwriting existing notes for object 4acf42e847e7fffbbf89ee365c20ac7caf40de89
ok 4 - setup local branch (y)

expecting success of 3309.5 'verify state of local branch (y)': verify_notes y y
ok 5 - verify state of local branch (y)

expecting success of 3309.6 'setup remote branch (z)': 
	git update-ref refs/notes/z refs/notes/x &&
	git config core.notesRef refs/notes/z &&
	git notes add -f -m "z notes on 2nd commit" 2nd &&
	git notes add -f -m "y notes on 4th commit" 4th &&
	git notes add -f -m "z notes on 5th commit" 5th &&
	git notes remove 6th &&
	git notes add -f -m "z notes on 8th commit" 8th &&
	git notes remove 9th &&
	git notes add -f -m "z notes on 11th commit" 11th &&
	git notes remove 12th &&
	git notes add -f -m "y notes on 14th commit" 14th &&
	git notes add -f -m "z notes on 15th commit" 15th

Removing note for object 6th
Overwriting existing notes for object 9a4c31c7f722b5d517e92c64e932dd751e1413bf
Removing note for object 9th
Overwriting existing notes for object a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
Removing note for object 12th
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
Overwriting existing notes for object 4acf42e847e7fffbbf89ee365c20ac7caf40de89
ok 6 - setup remote branch (z)

expecting success of 3309.7 'verify state of remote branch (z)': verify_notes z z
ok 7 - verify state of remote branch (z)

expecting success of 3309.8 'merge z into y with invalid strategy => Fail/No changes': 
	git config core.notesRef refs/notes/y &&
	test_must_fail git notes merge --strategy=foo z &&
	# Verify no changes (y)
	verify_notes y y

error: unknown -s/--strategy: foo
usage: git notes merge [<options>] <notes-ref>
   or: git notes merge --commit [<options>]
   or: git notes merge --abort [<options>]

General options
    -v, --verbose         be more verbose
    -q, --quiet           be more quiet

Merge options
    -s, --strategy <strategy>
                          resolve notes conflicts using the given strategy (manual/ours/theirs/union/cat_sort_uniq)

Committing unmerged notes
    --commit              finalize notes merge by committing unmerged notes

Aborting notes merge resolution
    --abort               abort notes merge

ok 8 - merge z into y with invalid strategy => Fail/No changes

expecting success of 3309.9 'merge z into y with invalid configuration option => Fail/No changes': 
	git config core.notesRef refs/notes/y &&
	test_must_fail git -c notes.mergeStrategy="foo" notes merge z &&
	# Verify no changes (y)
	verify_notes y y

error: unknown notes merge strategy foo
fatal: unable to parse 'notes.mergeStrategy' from command-line config
ok 9 - merge z into y with invalid configuration option => Fail/No changes

expecting success of 3309.10 'merge z into y with "ours" strategy => Non-conflicting 3-way merge': 
	git notes merge --strategy=ours z &&
	verify_notes y ours

Using local notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Using local notes for 65e263ded02ae4e8839bc151095113737579dc12
Using local notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Using local notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 10 - merge z into y with "ours" strategy => Non-conflicting 3-way merge

expecting success of 3309.11 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 11 - reset to pre-merge state (y)

expecting success of 3309.12 'merge z into y with "ours" configuration option => Non-conflicting 3-way merge': 
	git -c notes.mergeStrategy="ours" notes merge z &&
	verify_notes y ours

Using local notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Using local notes for 65e263ded02ae4e8839bc151095113737579dc12
Using local notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Using local notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 12 - merge z into y with "ours" configuration option => Non-conflicting 3-way merge

expecting success of 3309.13 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 13 - reset to pre-merge state (y)

expecting success of 3309.14 'merge z into y with "ours" per-ref configuration option => Non-conflicting 3-way merge': 
	git -c notes.y.mergeStrategy="ours" notes merge z &&
	verify_notes y ours

Using local notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Using local notes for 65e263ded02ae4e8839bc151095113737579dc12
Using local notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Using local notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 14 - merge z into y with "ours" per-ref configuration option => Non-conflicting 3-way merge

expecting success of 3309.15 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 15 - reset to pre-merge state (y)

expecting success of 3309.16 'merge z into y with "theirs" strategy => Non-conflicting 3-way merge': 
	git notes merge --strategy=theirs z &&
	verify_notes y theirs

Using remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Using remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Using remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Using remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 16 - merge z into y with "theirs" strategy => Non-conflicting 3-way merge

expecting success of 3309.17 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 17 - reset to pre-merge state (y)

expecting success of 3309.18 'merge z into y with "theirs" strategy overriding configuration option "ours" => Non-conflicting 3-way merge': 
	git -c notes.mergeStrategy="ours" notes merge --strategy=theirs z &&
	verify_notes y theirs

Using remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Using remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Using remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Using remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 18 - merge z into y with "theirs" strategy overriding configuration option "ours" => Non-conflicting 3-way merge

expecting success of 3309.19 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 19 - reset to pre-merge state (y)

expecting success of 3309.20 'merge z into y with "union" strategy => Non-conflicting 3-way merge': 
	git notes merge --strategy=union z &&
	verify_notes y union

Concatenating local and remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Concatenating local and remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Concatenating local and remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Concatenating local and remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 20 - merge z into y with "union" strategy => Non-conflicting 3-way merge

expecting success of 3309.21 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 21 - reset to pre-merge state (y)

expecting success of 3309.22 'merge z into y with "union" strategy overriding per-ref configuration => Non-conflicting 3-way merge': 
	git -c notes.y.mergeStrategy="theirs" notes merge --strategy=union z &&
	verify_notes y union

Concatenating local and remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Concatenating local and remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Concatenating local and remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Concatenating local and remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 22 - merge z into y with "union" strategy overriding per-ref configuration => Non-conflicting 3-way merge

expecting success of 3309.23 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 23 - reset to pre-merge state (y)

expecting success of 3309.24 'merge z into y with "union" per-ref overriding general configuration => Non-conflicting 3-way merge': 
	git -c notes.y.mergeStrategy="union" -c notes.mergeStrategy="theirs" notes merge z &&
	verify_notes y union

Concatenating local and remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Concatenating local and remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Concatenating local and remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Concatenating local and remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 24 - merge z into y with "union" per-ref overriding general configuration => Non-conflicting 3-way merge

expecting success of 3309.25 'reset to pre-merge state (y)': 
	git update-ref refs/notes/y refs/notes/y^1 &&
	# Verify pre-merge state
	verify_notes y y

ok 25 - reset to pre-merge state (y)

expecting success of 3309.26 'merge z into y with "manual" per-ref only checks specific ref configuration => Conflicting 3-way merge': 
	test_must_fail git -c notes.z.mergeStrategy="union" notes merge z &&
	git notes merge --abort &&
	verify_notes y y

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
Auto-merging notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
CONFLICT (content): Merge conflict in notes for object 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Auto-merging notes for 65e263ded02ae4e8839bc151095113737579dc12
CONFLICT (delete/modify): Notes for object 65e263ded02ae4e8839bc151095113737579dc12 deleted in refs/notes/z and modified in refs/notes/y. Version from refs/notes/y left in tree.
Auto-merging notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
CONFLICT (add/add): Merge conflict in notes for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Auto-merging notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
CONFLICT (delete/modify): Notes for object 9a4c31c7f722b5d517e92c64e932dd751e1413bf deleted in refs/notes/y and modified in refs/notes/z. Version from refs/notes/z left in tree.
ok 26 - merge z into y with "manual" per-ref only checks specific ref configuration => Conflicting 3-way merge

expecting success of 3309.27 'merge y into z with "union" strategy => Non-conflicting 3-way merge': 
	git config core.notesRef refs/notes/z &&
	git notes merge --strategy=union y &&
	verify_notes z union2

Concatenating local and remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Concatenating local and remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Concatenating local and remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Concatenating local and remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 27 - merge y into z with "union" strategy => Non-conflicting 3-way merge

expecting success of 3309.28 'reset to pre-merge state (z)': 
	git update-ref refs/notes/z refs/notes/z^1 &&
	# Verify pre-merge state
	verify_notes z z

ok 28 - reset to pre-merge state (z)

expecting success of 3309.29 'merge y into z with "cat_sort_uniq" strategy => Non-conflicting 3-way merge': 
	git notes merge --strategy=cat_sort_uniq y &&
	verify_notes z cat_sort_uniq

Concatenating unique lines in local and remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Concatenating unique lines in local and remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Concatenating unique lines in local and remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Concatenating unique lines in local and remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 29 - merge y into z with "cat_sort_uniq" strategy => Non-conflicting 3-way merge

expecting success of 3309.30 'reset to pre-merge state (z)': 
	git update-ref refs/notes/z refs/notes/z^1 &&
	# Verify pre-merge state
	verify_notes z z

ok 30 - reset to pre-merge state (z)

expecting success of 3309.31 'merge y into z with "cat_sort_uniq" strategy configuration option => Non-conflicting 3-way merge': 
	git -c notes.mergeStrategy="cat_sort_uniq" notes merge y &&
	verify_notes z cat_sort_uniq

Concatenating unique lines in local and remote notes for 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Concatenating unique lines in local and remote notes for 65e263ded02ae4e8839bc151095113737579dc12
Concatenating unique lines in local and remote notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Concatenating unique lines in local and remote notes for 9a4c31c7f722b5d517e92c64e932dd751e1413bf
ok 31 - merge y into z with "cat_sort_uniq" strategy configuration option => Non-conflicting 3-way merge

# passed all 31 test(s)
1..31
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3303-notes-subtrees.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3303-notes-subtrees/.git/
expecting success of 3303.1 'setup: create 100 commits': 

	(
		nr=0 &&
		while [ $nr -lt $number_of_commits ]; do
			nr=$(($nr+1)) &&
			test_tick &&
			cat <<INPUT_END
commit refs/heads/master
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
commit #$nr
COMMIT

M 644 inline file
data <<EOF
file in commit #$nr
EOF

INPUT_END

		done &&
		test_tick &&
		cat <<INPUT_END
commit refs/notes/commits
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
no notes
COMMIT

deleteall

INPUT_END

	) |
	git fast-import --quiet &&
	git config core.notesRef refs/notes/commits

ok 1 - setup: create 100 commits

expecting success of 3303.2 'test notes in 2/38-fanout': test_sha1_based "s|^..|&/|"
ok 2 - test notes in 2/38-fanout

expecting success of 3303.3 'verify notes in 2/38-fanout': verify_notes
ok 3 - verify notes in 2/38-fanout

expecting success of 3303.4 'test notes in 2/2/36-fanout': test_sha1_based "s|^\(..\)\(..\)|\1/\2/|"
ok 4 - test notes in 2/2/36-fanout

expecting success of 3303.5 'verify notes in 2/2/36-fanout': verify_notes
ok 5 - verify notes in 2/2/36-fanout

expecting success of 3303.6 'test notes in 2/2/2/34-fanout': test_sha1_based "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|"
ok 6 - test notes in 2/2/2/34-fanout

expecting success of 3303.7 'verify notes in 2/2/2/34-fanout': verify_notes
ok 7 - verify notes in 2/2/2/34-fanout

expecting success of 3303.8 'test same notes in no fanout and 2/38-fanout': test_same_notes "s|^..|&/|" ""
ok 8 - test same notes in no fanout and 2/38-fanout

expecting success of 3303.9 'verify same notes in no fanout and 2/38-fanout': verify_notes
ok 9 - verify same notes in no fanout and 2/38-fanout

expecting success of 3303.10 'test same notes in no fanout and 2/2/36-fanout': test_same_notes "s|^\(..\)\(..\)|\1/\2/|" ""
ok 10 - test same notes in no fanout and 2/2/36-fanout

expecting success of 3303.11 'verify same notes in no fanout and 2/2/36-fanout': verify_notes
ok 11 - verify same notes in no fanout and 2/2/36-fanout

expecting success of 3303.12 'test same notes in 2/38-fanout and 2/2/36-fanout': test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"
ok 12 - test same notes in 2/38-fanout and 2/2/36-fanout

expecting success of 3303.13 'verify same notes in 2/38-fanout and 2/2/36-fanout': verify_notes
ok 13 - verify same notes in 2/38-fanout and 2/2/36-fanout

expecting success of 3303.14 'test same notes in 2/2/2/34-fanout and 2/2/36-fanout': test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|"
ok 14 - test same notes in 2/2/2/34-fanout and 2/2/36-fanout

expecting success of 3303.15 'verify same notes in 2/2/2/34-fanout and 2/2/36-fanout': verify_notes
ok 15 - verify same notes in 2/2/2/34-fanout and 2/2/36-fanout

expecting success of 3303.16 'test notes in no fanout concatenated with 2/38-fanout': test_concatenated_notes "s|^..|&/|" ""
ok 16 - test notes in no fanout concatenated with 2/38-fanout

expecting success of 3303.17 'verify notes in no fanout concatenated with 2/38-fanout': verify_concatenated_notes
ok 17 - verify notes in no fanout concatenated with 2/38-fanout

expecting success of 3303.18 'test notes in no fanout concatenated with 2/2/36-fanout': test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" ""
ok 18 - test notes in no fanout concatenated with 2/2/36-fanout

expecting success of 3303.19 'verify notes in no fanout concatenated with 2/2/36-fanout': verify_concatenated_notes
ok 19 - verify notes in no fanout concatenated with 2/2/36-fanout

expecting success of 3303.20 'test notes in 2/38-fanout concatenated with 2/2/36-fanout': test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"
ok 20 - test notes in 2/38-fanout concatenated with 2/2/36-fanout

expecting success of 3303.21 'verify notes in 2/38-fanout concatenated with 2/2/36-fanout': verify_concatenated_notes
ok 21 - verify notes in 2/38-fanout concatenated with 2/2/36-fanout

expecting success of 3303.22 'test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout': test_concatenated_notes "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|" "s|^\(..\)\(..\)|\1/\2/|"
ok 22 - test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout

expecting success of 3303.23 'verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout': verify_concatenated_notes
ok 23 - verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout

# passed all 23 test(s)
1..23
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3310-notes-merge-manual-resolve.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3310-notes-merge-manual-resolve/.git/
expecting success of 3310.1 'setup commits': 
	test_commit 1st &&
	test_commit 2nd &&
	test_commit 3rd &&
	test_commit 4th &&
	test_commit 5th &&

	test_oid_cache <<-EOF
	hash04a sha1:6e8e3febca3c2bb896704335cc4d0c34cb2f8715
	hash03a sha1:e5388c10860456ee60673025345fe2e153eb8cf8
	hash02a sha1:ceefa674873670e7ecd131814d909723cce2b669
	hash04b sha1:e2bfd06a37dd2031684a59a6e2b033e212239c78
	hash03b sha1:5772f42408c0dd6f097a7ca2d24de0e78d1c46b1
	hash01b sha1:b0a6021ec006d07e80e9b20ec9b444cbd9d560d3
	hash04c sha1:cff59c793c20bb49a4e01bc06fb06bad642e0d54
	hash02c sha1:283b48219aee9a4105f6cab337e789065c82c2b9
	hash01c sha1:0a81da8956346e19bcb27a906f04af327e03e31b
	hash04d sha1:00494adecf2d9635a02fa431308d67993f853968
	hash01e sha1:f75d1df88cbfe4258d49852f26cfc83f2ad4494b
	hash04f sha1:021faa20e931fb48986ffc6282b4bb05553ac946
	hash01f sha1:0a59e787e6d688aa6309e56e8c1b89431a0fc1c1
	hash05g sha1:304dfb4325cf243025b9957486eb605a9b51c199

	hash04a	sha256:f18a935e65866345098b3b754071dbf9f3aa3520eb27a7b036b278c5e2f1ed7e
	hash03a	sha256:713035dc94067a64e5fa6e4e1821b7c3bde49a77c7cb3f80eaadefa1ca41b3d2
	hash02a	sha256:f160a67e048b6fa75bec3952184154045076692cf5dccd3da21e3fd34b7a3f0f
	hash04b sha256:c7fba0d6104917fbf35258f40b9fa4fc697cfa992deecd1570a3b08d0a5587a9
	hash03b sha256:7287a2d78a3766c181b08df38951d784b08b72a44f571ed6d855bd0be22c70f6
	hash01b sha256:da96cf778c15d0a2bb76f98b2a62f6c9c01730fa7030e8f08ef0191048e7d620
	hash04c sha256:cb615d2def4b834d5f55b2351df97dc92bee4f5009d285201427f349081c8aca
	hash02c sha256:63bb527e0b4e1c8e1dd0d54dd778ca7c3718689fd6e37c473044cfbcf1cacfdb
	hash01c sha256:5b87237ac1fbae0246256fed9f9a1f077c4140fb7e6444925f8dbfa5ae406cd8
	hash04d sha256:eeddc9f9f6cb3d6b39b861659853f10891dc373e0b6eecb09e03e39b6ce64714
	hash01e sha256:108f521b1a74c2e6d0b52a4eda87e09162bf847f7d190cfce496ee1af0b29a5a
	hash04f sha256:901acda0454502b3bbd281f130c419e6c8de78afcf72a8def8d45ad31462bce4
	hash01f sha256:a2d99d1b8bf23c8af7d9d91368454adc110dfd5cc068a4cebb486ee8f5a1e16c
	hash05g sha256:4fef015b01da8efe929a68e3bb9b8fbad81f53995f097befe8ebc93f12ab98ec
	EOF

[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
[master d07d62e] 3rd
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 3rd.t
[master 0f7aa3e] 4th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 4th.t
[master 7f9ad88] 5th
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 5th.t
ok 1 - setup commits

expecting success of 3310.2 'setup merge base (x)': 
	git config core.notesRef refs/notes/x &&
	git notes add -m "x notes on 2nd commit" 2nd &&
	git notes add -m "x notes on 3rd commit" 3rd &&
	git notes add -m "x notes on 4th commit" 4th &&
	verify_notes x

ok 2 - setup merge base (x)

expecting success of 3310.3 'setup local branch (y)': 
	git update-ref refs/notes/y refs/notes/x &&
	git config core.notesRef refs/notes/y &&
	git notes add -f -m "y notes on 1st commit" 1st &&
	git notes remove 2nd &&
	git notes add -f -m "y notes on 3rd commit" 3rd &&
	git notes add -f -m "y notes on 4th commit" 4th &&
	verify_notes y

Removing note for object 2nd
Overwriting existing notes for object d07d62e5208f22eb5695e7eb47667dc8b9860290
Overwriting existing notes for object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
ok 3 - setup local branch (y)

expecting success of 3310.4 'setup remote branch (z)': 
	git update-ref refs/notes/z refs/notes/x &&
	git config core.notesRef refs/notes/z &&
	git notes add -f -m "z notes on 1st commit" 1st &&
	git notes add -f -m "z notes on 2nd commit" 2nd &&
	git notes remove 3rd &&
	git notes add -f -m "z notes on 4th commit" 4th &&
	verify_notes z

Overwriting existing notes for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
Removing note for object 3rd
Overwriting existing notes for object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
ok 4 - setup remote branch (z)

expecting success of 3310.5 'merge z into m (== y) with default ("manual") resolver => Conflicting 3-way merge': 
	git update-ref refs/notes/m refs/notes/y &&
	git config core.notesRef refs/notes/m &&
	test_must_fail git notes merge z >output 2>&1 &&
	# Output should point to where to resolve conflicts
	test_i18ngrep "\\.git/NOTES_MERGE_WORKTREE" output &&
	# Inspect merge conflicts
	ls .git/NOTES_MERGE_WORKTREE >output_conflicts &&
	test_cmp expect_conflicts output_conflicts &&
	( for f in $(cat expect_conflicts); do
		test_cmp "expect_conflict_$f" ".git/NOTES_MERGE_WORKTREE/$f" ||
		exit 1
	done ) &&
	# Verify that current notes tree (pre-merge) has not changed (m == y)
	verify_notes y &&
	verify_notes m &&
	test "$(git rev-parse refs/notes/m)" = "$(cat pre_merge_y)"

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
ok 5 - merge z into m (== y) with default ("manual") resolver => Conflicting 3-way merge

expecting success of 3310.6 'change notes in z': 
	git notes --ref z append -m "More z notes on 4th commit" 4th &&
	verify_notes z

ok 6 - change notes in z

expecting success of 3310.7 'cannot do merge w/conflicts when previous merge is unfinished': 
	test -d .git/NOTES_MERGE_WORKTREE &&
	test_must_fail git notes merge z >output 2>&1 &&
	# Output should indicate what is wrong
	test_i18ngrep -q "\\.git/NOTES_MERGE_\\* exists" output

ok 7 - cannot do merge w/conflicts when previous merge is unfinished

expecting success of 3310.8 'setup unrelated notes ref (w)': 
	git config core.notesRef refs/notes/w &&
	git notes add -m "w notes on 1st commit" 1st &&
	git notes add -m "x notes on 2nd commit" 2nd &&
	verify_notes w

ok 8 - setup unrelated notes ref (w)

expecting success of 3310.9 'can do merge without conflicts even if previous merge is unfinished (x => w)': 
	test -d .git/NOTES_MERGE_WORKTREE &&
	git notes merge x &&
	verify_notes w &&
	# Verify that other notes refs has not changed (x and y)
	verify_notes x &&
	verify_notes y

ok 9 - can do merge without conflicts even if previous merge is unfinished (x => w)

expecting success of 3310.10 'do not allow mixing --commit and --abort': 
	test_must_fail git notes merge --commit --abort

error: cannot mix --commit, --abort or -s/--strategy
usage: git notes merge [<options>] <notes-ref>
   or: git notes merge --commit [<options>]
   or: git notes merge --abort [<options>]

General options
    -v, --verbose         be more verbose
    -q, --quiet           be more quiet

Merge options
    -s, --strategy <strategy>
                          resolve notes conflicts using the given strategy (manual/ours/theirs/union/cat_sort_uniq)

Committing unmerged notes
    --commit              finalize notes merge by committing unmerged notes

Aborting notes merge resolution
    --abort               abort notes merge

ok 10 - do not allow mixing --commit and --abort

expecting success of 3310.11 'do not allow mixing --commit and --strategy': 
	test_must_fail git notes merge --commit --strategy theirs

error: cannot mix --commit, --abort or -s/--strategy
usage: git notes merge [<options>] <notes-ref>
   or: git notes merge --commit [<options>]
   or: git notes merge --abort [<options>]

General options
    -v, --verbose         be more verbose
    -q, --quiet           be more quiet

Merge options
    -s, --strategy <strategy>
                          resolve notes conflicts using the given strategy (manual/ours/theirs/union/cat_sort_uniq)

Committing unmerged notes
    --commit              finalize notes merge by committing unmerged notes

Aborting notes merge resolution
    --abort               abort notes merge

ok 11 - do not allow mixing --commit and --strategy

expecting success of 3310.12 'do not allow mixing --abort and --strategy': 
	test_must_fail git notes merge --abort --strategy theirs

error: cannot mix --commit, --abort or -s/--strategy
usage: git notes merge [<options>] <notes-ref>
   or: git notes merge --commit [<options>]
   or: git notes merge --abort [<options>]

General options
    -v, --verbose         be more verbose
    -q, --quiet           be more quiet

Merge options
    -s, --strategy <strategy>
                          resolve notes conflicts using the given strategy (manual/ours/theirs/union/cat_sort_uniq)

Committing unmerged notes
    --commit              finalize notes merge by committing unmerged notes

Aborting notes merge resolution
    --abort               abort notes merge

ok 12 - do not allow mixing --abort and --strategy

expecting success of 3310.13 'finalize conflicting merge (z => m)': 
	# Resolve conflicts and finalize merge
	cat >.git/NOTES_MERGE_WORKTREE/$commit_sha1 <<EOF &&
y and z notes on 1st commit
EOF
	cat >.git/NOTES_MERGE_WORKTREE/$commit_sha4 <<EOF &&
y and z notes on 4th commit
EOF
	git notes merge --commit &&
	notes_merge_files_gone &&
	# Merge commit has pre-merge y and pre-merge z as parents
	test "$(git rev-parse refs/notes/m^1)" = "$(cat pre_merge_y)" &&
	test "$(git rev-parse refs/notes/m^2)" = "$(cat pre_merge_z)" &&
	# Merge commit mentions the notes refs merged
	git log -1 --format=%B refs/notes/m > merge_commit_msg &&
	grep -q refs/notes/m merge_commit_msg &&
	grep -q refs/notes/z merge_commit_msg &&
	# Merge commit mentions conflicting notes
	grep -q "Conflicts" merge_commit_msg &&
	( for sha1 in $(cat expect_conflicts); do
		grep -q "$sha1" merge_commit_msg ||
		exit 1
	done ) &&
	# Verify contents of merge result
	verify_notes m &&
	# Verify that other notes refs has not changed (w, x, y and z)
	verify_notes w &&
	verify_notes x &&
	verify_notes y &&
	verify_notes z

ok 13 - finalize conflicting merge (z => m)

expecting success of 3310.14 'redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge': 
	git update-ref refs/notes/m refs/notes/y &&
	git config core.notesRef refs/notes/m &&
	test_must_fail git notes merge z >output 2>&1 &&
	# Output should point to where to resolve conflicts
	test_i18ngrep "\\.git/NOTES_MERGE_WORKTREE" output &&
	# Inspect merge conflicts
	ls .git/NOTES_MERGE_WORKTREE >output_conflicts &&
	test_cmp expect_conflicts output_conflicts &&
	( for f in $(cat expect_conflicts); do
		test_cmp "expect_conflict_$f" ".git/NOTES_MERGE_WORKTREE/$f" ||
		exit 1
	done ) &&
	# Verify that current notes tree (pre-merge) has not changed (m == y)
	verify_notes y &&
	verify_notes m &&
	test "$(git rev-parse refs/notes/m)" = "$(cat pre_merge_y)"

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
ok 14 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge

expecting success of 3310.15 'abort notes merge': 
	git notes merge --abort &&
	notes_merge_files_gone &&
	# m has not moved (still == y)
	test "$(git rev-parse refs/notes/m)" = "$(cat pre_merge_y)" &&
	# Verify that other notes refs has not changed (w, x, y and z)
	verify_notes w &&
	verify_notes x &&
	verify_notes y &&
	verify_notes z

ok 15 - abort notes merge

expecting success of 3310.16 'redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge': 
	test_must_fail git notes merge z >output 2>&1 &&
	# Output should point to where to resolve conflicts
	test_i18ngrep "\\.git/NOTES_MERGE_WORKTREE" output &&
	# Inspect merge conflicts
	ls .git/NOTES_MERGE_WORKTREE >output_conflicts &&
	test_cmp expect_conflicts output_conflicts &&
	( for f in $(cat expect_conflicts); do
		test_cmp "expect_conflict_$f" ".git/NOTES_MERGE_WORKTREE/$f" ||
		exit 1
	done ) &&
	# Verify that current notes tree (pre-merge) has not changed (m == y)
	verify_notes y &&
	verify_notes m &&
	test "$(git rev-parse refs/notes/m)" = "$(cat pre_merge_y)"

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
ok 16 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge

expecting success of 3310.17 'add + remove notes in finalized merge (z => m)': 
	# Resolve one conflict
	cat >.git/NOTES_MERGE_WORKTREE/$commit_sha1 <<EOF &&
y and z notes on 1st commit
EOF
	# Remove another conflict
	rm .git/NOTES_MERGE_WORKTREE/$commit_sha4 &&
	# Remove a D/F conflict
	rm .git/NOTES_MERGE_WORKTREE/$commit_sha3 &&
	# Add a new note
	echo "new note on 5th commit" > .git/NOTES_MERGE_WORKTREE/$commit_sha5 &&
	# Finalize merge
	git notes merge --commit &&
	notes_merge_files_gone &&
	# Merge commit has pre-merge y and pre-merge z as parents
	test "$(git rev-parse refs/notes/m^1)" = "$(cat pre_merge_y)" &&
	test "$(git rev-parse refs/notes/m^2)" = "$(cat pre_merge_z)" &&
	# Merge commit mentions the notes refs merged
	git log -1 --format=%B refs/notes/m > merge_commit_msg &&
	grep -q refs/notes/m merge_commit_msg &&
	grep -q refs/notes/z merge_commit_msg &&
	# Merge commit mentions conflicting notes
	grep -q "Conflicts" merge_commit_msg &&
	( for sha1 in $(cat expect_conflicts); do
		grep -q "$sha1" merge_commit_msg ||
		exit 1
	done ) &&
	# Verify contents of merge result
	verify_notes m &&
	# Verify that other notes refs has not changed (w, x, y and z)
	verify_notes w &&
	verify_notes x &&
	verify_notes y &&
	verify_notes z

ok 17 - add + remove notes in finalized merge (z => m)

expecting success of 3310.18 'redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge': 
	git update-ref refs/notes/m refs/notes/y &&
	test_must_fail git notes merge z >output 2>&1 &&
	# Output should point to where to resolve conflicts
	test_i18ngrep "\\.git/NOTES_MERGE_WORKTREE" output &&
	# Inspect merge conflicts
	ls .git/NOTES_MERGE_WORKTREE >output_conflicts &&
	test_cmp expect_conflicts output_conflicts &&
	( for f in $(cat expect_conflicts); do
		test_cmp "expect_conflict_$f" ".git/NOTES_MERGE_WORKTREE/$f" ||
		exit 1
	done ) &&
	# Verify that current notes tree (pre-merge) has not changed (m == y)
	verify_notes y &&
	verify_notes m &&
	test "$(git rev-parse refs/notes/m)" = "$(cat pre_merge_y)"

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
ok 18 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge

expecting success of 3310.19 'reset notes ref m to somewhere else (w)': 
	git update-ref refs/notes/m refs/notes/w &&
	verify_notes m &&
	test "$(git rev-parse refs/notes/m)" = "$(git rev-parse refs/notes/w)"

ok 19 - reset notes ref m to somewhere else (w)

expecting success of 3310.20 'fail to finalize conflicting merge if underlying ref has moved in the meantime (m != NOTES_MERGE_PARTIAL^1)': 
	# Resolve conflicts
	cat >.git/NOTES_MERGE_WORKTREE/$commit_sha1 <<EOF &&
y and z notes on 1st commit
EOF
	cat >.git/NOTES_MERGE_WORKTREE/$commit_sha4 <<EOF &&
y and z notes on 4th commit
EOF
	# Fail to finalize merge
	test_must_fail git notes merge --commit >output 2>&1 &&
	# .git/NOTES_MERGE_* must remain
	test -f .git/NOTES_MERGE_PARTIAL &&
	test -f .git/NOTES_MERGE_REF &&
	test -f .git/NOTES_MERGE_WORKTREE/$commit_sha1 &&
	test -f .git/NOTES_MERGE_WORKTREE/$commit_sha2 &&
	test -f .git/NOTES_MERGE_WORKTREE/$commit_sha3 &&
	test -f .git/NOTES_MERGE_WORKTREE/$commit_sha4 &&
	# Refs are unchanged
	test "$(git rev-parse refs/notes/m)" = "$(git rev-parse refs/notes/w)" &&
	test "$(git rev-parse refs/notes/y)" = "$(git rev-parse NOTES_MERGE_PARTIAL^1)" &&
	test "$(git rev-parse refs/notes/m)" != "$(git rev-parse NOTES_MERGE_PARTIAL^1)" &&
	# Mention refs/notes/m, and its current and expected value in output
	test_i18ngrep -q "refs/notes/m" output &&
	test_i18ngrep -q "$(git rev-parse refs/notes/m)" output &&
	test_i18ngrep -q "$(git rev-parse NOTES_MERGE_PARTIAL^1)" output &&
	# Verify that other notes refs has not changed (w, x, y and z)
	verify_notes w &&
	verify_notes x &&
	verify_notes y &&
	verify_notes z

ok 20 - fail to finalize conflicting merge if underlying ref has moved in the meantime (m != NOTES_MERGE_PARTIAL^1)

expecting success of 3310.21 'resolve situation by aborting the notes merge': 
	git notes merge --abort &&
	notes_merge_files_gone &&
	# m has not moved (still == w)
	test "$(git rev-parse refs/notes/m)" = "$(git rev-parse refs/notes/w)" &&
	# Verify that other notes refs has not changed (w, x, y and z)
	verify_notes w &&
	verify_notes x &&
	verify_notes y &&
	verify_notes z

ok 21 - resolve situation by aborting the notes merge

expecting success of 3310.22 'switch cwd before committing notes merge': 
	git notes add -m foo HEAD &&
	git notes --ref=other add -m bar HEAD &&
	test_must_fail git notes merge refs/notes/other &&
	(
		cd .git/NOTES_MERGE_WORKTREE &&
		echo "foo" > $(git rev-parse HEAD) &&
		echo "bar" >> $(git rev-parse HEAD) &&
		git notes merge --commit
	) &&
	git notes show HEAD > actual_notes &&
	test_cmp expect_notes actual_notes

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
Auto-merging notes for 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
CONFLICT (add/add): Merge conflict in notes for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
ok 22 - switch cwd before committing notes merge

# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3320-notes-merge-worktrees.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3320-notes-merge-worktrees/.git/
expecting success of 3320.1 'setup commit': 
	test_commit tantrum

[master (root-commit) 02f8a63] tantrum
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 tantrum.t
ok 1 - setup commit

expecting success of 3320.2 'setup notes ref (x)': 
	git config core.notesRef refs/notes/x &&
	git notes add -m "x notes on tantrum" tantrum

ok 2 - setup notes ref (x)

expecting success of 3320.3 'setup local branch (y)': 
	git update-ref refs/notes/y refs/notes/x &&
	git config core.notesRef refs/notes/y &&
	git notes remove tantrum

Removing note for object tantrum
ok 3 - setup local branch (y)

expecting success of 3320.4 'setup remote branch (z)': 
	git update-ref refs/notes/z refs/notes/x &&
	git config core.notesRef refs/notes/z &&
	git notes add -f -m "conflicting notes on tantrum" tantrum

Overwriting existing notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e
ok 4 - setup remote branch (z)

expecting success of 3320.5 'modify notes ref ourselves (x)': 
	git config core.notesRef refs/notes/x &&
	git notes add -f -m "more conflicting notes on tantrum" tantrum

Overwriting existing notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e
ok 5 - modify notes ref ourselves (x)

expecting success of 3320.6 'create some new worktrees': 
	git worktree add -b newbranch worktree master &&
	git worktree add -b newbranch2 worktree2 master

Preparing worktree (new branch 'newbranch')
HEAD is now at 02f8a63 tantrum
Preparing worktree (new branch 'newbranch2')
HEAD is now at 02f8a63 tantrum
ok 6 - create some new worktrees

expecting success of 3320.7 'merge z into y fails and sets NOTES_MERGE_REF': 
	git config core.notesRef refs/notes/y &&
	test_must_fail git notes merge z &&
	echo "ref: refs/notes/y" >expect &&
	test_cmp expect .git/NOTES_MERGE_REF

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
Auto-merging notes for 02f8a63df5a5eb7863e18dffcbc422a31a01d39e
CONFLICT (delete/modify): Notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e deleted in refs/notes/y and modified in refs/notes/z. Version from refs/notes/z left in tree.
ok 7 - merge z into y fails and sets NOTES_MERGE_REF

expecting success of 3320.8 'merge z into y while mid-merge in another workdir fails': 
	(
		cd worktree &&
		git config core.notesRef refs/notes/y &&
		test_must_fail git notes merge z 2>err &&
		test_i18ngrep "a notes merge into refs/notes/y is already in-progress at" err
	) &&
	test_path_is_missing .git/worktrees/worktree/NOTES_MERGE_REF

Auto-merging notes for 02f8a63df5a5eb7863e18dffcbc422a31a01d39e
CONFLICT (delete/modify): Notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e deleted in refs/notes/y and modified in refs/notes/z. Version from refs/notes/z left in tree.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
fatal: a notes merge into refs/notes/y is already in-progress at /<<PKGBUILDDIR>>/t/trash directory.t3320-notes-merge-worktrees
ok 8 - merge z into y while mid-merge in another workdir fails

expecting success of 3320.9 'merge z into x while mid-merge on y succeeds': 
	(
		cd worktree2 &&
		git config core.notesRef refs/notes/x &&
		test_must_fail git notes merge z >out 2>&1 &&
		test_i18ngrep "Automatic notes merge failed" out &&
		grep -v "A notes merge into refs/notes/x is already in-progress in" out
	) &&
	echo "ref: refs/notes/x" >expect &&
	test_cmp expect .git/worktrees/worktree2/NOTES_MERGE_REF

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Automatic notes merge failed. Fix conflicts in /<<PKGBUILDDIR>>/t/trash directory.t3320-notes-merge-worktrees/.git/worktrees/worktree2/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
Automatic notes merge failed. Fix conflicts in /<<PKGBUILDDIR>>/t/trash directory.t3320-notes-merge-worktrees/.git/worktrees/worktree2/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
Auto-merging notes for 02f8a63df5a5eb7863e18dffcbc422a31a01d39e
CONFLICT (content): Merge conflict in notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e
ok 9 - merge z into x while mid-merge on y succeeds

# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3400-rebase.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3400-rebase/.git/
expecting success of 3400.1 'prepare repository with topic branches': 
	git config core.logAllRefUpdates true &&
	echo First >A &&
	git update-index --add A &&
	git commit -m "Add A." &&
	git checkout -b force-3way &&
	echo Dummy >Y &&
	git update-index --add Y &&
	git commit -m "Add Y." &&
	git checkout -b filemove &&
	git reset --soft master &&
	mkdir D &&
	git mv A D/A &&
	git commit -m "Move A." &&
	git checkout -b my-topic-branch master &&
	echo Second >B &&
	git update-index --add B &&
	git commit -m "Add B." &&
	git checkout -f master &&
	echo Third >>A &&
	git update-index A &&
	git commit -m "Modify A." &&
	git checkout -b side my-topic-branch &&
	echo Side >>C &&
	git add C &&
	git commit -m "Add C" &&
	git checkout -f my-topic-branch &&
	git tag topic

[master (root-commit) d07698a] Add A.
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 A
Switched to a new branch 'force-3way'
[force-3way ab367b0] Add Y.
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 Y
Switched to a new branch 'filemove'
[filemove a191279] Move A.
 Author: author@name <bogus@email@address>
 2 files changed, 1 insertion(+)
 rename A => D/A (100%)
 create mode 100644 Y
Switched to a new branch 'my-topic-branch'
[my-topic-branch 6153d68] Add B.
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 B
Switched to branch 'master'
[master aee1561] Modify A.
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
Switched to a new branch 'side'
[side 6463402] Add C
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 C
Switched to branch 'my-topic-branch'
ok 1 - prepare repository with topic branches

expecting success of 3400.2 'rebase on dirty worktree': 
	echo dirty >>A &&
	test_must_fail git rebase master

error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.
ok 2 - rebase on dirty worktree

expecting success of 3400.3 'rebase on dirty cache': 
	git add A &&
	test_must_fail git rebase master

error: cannot rebase: Your index contains uncommitted changes.
error: Please commit or stash them.
ok 3 - rebase on dirty cache

expecting success of 3400.4 'rebase against master': 
	git reset --hard HEAD &&
	git rebase master

HEAD is now at 6153d68 Add B.
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/my-topic-branch.
ok 4 - rebase against master

expecting success of 3400.5 'rebase sets ORIG_HEAD to pre-rebase state': 
	git checkout -b orig-head topic &&
	pre="$(git rev-parse --verify HEAD)" &&
	git rebase master &&
	test_cmp_rev "$pre" ORIG_HEAD &&
	test_cmp_rev ! "$pre" HEAD

Switched to a new branch 'orig-head'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/orig-head.
ok 5 - rebase sets ORIG_HEAD to pre-rebase state

expecting success of 3400.6 'rebase, with <onto> and <upstream> specified as :/quuxery': 
	test_when_finished "git branch -D torebase" &&
	git checkout -b torebase my-topic-branch^ &&
	upstream=$(git rev-parse ":/Add B") &&
	onto=$(git rev-parse ":/Add A") &&
	git rebase --onto $onto $upstream &&
	git reset --hard my-topic-branch^ &&
	git rebase --onto ":/Add A" ":/Add B" &&
	git checkout my-topic-branch

Switched to a new branch 'torebase'
Current branch torebase is up to date.
HEAD is now at aee1561 Modify A.
Current branch torebase is up to date.
Switched to branch 'my-topic-branch'
Deleted branch torebase (was aee1561).
ok 6 - rebase, with <onto> and <upstream> specified as :/quuxery

expecting success of 3400.7 'the rebase operation should not have destroyed author information': 
	! (git log | grep "Author:" | grep "<>")

ok 7 - the rebase operation should not have destroyed author information

expecting success of 3400.8 'the rebase operation should not have destroyed author information (2)': 
	git log -1 |
	grep 'Author: author@name <bogus@email@address>'

Author: author@name <bogus@email@address>
ok 8 - the rebase operation should not have destroyed author information (2)

expecting success of 3400.9 'HEAD was detached during rebase': 
	test $(git rev-parse HEAD@{1}) != $(git rev-parse my-topic-branch@{1})

ok 9 - HEAD was detached during rebase

expecting success of 3400.10 'rebase from ambiguous branch name': 
	git checkout -b topic side &&
	git rebase master

Switched to a new branch 'topic'
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 10 - rebase from ambiguous branch name

expecting success of 3400.11 'rebase off of the previous branch using "-"': 
	git checkout master &&
	git checkout HEAD^ &&
	git rebase @{-1} >expect.messages &&
	git merge-base master HEAD >expect.forkpoint &&

	git checkout master &&
	git checkout HEAD^ &&
	git rebase - >actual.messages &&
	git merge-base master HEAD >actual.forkpoint &&

	test_cmp expect.forkpoint actual.forkpoint &&
	# the next one is dubious---we may want to say "-",
	# instead of @{-1}, in the message
	test_i18ncmp expect.messages actual.messages

Switched to branch 'master'
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 d07698a Add A.

                                                                                
Successfully rebased and updated detached HEAD.
Switched to branch 'master'
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 d07698a Add A.

                                                                                
Successfully rebased and updated detached HEAD.
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 11 - rebase off of the previous branch using "-"

expecting success of 3400.12 'rebase a single mode change': 
	git checkout master &&
	git branch -D topic &&
	echo 1 >X &&
	git add X &&
	test_tick &&
	git commit -m prepare &&
	git checkout -b modechange HEAD^ &&
	echo 1 >X &&
	git add X &&
	test_chmod +x A &&
	test_tick &&
	git commit -m modechange &&
	GIT_TRACE=1 git rebase master

Switched to branch 'master'
Deleted branch topic (was 37cf2dd).
[master 639dadf] prepare
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 X
Switched to a new branch 'modechange'
[modechange 4d828e1] modechange
 Author: author@name <bogus@email@address>
 2 files changed, 1 insertion(+)
 mode change 100644 => 100755 A
 create mode 100644 X
trace: built-in: git rebase master
trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout master' git checkout 639dadfdc5b9b40b10f31dcac247b1fa6d513421
Rebasing (1/1)
trace: run_command: git notes copy --for-rewrite=rebase
trace: built-in: git notes copy --for-rewrite=rebase

                                                                                
Successfully rebased and updated refs/heads/modechange.
ok 12 - rebase a single mode change

expecting success of 3400.13 'rebase is not broken by diff.renames': 
	test_config diff.renames copies &&
	git checkout filemove &&
	GIT_TRACE=1 git rebase force-3way

Switched to branch 'filemove'
trace: built-in: git rebase force-3way
trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout force-3way' git checkout ab367b07f2be5bc989e9fa8311413a427aa42241
Rebasing (1/1)
trace: run_command: git notes copy --for-rewrite=rebase
trace: built-in: git notes copy --for-rewrite=rebase

                                                                                
Successfully rebased and updated refs/heads/filemove.
ok 13 - rebase is not broken by diff.renames

expecting success of 3400.14 'setup: recover': 
	test_might_fail git rebase --abort &&
	git reset --hard &&
	git checkout modechange

fatal: No rebase in progress?
HEAD is now at 2a8cc4d Move A.
Switched to branch 'modechange'
ok 14 - setup: recover

expecting success of 3400.15 'Show verbose error when HEAD could not be detached': 
	>B &&
	test_when_finished "rm -f B" &&
	test_must_fail git rebase topic 2>output.err >output.out &&
	test_i18ngrep "The following untracked working tree files would be overwritten by checkout:" output.err &&
	test_i18ngrep B output.err

error: The following untracked working tree files would be overwritten by checkout:
	B
ok 15 - Show verbose error when HEAD could not be detached

expecting success of 3400.16 'fail when upstream arg is missing and not on branch': 
	git checkout topic &&
	test_must_fail git rebase

Note: switching to 'topic'.

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 6153d68 Add B.
You are not currently on a branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.

    git rebase '<branch>'

ok 16 - fail when upstream arg is missing and not on branch

expecting success of 3400.17 'fail when upstream arg is missing and not configured': 
	git checkout -b no-config topic &&
	test_must_fail git rebase

Switched to a new branch 'no-config'
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.

    git rebase '<branch>'

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> no-config

ok 17 - fail when upstream arg is missing and not configured

expecting success of 3400.18 'rebase works with format.useAutoBase': 
	test_config format.useAutoBase true &&
	git checkout topic &&
	git rebase master

Note: switching to 'topic'.

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 6153d68 Add B.
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 18 - rebase works with format.useAutoBase

expecting success of 3400.19 'default to common base in @{upstream}s reflog if no upstream arg (--merge)': 
	git checkout -b default-base master &&
	git checkout -b default topic &&
	git config branch.default.remote . &&
	git config branch.default.merge refs/heads/default-base &&
	git rebase --merge &&
	git rev-parse --verify default-base >expect &&
	git rev-parse default~1 >actual &&
	test_cmp expect actual &&
	git checkout default-base &&
	git reset --hard HEAD^ &&
	git checkout default &&
	git rebase --merge &&
	git rev-parse --verify default-base >expect &&
	git rev-parse default~1 >actual &&
	test_cmp expect actual

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  a6867f5 Add B.

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> a6867f5

Switched to a new branch 'default-base'
Switched to a new branch 'default'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/default.
Switched to branch 'default-base'
HEAD is now at aee1561 Modify A.
Switched to branch 'default'
Your branch is ahead of 'default-base' by 2 commits.
  (use "git push" to publish your local commits)
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/default.
ok 19 - default to common base in @{upstream}s reflog if no upstream arg (--merge)

expecting success of 3400.20 'default to common base in @{upstream}s reflog if no upstream arg (--apply)': 
	git checkout -B default-base master &&
	git checkout -B default topic &&
	git config branch.default.remote . &&
	git config branch.default.merge refs/heads/default-base &&
	git rebase --apply &&
	git rev-parse --verify default-base >expect &&
	git rev-parse default~1 >actual &&
	test_cmp expect actual &&
	git checkout default-base &&
	git reset --hard HEAD^ &&
	git checkout default &&
	git rebase --apply &&
	git rev-parse --verify default-base >expect &&
	git rev-parse default~1 >actual &&
	test_cmp expect actual

Switched to and reset branch 'default-base'
Switched to and reset branch 'default'
Your branch and 'default-base' have diverged,
and have 1 and 2 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
First, rewinding head to replay your work on top of it...
Applying: Add B.
Switched to branch 'default-base'
HEAD is now at aee1561 Modify A.
Switched to branch 'default'
Your branch is ahead of 'default-base' by 2 commits.
  (use "git push" to publish your local commits)
First, rewinding head to replay your work on top of it...
Applying: Add B.
ok 20 - default to common base in @{upstream}s reflog if no upstream arg (--apply)

expecting success of 3400.21 'cherry-picked commits and fork-point work together': 
	git checkout default-base &&
	echo Amended >A &&
	git commit -a --no-edit --amend &&
	test_commit B B &&
	test_commit new_B B "New B" &&
	test_commit C C &&
	git checkout default &&
	git reset --hard default-base@{4} &&
	test_commit D D &&
	git cherry-pick -2 default-base^ &&
	test_commit final_B B "Final B" &&
	git rebase &&
	echo Amended >expect &&
	test_cmp expect A &&
	echo "Final B" >expect &&
	test_cmp expect B &&
	echo C >expect &&
	test_cmp expect C &&
	echo D >expect &&
	test_cmp expect D

Switched to branch 'default-base'
[default-base e6d3cc3] Modify A.
 Author: author@name <bogus@email@address>
 Date: Fri Apr 1 13:14:15 2005 +0200
 1 file changed, 1 insertion(+), 1 deletion(-)
[default-base 8f4ff15] B
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 B
[default-base 0f217d2] new_B
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+), 1 deletion(-)
[default-base 9f8bf15] C
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 C
Switched to branch 'default'
Your branch and 'default-base' have diverged,
and have 2 and 4 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
HEAD is now at aee1561 Modify A.
[default 0072707] D
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 D
[default c4297c4] B
 Author: author@name <bogus@email@address>
 Date: Thu Apr 7 15:15:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 B
[default 8f6b6ad] new_B
 Author: author@name <bogus@email@address>
 Date: Thu Apr 7 15:16:13 2005 -0700
 1 file changed, 1 insertion(+), 1 deletion(-)
[default 06af578] final_B
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/default.
ok 21 - cherry-picked commits and fork-point work together

expecting success of 3400.22 'rebase --apply -q is quiet': 
	git checkout -b quiet topic &&
	git rebase --apply -q master >output.out 2>&1 &&
	test_must_be_empty output.out

Switched to a new branch 'quiet'
ok 22 - rebase --apply -q is quiet

expecting success of 3400.23 'rebase --merge -q is quiet': 
	git checkout -B quiet topic &&
	git rebase --merge -q master >output.out 2>&1 &&
	test_must_be_empty output.out

Reset branch 'quiet'
ok 23 - rebase --merge -q is quiet

expecting success of 3400.24 'Rebase a commit that sprinkles CRs in': 
	(
		echo "One" &&
		echo "TwoQ" &&
		echo "Three" &&
		echo "FQur" &&
		echo "Five"
	) | q_to_cr >CR &&
	git add CR &&
	test_tick &&
	git commit -a -m "A file with a line with CR" &&
	git tag file-with-cr &&
	git checkout HEAD^0 &&
	git rebase --onto HEAD^^ HEAD^ &&
	git diff --exit-code file-with-cr:CR HEAD:CR

[quiet 517897f] A file with a line with CR
 Author: author@name <bogus@email@address>
 1 file changed, 5 insertions(+)
 create mode 100644 CR
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 517897f A file with a line with CR
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 24 - Rebase a commit that sprinkles CRs in

expecting success of 3400.25 'rebase can copy notes': 
	git config notes.rewrite.rebase true &&
	git config notes.rewriteRef "refs/notes/*" &&
	test_commit n1 &&
	test_commit n2 &&
	test_commit n3 &&
	git notes add -m"a note" n3 &&
	git rebase --onto n1 n2 &&
	test "a note" = "$(git notes show HEAD)"

[detached HEAD c1465a7] n1
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 n1.t
[detached HEAD 59772a5] n2
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 n2.t
[detached HEAD f3a64f5] n3
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 n3.t
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 25 - rebase can copy notes

expecting success of 3400.26 'rebase -m can copy notes': 
	git reset --hard n3 &&
	git rebase -m --onto n1 n2 &&
	test "a note" = "$(git notes show HEAD)"

HEAD is now at f3a64f5 n3
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 26 - rebase -m can copy notes

expecting success of 3400.27 'rebase commit with an ancient timestamp': 
	git reset --hard &&

	>old.one && git add old.one && test_tick &&
	git commit --date="@12345 +0400" -m "Old one" &&
	>old.two && git add old.two && test_tick &&
	git commit --date="@23456 +0500" -m "Old two" &&
	>old.three && git add old.three && test_tick &&
	git commit --date="@34567 +0600" -m "Old three" &&

	git cat-file commit HEAD^^ >actual &&
	grep "author .* 12345 +0400$" actual &&
	git cat-file commit HEAD^ >actual &&
	grep "author .* 23456 +0500$" actual &&
	git cat-file commit HEAD >actual &&
	grep "author .* 34567 +0600$" actual &&

	git rebase --onto HEAD^^ HEAD^ &&

	git cat-file commit HEAD >actual &&
	grep "author .* 34567 +0600$" actual

HEAD is now at d606871 n3
[detached HEAD f2d8ed2] Old one
 Author: author@name <bogus@email@address>
 Date: Thu Jan 1 07:25:45 1970 +0400
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 old.one
[detached HEAD 1b0d9de] Old two
 Author: author@name <bogus@email@address>
 Date: Thu Jan 1 11:30:56 1970 +0500
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 old.two
[detached HEAD 348fbc5] Old three
 Author: author@name <bogus@email@address>
 Date: Thu Jan 1 15:36:07 1970 +0600
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 old.three
author author@name <bogus@email@address> 12345 +0400
author author@name <bogus@email@address> 23456 +0500
author author@name <bogus@email@address> 34567 +0600
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
author author@name <bogus@email@address> 34567 +0600
ok 27 - rebase commit with an ancient timestamp

expecting success of 3400.28 'rebase with "From " line in commit message': 
	git checkout -b preserve-from master~1 &&
	cat >From_.msg <<EOF &&
Somebody embedded an mbox in a commit message

This is from so-and-so:

From a@b Mon Sep 17 00:00:00 2001
From: John Doe <nobody@example.com>
Date: Sat, 11 Nov 2017 00:00:00 +0000
Subject: not this message

something
EOF
	>From_ &&
	git add From_ &&
	git commit -F From_.msg &&
	git rebase master &&
	git log -1 --pretty=format:%B >out &&
	test_cmp From_.msg out

Warning: you are leaving 3 commits behind, not connected to
any of your branches:

  80e57ef Old three
  f2d8ed2 Old one
  d606871 n3

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 80e57ef

Switched to a new branch 'preserve-from'
[preserve-from 8cc2bfd] Somebody embedded an mbox in a commit message
 Author: author@name <bogus@email@address>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 From_
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/preserve-from.
ok 28 - rebase with "From " line in commit message

expecting success of 3400.29 'rebase --apply and --show-current-patch': 
	test_create_repo conflict-apply &&
	(
		cd conflict-apply &&
		test_commit init &&
		echo one >>init.t &&
		git commit -a -m one &&
		echo two >>init.t &&
		git commit -a -m two &&
		git tag two &&
		test_must_fail git rebase --apply -f --onto init HEAD^ &&
		GIT_TRACE=1 git rebase --show-current-patch >/dev/null 2>stderr &&
		grep "show.*$(git rev-parse two)" stderr
	)

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3400-rebase/conflict-apply/.git/
[master (root-commit) 080fbe0] init
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 init.t
[master 61e26c1] one
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
[master 1bf3d8f] two
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
First, rewinding head to replay your work on top of it...
Applying: two
Using index info to reconstruct a base tree...
M	init.t
Falling back to patching base and 3-way merge...
Merging:
080fbe0 init
virtual two
found 1 common ancestor:
virtual 24619c19508a6b9b476e2c46f4889f730a371ef0
Auto-merging init.t
CONFLICT (content): Merge conflict in init.t
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 two
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
trace: run_command: git show 1bf3d8fe33fb3e440d4f72b014f1eae094a4ac2c --
trace: built-in: git show 1bf3d8fe33fb3e440d4f72b014f1eae094a4ac2c --
ok 29 - rebase --apply and --show-current-patch

expecting success of 3400.30 'rebase --apply and .gitattributes': 
	test_create_repo attributes &&
	(
		cd attributes &&
		test_commit init &&
		git config filter.test.clean "sed -e 's/smudged/clean/g'" &&
		git config filter.test.smudge "sed -e 's/clean/smudged/g'" &&

		test_commit second &&
		git checkout -b test HEAD^ &&

		echo "*.txt filter=test" >.gitattributes &&
		git add .gitattributes &&
		test_commit third &&

		echo "This text is smudged." >a.txt &&
		git add a.txt &&
		test_commit fourth &&

		git checkout -b removal HEAD^ &&
		git rm .gitattributes &&
		git add -u &&
		test_commit fifth &&
		git cherry-pick test &&

		git checkout test &&
		git rebase master &&
		grep "smudged" a.txt &&

		git checkout removal &&
		git reset --hard &&
		git rebase master &&
		grep "clean" a.txt
	)

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3400-rebase/attributes/.git/
[master (root-commit) 080fbe0] init
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 init.t
[master 109cf52] second
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 second.t
Switched to a new branch 'test'
[test 84bb12e] third
 Author: author@name <bogus@email@address>
 2 files changed, 2 insertions(+)
 create mode 100644 .gitattributes
 create mode 100644 third.t
[test 4a9c602] fourth
 Author: author@name <bogus@email@address>
 2 files changed, 2 insertions(+)
 create mode 100644 a.txt
 create mode 100644 fourth.t
Switched to a new branch 'removal'
rm '.gitattributes'
[removal 12a3f98] fifth
 Author: author@name <bogus@email@address>
 2 files changed, 1 insertion(+), 1 deletion(-)
 delete mode 100644 .gitattributes
 create mode 100644 fifth.t
[removal 511bf4f] fourth
 Author: author@name <bogus@email@address>
 Date: Thu Apr 7 15:30:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 a.txt
 create mode 100644 fourth.t
Switched to branch 'test'
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/test.
This text is smudged.
Switched to branch 'removal'
HEAD is now at 511bf4f fourth
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/removal.
This text is clean.
ok 30 - rebase --apply and .gitattributes

expecting success of 3400.31 'rebase--merge.sh and --show-current-patch': 
	test_create_repo conflict-merge &&
	(
		cd conflict-merge &&
		test_commit init &&
		echo one >>init.t &&
		git commit -a -m one &&
		echo two >>init.t &&
		git commit -a -m two &&
		git tag two &&
		test_must_fail git rebase --merge --onto init HEAD^ &&
		git rebase --show-current-patch >actual.patch &&
		GIT_TRACE=1 git rebase --show-current-patch >/dev/null 2>stderr &&
		grep "show.*REBASE_HEAD" stderr &&
		test "$(git rev-parse REBASE_HEAD)" = "$(git rev-parse two)"
	)

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3400-rebase/conflict-merge/.git/
[master (root-commit) 080fbe0] init
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
 create mode 100644 init.t
[master 61e26c1] one
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
[master 1bf3d8f] two
 Author: author@name <bogus@email@address>
 1 file changed, 1 insertion(+)
Rebasing (1/1)
error: could not apply 1bf3d8f... two
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
Could not apply 1bf3d8f... two
Auto-merging init.t
CONFLICT (content): Merge conflict in init.t
trace: run_command: git show REBASE_HEAD --
trace: built-in: git show REBASE_HEAD --
ok 31 - rebase--merge.sh and --show-current-patch

expecting success of 3400.32 'rebase -c rebase.useBuiltin=false warning': 
	expected="rebase.useBuiltin support has been removed" &&

	# Only warn when the legacy rebase is requested...
	test_must_fail git -c rebase.useBuiltin=false rebase 2>err &&
	test_i18ngrep "$expected" err &&
	test_must_fail env GIT_TEST_REBASE_USE_BUILTIN=false git rebase 2>err &&
	test_i18ngrep "$expected" err &&

	# ...not when we would have used the built-in anyway
	test_must_fail git -c rebase.useBuiltin=true rebase 2>err &&
	test_must_be_empty err &&
	test_must_fail env GIT_TEST_REBASE_USE_BUILTIN=true git rebase 2>err &&
	test_must_be_empty err

There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.

    git rebase '<branch>'

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> preserve-from

warning: the rebase.useBuiltin support has been removed!
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.

    git rebase '<branch>'

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> preserve-from

warning: the rebase.useBuiltin support has been removed!
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.

    git rebase '<branch>'

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> preserve-from

There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.

    git rebase '<branch>'

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> preserve-from

ok 32 - rebase -c rebase.useBuiltin=false warning

expecting success of 3400.33 'switch to branch checked out here': 
	git checkout master &&
	git rebase master master

Switched to branch 'master'
Current branch master is up to date.
ok 33 - switch to branch checked out here

expecting success of 3400.34 'switch to branch not checked out': 
	git checkout master &&
	git branch other &&
	git rebase master other

Already on 'master'
Current branch other is up to date.
ok 34 - switch to branch not checked out

expecting success of 3400.35 'refuse to switch to branch checked out elsewhere': 
	git checkout master &&
	git worktree add wt &&
	test_must_fail git -C wt rebase master master 2>err &&
	test_i18ngrep "already checked out" err

Switched to branch 'master'
Preparing worktree (new branch 'wt')
HEAD is now at 639dadf prepare
fatal: 'master' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3400-rebase'
ok 35 - refuse to switch to branch checked out elsewhere

# passed all 35 test(s)
1..35
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3401-rebase-and-am-rename.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3401-rebase-and-am-rename/.git/
expecting success of 3401.1 'setup testcase where directory rename should be detected': 
	test_create_repo dir-rename &&
	(
		cd dir-rename &&

		mkdir x &&
		test_seq  1 10 >x/a &&
		test_seq 11 20 >x/b &&
		test_seq 21 30 >x/c &&
		test_write_lines a b c d e f g h i >l &&
		git add x l &&
		git commit -m "Initial" &&

		git branch O &&
		git branch A &&
		git branch B &&

		git checkout A &&
		git mv x y &&
		git mv l letters &&
		git commit -m "Rename x to y, l to letters" &&

		git checkout B &&
		echo j >>l &&
		test_seq 31 40 >x/d &&
		git add l x/d &&
		git commit -m "Modify l, add x/d"
	)

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3401-rebase-and-am-rename/dir-rename/.git/
[master (root-commit) 79c153a] Initial
 Author: A U Thor <author@example.com>
 4 files changed, 39 insertions(+)
 create mode 100644 l
 create mode 100644 x/a
 create mode 100644 x/b
 create mode 100644 x/c
Switched to branch 'A'
[A cc01e42] Rename x to y, l to letters
 Author: A U Thor <author@example.com>
 4 files changed, 0 insertions(+), 0 deletions(-)
 rename l => letters (100%)
 rename {x => y}/a (100%)
 rename {x => y}/b (100%)
 rename {x => y}/c (100%)
Switched to branch 'B'
[B 6c5e67f] Modify l, add x/d
 Author: A U Thor <author@example.com>
 2 files changed, 11 insertions(+)
 create mode 100644 x/d
ok 1 - setup testcase where directory rename should be detected

expecting success of 3401.2 'rebase --interactive: directory rename detected': 
	(
		cd dir-rename &&

		git checkout B^0 &&

		set_fake_editor &&
		FAKE_LINES="1" git -c merge.directoryRenames=true rebase --interactive A &&

		git ls-files -s >out &&
		test_line_count = 5 out &&

		test_path_is_file y/d &&
		test_path_is_missing x/d
	)

Note: switching to 'B^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 6c5e67f Modify l, add x/d
rebase -i script before editing:
pick 6c5e67f Modify l, add x/d

rebase -i script after editing:
pick 6c5e67f Modify l, add x/d
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 2 - rebase --interactive: directory rename detected

checking known breakage of 3401.3 'rebase --apply: directory rename detected': 
	(
		cd dir-rename &&

		git checkout B^0 &&

		git -c merge.directoryRenames=true rebase --apply A &&

		git ls-files -s >out &&
		test_line_count = 5 out &&

		test_path_is_file y/d &&
		test_path_is_missing x/d
	)

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  2e986bc Modify l, add x/d

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> 2e986bc

HEAD is now at 6c5e67f Modify l, add x/d
First, rewinding head to replay your work on top of it...
Applying: Modify l, add x/d
Using index info to reconstruct a base tree...
A	l
Falling back to patching base and 3-way merge...
Merging:
cc01e42 Rename x to y, l to letters
virtual Modify l, add x/d
found 1 common ancestor:
virtual 4f45812d96b9febe1d7595b91de345b0a05fb0d4
File y/d doesn't exist. 
not ok 3 - rebase --apply: directory rename detected # TODO known breakage

expecting success of 3401.4 'rebase --merge: directory rename detected': 
	(
		cd dir-rename &&

		git checkout B^0 &&

		git -c merge.directoryRenames=true rebase --merge A &&

		git ls-files -s >out &&
		test_line_count = 5 out &&

		test_path_is_file y/d &&
		test_path_is_missing x/d
	)

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  7f699cd Modify l, add x/d

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> 7f699cd

HEAD is now at 6c5e67f Modify l, add x/d
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 4 - rebase --merge: directory rename detected

checking known breakage of 3401.5 'am: directory rename detected': 
	(
		cd dir-rename &&

		git checkout A^0 &&

		git format-patch -1 B &&

		git -c merge.directoryRenames=true am --3way 0001*.patch &&

		git ls-files -s >out &&
		test_line_count = 5 out &&

		test_path_is_file y/d &&
		test_path_is_missing x/d
	)

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  2e986bc Modify l, add x/d

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> 2e986bc

HEAD is now at cc01e42 Rename x to y, l to letters
0001-Modify-l-add-x-d.patch
Applying: Modify l, add x/d
Using index info to reconstruct a base tree...
A	l
Falling back to patching base and 3-way merge...
Merging:
cc01e42 Rename x to y, l to letters
virtual Modify l, add x/d
found 1 common ancestor:
virtual 4f45812d96b9febe1d7595b91de345b0a05fb0d4
File y/d doesn't exist. 
not ok 5 - am: directory rename detected # TODO known breakage

expecting success of 3401.6 'setup testcase where directory rename should NOT be detected': 
	test_create_repo no-dir-rename &&
	(
		cd no-dir-rename &&

		mkdir x &&
		test_seq  1 10 >x/a &&
		test_seq 11 20 >x/b &&
		test_seq 21 30 >x/c &&
		echo original >project_info &&
		git add x project_info &&
		git commit -m "Initial" &&

		git branch O &&
		git branch A &&
		git branch B &&

		git checkout A &&
		echo v2 >project_info &&
		git add project_info &&
		git commit -m "Modify project_info" &&

		git checkout B &&
		mkdir y &&
		git mv x/c y/c &&
		echo v1 >project_info &&
		git add project_info &&
		git commit -m "Rename x/c to y/c, modify project_info"
	)

Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3401-rebase-and-am-rename/no-dir-rename/.git/
[master (root-commit) 229b7b2] Initial
 Author: A U Thor <author@example.com>
 4 files changed, 31 insertions(+)
 create mode 100644 project_info
 create mode 100644 x/a
 create mode 100644 x/b
 create mode 100644 x/c
Switched to branch 'A'
[A 5e95ce3] Modify project_info
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'B'
[B 1f2a3f5] Rename x/c to y/c, modify project_info
 Author: A U Thor <author@example.com>
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename {x => y}/c (100%)
ok 6 - setup testcase where directory rename should NOT be detected

expecting success of 3401.7 'rebase --interactive: NO directory rename': 
	test_when_finished "git -C no-dir-rename rebase --abort" &&
	(
		cd no-dir-rename &&

		git checkout B^0 &&

		set_fake_editor &&
		test_must_fail env FAKE_LINES="1" git rebase --interactive A &&

		git ls-files -s >out &&
		test_line_count = 6 out &&

		test_path_is_file x/a &&
		test_path_is_file x/b &&
		test_path_is_missing x/c
	)

Note: switching to 'B^0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 1f2a3f5 Rename x/c to y/c, modify project_info
rebase -i script before editing:
pick 1f2a3f5 Rename x/c to y/c, modify project_info

rebase -i script after editing:
pick 1f2a3f5 Rename x/c to y/c, modify project_info
Rebasing (1/1)
error: could not apply 1f2a3f5... Rename x/c to y/c, modify project_info
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
Could not apply 1f2a3f5... Rename x/c to y/c, modify project_info
Auto-merging project_info
CONFLICT (content): Merge conflict in project_info
ok 7 - rebase --interactive: NO directory rename

expecting success of 3401.8 'rebase (am): NO directory rename': 
	test_when_finished "git -C no-dir-rename rebase --abort" &&
	(
		cd no-dir-rename &&

		git checkout B^0 &&

		set_fake_editor &&
		test_must_fail git rebase A &&

		git ls-files -s >out &&
		test_line_count = 6 out &&

		test_path_is_file x/a &&
		test_path_is_file x/b &&
		test_path_is_missing x/c
	)

HEAD is now at 1f2a3f5 Rename x/c to y/c, modify project_info
Rebasing (1/1)
error: could not apply 1f2a3f5... Rename x/c to y/c, modify project_info
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
Could not apply 1f2a3f5... Rename x/c to y/c, modify project_info
Auto-merging project_info
CONFLICT (content): Merge conflict in project_info
ok 8 - rebase (am): NO directory rename

expecting success of 3401.9 'rebase --merge: NO directory rename': 
	test_when_finished "git -C no-dir-rename rebase --abort" &&
	(
		cd no-dir-rename &&

		git checkout B^0 &&

		set_fake_editor &&
		test_must_fail git rebase --merge A &&

		git ls-files -s >out &&
		test_line_count = 6 out &&

		test_path_is_file x/a &&
		test_path_is_file x/b &&
		test_path_is_missing x/c
	)

HEAD is now at 1f2a3f5 Rename x/c to y/c, modify project_info
Rebasing (1/1)
error: could not apply 1f2a3f5... Rename x/c to y/c, modify project_info
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
Could not apply 1f2a3f5... Rename x/c to y/c, modify project_info
Auto-merging project_info
CONFLICT (content): Merge conflict in project_info
ok 9 - rebase --merge: NO directory rename

expecting success of 3401.10 'am: NO directory rename': 
	test_when_finished "git -C no-dir-rename am --abort" &&
	(
		cd no-dir-rename &&

		git checkout A^0 &&

		git format-patch -1 B &&

		test_must_fail git am --3way 0001*.patch &&

		git ls-files -s >out &&
		test_line_count = 6 out &&

		test_path_is_file x/a &&
		test_path_is_file x/b &&
		test_path_is_missing x/c
	)

Previous HEAD position was 1f2a3f5 Rename x/c to y/c, modify project_info
HEAD is now at 5e95ce3 Modify project_info
0001-Rename-x-c-to-y-c-modify-project_info.patch
Applying: Rename x/c to y/c, modify project_info
Using index info to reconstruct a base tree...
M	project_info
Falling back to patching base and 3-way merge...
Merging:
5e95ce3 Modify project_info
virtual Rename x/c to y/c, modify project_info
found 1 common ancestor:
virtual 70041a03917eeabc905137ab5853aed716a92bc6
Auto-merging project_info
CONFLICT (content): Merge conflict in project_info
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 Rename x/c to y/c, modify project_info
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
ok 10 - am: NO directory rename

# 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'
*** t3402-rebase-merge.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3402-rebase-merge/.git/
expecting success of 3402.1 'setup': 
	git add original &&
	git commit -m"initial" &&
	git branch side &&
	echo "11 $T" >>original &&
	git commit -a -m"master updates a bit." &&

	echo "12 $T" >>original &&
	git commit -a -m"master updates a bit more." &&

	git checkout side &&
	(echo "0 $T" && cat original) >renamed &&
	git add renamed &&
	git update-index --force-remove original &&
	git commit -a -m"side renames and edits." &&

	tr "[a-z]" "[A-Z]" <original >newfile &&
	git add newfile &&
	git commit -a -m"side edits further." &&
	git branch second-side &&

	tr "[a-m]" "[A-M]" <original >newfile &&
	rm -f original &&
	git commit -a -m"side edits once again." &&

	git branch test-rebase side &&
	git branch test-rebase-pick side &&
	git branch test-reference-pick side &&
	git branch test-conflicts side &&
	git checkout -b test-merge side

[master (root-commit) ea140ad] initial
 Author: A U Thor <author@example.com>
 1 file changed, 20 insertions(+)
 create mode 100644 original
[master 0d1f1e7] master updates a bit.
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+)
[master 0d71188] master updates a bit more.
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+)
Switched to branch 'side'
[side 2f3019a] side renames and edits.
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+)
 rename original => renamed (90%)
[side e99fe16] side edits further.
 Author: A U Thor <author@example.com>
 1 file changed, 20 insertions(+)
 create mode 100644 newfile
[side 5203c39] side edits once again.
 Author: A U Thor <author@example.com>
 1 file changed, 20 insertions(+), 20 deletions(-)
 rewrite newfile (100%)
Switched to a new branch 'test-merge'
ok 1 - setup

expecting success of 3402.2 'reference merge': 
	git merge -s recursive -m "reference merge" master

Merging:
5203c39 side edits once again.
virtual master
found 1 common ancestor:
ea140ad initial
Auto-merging renamed
Merge made by the 'recursive' strategy.
 renamed | 4 ++++
 1 file changed, 4 insertions(+)
ok 2 - reference merge

expecting success of 3402.3 'rebase': 
	git checkout test-rebase &&
	GIT_TRACE=1 git rebase --merge master

Switched to branch 'test-rebase'
trace: built-in: git rebase --merge master
trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout master' git checkout 0d71188ae780a7bcdc01eef0b7572f5c0a874c00
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
trace: run_command: git notes copy --for-rewrite=rebase
trace: built-in: git notes copy --for-rewrite=rebase

                                                                                
Successfully rebased and updated refs/heads/test-rebase.
ok 3 - rebase

expecting success of 3402.4 'test-rebase@{1} is pre rebase': 
	test $PRE_REBASE = $(git rev-parse test-rebase@{1})

ok 4 - test-rebase@{1} is pre rebase

expecting success of 3402.5 'merge and rebase should match': 
	git diff-tree -r test-rebase test-merge >difference &&
	if test -s difference
	then
		cat difference
		(exit 1)
	else
		echo happy
	fi

happy
ok 5 - merge and rebase should match

expecting success of 3402.6 'rebase the other way': 
	git reset --hard master &&
	git rebase --merge side

HEAD is now at 0d71188 master updates a bit more.
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/test-rebase.
ok 6 - rebase the other way

expecting success of 3402.7 'rebase -Xtheirs': 
	git checkout -b conflicting master~2 &&
	echo "AB $T" >> original &&
	git commit -mconflicting original &&
	git rebase -Xtheirs master &&
	grep AB original &&
	! grep 11 original

Switched to a new branch 'conflicting'
[conflicting 0a8644e] conflicting
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+)
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/conflicting.
AB A quick brown fox
ok 7 - rebase -Xtheirs

expecting success of 3402.8 'rebase -Xtheirs from orphan': 
	git checkout --orphan orphan-conflicting master~2 &&
	echo "AB $T" >> original &&
	git commit -morphan-conflicting original &&
	git rebase -Xtheirs master &&
	grep AB original &&
	! grep 11 original

Switched to a new branch 'orphan-conflicting'
[orphan-conflicting (root-commit) 9b6ca42] orphan-conflicting
 Author: A U Thor <author@example.com>
 1 file changed, 22 insertions(+)
 create mode 100644 original
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/orphan-conflicting.
AB A quick brown fox
ok 8 - rebase -Xtheirs from orphan

expecting success of 3402.9 'merge and rebase should match': 
	git diff-tree -r test-rebase test-merge >difference &&
	if test -s difference
	then
		cat difference
		(exit 1)
	else
		echo happy
	fi

happy
ok 9 - merge and rebase should match

expecting success of 3402.10 'picking rebase': 
	git reset --hard side &&
	git rebase --merge --onto master side^^ &&
	mb=$(git merge-base master HEAD) &&
	if test "$mb" = "$(git rev-parse master)"
	then
		echo happy
	else
		git show-branch
		(exit 1)
	fi &&
	f=$(git diff-tree --name-only HEAD^ HEAD) &&
	g=$(git diff-tree --name-only HEAD^^ HEAD^) &&
	case "$f,$g" in
	newfile,newfile)
		echo happy ;;
	*)
		echo "$f"
		echo "$g"
		(exit 1)
	esac

HEAD is now at 5203c39 side edits once again.
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/orphan-conflicting.
happy
happy
ok 10 - picking rebase

expecting success of 3402.11 'rebase -s funny -Xopt': 
	test_when_finished "rm -fr test-bin funny.was.run" &&
	mkdir test-bin &&
	cat >test-bin/git-merge-funny <<-EOF &&
	#!$SHELL_PATH
	case "\$1" in --opt) ;; *) exit 2 ;; esac
	shift &&
	>funny.was.run &&
	exec git merge-recursive "\$@"
	EOF
	chmod +x test-bin/git-merge-funny &&
	git reset --hard &&
	git checkout -b test-funny master^ &&
	test_commit funny &&
	(
		PATH=./test-bin:$PATH &&
		git rebase -s funny -Xopt master
	) &&
	test -f funny.was.run

HEAD is now at f1ff5e8 side edits once again.
Switched to a new branch 'test-funny'
[test-funny ca6f94b] funny
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 funny.t
Rebasing (1/1)
Merging 0d71188ae780a7bcdc01eef0b7572f5c0a874c00 with ca6f94bb7a89d97658a06b66a589785559f95166
Merging:
0d71188 master updates a bit more.
ca6f94b funny
found 1 common ancestor:
0d1f1e7 master updates a bit.

                                                                                
Successfully rebased and updated refs/heads/test-funny.
ok 11 - rebase -s funny -Xopt

expecting success of 3402.12 'rebase --skip works with two conflicts in a row': 
	git checkout second-side  &&
	tr "[A-Z]" "[a-z]" <newfile >tmp &&
	mv tmp newfile &&
	git commit -a -m"edit conflicting with side" &&
	tr "[d-f]" "[D-F]" <newfile >tmp &&
	mv tmp newfile &&
	git commit -a -m"another edit conflicting with side" &&
	test_must_fail git rebase --merge test-conflicts &&
	test_must_fail git rebase --skip &&
	git rebase --skip

Switched to branch 'second-side'
[second-side 9ce8800] edit conflicting with side
 Author: A U Thor <author@example.com>
 1 file changed, 20 insertions(+), 20 deletions(-)
 rewrite newfile (100%)
[second-side 821c677] another edit conflicting with side
 Author: A U Thor <author@example.com>
 1 file changed, 20 insertions(+), 20 deletions(-)
 rewrite newfile (100%)
Rebasing (1/2)
error: could not apply 9ce8800... edit conflicting with side
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
Could not apply 9ce8800... edit conflicting with side
Auto-merging newfile
CONFLICT (content): Merge conflict in newfile
Rebasing (2/2)
error: could not apply 821c677... another edit conflicting with side
Resolve all conflicts manually, mark them as resolved with
"git add/rm <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".
Could not apply 821c677... another edit conflicting with side
Auto-merging newfile
CONFLICT (content): Merge conflict in newfile

                                                                                
Successfully rebased and updated refs/heads/second-side.
ok 12 - rebase --skip works with two conflicts in a row

expecting success of 3402.13 '--reapply-cherry-picks': 
	git init repo &&

	# O(1-10) -- O(1-11) -- O(0-10) master
	#        \
	#         -- O(1-11) -- O(1-12) otherbranch

	printf "Line %d\n" $(test_seq 1 10) >repo/file.txt &&
	git -C repo add file.txt &&
	git -C repo commit -m "base commit" &&

	printf "Line %d\n" $(test_seq 1 11) >repo/file.txt &&
	git -C repo commit -a -m "add 11" &&

	printf "Line %d\n" $(test_seq 0 10) >repo/file.txt &&
	git -C repo commit -a -m "add 0 delete 11" &&

	git -C repo checkout -b otherbranch HEAD^^ &&
	printf "Line %d\n" $(test_seq 1 11) >repo/file.txt &&
	git -C repo commit -a -m "add 11 in another branch" &&

	printf "Line %d\n" $(test_seq 1 12) >repo/file.txt &&
	git -C repo commit -a -m "add 12 in another branch" &&

	# Regular rebase fails, because the 1-11 commit is deduplicated
	test_must_fail git -C repo rebase --merge master 2> err &&
	test_i18ngrep "error: could not apply.*add 12 in another branch" err &&
	git -C repo rebase --abort &&

	# With --reapply-cherry-picks, it works
	git -C repo rebase --merge --reapply-cherry-picks master

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t3402-rebase-merge/repo/.git/
[master (root-commit) b8e39df] base commit
 Author: A U Thor <author@example.com>
 1 file changed, 10 insertions(+)
 create mode 100644 file.txt
[master 8299f6d] add 11
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master 1bb0804] add 0 delete 11
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'otherbranch'
[otherbranch 0c54cd5] add 11 in another branch
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[otherbranch e97b80f] add 12 in another branch
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Auto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Rebasing (1/1)
error: could not apply e97b80f... add 12 in another branch
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/otherbranch.
ok 13 - --reapply-cherry-picks

expecting success of 3402.14 '--reapply-cherry-picks refrains from reading unneeded blobs': 
	git init server &&

	# O(1-10) -- O(1-11) -- O(1-12) master
	#        \
	#         -- O(0-10) otherbranch

	printf "Line %d\n" $(test_seq 1 10) >server/file.txt &&
	git -C server add file.txt &&
	git -C server commit -m "merge base" &&

	printf "Line %d\n" $(test_seq 1 11) >server/file.txt &&
	git -C server commit -a -m "add 11" &&

	printf "Line %d\n" $(test_seq 1 12) >server/file.txt &&
	git -C server commit -a -m "add 12" &&

	git -C server checkout -b otherbranch HEAD^^ &&
	printf "Line %d\n" $(test_seq 0 10) >server/file.txt &&
	git -C server commit -a -m "add 0" &&

	test_config -C server uploadpack.allowfilter 1 &&
	test_config -C server uploadpack.allowanysha1inwant 1 &&

	git clone --filter=blob:none "file://$(pwd)/server" client &&
	git -C client checkout origin/master &&
	git -C client checkout origin/otherbranch &&

	# Sanity check to ensure that the blobs from the merge base and "add
	# 11" are missing
	git -C client rev-list --objects --all --missing=print >missing_list &&
	MERGE_BASE_BLOB=$(git -C server rev-parse master^^:file.txt) &&
	ADD_11_BLOB=$(git -C server rev-parse master^:file.txt) &&
	grep "[?]$MERGE_BASE_BLOB" missing_list &&
	grep "[?]$ADD_11_BLOB" missing_list &&

	git -C client rebase --merge --reapply-cherry-picks origin/master &&

	# The blob from the merge base had to be fetched, but not "add 11"
	git -C client rev-list --objects --all --missing=print >missing_list &&
	! grep "[?]$MERGE_BASE_BLOB" missing_list &&
	grep "[?]$ADD_11_BLOB" missing_list

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial 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.t3402-rebase-merge/server/.git/
[master (root-commit) 1995021] merge base
 Author: A U Thor <author@example.com>
 1 file changed, 10 insertions(+)
 create mode 100644 file.txt
[master 75d8da0] add 11
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master a380afa] add 12
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Switched to a new branch 'otherbranch'
[otherbranch d365b26] add 0
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Cloning into 'client'...
Note: switching to 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 a380afa add 12
Previous HEAD position was a380afa add 12
HEAD is now at d365b26 add 0
?00935f183cbd9243998bd3f84ac67e18eff726a4
?8bf8891e216480d36945027a1d30bdbba5c96d90
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
?8bf8891e216480d36945027a1d30bdbba5c96d90
ok 14 - --reapply-cherry-picks refrains from reading unneeded blobs

# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3403-rebase-skip.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3403-rebase-skip/.git/
expecting success of 3403.1 'setup': 
	echo hello > hello &&
	git add hello &&
	git commit -m "hello" &&
	git branch skip-reference &&

	echo world >> hello &&
	git commit -a -m "hello world" &&
	echo goodbye >> hello &&
	git commit -a -m "goodbye" &&
	git tag goodbye &&

	git checkout --detach &&
	git checkout HEAD^ . &&
	test_tick &&
	git commit -m reverted-goodbye &&
	git tag reverted-goodbye &&
	git checkout goodbye &&
	test_tick &&
	GIT_AUTHOR_NAME="Another Author" \
		GIT_AUTHOR_EMAIL="another.author@example.com" \
		git commit --amend --no-edit -m amended-goodbye &&
	test_tick &&
	git tag amended-goodbye &&

	git checkout -f skip-reference &&
	echo moo > hello &&
	git commit -a -m "we should skip this" &&
	echo moo > cow &&
	git add cow &&
	git commit -m "this should not be skipped" &&
	git branch pre-rebase skip-reference &&
	git branch skip-merge skip-reference
	
[master (root-commit) 7b3be24] hello
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 hello
[master 5a0b053] hello world
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[master 64bec18] goodbye
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
HEAD is now at 64bec18 goodbye
Updated 1 path from f7e12fd
[detached HEAD 1f15beb] reverted-goodbye
 Author: A U Thor <author@example.com>
 1 file changed, 1 deletion(-)
Previous HEAD position was 1f15beb reverted-goodbye
HEAD is now at 64bec18 goodbye
[detached HEAD f61b1e0] amended-goodbye
 Author: A U Thor <author@example.com>
 Date: Fri Apr 1 13:14:15 2005 +0200
 1 file changed, 1 insertion(+)
Previous HEAD position was f61b1e0 amended-goodbye
Switched to branch 'skip-reference'
[skip-reference 847c4cd] we should skip this
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[skip-reference c443746] this should not be skipped
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 cow
ok 1 - setup

expecting success of 3403.2 'rebase with git am -3 (default)': 
	test_must_fail git rebase master

Rebasing (1/2)
error: could not apply 847c4cd... we should skip this
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".
Could not apply 847c4cd... we should skip this
Auto-merging hello
CONFLICT (content): Merge conflict in hello
ok 2 - rebase with git am -3 (default)

expecting success of 3403.3 'rebase --skip can not be used with other options': 
	test_must_fail git rebase -v --skip &&
	test_must_fail git rebase --skip -v

usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

ok 3 - rebase --skip can not be used with other options

expecting success of 3403.4 'rebase --skip with am -3': 
	git rebase --skip
	
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/skip-reference.
ok 4 - rebase --skip with am -3

expecting success of 3403.5 'rebase moves back to skip-reference': 
	test refs/heads/skip-reference = $(git symbolic-ref HEAD) &&
	git branch post-rebase &&
	git reset --hard pre-rebase &&
	test_must_fail git rebase master &&
	echo "hello" > hello &&
	git add hello &&
	git rebase --continue &&
	test refs/heads/skip-reference = $(git symbolic-ref HEAD) &&
	git reset --hard post-rebase

HEAD is now at c443746 this should not be skipped
Rebasing (1/2)
error: could not apply 847c4cd... we should skip this
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".
Could not apply 847c4cd... we should skip this
Auto-merging hello
CONFLICT (content): Merge conflict in hello
[detached HEAD 0283955] we should skip this
 Author: A U Thor <author@example.com>
 1 file changed, 2 deletions(-)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/skip-reference.
HEAD is now at 86a691d this should not be skipped
ok 5 - rebase moves back to skip-reference

expecting success of 3403.6 'checkout skip-merge': git checkout -f skip-merge
Switched to branch 'skip-merge'
ok 6 - checkout skip-merge

expecting success of 3403.7 'rebase with --merge': 
	test_must_fail git rebase --merge master

Rebasing (1/2)
error: could not apply 847c4cd... we should skip this
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".
Could not apply 847c4cd... we should skip this
Auto-merging hello
CONFLICT (content): Merge conflict in hello
ok 7 - rebase with --merge

expecting success of 3403.8 'rebase --skip with --merge': 
	git rebase --skip

Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/skip-merge.
ok 8 - rebase --skip with --merge

expecting success of 3403.9 'merge and reference trees equal': 
	test -z "$(git diff-tree skip-merge skip-reference)"

ok 9 - merge and reference trees equal

expecting success of 3403.10 'moved back to branch correctly': 
	test refs/heads/skip-merge = $(git symbolic-ref HEAD)

ok 10 - moved back to branch correctly

expecting success of 3403.11 'correct advice upon picking empty commit': 
	test_when_finished "git rebase --abort" &&
	test_must_fail git rebase -i --onto goodbye \
		amended-goodbye^ amended-goodbye 2>err &&
	test_i18ngrep "previous cherry-pick is now empty" err &&
	test_i18ngrep "git rebase --skip" err &&
	test_must_fail git commit &&
	test_i18ngrep "git rebase --skip" err

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Rebasing (1/1)
The previous cherry-pick is now empty, possibly due to conflict resolution.
Otherwise, please use 'git rebase --skip'
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git rebase --skip'
interactive rebase in progress; onto 64bec18
Last command done (1 command done):
   pick f61b1e0 amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

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)
Otherwise, please use 'git rebase --skip'
ok 11 - correct advice upon picking empty commit

expecting success of 3403.12 'correct authorship when committing empty pick': 
	test_when_finished "git rebase --abort" &&
	test_must_fail git rebase -i --onto goodbye \
		amended-goodbye^ amended-goodbye &&
	git commit --allow-empty &&
	git log --pretty=format:"%an <%ae>%n%ad%B" -1 amended-goodbye >expect &&
	git log --pretty=format:"%an <%ae>%n%ad%B" -1 HEAD >actual &&
	test_cmp expect actual

Rebasing (1/1)
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git rebase --skip'
interactive rebase in progress; onto 64bec18
Last command done (1 command done):
   pick f61b1e0 amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

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)
Could not apply f61b1e0... amended-goodbye
[detached HEAD 4fc3bb3] amended-goodbye
 Author: A U Thor <author@example.com>
 Date: Fri Apr 1 13:14:15 2005 +0200
ok 12 - correct authorship when committing empty pick

expecting success of 3403.13 'correct advice upon rewording empty commit': 
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="reword 1" git rebase -i \
			--onto goodbye amended-goodbye^ amended-goodbye 2>err
	) &&
	test_i18ngrep "previous cherry-pick is now empty" err &&
	test_i18ngrep "git rebase --skip" err &&
	test_must_fail git commit &&
	test_i18ngrep "git rebase --skip" err

rebase -i script before editing:
pick f61b1e0 amended-goodbye

rebase -i script after editing:
reword f61b1e0 amended-goodbye
Rebasing (1/1)
The previous cherry-pick is now empty, possibly due to conflict resolution.
Otherwise, please use 'git rebase --skip'
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git rebase --skip'
interactive rebase in progress; onto 64bec18
Last command done (1 command done):
   reword f61b1e0 amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

nothing added to commit but untracked files present (use "git add" to track)
Otherwise, please use 'git rebase --skip'
ok 13 - correct advice upon rewording empty commit

expecting success of 3403.14 'correct advice upon editing empty commit': 
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="edit 1" git rebase -i \
			--onto goodbye amended-goodbye^ amended-goodbye 2>err
	) &&
	test_i18ngrep "previous cherry-pick is now empty" err &&
	test_i18ngrep "git rebase --skip" err &&
	test_must_fail git commit &&
	test_i18ngrep "git rebase --skip" err

rebase -i script before editing:
pick f61b1e0 amended-goodbye

rebase -i script after editing:
edit f61b1e0 amended-goodbye
Rebasing (1/1)
The previous cherry-pick is now empty, possibly due to conflict resolution.
Otherwise, please use 'git rebase --skip'
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git rebase --skip'
interactive rebase in progress; onto 64bec18
Last command done (1 command done):
   edit f61b1e0 amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

nothing added to commit but untracked files present (use "git add" to track)
Otherwise, please use 'git rebase --skip'
ok 14 - correct advice upon editing empty commit

expecting success of 3403.15 'correct advice upon cherry-picking an empty commit during a rebase': 
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 exec_git_cherry-pick_amended-goodbye" \
			git rebase -i goodbye^ goodbye 2>err
	) &&
	test_i18ngrep "previous cherry-pick is now empty" err &&
	test_i18ngrep "git cherry-pick --skip" err &&
	test_must_fail git commit 2>err &&
	test_i18ngrep "git cherry-pick --skip" err

rebase -i script before editing:
pick 64bec18 goodbye

rebase -i script after editing:
pick 64bec18 goodbye
exec git cherry-pick amended-goodbye
interactive rebase in progress; onto 5a0b053
Last commands done (2 commands done):
   pick 64bec18 goodbye
   exec git cherry-pick amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

nothing added to commit but untracked files present (use "git add" to track)
The previous cherry-pick is now empty, possibly due to conflict resolution.
Otherwise, please use 'git cherry-pick --skip'
interactive rebase in progress; onto 5a0b053
Last commands done (2 commands done):
   pick 64bec18 goodbye
   exec git cherry-pick amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

nothing added to commit but untracked files present (use "git add" to track)
Otherwise, please use 'git cherry-pick --skip'
ok 15 - correct advice upon cherry-picking an empty commit during a rebase

expecting success of 3403.16 'correct advice upon multi cherry-pick picking an empty commit during a rebase': 
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 exec_git_cherry-pick_goodbye_amended-goodbye" \
			git rebase -i goodbye^^ goodbye 2>err
	) &&
	test_i18ngrep "previous cherry-pick is now empty" err &&
	test_i18ngrep "git cherry-pick --skip" err &&
	test_must_fail git commit 2>err &&
	test_i18ngrep "git cherry-pick --skip" err

rebase -i script before editing:
pick 5a0b053 hello world
pick 64bec18 goodbye

rebase -i script after editing:
pick 5a0b053 hello world
exec git cherry-pick goodbye amended-goodbye
[detached HEAD 67e8618] goodbye
 Author: A U Thor <author@example.com>
 Date: Fri Apr 1 13:14:15 2005 +0200
 1 file changed, 1 insertion(+)
interactive rebase in progress; onto 7b3be24
Last commands done (2 commands done):
   pick 5a0b053 hello world
   exec git cherry-pick goodbye amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

nothing added to commit but untracked files present (use "git add" to track)
The previous cherry-pick is now empty, possibly due to conflict resolution.
Otherwise, please use 'git cherry-pick --skip'
interactive rebase in progress; onto 7b3be24
Last commands done (2 commands done):
   pick 5a0b053 hello world
   exec git cherry-pick goodbye amended-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

nothing added to commit but untracked files present (use "git add" to track)
Otherwise, please use 'git cherry-pick --skip'
ok 16 - correct advice upon multi cherry-pick picking an empty commit during a rebase

expecting success of 3403.17 'fixup that empties commit fails': 
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 fixup 2" git rebase -i \
			goodbye^ reverted-goodbye
	)

rebase -i script before editing:
pick 64bec18 goodbye
pick 1f15beb reverted-goodbye

rebase -i script after editing:
pick 64bec18 goodbye
fixup 1f15beb reverted-goodbye
Rebasing (2/2)
You asked to amend the most recent commit, but doing so would make
it empty. You can repeat your command with --allow-empty, or you can
remove the commit entirely with "git reset HEAD^".
interactive rebase in progress; onto 5a0b053
Last commands done (2 commands done):
   pick 64bec18 goodbye
   fixup 1f15beb reverted-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

No changes
Could not apply 1f15beb... reverted-goodbye
ok 17 - fixup that empties commit fails

expecting success of 3403.18 'squash that empties commit fails': 
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 squash 2" git rebase -i \
			goodbye^ reverted-goodbye
	)

rebase -i script before editing:
pick 64bec18 goodbye
pick 1f15beb reverted-goodbye

rebase -i script after editing:
pick 64bec18 goodbye
squash 1f15beb reverted-goodbye
Rebasing (2/2)
You asked to amend the most recent commit, but doing so would make
it empty. You can repeat your command with --allow-empty, or you can
remove the commit entirely with "git reset HEAD^".
interactive rebase in progress; onto 5a0b053
Last commands done (2 commands done):
   pick 64bec18 goodbye
   squash 1f15beb reverted-goodbye
No commands remaining.
You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actual
	err
	expect
	fake-editor.sh

No changes
Could not apply 1f15beb... reverted-goodbye
ok 18 - squash that empties commit fails

expecting success of 3403.19 '$EDITOR and friends are unchanged': 
	test_editor_unchanged

ok 19 - $EDITOR and friends are unchanged

# passed all 19 test(s)
1..19
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3311-notes-merge-fanout.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3311-notes-merge-fanout/.git/
expecting success of 3311.1 'setup a few initial commits with notes (notes ref: x)': 
	git config core.notesRef refs/notes/x &&
	for i in 1 2 3 4 5
	do
		test_commit "commit$i" >/dev/null &&
		git notes add -m "notes for commit$i" || return 1
	done &&

	git log --format=oneline &&

	test_oid_cache <<-EOF
	hash05a sha1:aed91155c7a72c2188e781fdf40e0f3761b299db
	hash04a sha1:99fab268f9d7ee7b011e091a436c78def8eeee69
	hash03a sha1:953c20ae26c7aa0b428c20693fe38bc687f9d1a9
	hash02a sha1:6358796131b8916eaa2dde6902642942a1cb37e1
	hash01a sha1:b02d459c32f0e68f2fe0981033bb34f38776ba47
	hash03b sha1:9f506ee70e20379d7f78204c77b334f43d77410d
	hash02b sha1:23a47d6ea7d589895faf800752054818e1e7627b

	hash05a sha256:3aae5d26619d96dba93795f66325716e4cbc486884f95a6adee8fb0615a76d12
	hash04a sha256:07e43dd3d89fe634d3252e253b426aacc7285a995dcdbcf94ac284060a1122cf
	hash03a sha256:26fb52eaa7f4866bf735254587be7b31209ec10e525912ffd8e8ba549ba892ff
	hash02a sha256:b57ebdf23634e750dcbc4b9a37991d70f90830d568a0e4529ce9de0a3f8d605c
	hash01a sha256:377903b1572bd5117087a5518fcb1011b5053cccbc59e3c7c823a8615204173b
	hash03b sha256:04e7b392fda7c185bfa17c9179b56db732edc2dc2b3bf887308dcaabb717270d
	hash02b sha256:66099aaaec49a485ed990acadd9a9b81232ea592079964113d8f581ff69ef50b
	EOF

f6db73397fcc379ea00d1fc17a35abb42027a69a commit5
157e8cc0aeac5befb302d276f2e706112bf6e413 commit4
e0851358fb6b4703f23d74ef964bc4491bec7ab9 commit3
94955c5cd7e5662c6ab40c323ecdfac458c47435 commit2
ef004cfa88883bb87e030b6196934dd90e3548d2 commit1
ok 1 - setup a few initial commits with notes (notes ref: x)

expecting success of 3311.2 'sanity check (x)': 
	verify_notes x commit5 &&
	verify_no_fanout x

157e8cc0aeac5befb302d276f2e706112bf6e413
94955c5cd7e5662c6ab40c323ecdfac458c47435
e0851358fb6b4703f23d74ef964bc4491bec7ab9
ef004cfa88883bb87e030b6196934dd90e3548d2
f6db73397fcc379ea00d1fc17a35abb42027a69a
ok 2 - sanity check (x)

expecting success of 3311.3 'Add a few hundred commits w/notes to trigger fanout (x -> y)': 
	git update-ref refs/notes/y refs/notes/x &&
	git config core.notesRef refs/notes/y &&
	test_commit_bulk --start=6 --id=commit $((num - 5)) &&
	i=0 &&
	while test $i -lt $((num - 5))
	do
		git notes add -m "notes for commit$i" HEAD~$i || return 1
		i=$((i + 1))
	done &&
	test "$(git rev-parse refs/notes/y)" != "$(git rev-parse refs/notes/x)" &&
	# Expected number of commits and notes
	test $(git rev-list HEAD | wc -l) = $num &&
	test $(git notes list | wc -l) = $num &&
	# 5 first notes unchanged
	verify_notes y commit5

f6db73397fcc379ea00d1fc17a35abb42027a69a
fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects:       5000
Total objects:          885 (         0 duplicates                  )
      blobs  :          295 (         0 duplicates          0 deltas of          0 attempts)
      trees  :          295 (         0 duplicates        289 deltas of        289 attempts)
      commits:          295 (         0 duplicates          0 deltas of          0 attempts)
      tags   :            0 (         0 duplicates          0 deltas of          0 attempts)
Total branches:           1 (         1 loads     )
      marks:           1024 (         0 unique    )
      atoms:            300
Memory total:          2434 KiB
       pools:          2122 KiB
     objects:           312 KiB
---------------------------------------------------------------------
pack_report: getpagesize()            =       4096
pack_report: core.packedGitWindowSize =   33554432
pack_report: core.packedGitLimit      =  268435456
pack_report: pack_used_ctr            =        296
pack_report: pack_mmap_calls          =          1
pack_report: pack_open_windows        =          1 /          1
pack_report: pack_mapped              =      86456 /      86456
---------------------------------------------------------------------

ok 3 - Add a few hundred commits w/notes to trigger fanout (x -> y)

expecting success of 3311.4 'notes tree has fanout (y)': verify_fanout y
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/7e8cc0aeac5befb302d276f2e706112bf6e413
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f6/db73397fcc379ea00d1fc17a35abb42027a69a
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 4 - notes tree has fanout (y)

expecting success of 3311.5 'No-op merge (already included) (x => y)': 
	git update-ref refs/notes/m refs/notes/y &&
	git config core.notesRef refs/notes/m &&
	git notes merge x &&
	test "$(git rev-parse refs/notes/m)" = "$(git rev-parse refs/notes/y)"

Already up to date!
ok 5 - No-op merge (already included) (x => y)

expecting success of 3311.6 'Fast-forward merge (y => x)': 
	git update-ref refs/notes/m refs/notes/x &&
	git notes merge y &&
	test "$(git rev-parse refs/notes/m)" = "$(git rev-parse refs/notes/y)"

Fast-forward
ok 6 - Fast-forward merge (y => x)

expecting success of 3311.7 'change some of the initial 5 notes (x -> z)': 
	git update-ref refs/notes/z refs/notes/x &&
	git config core.notesRef refs/notes/z &&
	git notes add -f -m "new notes for commit2" commit2 &&
	git notes append -m "appended notes for commit3" commit3 &&
	git notes remove commit4 &&
	git notes remove commit5 &&
	verify_notes z commit5

Overwriting existing notes for object 94955c5cd7e5662c6ab40c323ecdfac458c47435
Removing note for object commit4
Removing note for object commit5
ok 7 - change some of the initial 5 notes (x -> z)

expecting success of 3311.8 'notes tree has no fanout (z)': verify_no_fanout z
94955c5cd7e5662c6ab40c323ecdfac458c47435
e0851358fb6b4703f23d74ef964bc4491bec7ab9
ef004cfa88883bb87e030b6196934dd90e3548d2
ok 8 - notes tree has no fanout (z)

expecting success of 3311.9 'successful merge without conflicts (y => z)': 
	git update-ref refs/notes/m refs/notes/z &&
	git config core.notesRef refs/notes/m &&
	git notes merge y &&
	verify_notes m commit5 &&
	# x/y/z unchanged
	verify_notes x commit5 &&
	verify_notes y commit5 &&
	verify_notes z commit5

ok 9 - successful merge without conflicts (y => z)

expecting success of 3311.10 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 10 - notes tree still has fanout after merge (m)

expecting success of 3311.11 'introduce conflicting changes (y -> w)': 
	git update-ref refs/notes/w refs/notes/y &&
	git config core.notesRef refs/notes/w &&
	git notes add -f -m "other notes for commit1" commit1 &&
	git notes add -f -m "other notes for commit3" commit3 &&
	git notes add -f -m "other notes for commit4" commit4 &&
	git notes remove commit5 &&
	verify_notes w commit5

Overwriting existing notes for object ef004cfa88883bb87e030b6196934dd90e3548d2
Overwriting existing notes for object e0851358fb6b4703f23d74ef964bc4491bec7ab9
Overwriting existing notes for object 157e8cc0aeac5befb302d276f2e706112bf6e413
Removing note for object commit5
ok 11 - introduce conflicting changes (y -> w)

expecting success of 3311.12 'successful merge using "ours" strategy (z => w)': 
	git update-ref refs/notes/m refs/notes/w &&
	git config core.notesRef refs/notes/m &&
	git notes merge -s ours z &&
	verify_notes m commit5 &&
	# w/x/y/z unchanged
	verify_notes w commit5 &&
	verify_notes x commit5 &&
	verify_notes y commit5 &&
	verify_notes z commit5

Using local notes for 157e8cc0aeac5befb302d276f2e706112bf6e413
Using local notes for e0851358fb6b4703f23d74ef964bc4491bec7ab9
ok 12 - successful merge using "ours" strategy (z => w)

expecting success of 3311.13 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/7e8cc0aeac5befb302d276f2e706112bf6e413
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 13 - notes tree still has fanout after merge (m)

expecting success of 3311.14 'successful merge using "theirs" strategy (z => w)': 
	git update-ref refs/notes/m refs/notes/w &&
	git notes merge -s theirs z &&
	verify_notes m commit5 &&
	# w/x/y/z unchanged
	verify_notes w commit5 &&
	verify_notes x commit5 &&
	verify_notes y commit5 &&
	verify_notes z commit5

Using remote notes for 157e8cc0aeac5befb302d276f2e706112bf6e413
Using remote notes for e0851358fb6b4703f23d74ef964bc4491bec7ab9
ok 14 - successful merge using "theirs" strategy (z => w)

expecting success of 3311.15 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 15 - notes tree still has fanout after merge (m)

expecting success of 3311.16 'successful merge using "union" strategy (z => w)': 
	git update-ref refs/notes/m refs/notes/w &&
	git notes merge -s union z &&
	verify_notes m commit5 &&
	# w/x/y/z unchanged
	verify_notes w commit5 &&
	verify_notes x commit5 &&
	verify_notes y commit5 &&
	verify_notes z commit5

Concatenating local and remote notes for 157e8cc0aeac5befb302d276f2e706112bf6e413
Concatenating local and remote notes for e0851358fb6b4703f23d74ef964bc4491bec7ab9
ok 16 - successful merge using "union" strategy (z => w)

expecting success of 3311.17 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/7e8cc0aeac5befb302d276f2e706112bf6e413
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 17 - notes tree still has fanout after merge (m)

expecting success of 3311.18 'successful merge using "cat_sort_uniq" strategy (z => w)': 
	git update-ref refs/notes/m refs/notes/w &&
	git notes merge -s cat_sort_uniq z &&
	verify_notes m commit5 &&
	# w/x/y/z unchanged
	verify_notes w commit5 &&
	verify_notes x commit5 &&
	verify_notes y commit5 &&
	verify_notes z commit5

Concatenating unique lines in local and remote notes for 157e8cc0aeac5befb302d276f2e706112bf6e413
Concatenating unique lines in local and remote notes for e0851358fb6b4703f23d74ef964bc4491bec7ab9
ok 18 - successful merge using "cat_sort_uniq" strategy (z => w)

expecting success of 3311.19 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/7e8cc0aeac5befb302d276f2e706112bf6e413
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 19 - notes tree still has fanout after merge (m)

expecting success of 3311.20 'fails to merge using "manual" strategy (z => w)': 
	git update-ref refs/notes/m refs/notes/w &&
	test_must_fail git notes merge z

Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'.
Auto-merging notes for 157e8cc0aeac5befb302d276f2e706112bf6e413
CONFLICT (delete/modify): Notes for object 157e8cc0aeac5befb302d276f2e706112bf6e413 deleted in refs/notes/z and modified in refs/notes/m. Version from refs/notes/m left in tree.
Auto-merging notes for e0851358fb6b4703f23d74ef964bc4491bec7ab9
CONFLICT (content): Merge conflict in notes for object e0851358fb6b4703f23d74ef964bc4491bec7ab9
ok 20 - fails to merge using "manual" strategy (z => w)

expecting success of 3311.21 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/7e8cc0aeac5befb302d276f2e706112bf6e413
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 21 - notes tree still has fanout after merge (m)

expecting success of 3311.22 'verify conflict entries (with no fanout)': 
	ls .git/NOTES_MERGE_WORKTREE >output_conflicts &&
	test_cmp expect_conflicts output_conflicts &&
	( for f in $(cat expect_conflicts); do
		test_cmp "expect_conflict_$f" ".git/NOTES_MERGE_WORKTREE/$f" ||
		exit 1
	done ) &&
	# Verify that current notes tree (pre-merge) has not changed (m == w)
	test "$(git rev-parse refs/notes/m)" = "$(git rev-parse refs/notes/w)"

ok 22 - verify conflict entries (with no fanout)

expecting success of 3311.23 'resolve and finalize merge (z => w)': 
	cat >.git/NOTES_MERGE_WORKTREE/$commit_sha3 <<EOF &&
other notes for commit3

appended notes for commit3
EOF
	git notes merge --commit &&
	verify_notes m commit5 &&
	# w/x/y/z unchanged
	verify_notes w commit5 &&
	verify_notes x commit5 &&
	verify_notes y commit5 &&
	verify_notes z commit5

ok 23 - resolve and finalize merge (z => w)

expecting success of 3311.24 'notes tree still has fanout after merge (m)': verify_fanout m
00/59a2ff8988844dd700659efccfd6743632f608
00/f8b74df8cda7203edb38223fe6e88ccf9e4867
02/96deddcaab6e784e59aa39dd1a8d20aefd16b7
02/e82a8dbc4055adb9de6a9659582c396e5a405c
03/0053ed24c57da4943b57df551d320cda39d301
04/fa40d6837978ceac40e98a0477254b79ff6109
05/a2ed5d9c61c6cf4ba308a0e07cac2a429aff65
06/a01ff41646bc048a05917f15e10fee340f767c
06/c14dad0e5fd835685f33ad970d094a43e1cedc
06/e1bb3951a38f7376405b778091cd7eadec203c
09/9a5404b8f2c60ab4b2a7cf1ebc9cdd69fd1fa9
0a/9e6cecb44350f1408a06cd59686b5cb1fa4d79
0c/9e3b6f605491b12a1cde5ec246115233f0f5fd
0e/77e9a284277632ab6590d1f9b0f86d399c461e
0e/7bc46a7af0b651a90cd01852eefac5d764dbc1
0f/63b6e81d3b18fb134161f627844e9e5a2d942a
0f/d39fd6ef715bb3a0b6c163199e572a7daa7af2
0f/dfaad743779a13fea86b5092855460a1d063fe
11/4fc5a9d7890b4a2d5ec8276dda69e37e5e616c
11/768aa383e7caa89f5a859593052eda5782f73c
11/906a39ecfe8796cae0e0853f06c2c335868843
12/5a36192dc2255282d7d1800dec2a340d236a9b
12/907a70732802196c1a0ca807a108eaa29adec5
13/42db3bf0da6aed591bc732c1746073ff06b0f3
15/7e8cc0aeac5befb302d276f2e706112bf6e413
15/b9d90d3c3c6f73deacc4d9c171752b6b0d581f
17/7c1b213fa7ebafc44c50a935e6c176b79360df
18/9334c4b88d99963170854583fc084397152338
19/8490da44fc075db7c29686ed3d75f9eced094a
19/eab2791c316642c620b2494c2dce003beee3d4
1a/50d1559b52e47799dce956a3ef59427b529e48
1a/98e69358bfe77335598c444880178786f250f3
1b/09302a3d79221b5923891bbdecdf6bf5c32dc4
1c/256bbec2954ce4bbd3aa1ec894b00619c87d59
1c/ec8d2b2103afe07295972d513c3f4abc898607
1d/22d9f08076b2a7fc11d1df4fbf5dbb1bc5f77f
1e/1532b6aee517f7d4fbfbc9635d18a10b12fde2
1f/4329544f45b3a5ed56c5a1aca07b22a4999fbb
1f/7c2e169ef55c9e168464bfe083076dbfb6690f
1f/80b24e9c4875cbd559fb8d9434de1850c52c7e
21/eb95433c63f657f4feb61b78b91ed2fe53574c
22/66ca4aaa709bb00bf269087d8e13a54042a93d
22/a8913746147a11a5828aa70482fa6fc1fff2a1
23/6aa09ca3248e4bcde6ed9780fe1e0e17f4e62c
23/c51031b7b5ff34b5cd75bdae5a21bb8dc387ae
23/e92f35ff959ee71439822b19c93027ce677bc8
24/f5d4d513327acad4f00462fe39bc96ed9aec9f
28/fca858f4bdf40159e4fa5a63846b0aceb7431a
29/38a35e6813c7205e7ad62ee37e2a6cc9d36a1f
2b/a7acefc08f3462eb12453a8bb5521544905334
2c/75f53ac534a324324b1ff15cefcd70e7afa646
2d/65622d1ffee087504b1cf59a6d6bdbb9552760
2d/9e37898a0e742a0163855935118ab9af5951a8
2d/c1daa14d2d350677e34ef5fe76509f6e55063d
2d/d18e98a3cc782944a568636289c160d81fd5a1
30/45340fd90419dd2f5690d1c4d8633c70248bd9
32/011ba8b26d0e39c354091b5d18b640bdaa9ec0
32/39026a8940b414239faf0d77e274112d68d96d
32/5dab4afdab3a8b7e7b3691f9e5623d72e6ba95
32/67715033f21dbf69f361ad1f2373e78065949d
34/40ffcbed4ba8626e99d1fd5de37486e336c4fa
35/56cd79d6de9c14ac5e790317e96b48cf28a6e5
35/e40ca1583f193dfb98af23e284a80de6fb7484
36/63d047011bfa8f85a3503c9f54deb1a09d5adf
37/e9a73943fb52b3af6afd3eaa0901992a63cfff
38/07896e9e661a2e84151e396d31fd34796d1f6f
39/65ddde0fd33b440db683e8802fe0ebcb64094c
39/916af9733548bdbf3c7899a97969fdc1ef2e99
39/afd70fce5e8eb6d92a041f1339d96655f2b0f6
39/c5f743e3dc9758a4ac40bfee0fa1d1dcfda822
3b/64761fbc713b657deb969b9855343c0d7eaa2f
3c/066e203e841ea3c7efc4be6d87b5f719704acb
3c/e86c1beb71106283a293ac353ce61ab3096736
3e/c22ce4f6c24d44b2a0a1410a39d1218c184b50
3f/28341a483b5f2d01ffdee0cc680f79f3f7e571
40/b1ffbbe7a0ddad705c9897a8548a62e1f4876a
41/a3870799c63de3688b300bdbaaaa6355ff24fb
42/a4892a296f36eadfceb9d264f6e600703bf688
43/15150561c443e54ab895a121e3c59ee39ff170
43/da7a31eba4b4d3108e782c779cdf94b6bec116
44/e3b4af0aa9e1af2f6db328754f45ac7726948c
46/4aeb5723c1062fc6ad55e3205f956e8a3ef3c5
46/59a8862a02c5227f122d894c2a001eca0d84f9
47/dd87a8e555bd925c86bc96989593e08968b7b1
48/14470a784d66e0318a74ab08ea7202fc3fd4cc
4a/39c901540457bb249c18a4f94a8a0e59f0e6d1
4b/6059c8f1c9b70b70cfcfb4614f49b3c922ca6e
4b/87d5e91601208385a412a90deedaf14279452f
4b/ba369e6095f2c452c4d09f1358acdeaafeae76
4c/236aea851217323502e86ecc922143018837b0
4d/f312eda5f4fe7f8f4a2d9d9ca7b8d0c1fa64f5
4d/f5539d13cfe269d6558fbe78b1329b361b9590
4f/9fd239f6237bbe9dc0cc0949bc09ba2e0a71de
51/7516b737a8c858f54b5ce20ccdf922a9376cfa
51/ce3b9fc8560b53c1e3881e94b2a0c876f18031
52/0400c47b7fe950cac0119f3e0f39f77ea91f48
52/24d3a5dee327bf2df46d0439e377af58e4e4b7
54/6ad61cfdb3824e53156bc95274f47c52009d87
54/95af5c04ccbe4967c06508a4a30fe6944c3178
57/701dee98362e6576ba16ebb0f05c9b9e6c5c41
58/61ff7dcb74969510aa40908555fdfd43e9a607
59/6cfc19975cea95d3f9af95d3ec3822394d17c3
5c/bad73a40be1ee94eebf156cf3f1945aa3dad8d
5d/9d49249a3f5e6f8a2667ab2ef98bd873ea033f
60/1e442f4370db50da9a9266fb36f1df1855da4b
60/e04cb7f2669b592f1197d087b348f6eca6ff2a
62/151fb4b555eb4c92c1942da6b0717af8ba787a
64/fd88beb2d2d9f73e1a90d63c5e5bac131a540f
65/86726dc4df291efa46b1e2587f52c80a3ddbf6
66/2e2425a4c465e97a7dae3a3b7fab0d654ae315
66/babe5b113fb7a4290b198c980240154b392203
67/f28897fa34cf457d8e880b8a60a19bdc771239
67/f6dbb066bdb6658a3ca6f582c9fca2cb8a4b7e
68/bd8cd66f30a076bd6e9f67e9ab51fcca2a4e1b
68/e1d1c671c6161d8e2c149e748ef92bb5cfa665
68/fc05bece2383b55c77ece5900b5f4e4c40ba62
69/d6c2a2fbd139aba6359a9ccbfc0fe6efcdd690
6b/d2133f11f05075526130cb2a97c810b11bcb5e
6b/d2e279447bd40bd32b1a438dfd52a6fe2cf14b
6c/131adc529e2d3a59b7034ced7f99f169598411
6c/616feca94f10bf561251a17c16b7db4b1dbdde
6c/7461a7db47fab144addf95b814379832f4230c
6d/6c8808dfa5be2487402591dded1ad67d908a85
70/3dc5647be0fa24abf8ac8d5e9faed118ea31e6
70/e91c0fd3c8a7c524c051b8e8531c8286523915
72/80e9c59bbfcf7288d0df9636df54527880ee79
73/939a765953cbb48cb8cb1df6ccd062919eded1
74/c28b460bc1f4fc488ae27c0c767c90088ddbcb
74/deae17ac1eecf64f405e05e8e14e0dd6b30543
75/331eaadf68c823f6bc36873b625be470fdb9da
75/337f6597d6a984ce72b370db7ac08b11115954
76/1dedb54cfa4a530d2a8b6f0108b3630536d51c
79/64a617c4a2d1bb45850b48f774fc57b28fea5b
7a/0703d54958925e09013e04bd35cd19a078a90b
7a/a80f07beae9a2f0b8ccd703c32de6744fd051e
7b/21836a584eb1ee8ffecafa2d2ba02109ea2273
7d/815ea015cd551ab5de80879760defb47acea6c
7e/41915dad67d1585d33b56abf2c129432fcf426
7f/78a61938b36a24fd4431a12b22e3dd26702757
81/1322f632d38d635a20a148bb4c5f98b8c31d8c
81/83a1e8450e209464100603f2a9a0b8e574ca43
82/6d4be181ec8e60d819f4ff350dee4e501a4efa
82/85ee71b3bd8ffe7402db5940ebc2da7234a1c4
84/94e16f2929306d0a205b4a9cf34789ec5b52fe
85/94f94aaed77d8365eef9f0ff37e7da9c05d50c
86/700c1d3f3a0a31f2f954bb4188d398af2181db
86/dcde95eebb062f0ccf716c0d3b70614cdb16a6
88/7ac411f4b1bcc710eb561c61d18e3960e817cf
8a/015ae1ae0dac611406357e7e2b7d3b29b51447
8a/2d13657445f6056804c992cd8b46d1f2d9e08e
8a/788640a312a8bbc5bbd1d35b4fedacbcc0c00a
8a/a7d423d5a3e120d4d8c80980791ec2f209f131
8b/36d47cabd9aa85b7a7673e43c603ce6ba76df6
8c/e581e0bef54e004db3bc40b2f1079d24efdb96
8d/7f0f041fa3cb769b4f5f7ab8dea329e031971d
8d/b5bd40cac5f2043a94733d67313e392b5d9dc6
8e/50afaa02fd9bd744f061730cb8eedef4997d5d
8e/c3d3b6b7ee56e23a709f47db60f8561a9698ed
8f/ef91e52599676addb79aba4224c2c0eb8601a3
8f/f04a0672b445210fcb364650d74111c2fd82f5
8f/f5663227734a920cf085f0e0b76d5db14172f4
90/a84eeab5e3ce60421da43a623db6540b688a62
93/28a88723298c70ca14eaaa241613c9574e8b44
93/5152afbc3b4f67bb8d9ccd01b601c89a48e69e
94/1e1bccbf627604ca6af86ad3541dee480aab0e
94/2d87c0b27dd02c55b0112dab49b9be254473d2
94/955c5cd7e5662c6ab40c323ecdfac458c47435
96/3df12cc741f3004f8870a52fc5877bf9ca6013
96/7dd7f09c2f55dfb393c021ab6000a283cf068e
96/939443f19f5d8926e78e906c965b418d4c46d5
96/d5867ce179d5146ed9163e8eba2acabab83122
97/4217f2644a6e6fe401523c4f459f7c3689f9dd
99/decb49e0f56074881831727b906117a326be85
99/f6460ce4758ef60eff7abf0366f7bbfc9a8206
9a/492e74e1d2afda3d4043b8b9968a29c3c13bcc
9b/f30d1676260b8fc8bf519a4af4bc628402e95a
9e/4729bfc0f6b9b5aee0d630bafc299a19fdedf7
9e/aacc50711e24a8d7fb5734444338752cc979a5
9e/ca7d34b36ad5bfcd80ff2ac0b0b9a8fae850c6
9e/f8c372f29f8131739dc8eeab08f4323c54c47a
a2/0d16b51cc9287469c4a2f246acb5f0c21fc098
a2/16dcf6b46f5260b6cfff5721847e010c681e40
a3/60d5a1639d70627543138385781dbee95812c8
a4/d7fcdbcbac2799f0e87a5654df1e4c12345282
a6/f7090037e529277612903dde135889721b8d24
a7/01072f88f0fec15902916cbce38f3549cac0e6
a7/94f10e293f1434fe75766203a47d7e3d4d8c1d
a7/b062b1589ea7e3385124521c2d4751b44b0a4b
a8/60edaf1326a590c32dd4ddf4ea754b8ef5be34
ab/2db5d6e0a134ba2693c7cb74d0f41a95dbf5f3
ac/11791a26f4a82c2d1e2b068c5d9be6564aa2d1
ad/788402e4b81bd4f0fc8d3beba876ac30f2e801
ad/b50ff206b638bb35775e4d8134314a4b669ee0
ae/6bddbb17144c925e1dd30b156fd014e4a5af5e
af/e58fc3dc97f83b97fc5cc4c0bcdc8a2923a536
b3/5c8895207c15e1d8d64ade08db059efd46d634
b3/a6e1262d902a183b6810d77969091aeaa8605c
b4/0c02d0c9d21ad75a00143d3eecb1aae1683c25
b4/a7e9c293e3b1160418b9c2652bdcd028e75742
b8/03a8226968f1f155ebabff1429026ba58ecf94
ba/000ce7dfaa53436a12fcb6f32cb730bc999c58
ba/c54e6b25f59ad97e0be4e6fcda6e53dca6607d
ba/e7d71c1c40d6670a1dfc290c7aba2deea204b6
bb/78195e8b2beb0c006980fb5c6e7e2641524167
bc/4c742dc1b8d1f09af2c510b3dfd730a99e6a8c
bf/a45c5b38c41145cb203209f5bc3dc16599a5e3
c1/06288c0595c7f2acb761e8fcdb39dd3fec3b6f
c1/a639c2cd71f92376aba8b0cdfb7eb42fff1f54
c1/c44c75783ebaad6ce903072e5b14af8f444bd8
c2/1b7a79d2b2746f946b0f5be42fd3e3b59d4544
c2/5b912bd08de3cefe1a673f2f2ca3016d1c1258
c2/9802df7ad706dff5dc666219b1b15e53db20fb
c3/348a7184dbff866f4c5f2f9a82deaa6f93763b
c3/bce4b541feff853989c57fd2dc42c9f99e5f21
c5/b7b50e501d98c810248b15cad01e4f8c3d00d8
c6/1ad84c67d08df0fd04c00b62de24091c9b7383
c7/2685d485e402e73f8cd1cae86797c8eecc8d20
c8/7dbe3c22f24fdf0e49cfaa43508cd524c494f0
c9/3aa29c5e69c1f8c67d2b33f0b5a330d1788526
ca/d27fba7ca666bbd050e21373ad07c0a71b10bc
cd/6aef36b96ac7dbbd94a30646d2cfe45ee8c620
ce/5e3a94a1b9a8e2bb3ea69bc6276ff80b753db3
cf/056ec152b13f4a4eafa61f1499b9beaec3f2c6
cf/b2d40d0416c7b0b60db8199e1b79f640093f72
cf/f68c1b7ed135ab19f2b95c318dc6357ddfdaa2
d0/a377c848e3a37146acd4a8a9b891a5152a9d48
d1/4356539993fb4c70ff4f4deb91eb9097740832
d1/46fd69423d2f3b505d145e67afe5aca02dfe09
d1/7af66ed98bd2bd2e18daa94c6689773993770c
d1/9a07455999d2ab16493ec101e0dbc825206007
d1/b856326cd5454fac386a758ed8c8918f66ba26
d2/5789d47eb4c16b85bf9e39d9d2369a0d855d92
d2/9e6b7e73240371022068cdec11d2d45cc0fc1a
d2/df6c6b7335d4a71baa92177cb78cb13a71bd6c
d3/07d48abf7d014f2adf792ab48e95dd77b3fd66
d4/a19a929357505d72d64fc595a543b2215c39d4
d5/6359cf0df8b4541ccbcad8e0c0a44f822eccf7
d6/1ac6b65471750febac7d69bca2475ad7f39617
d6/1f3c9d16964b53d020e8c21f9ecf7d791fd314
d6/88dc5b7b307160fe01c92bc80fd608bafa923f
d6/e2c3490a50f68c0599b1bfad824631648bfe57
d7/3e59672de81d623318c96702bafe79ca3b01b9
d7/5fa8b23e1610b8f3a1ab1d43e4e6bbe9848d99
d7/944f2f885b1e976e1fd1c0b30b6c172bb52466
d8/425743f77600e4165b653f22ae6fd38027d2b4
d8/5974bb6248f39e51abd6d00737edd6256ee103
da/865c12818c8ef15fc031f832d4399997476a64
db/c93987a2f41d29e7d9ce170c4a66f31ba21a2b
dd/336f1f082af04276827925fc2ad27560e584f4
dd/a5e2303dc0efb1ce21091ac9609ce05f95ca11
dd/f7332ecf611c9ea9b21b96c61b9508c8630258
e0/2dcc2a7fc0426363d2380175ca08cd564bfa1e
e0/59ccd2bf35dbc599e5ce5d39674d926445fc3e
e0/851358fb6b4703f23d74ef964bc4491bec7ab9
e0/9816883b166284284a2848821c7787a74b8170
e2/09a0d469e26a06ce87bb3bbc3429a911e94879
e2/7052bb2c8bb2fd16e0d235c24ca5aad3270e38
e3/640f4f8c0e046c3cd59acdd41e9fbbee959579
e5/4161d6eb21566f231627f845a14c312482ed8a
e5/ce71a5e89216984d0334e19f0b86ee734b2419
e6/405b88cddb9dfa524a7372b58e615bf4cdc730
e6/83dd479d771604c993c307404be2aa9ac45b7d
e7/f1a6cd9114a0ef87ba8fb5e0ff89d05796e059
e9/4fa527e4420309ff4e420897749f95cb552444
e9/cc8b7606e0f912773c1c6aa425319858643ae1
ea/c6e96d764b0c25841dcea3cf4f77b7f889f215
eb/11d8290f638dc8b3b4da8b4a56bb7f5192d80c
eb/91b96510d8485576da96507503e779dece1777
eb/ac41b793d2de79fc57bf0e2215785122c6fbfb
eb/f639d1f0d2f8350a8f8efe5fce50f9387d900e
ec/11fc9e3653f03f1c82ab32ceca3fe90c89a169
ec/55ada1019c2cd250bec8af82e999356d32c713
ee/79ede3b931d2796f1d48176d4859b4dde8add5
ee/e7846fd37a3b6a89d1248e46c9bbc770bfea28
ef/004cfa88883bb87e030b6196934dd90e3548d2
ef/3d66358c62d9f97f72b96ea6b9848414fa8101
ef/8596ac1ab699d85f0de0a3f9be55b2c9876078
ef/cec8d750faa2610959fc2fb4bfd8fc095031ef
ef/f8361a8dab5eb9b5532706575896f3953c3da8
f0/ad20627099424af1d5c762cc2e6975fedc4325
f1/d588e48db9e3d4239673d5030b47b08f849eea
f3/d4332f46fb8d6a96f6cace0fe55fd3a7062258
f3/e3510e3dc4a81d486bd077cb68e2dbb843553e
f4/8cff0f2465f3ea3ad67d6a477c9dafe09b971a
f4/b273648f727cd5f0f92bd3c5cdd67cfed10892
f4/f9a1dc653674c0f7c877dda961925b1515e053
f5/4ef3b60b96982e057642bfcff04ed29caf1207
f5/bf3719d5450931e3979d1b9b140618fe042e22
f7/1f7801a7ff5b40d6e346cd7ddeb492d1d83224
f8/18a85408d9343660a7403290cd483de65f28fe
f8/469687aceb346b06adb42f065dfd586013636d
f8/b4f860379fcc1e6256494d4931ff46ea5852de
f8/fea46bf5bb6034aa77d9c8c8c55953bd694594
fa/37685cddf33cbf37404cb5314ea362557da4c5
fa/e1e08aeadada773d1eb10851e985c808cdf655
fb/209c09b61273835f23b39ce0d07171ab872311
fb/480ccedc5dd98024c22a41e717fcb0ae7fca67
fe/4314bf42a6930ab23ad01b86ba887257ccb576
fe/9977c6f7294face7e7987f2c53bd016d035089
ok 24 - notes tree still has fanout after merge (m)

# passed all 24 test(s)
1..24
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3070-wildmatch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3070-wildmatch/.git/
checking prerequisite: EXPENSIVE_ON_WINDOWS

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-EXPENSIVE_ON_WINDOWS" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-EXPENSIVE_ON_WINDOWS" &&
	test_have_prereq EXPENSIVE || test_have_prereq !MINGW,!CYGWIN

)
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
prerequisite EXPENSIVE_ON_WINDOWS ok
expecting success of 3070.1 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 1 - cleanup after previous file test

expecting success of 3070.2 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 2 - setup match file test for foo

expecting success of 3070.3 'wildmatch: match 'foo' 'foo'': 
			test-tool wildmatch wildmatch 'foo' 'foo'
		
ok 3 - wildmatch: match 'foo' 'foo'

expecting success of 3070.4 'wildmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 4 - wildmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.5 'iwildmatch: match 'foo' 'foo'': 
			test-tool wildmatch iwildmatch 'foo' 'foo'
		
ok 5 - iwildmatch: match 'foo' 'foo'

expecting success of 3070.6 'iwildmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 6 - iwildmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.7 'pathmatch: match 'foo' 'foo'': 
			test-tool wildmatch pathmatch 'foo' 'foo'
		
ok 7 - pathmatch: match 'foo' 'foo'

expecting success of 3070.8 'pathmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 8 - pathmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.9 'ipathmatch: match 'foo' 'foo'': 
			test-tool wildmatch ipathmatch 'foo' 'foo'
		
ok 9 - ipathmatch: match 'foo' 'foo'

expecting success of 3070.10 'ipathmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 10 - ipathmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.11 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 11 - cleanup after previous file test

expecting success of 3070.12 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 12 - setup match file test for foo

expecting success of 3070.13 'wildmatch: no match 'foo' 'bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo' 'bar'
		
ok 13 - wildmatch: no match 'foo' 'bar'

expecting success of 3070.14 'wildmatch (via ls-files): no match 'bar' 'foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 14 - wildmatch (via ls-files): no match 'bar' 'foo'

expecting success of 3070.15 'iwildmatch: no match 'foo' 'bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' 'bar'
		
ok 15 - iwildmatch: no match 'foo' 'bar'

expecting success of 3070.16 'iwildmatch (via ls-files): no match 'bar' 'foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 16 - iwildmatch (via ls-files): no match 'bar' 'foo'

expecting success of 3070.17 'pathmatch: no match 'foo' 'bar'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' 'bar'
		
ok 17 - pathmatch: no match 'foo' 'bar'

expecting success of 3070.18 'pathmatch (via ls-files): no match 'bar' 'foo'': 
				>expect &&
				git ls-files -z -- 'bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 18 - pathmatch (via ls-files): no match 'bar' 'foo'

expecting success of 3070.19 'ipathmatch: no match 'foo' 'bar'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' 'bar'
		
ok 19 - ipathmatch: no match 'foo' 'bar'

expecting success of 3070.20 'ipathmatch (via ls-files): no match 'bar' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 20 - ipathmatch (via ls-files): no match 'bar' 'foo'

expecting success of 3070.21 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 21 - cleanup after previous file test

expecting success of 3070.22 'setup match file test for ': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 22 - setup match file test for 

expecting success of 3070.23 'wildmatch: match '' ''': 
			test-tool wildmatch wildmatch '' ''
		
ok 23 - wildmatch: match '' ''

checking known breakage of 3070.24 'wildmatch (via ls-files): match skip '' ''': false
not ok 24 - wildmatch (via ls-files): match skip '' '' # TODO known breakage

expecting success of 3070.25 'iwildmatch: match '' ''': 
			test-tool wildmatch iwildmatch '' ''
		
ok 25 - iwildmatch: match '' ''

checking known breakage of 3070.26 'iwildmatch (via ls-files): match skip '' ''': false
not ok 26 - iwildmatch (via ls-files): match skip '' '' # TODO known breakage

expecting success of 3070.27 'pathmatch: match '' ''': 
			test-tool wildmatch pathmatch '' ''
		
ok 27 - pathmatch: match '' ''

checking known breakage of 3070.28 'pathmatch (via ls-files): match skip '' ''': false
not ok 28 - pathmatch (via ls-files): match skip '' '' # TODO known breakage

expecting success of 3070.29 'ipathmatch: match '' ''': 
			test-tool wildmatch ipathmatch '' ''
		
ok 29 - ipathmatch: match '' ''

checking known breakage of 3070.30 'ipathmatch (via ls-files): match skip '' ''': false
not ok 30 - ipathmatch (via ls-files): match skip '' '' # TODO known breakage

expecting success of 3070.31 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 31 - cleanup after previous file test

expecting success of 3070.32 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 32 - setup match file test for foo

expecting success of 3070.33 'wildmatch: match 'foo' '???'': 
			test-tool wildmatch wildmatch 'foo' '???'
		
ok 33 - wildmatch: match 'foo' '???'

expecting success of 3070.34 'wildmatch (via ls-files): match '???' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 34 - wildmatch (via ls-files): match '???' 'foo'

expecting success of 3070.35 'iwildmatch: match 'foo' '???'': 
			test-tool wildmatch iwildmatch 'foo' '???'
		
ok 35 - iwildmatch: match 'foo' '???'

expecting success of 3070.36 'iwildmatch (via ls-files): match '???' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 36 - iwildmatch (via ls-files): match '???' 'foo'

expecting success of 3070.37 'pathmatch: match 'foo' '???'': 
			test-tool wildmatch pathmatch 'foo' '???'
		
ok 37 - pathmatch: match 'foo' '???'

expecting success of 3070.38 'pathmatch (via ls-files): match '???' 'foo'': 
				printf '%s' 'foo' >expect &&
				git ls-files -z -- '???' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 38 - pathmatch (via ls-files): match '???' 'foo'

expecting success of 3070.39 'ipathmatch: match 'foo' '???'': 
			test-tool wildmatch ipathmatch 'foo' '???'
		
ok 39 - ipathmatch: match 'foo' '???'

expecting success of 3070.40 'ipathmatch (via ls-files): match '???' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --icase-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 40 - ipathmatch (via ls-files): match '???' 'foo'

expecting success of 3070.41 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 41 - cleanup after previous file test

expecting success of 3070.42 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 42 - setup match file test for foo

expecting success of 3070.43 'wildmatch: no match 'foo' '??'': 
			test_must_fail test-tool wildmatch wildmatch 'foo' '??'
		
ok 43 - wildmatch: no match 'foo' '??'

expecting success of 3070.44 'wildmatch (via ls-files): no match '??' 'foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 44 - wildmatch (via ls-files): no match '??' 'foo'

expecting success of 3070.45 'iwildmatch: no match 'foo' '??'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' '??'
		
ok 45 - iwildmatch: no match 'foo' '??'

expecting success of 3070.46 'iwildmatch (via ls-files): no match '??' 'foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 46 - iwildmatch (via ls-files): no match '??' 'foo'

expecting success of 3070.47 'pathmatch: no match 'foo' '??'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' '??'
		
ok 47 - pathmatch: no match 'foo' '??'

expecting success of 3070.48 'pathmatch (via ls-files): no match '??' 'foo'': 
				>expect &&
				git ls-files -z -- '??' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 48 - pathmatch (via ls-files): no match '??' 'foo'

expecting success of 3070.49 'ipathmatch: no match 'foo' '??'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' '??'
		
ok 49 - ipathmatch: no match 'foo' '??'

expecting success of 3070.50 'ipathmatch (via ls-files): no match '??' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 50 - ipathmatch (via ls-files): no match '??' 'foo'

expecting success of 3070.51 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 51 - cleanup after previous file test

expecting success of 3070.52 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 52 - setup match file test for foo

expecting success of 3070.53 'wildmatch: match 'foo' '*'': 
			test-tool wildmatch wildmatch 'foo' '*'
		
ok 53 - wildmatch: match 'foo' '*'

expecting success of 3070.54 'wildmatch (via ls-files): match '*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 54 - wildmatch (via ls-files): match '*' 'foo'

expecting success of 3070.55 'iwildmatch: match 'foo' '*'': 
			test-tool wildmatch iwildmatch 'foo' '*'
		
ok 55 - iwildmatch: match 'foo' '*'

expecting success of 3070.56 'iwildmatch (via ls-files): match '*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 56 - iwildmatch (via ls-files): match '*' 'foo'

expecting success of 3070.57 'pathmatch: match 'foo' '*'': 
			test-tool wildmatch pathmatch 'foo' '*'
		
ok 57 - pathmatch: match 'foo' '*'

expecting success of 3070.58 'pathmatch (via ls-files): match '*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git ls-files -z -- '*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 58 - pathmatch (via ls-files): match '*' 'foo'

expecting success of 3070.59 'ipathmatch: match 'foo' '*'': 
			test-tool wildmatch ipathmatch 'foo' '*'
		
ok 59 - ipathmatch: match 'foo' '*'

expecting success of 3070.60 'ipathmatch (via ls-files): match '*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --icase-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 60 - ipathmatch (via ls-files): match '*' 'foo'

expecting success of 3070.61 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 61 - cleanup after previous file test

expecting success of 3070.62 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 62 - setup match file test for foo

expecting success of 3070.63 'wildmatch: match 'foo' 'f*'': 
			test-tool wildmatch wildmatch 'foo' 'f*'
		
ok 63 - wildmatch: match 'foo' 'f*'

expecting success of 3070.64 'wildmatch (via ls-files): match 'f*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 64 - wildmatch (via ls-files): match 'f*' 'foo'

expecting success of 3070.65 'iwildmatch: match 'foo' 'f*'': 
			test-tool wildmatch iwildmatch 'foo' 'f*'
		
ok 65 - iwildmatch: match 'foo' 'f*'

expecting success of 3070.66 'iwildmatch (via ls-files): match 'f*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 66 - iwildmatch (via ls-files): match 'f*' 'foo'

expecting success of 3070.67 'pathmatch: match 'foo' 'f*'': 
			test-tool wildmatch pathmatch 'foo' 'f*'
		
ok 67 - pathmatch: match 'foo' 'f*'

expecting success of 3070.68 'pathmatch (via ls-files): match 'f*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git ls-files -z -- 'f*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 68 - pathmatch (via ls-files): match 'f*' 'foo'

expecting success of 3070.69 'ipathmatch: match 'foo' 'f*'': 
			test-tool wildmatch ipathmatch 'foo' 'f*'
		
ok 69 - ipathmatch: match 'foo' 'f*'

expecting success of 3070.70 'ipathmatch (via ls-files): match 'f*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --icase-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 70 - ipathmatch (via ls-files): match 'f*' 'foo'

expecting success of 3070.71 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 71 - cleanup after previous file test

expecting success of 3070.72 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 72 - setup match file test for foo

expecting success of 3070.73 'wildmatch: no match 'foo' '*f'': 
			test_must_fail test-tool wildmatch wildmatch 'foo' '*f'
		
ok 73 - wildmatch: no match 'foo' '*f'

expecting success of 3070.74 'wildmatch (via ls-files): no match '*f' 'foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 74 - wildmatch (via ls-files): no match '*f' 'foo'

expecting success of 3070.75 'iwildmatch: no match 'foo' '*f'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' '*f'
		
ok 75 - iwildmatch: no match 'foo' '*f'

expecting success of 3070.76 'iwildmatch (via ls-files): no match '*f' 'foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 76 - iwildmatch (via ls-files): no match '*f' 'foo'

expecting success of 3070.77 'pathmatch: no match 'foo' '*f'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' '*f'
		
ok 77 - pathmatch: no match 'foo' '*f'

expecting success of 3070.78 'pathmatch (via ls-files): no match '*f' 'foo'': 
				>expect &&
				git ls-files -z -- '*f' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 78 - pathmatch (via ls-files): no match '*f' 'foo'

expecting success of 3070.79 'ipathmatch: no match 'foo' '*f'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' '*f'
		
ok 79 - ipathmatch: no match 'foo' '*f'

expecting success of 3070.80 'ipathmatch (via ls-files): no match '*f' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 80 - ipathmatch (via ls-files): no match '*f' 'foo'

expecting success of 3070.81 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 81 - cleanup after previous file test

expecting success of 3070.82 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 82 - setup match file test for foo

expecting success of 3070.83 'wildmatch: match 'foo' '*foo*'': 
			test-tool wildmatch wildmatch 'foo' '*foo*'
		
ok 83 - wildmatch: match 'foo' '*foo*'

expecting success of 3070.84 'wildmatch (via ls-files): match '*foo*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 84 - wildmatch (via ls-files): match '*foo*' 'foo'

expecting success of 3070.85 'iwildmatch: match 'foo' '*foo*'': 
			test-tool wildmatch iwildmatch 'foo' '*foo*'
		
ok 85 - iwildmatch: match 'foo' '*foo*'

expecting success of 3070.86 'iwildmatch (via ls-files): match '*foo*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 86 - iwildmatch (via ls-files): match '*foo*' 'foo'

expecting success of 3070.87 'pathmatch: match 'foo' '*foo*'': 
			test-tool wildmatch pathmatch 'foo' '*foo*'
		
ok 87 - pathmatch: match 'foo' '*foo*'

expecting success of 3070.88 'pathmatch (via ls-files): match '*foo*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 88 - pathmatch (via ls-files): match '*foo*' 'foo'

expecting success of 3070.89 'ipathmatch: match 'foo' '*foo*'': 
			test-tool wildmatch ipathmatch 'foo' '*foo*'
		
ok 89 - ipathmatch: match 'foo' '*foo*'

expecting success of 3070.90 'ipathmatch (via ls-files): match '*foo*' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --icase-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 90 - ipathmatch (via ls-files): match '*foo*' 'foo'

expecting success of 3070.91 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 91 - cleanup after previous file test

expecting success of 3070.92 'setup match file test for foobar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 92 - setup match file test for foobar

expecting success of 3070.93 'wildmatch: match 'foobar' '*ob*a*r*'': 
			test-tool wildmatch wildmatch 'foobar' '*ob*a*r*'
		
ok 93 - wildmatch: match 'foobar' '*ob*a*r*'

expecting success of 3070.94 'wildmatch (via ls-files): match '*ob*a*r*' 'foobar'': 
				printf '%s' 'foobar' >expect &&
				git --glob-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 94 - wildmatch (via ls-files): match '*ob*a*r*' 'foobar'

expecting success of 3070.95 'iwildmatch: match 'foobar' '*ob*a*r*'': 
			test-tool wildmatch iwildmatch 'foobar' '*ob*a*r*'
		
ok 95 - iwildmatch: match 'foobar' '*ob*a*r*'

expecting success of 3070.96 'iwildmatch (via ls-files): match '*ob*a*r*' 'foobar'': 
				printf '%s' 'foobar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 96 - iwildmatch (via ls-files): match '*ob*a*r*' 'foobar'

expecting success of 3070.97 'pathmatch: match 'foobar' '*ob*a*r*'': 
			test-tool wildmatch pathmatch 'foobar' '*ob*a*r*'
		
ok 97 - pathmatch: match 'foobar' '*ob*a*r*'

expecting success of 3070.98 'pathmatch (via ls-files): match '*ob*a*r*' 'foobar'': 
				printf '%s' 'foobar' >expect &&
				git ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 98 - pathmatch (via ls-files): match '*ob*a*r*' 'foobar'

expecting success of 3070.99 'ipathmatch: match 'foobar' '*ob*a*r*'': 
			test-tool wildmatch ipathmatch 'foobar' '*ob*a*r*'
		
ok 99 - ipathmatch: match 'foobar' '*ob*a*r*'

expecting success of 3070.100 'ipathmatch (via ls-files): match '*ob*a*r*' 'foobar'': 
				printf '%s' 'foobar' >expect &&
				git --icase-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 100 - ipathmatch (via ls-files): match '*ob*a*r*' 'foobar'

expecting success of 3070.101 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foobar
ok 101 - cleanup after previous file test

expecting success of 3070.102 'setup match file test for aaaaaaabababab': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 102 - setup match file test for aaaaaaabababab

expecting success of 3070.103 'wildmatch: match 'aaaaaaabababab' '*ab'': 
			test-tool wildmatch wildmatch 'aaaaaaabababab' '*ab'
		
ok 103 - wildmatch: match 'aaaaaaabababab' '*ab'

expecting success of 3070.104 'wildmatch (via ls-files): match '*ab' 'aaaaaaabababab'': 
				printf '%s' 'aaaaaaabababab' >expect &&
				git --glob-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 104 - wildmatch (via ls-files): match '*ab' 'aaaaaaabababab'

expecting success of 3070.105 'iwildmatch: match 'aaaaaaabababab' '*ab'': 
			test-tool wildmatch iwildmatch 'aaaaaaabababab' '*ab'
		
ok 105 - iwildmatch: match 'aaaaaaabababab' '*ab'

expecting success of 3070.106 'iwildmatch (via ls-files): match '*ab' 'aaaaaaabababab'': 
				printf '%s' 'aaaaaaabababab' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 106 - iwildmatch (via ls-files): match '*ab' 'aaaaaaabababab'

expecting success of 3070.107 'pathmatch: match 'aaaaaaabababab' '*ab'': 
			test-tool wildmatch pathmatch 'aaaaaaabababab' '*ab'
		
ok 107 - pathmatch: match 'aaaaaaabababab' '*ab'

expecting success of 3070.108 'pathmatch (via ls-files): match '*ab' 'aaaaaaabababab'': 
				printf '%s' 'aaaaaaabababab' >expect &&
				git ls-files -z -- '*ab' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 108 - pathmatch (via ls-files): match '*ab' 'aaaaaaabababab'

expecting success of 3070.109 'ipathmatch: match 'aaaaaaabababab' '*ab'': 
			test-tool wildmatch ipathmatch 'aaaaaaabababab' '*ab'
		
ok 109 - ipathmatch: match 'aaaaaaabababab' '*ab'

expecting success of 3070.110 'ipathmatch (via ls-files): match '*ab' 'aaaaaaabababab'': 
				printf '%s' 'aaaaaaabababab' >expect &&
				git --icase-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 110 - ipathmatch (via ls-files): match '*ab' 'aaaaaaabababab'

expecting success of 3070.111 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing aaaaaaabababab
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 111 - cleanup after previous file test

expecting success of 3070.112 'setup match file test for foo*': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 112 - setup match file test for foo*

expecting success of 3070.113 'wildmatch: match 'foo*' 'foo\*'': 
			test-tool wildmatch wildmatch 'foo*' 'foo\*'
		
ok 113 - wildmatch: match 'foo*' 'foo\*'

expecting success of 3070.114 'wildmatch (via ls-files): match 'foo\*' 'foo*'': 
				printf '%s' 'foo*' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 114 - wildmatch (via ls-files): match 'foo\*' 'foo*'

expecting success of 3070.115 'iwildmatch: match 'foo*' 'foo\*'': 
			test-tool wildmatch iwildmatch 'foo*' 'foo\*'
		
ok 115 - iwildmatch: match 'foo*' 'foo\*'

expecting success of 3070.116 'iwildmatch (via ls-files): match 'foo\*' 'foo*'': 
				printf '%s' 'foo*' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 116 - iwildmatch (via ls-files): match 'foo\*' 'foo*'

expecting success of 3070.117 'pathmatch: match 'foo*' 'foo\*'': 
			test-tool wildmatch pathmatch 'foo*' 'foo\*'
		
ok 117 - pathmatch: match 'foo*' 'foo\*'

expecting success of 3070.118 'pathmatch (via ls-files): match 'foo\*' 'foo*'': 
				printf '%s' 'foo*' >expect &&
				git ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 118 - pathmatch (via ls-files): match 'foo\*' 'foo*'

expecting success of 3070.119 'ipathmatch: match 'foo*' 'foo\*'': 
			test-tool wildmatch ipathmatch 'foo*' 'foo\*'
		
ok 119 - ipathmatch: match 'foo*' 'foo\*'

expecting success of 3070.120 'ipathmatch (via ls-files): match 'foo\*' 'foo*'': 
				printf '%s' 'foo*' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 120 - ipathmatch (via ls-files): match 'foo\*' 'foo*'

expecting success of 3070.121 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo*
ok 121 - cleanup after previous file test

expecting success of 3070.122 'setup match file test for foobar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 122 - setup match file test for foobar

expecting success of 3070.123 'wildmatch: no match 'foobar' 'foo\*bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foobar' 'foo\*bar'
		
ok 123 - wildmatch: no match 'foobar' 'foo\*bar'

expecting success of 3070.124 'wildmatch (via ls-files): no match 'foo\*bar' 'foobar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 124 - wildmatch (via ls-files): no match 'foo\*bar' 'foobar'

expecting success of 3070.125 'iwildmatch: no match 'foobar' 'foo\*bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foobar' 'foo\*bar'
		
ok 125 - iwildmatch: no match 'foobar' 'foo\*bar'

expecting success of 3070.126 'iwildmatch (via ls-files): no match 'foo\*bar' 'foobar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 126 - iwildmatch (via ls-files): no match 'foo\*bar' 'foobar'

expecting success of 3070.127 'pathmatch: no match 'foobar' 'foo\*bar'': 
			test_must_fail test-tool wildmatch pathmatch 'foobar' 'foo\*bar'
		
ok 127 - pathmatch: no match 'foobar' 'foo\*bar'

expecting success of 3070.128 'pathmatch (via ls-files): no match 'foo\*bar' 'foobar'': 
				>expect &&
				git ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 128 - pathmatch (via ls-files): no match 'foo\*bar' 'foobar'

expecting success of 3070.129 'ipathmatch: no match 'foobar' 'foo\*bar'': 
			test_must_fail test-tool wildmatch ipathmatch 'foobar' 'foo\*bar'
		
ok 129 - ipathmatch: no match 'foobar' 'foo\*bar'

expecting success of 3070.130 'ipathmatch (via ls-files): no match 'foo\*bar' 'foobar'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 130 - ipathmatch (via ls-files): no match 'foo\*bar' 'foobar'

expecting success of 3070.131 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foobar
ok 131 - cleanup after previous file test

expecting success of 3070.132 'setup match file test for f\oo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 132 - setup match file test for f\oo

expecting success of 3070.133 'wildmatch: match 'f\oo' 'f\\oo'': 
			test-tool wildmatch wildmatch 'f\oo' 'f\\oo'
		
ok 133 - wildmatch: match 'f\oo' 'f\\oo'

expecting success of 3070.134 'wildmatch (via ls-files): match 'f\\oo' 'f\oo'': 
				printf '%s' 'f\oo' >expect &&
				git --glob-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 134 - wildmatch (via ls-files): match 'f\\oo' 'f\oo'

expecting success of 3070.135 'iwildmatch: match 'f\oo' 'f\\oo'': 
			test-tool wildmatch iwildmatch 'f\oo' 'f\\oo'
		
ok 135 - iwildmatch: match 'f\oo' 'f\\oo'

expecting success of 3070.136 'iwildmatch (via ls-files): match 'f\\oo' 'f\oo'': 
				printf '%s' 'f\oo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 136 - iwildmatch (via ls-files): match 'f\\oo' 'f\oo'

expecting success of 3070.137 'pathmatch: match 'f\oo' 'f\\oo'': 
			test-tool wildmatch pathmatch 'f\oo' 'f\\oo'
		
ok 137 - pathmatch: match 'f\oo' 'f\\oo'

expecting success of 3070.138 'pathmatch (via ls-files): match 'f\\oo' 'f\oo'': 
				printf '%s' 'f\oo' >expect &&
				git ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 138 - pathmatch (via ls-files): match 'f\\oo' 'f\oo'

expecting success of 3070.139 'ipathmatch: match 'f\oo' 'f\\oo'': 
			test-tool wildmatch ipathmatch 'f\oo' 'f\\oo'
		
ok 139 - ipathmatch: match 'f\oo' 'f\\oo'

expecting success of 3070.140 'ipathmatch (via ls-files): match 'f\\oo' 'f\oo'': 
				printf '%s' 'f\oo' >expect &&
				git --icase-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 140 - ipathmatch (via ls-files): match 'f\\oo' 'f\oo'

expecting success of 3070.141 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing "f\\oo"
ok 141 - cleanup after previous file test

expecting success of 3070.142 'setup match file test for ball': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 142 - setup match file test for ball

expecting success of 3070.143 'wildmatch: match 'ball' '*[al]?'': 
			test-tool wildmatch wildmatch 'ball' '*[al]?'
		
ok 143 - wildmatch: match 'ball' '*[al]?'

expecting success of 3070.144 'wildmatch (via ls-files): match '*[al]?' 'ball'': 
				printf '%s' 'ball' >expect &&
				git --glob-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 144 - wildmatch (via ls-files): match '*[al]?' 'ball'

expecting success of 3070.145 'iwildmatch: match 'ball' '*[al]?'': 
			test-tool wildmatch iwildmatch 'ball' '*[al]?'
		
ok 145 - iwildmatch: match 'ball' '*[al]?'

expecting success of 3070.146 'iwildmatch (via ls-files): match '*[al]?' 'ball'': 
				printf '%s' 'ball' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 146 - iwildmatch (via ls-files): match '*[al]?' 'ball'

expecting success of 3070.147 'pathmatch: match 'ball' '*[al]?'': 
			test-tool wildmatch pathmatch 'ball' '*[al]?'
		
ok 147 - pathmatch: match 'ball' '*[al]?'

expecting success of 3070.148 'pathmatch (via ls-files): match '*[al]?' 'ball'': 
				printf '%s' 'ball' >expect &&
				git ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 148 - pathmatch (via ls-files): match '*[al]?' 'ball'

expecting success of 3070.149 'ipathmatch: match 'ball' '*[al]?'': 
			test-tool wildmatch ipathmatch 'ball' '*[al]?'
		
ok 149 - ipathmatch: match 'ball' '*[al]?'

expecting success of 3070.150 'ipathmatch (via ls-files): match '*[al]?' 'ball'': 
				printf '%s' 'ball' >expect &&
				git --icase-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 150 - ipathmatch (via ls-files): match '*[al]?' 'ball'

expecting success of 3070.151 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing ball
Removing expect
ok 151 - cleanup after previous file test

expecting success of 3070.152 'setup match file test for ten': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 152 - setup match file test for ten

expecting success of 3070.153 'wildmatch: no match 'ten' '[ten]'': 
			test_must_fail test-tool wildmatch wildmatch 'ten' '[ten]'
		
ok 153 - wildmatch: no match 'ten' '[ten]'

expecting success of 3070.154 'wildmatch (via ls-files): no match '[ten]' 'ten'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 154 - wildmatch (via ls-files): no match '[ten]' 'ten'

expecting success of 3070.155 'iwildmatch: no match 'ten' '[ten]'': 
			test_must_fail test-tool wildmatch iwildmatch 'ten' '[ten]'
		
ok 155 - iwildmatch: no match 'ten' '[ten]'

expecting success of 3070.156 'iwildmatch (via ls-files): no match '[ten]' 'ten'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 156 - iwildmatch (via ls-files): no match '[ten]' 'ten'

expecting success of 3070.157 'pathmatch: no match 'ten' '[ten]'': 
			test_must_fail test-tool wildmatch pathmatch 'ten' '[ten]'
		
ok 157 - pathmatch: no match 'ten' '[ten]'

expecting success of 3070.158 'pathmatch (via ls-files): no match '[ten]' 'ten'': 
				>expect &&
				git ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 158 - pathmatch (via ls-files): no match '[ten]' 'ten'

expecting success of 3070.159 'ipathmatch: no match 'ten' '[ten]'': 
			test_must_fail test-tool wildmatch ipathmatch 'ten' '[ten]'
		
ok 159 - ipathmatch: no match 'ten' '[ten]'

expecting success of 3070.160 'ipathmatch (via ls-files): no match '[ten]' 'ten'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 160 - ipathmatch (via ls-files): no match '[ten]' 'ten'

expecting success of 3070.161 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ten
ok 161 - cleanup after previous file test

expecting success of 3070.162 'setup match file test for ten': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 162 - setup match file test for ten

expecting success of 3070.163 'wildmatch: match 'ten' '**[!te]'': 
			test-tool wildmatch wildmatch 'ten' '**[!te]'
		
ok 163 - wildmatch: match 'ten' '**[!te]'

expecting success of 3070.164 'wildmatch (via ls-files): match '**[!te]' 'ten'': 
				printf '%s' 'ten' >expect &&
				git --glob-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 164 - wildmatch (via ls-files): match '**[!te]' 'ten'

expecting success of 3070.165 'iwildmatch: match 'ten' '**[!te]'': 
			test-tool wildmatch iwildmatch 'ten' '**[!te]'
		
ok 165 - iwildmatch: match 'ten' '**[!te]'

expecting success of 3070.166 'iwildmatch (via ls-files): match '**[!te]' 'ten'': 
				printf '%s' 'ten' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 166 - iwildmatch (via ls-files): match '**[!te]' 'ten'

expecting success of 3070.167 'pathmatch: match 'ten' '**[!te]'': 
			test-tool wildmatch pathmatch 'ten' '**[!te]'
		
ok 167 - pathmatch: match 'ten' '**[!te]'

expecting success of 3070.168 'pathmatch (via ls-files): match '**[!te]' 'ten'': 
				printf '%s' 'ten' >expect &&
				git ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 168 - pathmatch (via ls-files): match '**[!te]' 'ten'

expecting success of 3070.169 'ipathmatch: match 'ten' '**[!te]'': 
			test-tool wildmatch ipathmatch 'ten' '**[!te]'
		
ok 169 - ipathmatch: match 'ten' '**[!te]'

expecting success of 3070.170 'ipathmatch (via ls-files): match '**[!te]' 'ten'': 
				printf '%s' 'ten' >expect &&
				git --icase-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 170 - ipathmatch (via ls-files): match '**[!te]' 'ten'

expecting success of 3070.171 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ten
ok 171 - cleanup after previous file test

expecting success of 3070.172 'setup match file test for ten': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 172 - setup match file test for ten

expecting success of 3070.173 'wildmatch: no match 'ten' '**[!ten]'': 
			test_must_fail test-tool wildmatch wildmatch 'ten' '**[!ten]'
		
ok 173 - wildmatch: no match 'ten' '**[!ten]'

expecting success of 3070.174 'wildmatch (via ls-files): no match '**[!ten]' 'ten'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 174 - wildmatch (via ls-files): no match '**[!ten]' 'ten'

expecting success of 3070.175 'iwildmatch: no match 'ten' '**[!ten]'': 
			test_must_fail test-tool wildmatch iwildmatch 'ten' '**[!ten]'
		
ok 175 - iwildmatch: no match 'ten' '**[!ten]'

expecting success of 3070.176 'iwildmatch (via ls-files): no match '**[!ten]' 'ten'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 176 - iwildmatch (via ls-files): no match '**[!ten]' 'ten'

expecting success of 3070.177 'pathmatch: no match 'ten' '**[!ten]'': 
			test_must_fail test-tool wildmatch pathmatch 'ten' '**[!ten]'
		
ok 177 - pathmatch: no match 'ten' '**[!ten]'

expecting success of 3070.178 'pathmatch (via ls-files): no match '**[!ten]' 'ten'': 
				>expect &&
				git ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 178 - pathmatch (via ls-files): no match '**[!ten]' 'ten'

expecting success of 3070.179 'ipathmatch: no match 'ten' '**[!ten]'': 
			test_must_fail test-tool wildmatch ipathmatch 'ten' '**[!ten]'
		
ok 179 - ipathmatch: no match 'ten' '**[!ten]'

expecting success of 3070.180 'ipathmatch (via ls-files): no match '**[!ten]' 'ten'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 180 - ipathmatch (via ls-files): no match '**[!ten]' 'ten'

expecting success of 3070.181 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ten
ok 181 - cleanup after previous file test

expecting success of 3070.182 'setup match file test for ten': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 182 - setup match file test for ten

expecting success of 3070.183 'wildmatch: match 'ten' 't[a-g]n'': 
			test-tool wildmatch wildmatch 'ten' 't[a-g]n'
		
ok 183 - wildmatch: match 'ten' 't[a-g]n'

expecting success of 3070.184 'wildmatch (via ls-files): match 't[a-g]n' 'ten'': 
				printf '%s' 'ten' >expect &&
				git --glob-pathspecs ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 184 - wildmatch (via ls-files): match 't[a-g]n' 'ten'

expecting success of 3070.185 'iwildmatch: match 'ten' 't[a-g]n'': 
			test-tool wildmatch iwildmatch 'ten' 't[a-g]n'
		
ok 185 - iwildmatch: match 'ten' 't[a-g]n'

expecting success of 3070.186 'iwildmatch (via ls-files): match 't[a-g]n' 'ten'': 
				printf '%s' 'ten' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 186 - iwildmatch (via ls-files): match 't[a-g]n' 'ten'

expecting success of 3070.187 'pathmatch: match 'ten' 't[a-g]n'': 
			test-tool wildmatch pathmatch 'ten' 't[a-g]n'
		
ok 187 - pathmatch: match 'ten' 't[a-g]n'

expecting success of 3070.188 'pathmatch (via ls-files): match 't[a-g]n' 'ten'': 
				printf '%s' 'ten' >expect &&
				git ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 188 - pathmatch (via ls-files): match 't[a-g]n' 'ten'

expecting success of 3070.189 'ipathmatch: match 'ten' 't[a-g]n'': 
			test-tool wildmatch ipathmatch 'ten' 't[a-g]n'
		
ok 189 - ipathmatch: match 'ten' 't[a-g]n'

expecting success of 3070.190 'ipathmatch (via ls-files): match 't[a-g]n' 'ten'': 
				printf '%s' 'ten' >expect &&
				git --icase-pathspecs ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 190 - ipathmatch (via ls-files): match 't[a-g]n' 'ten'

expecting success of 3070.191 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ten
ok 191 - cleanup after previous file test

expecting success of 3070.192 'setup match file test for ten': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 192 - setup match file test for ten

expecting success of 3070.193 'wildmatch: no match 'ten' 't[!a-g]n'': 
			test_must_fail test-tool wildmatch wildmatch 'ten' 't[!a-g]n'
		
ok 193 - wildmatch: no match 'ten' 't[!a-g]n'

expecting success of 3070.194 'wildmatch (via ls-files): no match 't[!a-g]n' 'ten'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 194 - wildmatch (via ls-files): no match 't[!a-g]n' 'ten'

expecting success of 3070.195 'iwildmatch: no match 'ten' 't[!a-g]n'': 
			test_must_fail test-tool wildmatch iwildmatch 'ten' 't[!a-g]n'
		
ok 195 - iwildmatch: no match 'ten' 't[!a-g]n'

expecting success of 3070.196 'iwildmatch (via ls-files): no match 't[!a-g]n' 'ten'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 196 - iwildmatch (via ls-files): no match 't[!a-g]n' 'ten'

expecting success of 3070.197 'pathmatch: no match 'ten' 't[!a-g]n'': 
			test_must_fail test-tool wildmatch pathmatch 'ten' 't[!a-g]n'
		
ok 197 - pathmatch: no match 'ten' 't[!a-g]n'

expecting success of 3070.198 'pathmatch (via ls-files): no match 't[!a-g]n' 'ten'': 
				>expect &&
				git ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 198 - pathmatch (via ls-files): no match 't[!a-g]n' 'ten'

expecting success of 3070.199 'ipathmatch: no match 'ten' 't[!a-g]n'': 
			test_must_fail test-tool wildmatch ipathmatch 'ten' 't[!a-g]n'
		
ok 199 - ipathmatch: no match 'ten' 't[!a-g]n'

expecting success of 3070.200 'ipathmatch (via ls-files): no match 't[!a-g]n' 'ten'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 200 - ipathmatch (via ls-files): no match 't[!a-g]n' 'ten'

expecting success of 3070.201 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ten
ok 201 - cleanup after previous file test

expecting success of 3070.202 'setup match file test for ton': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 202 - setup match file test for ton

expecting success of 3070.203 'wildmatch: match 'ton' 't[!a-g]n'': 
			test-tool wildmatch wildmatch 'ton' 't[!a-g]n'
		
ok 203 - wildmatch: match 'ton' 't[!a-g]n'

expecting success of 3070.204 'wildmatch (via ls-files): match 't[!a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git --glob-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 204 - wildmatch (via ls-files): match 't[!a-g]n' 'ton'

expecting success of 3070.205 'iwildmatch: match 'ton' 't[!a-g]n'': 
			test-tool wildmatch iwildmatch 'ton' 't[!a-g]n'
		
ok 205 - iwildmatch: match 'ton' 't[!a-g]n'

expecting success of 3070.206 'iwildmatch (via ls-files): match 't[!a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 206 - iwildmatch (via ls-files): match 't[!a-g]n' 'ton'

expecting success of 3070.207 'pathmatch: match 'ton' 't[!a-g]n'': 
			test-tool wildmatch pathmatch 'ton' 't[!a-g]n'
		
ok 207 - pathmatch: match 'ton' 't[!a-g]n'

expecting success of 3070.208 'pathmatch (via ls-files): match 't[!a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 208 - pathmatch (via ls-files): match 't[!a-g]n' 'ton'

expecting success of 3070.209 'ipathmatch: match 'ton' 't[!a-g]n'': 
			test-tool wildmatch ipathmatch 'ton' 't[!a-g]n'
		
ok 209 - ipathmatch: match 'ton' 't[!a-g]n'

expecting success of 3070.210 'ipathmatch (via ls-files): match 't[!a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 210 - ipathmatch (via ls-files): match 't[!a-g]n' 'ton'

expecting success of 3070.211 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ton
ok 211 - cleanup after previous file test

expecting success of 3070.212 'setup match file test for ton': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 212 - setup match file test for ton

expecting success of 3070.213 'wildmatch: match 'ton' 't[^a-g]n'': 
			test-tool wildmatch wildmatch 'ton' 't[^a-g]n'
		
ok 213 - wildmatch: match 'ton' 't[^a-g]n'

expecting success of 3070.214 'wildmatch (via ls-files): match 't[^a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git --glob-pathspecs ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 214 - wildmatch (via ls-files): match 't[^a-g]n' 'ton'

expecting success of 3070.215 'iwildmatch: match 'ton' 't[^a-g]n'': 
			test-tool wildmatch iwildmatch 'ton' 't[^a-g]n'
		
ok 215 - iwildmatch: match 'ton' 't[^a-g]n'

expecting success of 3070.216 'iwildmatch (via ls-files): match 't[^a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 216 - iwildmatch (via ls-files): match 't[^a-g]n' 'ton'

expecting success of 3070.217 'pathmatch: match 'ton' 't[^a-g]n'': 
			test-tool wildmatch pathmatch 'ton' 't[^a-g]n'
		
ok 217 - pathmatch: match 'ton' 't[^a-g]n'

expecting success of 3070.218 'pathmatch (via ls-files): match 't[^a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 218 - pathmatch (via ls-files): match 't[^a-g]n' 'ton'

expecting success of 3070.219 'ipathmatch: match 'ton' 't[^a-g]n'': 
			test-tool wildmatch ipathmatch 'ton' 't[^a-g]n'
		
ok 219 - ipathmatch: match 'ton' 't[^a-g]n'

expecting success of 3070.220 'ipathmatch (via ls-files): match 't[^a-g]n' 'ton'': 
				printf '%s' 'ton' >expect &&
				git --icase-pathspecs ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 220 - ipathmatch (via ls-files): match 't[^a-g]n' 'ton'

expecting success of 3070.221 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing ton
ok 221 - cleanup after previous file test

expecting success of 3070.222 'setup match file test for a]b': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 222 - setup match file test for a]b

expecting success of 3070.223 'wildmatch: match 'a]b' 'a[]]b'': 
			test-tool wildmatch wildmatch 'a]b' 'a[]]b'
		
ok 223 - wildmatch: match 'a]b' 'a[]]b'

expecting success of 3070.224 'wildmatch (via ls-files): match 'a[]]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git --glob-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 224 - wildmatch (via ls-files): match 'a[]]b' 'a]b'

expecting success of 3070.225 'iwildmatch: match 'a]b' 'a[]]b'': 
			test-tool wildmatch iwildmatch 'a]b' 'a[]]b'
		
ok 225 - iwildmatch: match 'a]b' 'a[]]b'

expecting success of 3070.226 'iwildmatch (via ls-files): match 'a[]]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 226 - iwildmatch (via ls-files): match 'a[]]b' 'a]b'

expecting success of 3070.227 'pathmatch: match 'a]b' 'a[]]b'': 
			test-tool wildmatch pathmatch 'a]b' 'a[]]b'
		
ok 227 - pathmatch: match 'a]b' 'a[]]b'

expecting success of 3070.228 'pathmatch (via ls-files): match 'a[]]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 228 - pathmatch (via ls-files): match 'a[]]b' 'a]b'

expecting success of 3070.229 'ipathmatch: match 'a]b' 'a[]]b'': 
			test-tool wildmatch ipathmatch 'a]b' 'a[]]b'
		
ok 229 - ipathmatch: match 'a]b' 'a[]]b'

expecting success of 3070.230 'ipathmatch (via ls-files): match 'a[]]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git --icase-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 230 - ipathmatch (via ls-files): match 'a[]]b' 'a]b'

expecting success of 3070.231 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a]b
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 231 - cleanup after previous file test

expecting success of 3070.232 'setup match file test for a-b': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 232 - setup match file test for a-b

expecting success of 3070.233 'wildmatch: match 'a-b' 'a[]-]b'': 
			test-tool wildmatch wildmatch 'a-b' 'a[]-]b'
		
ok 233 - wildmatch: match 'a-b' 'a[]-]b'

expecting success of 3070.234 'wildmatch (via ls-files): match 'a[]-]b' 'a-b'': 
				printf '%s' 'a-b' >expect &&
				git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 234 - wildmatch (via ls-files): match 'a[]-]b' 'a-b'

expecting success of 3070.235 'iwildmatch: match 'a-b' 'a[]-]b'': 
			test-tool wildmatch iwildmatch 'a-b' 'a[]-]b'
		
ok 235 - iwildmatch: match 'a-b' 'a[]-]b'

expecting success of 3070.236 'iwildmatch (via ls-files): match 'a[]-]b' 'a-b'': 
				printf '%s' 'a-b' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 236 - iwildmatch (via ls-files): match 'a[]-]b' 'a-b'

expecting success of 3070.237 'pathmatch: match 'a-b' 'a[]-]b'': 
			test-tool wildmatch pathmatch 'a-b' 'a[]-]b'
		
ok 237 - pathmatch: match 'a-b' 'a[]-]b'

expecting success of 3070.238 'pathmatch (via ls-files): match 'a[]-]b' 'a-b'': 
				printf '%s' 'a-b' >expect &&
				git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 238 - pathmatch (via ls-files): match 'a[]-]b' 'a-b'

expecting success of 3070.239 'ipathmatch: match 'a-b' 'a[]-]b'': 
			test-tool wildmatch ipathmatch 'a-b' 'a[]-]b'
		
ok 239 - ipathmatch: match 'a-b' 'a[]-]b'

expecting success of 3070.240 'ipathmatch (via ls-files): match 'a[]-]b' 'a-b'': 
				printf '%s' 'a-b' >expect &&
				git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 240 - ipathmatch (via ls-files): match 'a[]-]b' 'a-b'

expecting success of 3070.241 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a-b
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 241 - cleanup after previous file test

expecting success of 3070.242 'setup match file test for a]b': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 242 - setup match file test for a]b

expecting success of 3070.243 'wildmatch: match 'a]b' 'a[]-]b'': 
			test-tool wildmatch wildmatch 'a]b' 'a[]-]b'
		
ok 243 - wildmatch: match 'a]b' 'a[]-]b'

expecting success of 3070.244 'wildmatch (via ls-files): match 'a[]-]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 244 - wildmatch (via ls-files): match 'a[]-]b' 'a]b'

expecting success of 3070.245 'iwildmatch: match 'a]b' 'a[]-]b'': 
			test-tool wildmatch iwildmatch 'a]b' 'a[]-]b'
		
ok 245 - iwildmatch: match 'a]b' 'a[]-]b'

expecting success of 3070.246 'iwildmatch (via ls-files): match 'a[]-]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 246 - iwildmatch (via ls-files): match 'a[]-]b' 'a]b'

expecting success of 3070.247 'pathmatch: match 'a]b' 'a[]-]b'': 
			test-tool wildmatch pathmatch 'a]b' 'a[]-]b'
		
ok 247 - pathmatch: match 'a]b' 'a[]-]b'

expecting success of 3070.248 'pathmatch (via ls-files): match 'a[]-]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 248 - pathmatch (via ls-files): match 'a[]-]b' 'a]b'

expecting success of 3070.249 'ipathmatch: match 'a]b' 'a[]-]b'': 
			test-tool wildmatch ipathmatch 'a]b' 'a[]-]b'
		
ok 249 - ipathmatch: match 'a]b' 'a[]-]b'

expecting success of 3070.250 'ipathmatch (via ls-files): match 'a[]-]b' 'a]b'': 
				printf '%s' 'a]b' >expect &&
				git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 250 - ipathmatch (via ls-files): match 'a[]-]b' 'a]b'

expecting success of 3070.251 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a]b
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 251 - cleanup after previous file test

expecting success of 3070.252 'setup match file test for aab': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 252 - setup match file test for aab

expecting success of 3070.253 'wildmatch: no match 'aab' 'a[]-]b'': 
			test_must_fail test-tool wildmatch wildmatch 'aab' 'a[]-]b'
		
ok 253 - wildmatch: no match 'aab' 'a[]-]b'

expecting success of 3070.254 'wildmatch (via ls-files): no match 'a[]-]b' 'aab'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 254 - wildmatch (via ls-files): no match 'a[]-]b' 'aab'

expecting success of 3070.255 'iwildmatch: no match 'aab' 'a[]-]b'': 
			test_must_fail test-tool wildmatch iwildmatch 'aab' 'a[]-]b'
		
ok 255 - iwildmatch: no match 'aab' 'a[]-]b'

expecting success of 3070.256 'iwildmatch (via ls-files): no match 'a[]-]b' 'aab'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 256 - iwildmatch (via ls-files): no match 'a[]-]b' 'aab'

expecting success of 3070.257 'pathmatch: no match 'aab' 'a[]-]b'': 
			test_must_fail test-tool wildmatch pathmatch 'aab' 'a[]-]b'
		
ok 257 - pathmatch: no match 'aab' 'a[]-]b'

expecting success of 3070.258 'pathmatch (via ls-files): no match 'a[]-]b' 'aab'': 
				>expect &&
				git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 258 - pathmatch (via ls-files): no match 'a[]-]b' 'aab'

expecting success of 3070.259 'ipathmatch: no match 'aab' 'a[]-]b'': 
			test_must_fail test-tool wildmatch ipathmatch 'aab' 'a[]-]b'
		
ok 259 - ipathmatch: no match 'aab' 'a[]-]b'

expecting success of 3070.260 'ipathmatch (via ls-files): no match 'a[]-]b' 'aab'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 260 - ipathmatch (via ls-files): no match 'a[]-]b' 'aab'

expecting success of 3070.261 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing aab
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 261 - cleanup after previous file test

expecting success of 3070.262 'setup match file test for aab': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 262 - setup match file test for aab

expecting success of 3070.263 'wildmatch: match 'aab' 'a[]a-]b'': 
			test-tool wildmatch wildmatch 'aab' 'a[]a-]b'
		
ok 263 - wildmatch: match 'aab' 'a[]a-]b'

expecting success of 3070.264 'wildmatch (via ls-files): match 'a[]a-]b' 'aab'': 
				printf '%s' 'aab' >expect &&
				git --glob-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 264 - wildmatch (via ls-files): match 'a[]a-]b' 'aab'

expecting success of 3070.265 'iwildmatch: match 'aab' 'a[]a-]b'': 
			test-tool wildmatch iwildmatch 'aab' 'a[]a-]b'
		
ok 265 - iwildmatch: match 'aab' 'a[]a-]b'

expecting success of 3070.266 'iwildmatch (via ls-files): match 'a[]a-]b' 'aab'': 
				printf '%s' 'aab' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 266 - iwildmatch (via ls-files): match 'a[]a-]b' 'aab'

expecting success of 3070.267 'pathmatch: match 'aab' 'a[]a-]b'': 
			test-tool wildmatch pathmatch 'aab' 'a[]a-]b'
		
ok 267 - pathmatch: match 'aab' 'a[]a-]b'

expecting success of 3070.268 'pathmatch (via ls-files): match 'a[]a-]b' 'aab'': 
				printf '%s' 'aab' >expect &&
				git ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 268 - pathmatch (via ls-files): match 'a[]a-]b' 'aab'

expecting success of 3070.269 'ipathmatch: match 'aab' 'a[]a-]b'': 
			test-tool wildmatch ipathmatch 'aab' 'a[]a-]b'
		
ok 269 - ipathmatch: match 'aab' 'a[]a-]b'

expecting success of 3070.270 'ipathmatch (via ls-files): match 'a[]a-]b' 'aab'': 
				printf '%s' 'aab' >expect &&
				git --icase-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 270 - ipathmatch (via ls-files): match 'a[]a-]b' 'aab'

expecting success of 3070.271 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing aab
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 271 - cleanup after previous file test

expecting success of 3070.272 'setup match file test for ]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 272 - setup match file test for ]

expecting success of 3070.273 'wildmatch: match ']' ']'': 
			test-tool wildmatch wildmatch ']' ']'
		
ok 273 - wildmatch: match ']' ']'

expecting success of 3070.274 'wildmatch (via ls-files): match ']' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 274 - wildmatch (via ls-files): match ']' ']'

expecting success of 3070.275 'iwildmatch: match ']' ']'': 
			test-tool wildmatch iwildmatch ']' ']'
		
ok 275 - iwildmatch: match ']' ']'

expecting success of 3070.276 'iwildmatch (via ls-files): match ']' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 276 - iwildmatch (via ls-files): match ']' ']'

expecting success of 3070.277 'pathmatch: match ']' ']'': 
			test-tool wildmatch pathmatch ']' ']'
		
ok 277 - pathmatch: match ']' ']'

expecting success of 3070.278 'pathmatch (via ls-files): match ']' ']'': 
				printf '%s' ']' >expect &&
				git ls-files -z -- ']' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 278 - pathmatch (via ls-files): match ']' ']'

expecting success of 3070.279 'ipathmatch: match ']' ']'': 
			test-tool wildmatch ipathmatch ']' ']'
		
ok 279 - ipathmatch: match ']' ']'

expecting success of 3070.280 'ipathmatch (via ls-files): match ']' ']'': 
				printf '%s' ']' >expect &&
				git --icase-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 280 - ipathmatch (via ls-files): match ']' ']'

expecting success of 3070.281 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 281 - cleanup after previous file test

expecting success of 3070.282 'setup match file test for foo/baz/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 282 - setup match file test for foo/baz/bar

expecting success of 3070.283 'wildmatch: no match 'foo/baz/bar' 'foo*bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/baz/bar' 'foo*bar'
		
ok 283 - wildmatch: no match 'foo/baz/bar' 'foo*bar'

expecting success of 3070.284 'wildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 284 - wildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'

expecting success of 3070.285 'iwildmatch: no match 'foo/baz/bar' 'foo*bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo*bar'
		
ok 285 - iwildmatch: no match 'foo/baz/bar' 'foo*bar'

expecting success of 3070.286 'iwildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 286 - iwildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'

expecting success of 3070.287 'pathmatch: match 'foo/baz/bar' 'foo*bar'': 
			test-tool wildmatch pathmatch 'foo/baz/bar' 'foo*bar'
		
ok 287 - pathmatch: match 'foo/baz/bar' 'foo*bar'

expecting success of 3070.288 'pathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 288 - pathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'

expecting success of 3070.289 'ipathmatch: match 'foo/baz/bar' 'foo*bar'': 
			test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo*bar'
		
ok 289 - ipathmatch: match 'foo/baz/bar' 'foo*bar'

expecting success of 3070.290 'ipathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 290 - ipathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'

expecting success of 3070.291 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 291 - cleanup after previous file test

expecting success of 3070.292 'setup match file test for foo/baz/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 292 - setup match file test for foo/baz/bar

expecting success of 3070.293 'wildmatch: no match 'foo/baz/bar' 'foo**bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/baz/bar' 'foo**bar'
		
ok 293 - wildmatch: no match 'foo/baz/bar' 'foo**bar'

expecting success of 3070.294 'wildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 294 - wildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'

expecting success of 3070.295 'iwildmatch: no match 'foo/baz/bar' 'foo**bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo**bar'
		
ok 295 - iwildmatch: no match 'foo/baz/bar' 'foo**bar'

expecting success of 3070.296 'iwildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 296 - iwildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'

expecting success of 3070.297 'pathmatch: match 'foo/baz/bar' 'foo**bar'': 
			test-tool wildmatch pathmatch 'foo/baz/bar' 'foo**bar'
		
ok 297 - pathmatch: match 'foo/baz/bar' 'foo**bar'

expecting success of 3070.298 'pathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 298 - pathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'

expecting success of 3070.299 'ipathmatch: match 'foo/baz/bar' 'foo**bar'': 
			test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo**bar'
		
ok 299 - ipathmatch: match 'foo/baz/bar' 'foo**bar'

expecting success of 3070.300 'ipathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 300 - ipathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'

expecting success of 3070.301 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 301 - cleanup after previous file test

expecting success of 3070.302 'setup match file test for foobazbar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 302 - setup match file test for foobazbar

expecting success of 3070.303 'wildmatch: match 'foobazbar' 'foo**bar'': 
			test-tool wildmatch wildmatch 'foobazbar' 'foo**bar'
		
ok 303 - wildmatch: match 'foobazbar' 'foo**bar'

expecting success of 3070.304 'wildmatch (via ls-files): match 'foo**bar' 'foobazbar'': 
				printf '%s' 'foobazbar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 304 - wildmatch (via ls-files): match 'foo**bar' 'foobazbar'

expecting success of 3070.305 'iwildmatch: match 'foobazbar' 'foo**bar'': 
			test-tool wildmatch iwildmatch 'foobazbar' 'foo**bar'
		
ok 305 - iwildmatch: match 'foobazbar' 'foo**bar'

expecting success of 3070.306 'iwildmatch (via ls-files): match 'foo**bar' 'foobazbar'': 
				printf '%s' 'foobazbar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 306 - iwildmatch (via ls-files): match 'foo**bar' 'foobazbar'

expecting success of 3070.307 'pathmatch: match 'foobazbar' 'foo**bar'': 
			test-tool wildmatch pathmatch 'foobazbar' 'foo**bar'
		
ok 307 - pathmatch: match 'foobazbar' 'foo**bar'

expecting success of 3070.308 'pathmatch (via ls-files): match 'foo**bar' 'foobazbar'': 
				printf '%s' 'foobazbar' >expect &&
				git ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 308 - pathmatch (via ls-files): match 'foo**bar' 'foobazbar'

expecting success of 3070.309 'ipathmatch: match 'foobazbar' 'foo**bar'': 
			test-tool wildmatch ipathmatch 'foobazbar' 'foo**bar'
		
ok 309 - ipathmatch: match 'foobazbar' 'foo**bar'

expecting success of 3070.310 'ipathmatch (via ls-files): match 'foo**bar' 'foobazbar'': 
				printf '%s' 'foobazbar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 310 - ipathmatch (via ls-files): match 'foo**bar' 'foobazbar'

expecting success of 3070.311 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foobazbar
ok 311 - cleanup after previous file test

expecting success of 3070.312 'setup match file test for foo/baz/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 312 - setup match file test for foo/baz/bar

expecting success of 3070.313 'wildmatch: match 'foo/baz/bar' 'foo/**/bar'': 
			test-tool wildmatch wildmatch 'foo/baz/bar' 'foo/**/bar'
		
ok 313 - wildmatch: match 'foo/baz/bar' 'foo/**/bar'

expecting success of 3070.314 'wildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 314 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'

expecting success of 3070.315 'iwildmatch: match 'foo/baz/bar' 'foo/**/bar'': 
			test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo/**/bar'
		
ok 315 - iwildmatch: match 'foo/baz/bar' 'foo/**/bar'

expecting success of 3070.316 'iwildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 316 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'

expecting success of 3070.317 'pathmatch: match 'foo/baz/bar' 'foo/**/bar'': 
			test-tool wildmatch pathmatch 'foo/baz/bar' 'foo/**/bar'
		
ok 317 - pathmatch: match 'foo/baz/bar' 'foo/**/bar'

expecting success of 3070.318 'pathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 318 - pathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'

expecting success of 3070.319 'ipathmatch: match 'foo/baz/bar' 'foo/**/bar'': 
			test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo/**/bar'
		
ok 319 - ipathmatch: match 'foo/baz/bar' 'foo/**/bar'

expecting success of 3070.320 'ipathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 320 - ipathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'

expecting success of 3070.321 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 321 - cleanup after previous file test

expecting success of 3070.322 'setup match file test for foo/baz/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 322 - setup match file test for foo/baz/bar

expecting success of 3070.323 'wildmatch: match 'foo/baz/bar' 'foo/**/**/bar'': 
			test-tool wildmatch wildmatch 'foo/baz/bar' 'foo/**/**/bar'
		
ok 323 - wildmatch: match 'foo/baz/bar' 'foo/**/**/bar'

expecting success of 3070.324 'wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 324 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'

expecting success of 3070.325 'iwildmatch: match 'foo/baz/bar' 'foo/**/**/bar'': 
			test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo/**/**/bar'
		
ok 325 - iwildmatch: match 'foo/baz/bar' 'foo/**/**/bar'

expecting success of 3070.326 'iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'': 
				printf '%s' 'foo/baz/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 326 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'

expecting success of 3070.327 'pathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'': 
			test_must_fail test-tool wildmatch pathmatch 'foo/baz/bar' 'foo/**/**/bar'
		
ok 327 - pathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'

expecting success of 3070.328 'pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'': 
				>expect &&
				git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 328 - pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'

expecting success of 3070.329 'ipathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo/**/**/bar'
		
ok 329 - ipathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'

expecting success of 3070.330 'ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 330 - ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'

expecting success of 3070.331 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 331 - cleanup after previous file test

expecting success of 3070.332 'setup match file test for foo/b/a/z/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 332 - setup match file test for foo/b/a/z/bar

expecting success of 3070.333 'wildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': 
			test-tool wildmatch wildmatch 'foo/b/a/z/bar' 'foo/**/bar'
		
ok 333 - wildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'

expecting success of 3070.334 'wildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 334 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.335 'iwildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': 
			test-tool wildmatch iwildmatch 'foo/b/a/z/bar' 'foo/**/bar'
		
ok 335 - iwildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'

expecting success of 3070.336 'iwildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 336 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.337 'pathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': 
			test-tool wildmatch pathmatch 'foo/b/a/z/bar' 'foo/**/bar'
		
ok 337 - pathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'

expecting success of 3070.338 'pathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 338 - pathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.339 'ipathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': 
			test-tool wildmatch ipathmatch 'foo/b/a/z/bar' 'foo/**/bar'
		
ok 339 - ipathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'

expecting success of 3070.340 'ipathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 340 - ipathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.341 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 341 - cleanup after previous file test

expecting success of 3070.342 'setup match file test for foo/b/a/z/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 342 - setup match file test for foo/b/a/z/bar

expecting success of 3070.343 'wildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': 
			test-tool wildmatch wildmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
		
ok 343 - wildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'

expecting success of 3070.344 'wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 344 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.345 'iwildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': 
			test-tool wildmatch iwildmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
		
ok 345 - iwildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'

expecting success of 3070.346 'iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 346 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.347 'pathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': 
			test-tool wildmatch pathmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
		
ok 347 - pathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'

expecting success of 3070.348 'pathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 348 - pathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.349 'ipathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': 
			test-tool wildmatch ipathmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
		
ok 349 - ipathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'

expecting success of 3070.350 'ipathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': 
				printf '%s' 'foo/b/a/z/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 350 - ipathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'

expecting success of 3070.351 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 351 - cleanup after previous file test

expecting success of 3070.352 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 352 - setup match file test for foo/bar

expecting success of 3070.353 'wildmatch: match 'foo/bar' 'foo/**/bar'': 
			test-tool wildmatch wildmatch 'foo/bar' 'foo/**/bar'
		
ok 353 - wildmatch: match 'foo/bar' 'foo/**/bar'

expecting success of 3070.354 'wildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 354 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'

expecting success of 3070.355 'iwildmatch: match 'foo/bar' 'foo/**/bar'': 
			test-tool wildmatch iwildmatch 'foo/bar' 'foo/**/bar'
		
ok 355 - iwildmatch: match 'foo/bar' 'foo/**/bar'

expecting success of 3070.356 'iwildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 356 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'

expecting success of 3070.357 'pathmatch: no match 'foo/bar' 'foo/**/bar'': 
			test_must_fail test-tool wildmatch pathmatch 'foo/bar' 'foo/**/bar'
		
ok 357 - pathmatch: no match 'foo/bar' 'foo/**/bar'

expecting success of 3070.358 'pathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'': 
				>expect &&
				git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 358 - pathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'

expecting success of 3070.359 'ipathmatch: no match 'foo/bar' 'foo/**/bar'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo/bar' 'foo/**/bar'
		
ok 359 - ipathmatch: no match 'foo/bar' 'foo/**/bar'

expecting success of 3070.360 'ipathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 360 - ipathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'

expecting success of 3070.361 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 361 - cleanup after previous file test

expecting success of 3070.362 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 362 - setup match file test for foo/bar

expecting success of 3070.363 'wildmatch: match 'foo/bar' 'foo/**/**/bar'': 
			test-tool wildmatch wildmatch 'foo/bar' 'foo/**/**/bar'
		
ok 363 - wildmatch: match 'foo/bar' 'foo/**/**/bar'

expecting success of 3070.364 'wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 364 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/bar'

expecting success of 3070.365 'iwildmatch: match 'foo/bar' 'foo/**/**/bar'': 
			test-tool wildmatch iwildmatch 'foo/bar' 'foo/**/**/bar'
		
ok 365 - iwildmatch: match 'foo/bar' 'foo/**/**/bar'

expecting success of 3070.366 'iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 366 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/bar'

expecting success of 3070.367 'pathmatch: no match 'foo/bar' 'foo/**/**/bar'': 
			test_must_fail test-tool wildmatch pathmatch 'foo/bar' 'foo/**/**/bar'
		
ok 367 - pathmatch: no match 'foo/bar' 'foo/**/**/bar'

expecting success of 3070.368 'pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/bar'': 
				>expect &&
				git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 368 - pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/bar'

expecting success of 3070.369 'ipathmatch: no match 'foo/bar' 'foo/**/**/bar'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo/bar' 'foo/**/**/bar'
		
ok 369 - ipathmatch: no match 'foo/bar' 'foo/**/**/bar'

expecting success of 3070.370 'ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/bar'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 370 - ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/bar'

expecting success of 3070.371 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 371 - cleanup after previous file test

expecting success of 3070.372 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 372 - setup match file test for foo/bar

expecting success of 3070.373 'wildmatch: no match 'foo/bar' 'foo?bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo?bar'
		
ok 373 - wildmatch: no match 'foo/bar' 'foo?bar'

expecting success of 3070.374 'wildmatch (via ls-files): no match 'foo?bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 374 - wildmatch (via ls-files): no match 'foo?bar' 'foo/bar'

expecting success of 3070.375 'iwildmatch: no match 'foo/bar' 'foo?bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo?bar'
		
ok 375 - iwildmatch: no match 'foo/bar' 'foo?bar'

expecting success of 3070.376 'iwildmatch (via ls-files): no match 'foo?bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 376 - iwildmatch (via ls-files): no match 'foo?bar' 'foo/bar'

expecting success of 3070.377 'pathmatch: match 'foo/bar' 'foo?bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo?bar'
		
ok 377 - pathmatch: match 'foo/bar' 'foo?bar'

expecting success of 3070.378 'pathmatch (via ls-files): match 'foo?bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 378 - pathmatch (via ls-files): match 'foo?bar' 'foo/bar'

expecting success of 3070.379 'ipathmatch: match 'foo/bar' 'foo?bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo?bar'
		
ok 379 - ipathmatch: match 'foo/bar' 'foo?bar'

expecting success of 3070.380 'ipathmatch (via ls-files): match 'foo?bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 380 - ipathmatch (via ls-files): match 'foo?bar' 'foo/bar'

expecting success of 3070.381 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 381 - cleanup after previous file test

expecting success of 3070.382 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 382 - setup match file test for foo/bar

expecting success of 3070.383 'wildmatch: no match 'foo/bar' 'foo[/]bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo[/]bar'
		
ok 383 - wildmatch: no match 'foo/bar' 'foo[/]bar'

expecting success of 3070.384 'wildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 384 - wildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'

expecting success of 3070.385 'iwildmatch: no match 'foo/bar' 'foo[/]bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo[/]bar'
		
ok 385 - iwildmatch: no match 'foo/bar' 'foo[/]bar'

expecting success of 3070.386 'iwildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 386 - iwildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'

expecting success of 3070.387 'pathmatch: match 'foo/bar' 'foo[/]bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo[/]bar'
		
ok 387 - pathmatch: match 'foo/bar' 'foo[/]bar'

expecting success of 3070.388 'pathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 388 - pathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'

expecting success of 3070.389 'ipathmatch: match 'foo/bar' 'foo[/]bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo[/]bar'
		
ok 389 - ipathmatch: match 'foo/bar' 'foo[/]bar'

expecting success of 3070.390 'ipathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 390 - ipathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'

expecting success of 3070.391 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 391 - cleanup after previous file test

expecting success of 3070.392 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 392 - setup match file test for foo/bar

expecting success of 3070.393 'wildmatch: no match 'foo/bar' 'foo[^a-z]bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 393 - wildmatch: no match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.394 'wildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 394 - wildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.395 'iwildmatch: no match 'foo/bar' 'foo[^a-z]bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 395 - iwildmatch: no match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.396 'iwildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 396 - iwildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.397 'pathmatch: match 'foo/bar' 'foo[^a-z]bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 397 - pathmatch: match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.398 'pathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 398 - pathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.399 'ipathmatch: match 'foo/bar' 'foo[^a-z]bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 399 - ipathmatch: match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.400 'ipathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 400 - ipathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.401 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 401 - cleanup after previous file test

expecting success of 3070.402 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 402 - setup match file test for foo/bar

expecting success of 3070.403 'wildmatch: no match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 403 - wildmatch: no match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.404 'wildmatch (via ls-files): no match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 404 - wildmatch (via ls-files): no match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'

expecting success of 3070.405 'iwildmatch: no match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 405 - iwildmatch: no match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.406 'iwildmatch (via ls-files): no match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 406 - iwildmatch (via ls-files): no match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'

expecting success of 3070.407 'pathmatch: match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test-tool wildmatch pathmatch 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 407 - pathmatch: match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.408 'pathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 408 - pathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'

expecting success of 3070.409 'ipathmatch: match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 409 - ipathmatch: match 'foo/bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.410 'ipathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 410 - ipathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'

expecting success of 3070.411 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 411 - cleanup after previous file test

expecting success of 3070.412 'setup match file test for foo-bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 412 - setup match file test for foo-bar

expecting success of 3070.413 'wildmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test-tool wildmatch wildmatch 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 413 - wildmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.414 'wildmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'': 
				printf '%s' 'foo-bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 414 - wildmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'

expecting success of 3070.415 'iwildmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test-tool wildmatch iwildmatch 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 415 - iwildmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.416 'iwildmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'': 
				printf '%s' 'foo-bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 416 - iwildmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'

expecting success of 3070.417 'pathmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test-tool wildmatch pathmatch 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 417 - pathmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.418 'pathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'': 
				printf '%s' 'foo-bar' >expect &&
				git ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 418 - pathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'

expecting success of 3070.419 'ipathmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'': 
			test-tool wildmatch ipathmatch 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'
		
ok 419 - ipathmatch: match 'foo-bar' 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r'

expecting success of 3070.420 'ipathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'': 
				printf '%s' 'foo-bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 420 - ipathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'

expecting success of 3070.421 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo-bar
ok 421 - cleanup after previous file test

expecting success of 3070.422 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 422 - setup match file test for foo

expecting success of 3070.423 'wildmatch: match 'foo' '**/foo'': 
			test-tool wildmatch wildmatch 'foo' '**/foo'
		
ok 423 - wildmatch: match 'foo' '**/foo'

expecting success of 3070.424 'wildmatch (via ls-files): match '**/foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 424 - wildmatch (via ls-files): match '**/foo' 'foo'

expecting success of 3070.425 'iwildmatch: match 'foo' '**/foo'': 
			test-tool wildmatch iwildmatch 'foo' '**/foo'
		
ok 425 - iwildmatch: match 'foo' '**/foo'

expecting success of 3070.426 'iwildmatch (via ls-files): match '**/foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 426 - iwildmatch (via ls-files): match '**/foo' 'foo'

expecting success of 3070.427 'pathmatch: no match 'foo' '**/foo'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' '**/foo'
		
ok 427 - pathmatch: no match 'foo' '**/foo'

expecting success of 3070.428 'pathmatch (via ls-files): no match '**/foo' 'foo'': 
				>expect &&
				git ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 428 - pathmatch (via ls-files): no match '**/foo' 'foo'

expecting success of 3070.429 'ipathmatch: no match 'foo' '**/foo'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' '**/foo'
		
ok 429 - ipathmatch: no match 'foo' '**/foo'

expecting success of 3070.430 'ipathmatch (via ls-files): no match '**/foo' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 430 - ipathmatch (via ls-files): no match '**/foo' 'foo'

expecting success of 3070.431 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 431 - cleanup after previous file test

expecting success of 3070.432 'setup match file test for XXX/foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 432 - setup match file test for XXX/foo

expecting success of 3070.433 'wildmatch: match 'XXX/foo' '**/foo'': 
			test-tool wildmatch wildmatch 'XXX/foo' '**/foo'
		
ok 433 - wildmatch: match 'XXX/foo' '**/foo'

expecting success of 3070.434 'wildmatch (via ls-files): match '**/foo' 'XXX/foo'': 
				printf '%s' 'XXX/foo' >expect &&
				git --glob-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 434 - wildmatch (via ls-files): match '**/foo' 'XXX/foo'

expecting success of 3070.435 'iwildmatch: match 'XXX/foo' '**/foo'': 
			test-tool wildmatch iwildmatch 'XXX/foo' '**/foo'
		
ok 435 - iwildmatch: match 'XXX/foo' '**/foo'

expecting success of 3070.436 'iwildmatch (via ls-files): match '**/foo' 'XXX/foo'': 
				printf '%s' 'XXX/foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 436 - iwildmatch (via ls-files): match '**/foo' 'XXX/foo'

expecting success of 3070.437 'pathmatch: match 'XXX/foo' '**/foo'': 
			test-tool wildmatch pathmatch 'XXX/foo' '**/foo'
		
ok 437 - pathmatch: match 'XXX/foo' '**/foo'

expecting success of 3070.438 'pathmatch (via ls-files): match '**/foo' 'XXX/foo'': 
				printf '%s' 'XXX/foo' >expect &&
				git ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 438 - pathmatch (via ls-files): match '**/foo' 'XXX/foo'

expecting success of 3070.439 'ipathmatch: match 'XXX/foo' '**/foo'': 
			test-tool wildmatch ipathmatch 'XXX/foo' '**/foo'
		
ok 439 - ipathmatch: match 'XXX/foo' '**/foo'

expecting success of 3070.440 'ipathmatch (via ls-files): match '**/foo' 'XXX/foo'': 
				printf '%s' 'XXX/foo' >expect &&
				git --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 440 - ipathmatch (via ls-files): match '**/foo' 'XXX/foo'

expecting success of 3070.441 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing XXX/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 441 - cleanup after previous file test

expecting success of 3070.442 'setup match file test for bar/baz/foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 442 - setup match file test for bar/baz/foo

expecting success of 3070.443 'wildmatch: match 'bar/baz/foo' '**/foo'': 
			test-tool wildmatch wildmatch 'bar/baz/foo' '**/foo'
		
ok 443 - wildmatch: match 'bar/baz/foo' '**/foo'

expecting success of 3070.444 'wildmatch (via ls-files): match '**/foo' 'bar/baz/foo'': 
				printf '%s' 'bar/baz/foo' >expect &&
				git --glob-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 444 - wildmatch (via ls-files): match '**/foo' 'bar/baz/foo'

expecting success of 3070.445 'iwildmatch: match 'bar/baz/foo' '**/foo'': 
			test-tool wildmatch iwildmatch 'bar/baz/foo' '**/foo'
		
ok 445 - iwildmatch: match 'bar/baz/foo' '**/foo'

expecting success of 3070.446 'iwildmatch (via ls-files): match '**/foo' 'bar/baz/foo'': 
				printf '%s' 'bar/baz/foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 446 - iwildmatch (via ls-files): match '**/foo' 'bar/baz/foo'

expecting success of 3070.447 'pathmatch: match 'bar/baz/foo' '**/foo'': 
			test-tool wildmatch pathmatch 'bar/baz/foo' '**/foo'
		
ok 447 - pathmatch: match 'bar/baz/foo' '**/foo'

expecting success of 3070.448 'pathmatch (via ls-files): match '**/foo' 'bar/baz/foo'': 
				printf '%s' 'bar/baz/foo' >expect &&
				git ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 448 - pathmatch (via ls-files): match '**/foo' 'bar/baz/foo'

expecting success of 3070.449 'ipathmatch: match 'bar/baz/foo' '**/foo'': 
			test-tool wildmatch ipathmatch 'bar/baz/foo' '**/foo'
		
ok 449 - ipathmatch: match 'bar/baz/foo' '**/foo'

expecting success of 3070.450 'ipathmatch (via ls-files): match '**/foo' 'bar/baz/foo'': 
				printf '%s' 'bar/baz/foo' >expect &&
				git --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 450 - ipathmatch (via ls-files): match '**/foo' 'bar/baz/foo'

expecting success of 3070.451 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing bar/
Removing expect
ok 451 - cleanup after previous file test

expecting success of 3070.452 'setup match file test for bar/baz/foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 452 - setup match file test for bar/baz/foo

expecting success of 3070.453 'wildmatch: no match 'bar/baz/foo' '*/foo'': 
			test_must_fail test-tool wildmatch wildmatch 'bar/baz/foo' '*/foo'
		
ok 453 - wildmatch: no match 'bar/baz/foo' '*/foo'

expecting success of 3070.454 'wildmatch (via ls-files): no match '*/foo' 'bar/baz/foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 454 - wildmatch (via ls-files): no match '*/foo' 'bar/baz/foo'

expecting success of 3070.455 'iwildmatch: no match 'bar/baz/foo' '*/foo'': 
			test_must_fail test-tool wildmatch iwildmatch 'bar/baz/foo' '*/foo'
		
ok 455 - iwildmatch: no match 'bar/baz/foo' '*/foo'

expecting success of 3070.456 'iwildmatch (via ls-files): no match '*/foo' 'bar/baz/foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 456 - iwildmatch (via ls-files): no match '*/foo' 'bar/baz/foo'

expecting success of 3070.457 'pathmatch: match 'bar/baz/foo' '*/foo'': 
			test-tool wildmatch pathmatch 'bar/baz/foo' '*/foo'
		
ok 457 - pathmatch: match 'bar/baz/foo' '*/foo'

expecting success of 3070.458 'pathmatch (via ls-files): match '*/foo' 'bar/baz/foo'': 
				printf '%s' 'bar/baz/foo' >expect &&
				git ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 458 - pathmatch (via ls-files): match '*/foo' 'bar/baz/foo'

expecting success of 3070.459 'ipathmatch: match 'bar/baz/foo' '*/foo'': 
			test-tool wildmatch ipathmatch 'bar/baz/foo' '*/foo'
		
ok 459 - ipathmatch: match 'bar/baz/foo' '*/foo'

expecting success of 3070.460 'ipathmatch (via ls-files): match '*/foo' 'bar/baz/foo'': 
				printf '%s' 'bar/baz/foo' >expect &&
				git --icase-pathspecs ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 460 - ipathmatch (via ls-files): match '*/foo' 'bar/baz/foo'

expecting success of 3070.461 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing bar/
Removing expect
ok 461 - cleanup after previous file test

expecting success of 3070.462 'setup match file test for foo/bar/baz': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 462 - setup match file test for foo/bar/baz

expecting success of 3070.463 'wildmatch: no match 'foo/bar/baz' '**/bar*'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar/baz' '**/bar*'
		
ok 463 - wildmatch: no match 'foo/bar/baz' '**/bar*'

expecting success of 3070.464 'wildmatch (via ls-files): no match '**/bar*' 'foo/bar/baz'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 464 - wildmatch (via ls-files): no match '**/bar*' 'foo/bar/baz'

expecting success of 3070.465 'iwildmatch: no match 'foo/bar/baz' '**/bar*'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar/baz' '**/bar*'
		
ok 465 - iwildmatch: no match 'foo/bar/baz' '**/bar*'

expecting success of 3070.466 'iwildmatch (via ls-files): no match '**/bar*' 'foo/bar/baz'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 466 - iwildmatch (via ls-files): no match '**/bar*' 'foo/bar/baz'

expecting success of 3070.467 'pathmatch: match 'foo/bar/baz' '**/bar*'': 
			test-tool wildmatch pathmatch 'foo/bar/baz' '**/bar*'
		
ok 467 - pathmatch: match 'foo/bar/baz' '**/bar*'

expecting success of 3070.468 'pathmatch (via ls-files): match '**/bar*' 'foo/bar/baz'': 
				printf '%s' 'foo/bar/baz' >expect &&
				git ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 468 - pathmatch (via ls-files): match '**/bar*' 'foo/bar/baz'

expecting success of 3070.469 'ipathmatch: match 'foo/bar/baz' '**/bar*'': 
			test-tool wildmatch ipathmatch 'foo/bar/baz' '**/bar*'
		
ok 469 - ipathmatch: match 'foo/bar/baz' '**/bar*'

expecting success of 3070.470 'ipathmatch (via ls-files): match '**/bar*' 'foo/bar/baz'': 
				printf '%s' 'foo/bar/baz' >expect &&
				git --icase-pathspecs ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 470 - ipathmatch (via ls-files): match '**/bar*' 'foo/bar/baz'

expecting success of 3070.471 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 471 - cleanup after previous file test

expecting success of 3070.472 'setup match file test for deep/foo/bar/baz': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 472 - setup match file test for deep/foo/bar/baz

expecting success of 3070.473 'wildmatch: match 'deep/foo/bar/baz' '**/bar/*'': 
			test-tool wildmatch wildmatch 'deep/foo/bar/baz' '**/bar/*'
		
ok 473 - wildmatch: match 'deep/foo/bar/baz' '**/bar/*'

expecting success of 3070.474 'wildmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'': 
				printf '%s' 'deep/foo/bar/baz' >expect &&
				git --glob-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 474 - wildmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'

expecting success of 3070.475 'iwildmatch: match 'deep/foo/bar/baz' '**/bar/*'': 
			test-tool wildmatch iwildmatch 'deep/foo/bar/baz' '**/bar/*'
		
ok 475 - iwildmatch: match 'deep/foo/bar/baz' '**/bar/*'

expecting success of 3070.476 'iwildmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'': 
				printf '%s' 'deep/foo/bar/baz' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 476 - iwildmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'

expecting success of 3070.477 'pathmatch: match 'deep/foo/bar/baz' '**/bar/*'': 
			test-tool wildmatch pathmatch 'deep/foo/bar/baz' '**/bar/*'
		
ok 477 - pathmatch: match 'deep/foo/bar/baz' '**/bar/*'

expecting success of 3070.478 'pathmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'': 
				printf '%s' 'deep/foo/bar/baz' >expect &&
				git ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 478 - pathmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'

expecting success of 3070.479 'ipathmatch: match 'deep/foo/bar/baz' '**/bar/*'': 
			test-tool wildmatch ipathmatch 'deep/foo/bar/baz' '**/bar/*'
		
ok 479 - ipathmatch: match 'deep/foo/bar/baz' '**/bar/*'

expecting success of 3070.480 'ipathmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'': 
				printf '%s' 'deep/foo/bar/baz' >expect &&
				git --icase-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 480 - ipathmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'

expecting success of 3070.481 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing deep/
Removing expect
ok 481 - cleanup after previous file test

expecting success of 3070.482 'setup match file test for deep/foo/bar/baz/': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 482 - setup match file test for deep/foo/bar/baz/

expecting success of 3070.483 'wildmatch: no match 'deep/foo/bar/baz/' '**/bar/*'': 
			test_must_fail test-tool wildmatch wildmatch 'deep/foo/bar/baz/' '**/bar/*'
		
ok 483 - wildmatch: no match 'deep/foo/bar/baz/' '**/bar/*'

checking known breakage of 3070.484 'wildmatch (via ls-files): no match skip '**/bar/*' 'deep/foo/bar/baz/'': false
not ok 484 - wildmatch (via ls-files): no match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.485 'iwildmatch: no match 'deep/foo/bar/baz/' '**/bar/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'deep/foo/bar/baz/' '**/bar/*'
		
ok 485 - iwildmatch: no match 'deep/foo/bar/baz/' '**/bar/*'

checking known breakage of 3070.486 'iwildmatch (via ls-files): no match skip '**/bar/*' 'deep/foo/bar/baz/'': false
not ok 486 - iwildmatch (via ls-files): no match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.487 'pathmatch: match 'deep/foo/bar/baz/' '**/bar/*'': 
			test-tool wildmatch pathmatch 'deep/foo/bar/baz/' '**/bar/*'
		
ok 487 - pathmatch: match 'deep/foo/bar/baz/' '**/bar/*'

checking known breakage of 3070.488 'pathmatch (via ls-files): match skip '**/bar/*' 'deep/foo/bar/baz/'': false
not ok 488 - pathmatch (via ls-files): match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.489 'ipathmatch: match 'deep/foo/bar/baz/' '**/bar/*'': 
			test-tool wildmatch ipathmatch 'deep/foo/bar/baz/' '**/bar/*'
		
ok 489 - ipathmatch: match 'deep/foo/bar/baz/' '**/bar/*'

checking known breakage of 3070.490 'ipathmatch (via ls-files): match skip '**/bar/*' 'deep/foo/bar/baz/'': false
not ok 490 - ipathmatch (via ls-files): match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.491 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 491 - cleanup after previous file test

expecting success of 3070.492 'setup match file test for deep/foo/bar/baz/': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 492 - setup match file test for deep/foo/bar/baz/

expecting success of 3070.493 'wildmatch: match 'deep/foo/bar/baz/' '**/bar/**'': 
			test-tool wildmatch wildmatch 'deep/foo/bar/baz/' '**/bar/**'
		
ok 493 - wildmatch: match 'deep/foo/bar/baz/' '**/bar/**'

checking known breakage of 3070.494 'wildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/'': false
not ok 494 - wildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.495 'iwildmatch: match 'deep/foo/bar/baz/' '**/bar/**'': 
			test-tool wildmatch iwildmatch 'deep/foo/bar/baz/' '**/bar/**'
		
ok 495 - iwildmatch: match 'deep/foo/bar/baz/' '**/bar/**'

checking known breakage of 3070.496 'iwildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/'': false
not ok 496 - iwildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.497 'pathmatch: match 'deep/foo/bar/baz/' '**/bar/**'': 
			test-tool wildmatch pathmatch 'deep/foo/bar/baz/' '**/bar/**'
		
ok 497 - pathmatch: match 'deep/foo/bar/baz/' '**/bar/**'

checking known breakage of 3070.498 'pathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/'': false
not ok 498 - pathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.499 'ipathmatch: match 'deep/foo/bar/baz/' '**/bar/**'': 
			test-tool wildmatch ipathmatch 'deep/foo/bar/baz/' '**/bar/**'
		
ok 499 - ipathmatch: match 'deep/foo/bar/baz/' '**/bar/**'

checking known breakage of 3070.500 'ipathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/'': false
not ok 500 - ipathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage

expecting success of 3070.501 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 501 - cleanup after previous file test

expecting success of 3070.502 'setup match file test for deep/foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 502 - setup match file test for deep/foo/bar

expecting success of 3070.503 'wildmatch: no match 'deep/foo/bar' '**/bar/*'': 
			test_must_fail test-tool wildmatch wildmatch 'deep/foo/bar' '**/bar/*'
		
ok 503 - wildmatch: no match 'deep/foo/bar' '**/bar/*'

expecting success of 3070.504 'wildmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 504 - wildmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'

expecting success of 3070.505 'iwildmatch: no match 'deep/foo/bar' '**/bar/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'deep/foo/bar' '**/bar/*'
		
ok 505 - iwildmatch: no match 'deep/foo/bar' '**/bar/*'

expecting success of 3070.506 'iwildmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 506 - iwildmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'

expecting success of 3070.507 'pathmatch: no match 'deep/foo/bar' '**/bar/*'': 
			test_must_fail test-tool wildmatch pathmatch 'deep/foo/bar' '**/bar/*'
		
ok 507 - pathmatch: no match 'deep/foo/bar' '**/bar/*'

expecting success of 3070.508 'pathmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'': 
				>expect &&
				git ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 508 - pathmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'

expecting success of 3070.509 'ipathmatch: no match 'deep/foo/bar' '**/bar/*'': 
			test_must_fail test-tool wildmatch ipathmatch 'deep/foo/bar' '**/bar/*'
		
ok 509 - ipathmatch: no match 'deep/foo/bar' '**/bar/*'

expecting success of 3070.510 'ipathmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 510 - ipathmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'

expecting success of 3070.511 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing deep/
Removing expect
ok 511 - cleanup after previous file test

expecting success of 3070.512 'setup match file test for deep/foo/bar/': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 512 - setup match file test for deep/foo/bar/

expecting success of 3070.513 'wildmatch: match 'deep/foo/bar/' '**/bar/**'': 
			test-tool wildmatch wildmatch 'deep/foo/bar/' '**/bar/**'
		
ok 513 - wildmatch: match 'deep/foo/bar/' '**/bar/**'

checking known breakage of 3070.514 'wildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/'': false
not ok 514 - wildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage

expecting success of 3070.515 'iwildmatch: match 'deep/foo/bar/' '**/bar/**'': 
			test-tool wildmatch iwildmatch 'deep/foo/bar/' '**/bar/**'
		
ok 515 - iwildmatch: match 'deep/foo/bar/' '**/bar/**'

checking known breakage of 3070.516 'iwildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/'': false
not ok 516 - iwildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage

expecting success of 3070.517 'pathmatch: match 'deep/foo/bar/' '**/bar/**'': 
			test-tool wildmatch pathmatch 'deep/foo/bar/' '**/bar/**'
		
ok 517 - pathmatch: match 'deep/foo/bar/' '**/bar/**'

checking known breakage of 3070.518 'pathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/'': false
not ok 518 - pathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage

expecting success of 3070.519 'ipathmatch: match 'deep/foo/bar/' '**/bar/**'': 
			test-tool wildmatch ipathmatch 'deep/foo/bar/' '**/bar/**'
		
ok 519 - ipathmatch: match 'deep/foo/bar/' '**/bar/**'

checking known breakage of 3070.520 'ipathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/'': false
not ok 520 - ipathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage

expecting success of 3070.521 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 521 - cleanup after previous file test

expecting success of 3070.522 'setup match file test for foo/bar/baz': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 522 - setup match file test for foo/bar/baz

expecting success of 3070.523 'wildmatch: no match 'foo/bar/baz' '**/bar**'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar/baz' '**/bar**'
		
ok 523 - wildmatch: no match 'foo/bar/baz' '**/bar**'

expecting success of 3070.524 'wildmatch (via ls-files): no match '**/bar**' 'foo/bar/baz'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 524 - wildmatch (via ls-files): no match '**/bar**' 'foo/bar/baz'

expecting success of 3070.525 'iwildmatch: no match 'foo/bar/baz' '**/bar**'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar/baz' '**/bar**'
		
ok 525 - iwildmatch: no match 'foo/bar/baz' '**/bar**'

expecting success of 3070.526 'iwildmatch (via ls-files): no match '**/bar**' 'foo/bar/baz'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 526 - iwildmatch (via ls-files): no match '**/bar**' 'foo/bar/baz'

expecting success of 3070.527 'pathmatch: match 'foo/bar/baz' '**/bar**'': 
			test-tool wildmatch pathmatch 'foo/bar/baz' '**/bar**'
		
ok 527 - pathmatch: match 'foo/bar/baz' '**/bar**'

expecting success of 3070.528 'pathmatch (via ls-files): match '**/bar**' 'foo/bar/baz'': 
				printf '%s' 'foo/bar/baz' >expect &&
				git ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 528 - pathmatch (via ls-files): match '**/bar**' 'foo/bar/baz'

expecting success of 3070.529 'ipathmatch: match 'foo/bar/baz' '**/bar**'': 
			test-tool wildmatch ipathmatch 'foo/bar/baz' '**/bar**'
		
ok 529 - ipathmatch: match 'foo/bar/baz' '**/bar**'

expecting success of 3070.530 'ipathmatch (via ls-files): match '**/bar**' 'foo/bar/baz'': 
				printf '%s' 'foo/bar/baz' >expect &&
				git --icase-pathspecs ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 530 - ipathmatch (via ls-files): match '**/bar**' 'foo/bar/baz'

expecting success of 3070.531 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 531 - cleanup after previous file test

expecting success of 3070.532 'setup match file test for foo/bar/baz/x': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 532 - setup match file test for foo/bar/baz/x

expecting success of 3070.533 'wildmatch: match 'foo/bar/baz/x' '*/bar/**'': 
			test-tool wildmatch wildmatch 'foo/bar/baz/x' '*/bar/**'
		
ok 533 - wildmatch: match 'foo/bar/baz/x' '*/bar/**'

expecting success of 3070.534 'wildmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'': 
				printf '%s' 'foo/bar/baz/x' >expect &&
				git --glob-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 534 - wildmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'

expecting success of 3070.535 'iwildmatch: match 'foo/bar/baz/x' '*/bar/**'': 
			test-tool wildmatch iwildmatch 'foo/bar/baz/x' '*/bar/**'
		
ok 535 - iwildmatch: match 'foo/bar/baz/x' '*/bar/**'

expecting success of 3070.536 'iwildmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'': 
				printf '%s' 'foo/bar/baz/x' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 536 - iwildmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'

expecting success of 3070.537 'pathmatch: match 'foo/bar/baz/x' '*/bar/**'': 
			test-tool wildmatch pathmatch 'foo/bar/baz/x' '*/bar/**'
		
ok 537 - pathmatch: match 'foo/bar/baz/x' '*/bar/**'

expecting success of 3070.538 'pathmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'': 
				printf '%s' 'foo/bar/baz/x' >expect &&
				git ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 538 - pathmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'

expecting success of 3070.539 'ipathmatch: match 'foo/bar/baz/x' '*/bar/**'': 
			test-tool wildmatch ipathmatch 'foo/bar/baz/x' '*/bar/**'
		
ok 539 - ipathmatch: match 'foo/bar/baz/x' '*/bar/**'

expecting success of 3070.540 'ipathmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'': 
				printf '%s' 'foo/bar/baz/x' >expect &&
				git --icase-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 540 - ipathmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'

expecting success of 3070.541 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 541 - cleanup after previous file test

expecting success of 3070.542 'setup match file test for deep/foo/bar/baz/x': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 542 - setup match file test for deep/foo/bar/baz/x

expecting success of 3070.543 'wildmatch: no match 'deep/foo/bar/baz/x' '*/bar/**'': 
			test_must_fail test-tool wildmatch wildmatch 'deep/foo/bar/baz/x' '*/bar/**'
		
ok 543 - wildmatch: no match 'deep/foo/bar/baz/x' '*/bar/**'

expecting success of 3070.544 'wildmatch (via ls-files): no match '*/bar/**' 'deep/foo/bar/baz/x'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 544 - wildmatch (via ls-files): no match '*/bar/**' 'deep/foo/bar/baz/x'

expecting success of 3070.545 'iwildmatch: no match 'deep/foo/bar/baz/x' '*/bar/**'': 
			test_must_fail test-tool wildmatch iwildmatch 'deep/foo/bar/baz/x' '*/bar/**'
		
ok 545 - iwildmatch: no match 'deep/foo/bar/baz/x' '*/bar/**'

expecting success of 3070.546 'iwildmatch (via ls-files): no match '*/bar/**' 'deep/foo/bar/baz/x'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 546 - iwildmatch (via ls-files): no match '*/bar/**' 'deep/foo/bar/baz/x'

expecting success of 3070.547 'pathmatch: match 'deep/foo/bar/baz/x' '*/bar/**'': 
			test-tool wildmatch pathmatch 'deep/foo/bar/baz/x' '*/bar/**'
		
ok 547 - pathmatch: match 'deep/foo/bar/baz/x' '*/bar/**'

expecting success of 3070.548 'pathmatch (via ls-files): match '*/bar/**' 'deep/foo/bar/baz/x'': 
				printf '%s' 'deep/foo/bar/baz/x' >expect &&
				git ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 548 - pathmatch (via ls-files): match '*/bar/**' 'deep/foo/bar/baz/x'

expecting success of 3070.549 'ipathmatch: match 'deep/foo/bar/baz/x' '*/bar/**'': 
			test-tool wildmatch ipathmatch 'deep/foo/bar/baz/x' '*/bar/**'
		
ok 549 - ipathmatch: match 'deep/foo/bar/baz/x' '*/bar/**'

expecting success of 3070.550 'ipathmatch (via ls-files): match '*/bar/**' 'deep/foo/bar/baz/x'': 
				printf '%s' 'deep/foo/bar/baz/x' >expect &&
				git --icase-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 550 - ipathmatch (via ls-files): match '*/bar/**' 'deep/foo/bar/baz/x'

expecting success of 3070.551 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing deep/
Removing expect
ok 551 - cleanup after previous file test

expecting success of 3070.552 'setup match file test for deep/foo/bar/baz/x': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 552 - setup match file test for deep/foo/bar/baz/x

expecting success of 3070.553 'wildmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'': 
			test-tool wildmatch wildmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
		
ok 553 - wildmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'

expecting success of 3070.554 'wildmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'': 
				printf '%s' 'deep/foo/bar/baz/x' >expect &&
				git --glob-pathspecs ls-files -z -- '**/bar/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 554 - wildmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'

expecting success of 3070.555 'iwildmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'': 
			test-tool wildmatch iwildmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
		
ok 555 - iwildmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'

expecting success of 3070.556 'iwildmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'': 
				printf '%s' 'deep/foo/bar/baz/x' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 556 - iwildmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'

expecting success of 3070.557 'pathmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'': 
			test-tool wildmatch pathmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
		
ok 557 - pathmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'

expecting success of 3070.558 'pathmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'': 
				printf '%s' 'deep/foo/bar/baz/x' >expect &&
				git ls-files -z -- '**/bar/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 558 - pathmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'

expecting success of 3070.559 'ipathmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'': 
			test-tool wildmatch ipathmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
		
ok 559 - ipathmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'

expecting success of 3070.560 'ipathmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'': 
				printf '%s' 'deep/foo/bar/baz/x' >expect &&
				git --icase-pathspecs ls-files -z -- '**/bar/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 560 - ipathmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'

expecting success of 3070.561 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing deep/
Removing expect
ok 561 - cleanup after previous file test

expecting success of 3070.562 'setup match file test for acrt': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 562 - setup match file test for acrt

expecting success of 3070.563 'wildmatch: no match 'acrt' 'a[c-c]st'': 
			test_must_fail test-tool wildmatch wildmatch 'acrt' 'a[c-c]st'
		
ok 563 - wildmatch: no match 'acrt' 'a[c-c]st'

expecting success of 3070.564 'wildmatch (via ls-files): no match 'a[c-c]st' 'acrt'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 564 - wildmatch (via ls-files): no match 'a[c-c]st' 'acrt'

expecting success of 3070.565 'iwildmatch: no match 'acrt' 'a[c-c]st'': 
			test_must_fail test-tool wildmatch iwildmatch 'acrt' 'a[c-c]st'
		
ok 565 - iwildmatch: no match 'acrt' 'a[c-c]st'

expecting success of 3070.566 'iwildmatch (via ls-files): no match 'a[c-c]st' 'acrt'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 566 - iwildmatch (via ls-files): no match 'a[c-c]st' 'acrt'

expecting success of 3070.567 'pathmatch: no match 'acrt' 'a[c-c]st'': 
			test_must_fail test-tool wildmatch pathmatch 'acrt' 'a[c-c]st'
		
ok 567 - pathmatch: no match 'acrt' 'a[c-c]st'

expecting success of 3070.568 'pathmatch (via ls-files): no match 'a[c-c]st' 'acrt'': 
				>expect &&
				git ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 568 - pathmatch (via ls-files): no match 'a[c-c]st' 'acrt'

expecting success of 3070.569 'ipathmatch: no match 'acrt' 'a[c-c]st'': 
			test_must_fail test-tool wildmatch ipathmatch 'acrt' 'a[c-c]st'
		
ok 569 - ipathmatch: no match 'acrt' 'a[c-c]st'

expecting success of 3070.570 'ipathmatch (via ls-files): no match 'a[c-c]st' 'acrt'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 570 - ipathmatch (via ls-files): no match 'a[c-c]st' 'acrt'

expecting success of 3070.571 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing acrt
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 571 - cleanup after previous file test

expecting success of 3070.572 'setup match file test for acrt': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 572 - setup match file test for acrt

expecting success of 3070.573 'wildmatch: match 'acrt' 'a[c-c]rt'': 
			test-tool wildmatch wildmatch 'acrt' 'a[c-c]rt'
		
ok 573 - wildmatch: match 'acrt' 'a[c-c]rt'

expecting success of 3070.574 'wildmatch (via ls-files): match 'a[c-c]rt' 'acrt'': 
				printf '%s' 'acrt' >expect &&
				git --glob-pathspecs ls-files -z -- 'a[c-c]rt' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 574 - wildmatch (via ls-files): match 'a[c-c]rt' 'acrt'

expecting success of 3070.575 'iwildmatch: match 'acrt' 'a[c-c]rt'': 
			test-tool wildmatch iwildmatch 'acrt' 'a[c-c]rt'
		
ok 575 - iwildmatch: match 'acrt' 'a[c-c]rt'

expecting success of 3070.576 'iwildmatch (via ls-files): match 'a[c-c]rt' 'acrt'': 
				printf '%s' 'acrt' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[c-c]rt' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 576 - iwildmatch (via ls-files): match 'a[c-c]rt' 'acrt'

expecting success of 3070.577 'pathmatch: match 'acrt' 'a[c-c]rt'': 
			test-tool wildmatch pathmatch 'acrt' 'a[c-c]rt'
		
ok 577 - pathmatch: match 'acrt' 'a[c-c]rt'

expecting success of 3070.578 'pathmatch (via ls-files): match 'a[c-c]rt' 'acrt'': 
				printf '%s' 'acrt' >expect &&
				git ls-files -z -- 'a[c-c]rt' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 578 - pathmatch (via ls-files): match 'a[c-c]rt' 'acrt'

expecting success of 3070.579 'ipathmatch: match 'acrt' 'a[c-c]rt'': 
			test-tool wildmatch ipathmatch 'acrt' 'a[c-c]rt'
		
ok 579 - ipathmatch: match 'acrt' 'a[c-c]rt'

expecting success of 3070.580 'ipathmatch (via ls-files): match 'a[c-c]rt' 'acrt'': 
				printf '%s' 'acrt' >expect &&
				git --icase-pathspecs ls-files -z -- 'a[c-c]rt' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 580 - ipathmatch (via ls-files): match 'a[c-c]rt' 'acrt'

expecting success of 3070.581 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing acrt
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 581 - cleanup after previous file test

expecting success of 3070.582 'setup match file test for ]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 582 - setup match file test for ]

expecting success of 3070.583 'wildmatch: no match ']' '[!]-]'': 
			test_must_fail test-tool wildmatch wildmatch ']' '[!]-]'
		
ok 583 - wildmatch: no match ']' '[!]-]'

expecting success of 3070.584 'wildmatch (via ls-files): no match '[!]-]' ']'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 584 - wildmatch (via ls-files): no match '[!]-]' ']'

expecting success of 3070.585 'iwildmatch: no match ']' '[!]-]'': 
			test_must_fail test-tool wildmatch iwildmatch ']' '[!]-]'
		
ok 585 - iwildmatch: no match ']' '[!]-]'

expecting success of 3070.586 'iwildmatch (via ls-files): no match '[!]-]' ']'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 586 - iwildmatch (via ls-files): no match '[!]-]' ']'

expecting success of 3070.587 'pathmatch: no match ']' '[!]-]'': 
			test_must_fail test-tool wildmatch pathmatch ']' '[!]-]'
		
ok 587 - pathmatch: no match ']' '[!]-]'

expecting success of 3070.588 'pathmatch (via ls-files): no match '[!]-]' ']'': 
				>expect &&
				git ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 588 - pathmatch (via ls-files): no match '[!]-]' ']'

expecting success of 3070.589 'ipathmatch: no match ']' '[!]-]'': 
			test_must_fail test-tool wildmatch ipathmatch ']' '[!]-]'
		
ok 589 - ipathmatch: no match ']' '[!]-]'

expecting success of 3070.590 'ipathmatch (via ls-files): no match '[!]-]' ']'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 590 - ipathmatch (via ls-files): no match '[!]-]' ']'

expecting success of 3070.591 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 591 - cleanup after previous file test

expecting success of 3070.592 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 592 - setup match file test for a

expecting success of 3070.593 'wildmatch: match 'a' '[!]-]'': 
			test-tool wildmatch wildmatch 'a' '[!]-]'
		
ok 593 - wildmatch: match 'a' '[!]-]'

expecting success of 3070.594 'wildmatch (via ls-files): match '[!]-]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 594 - wildmatch (via ls-files): match '[!]-]' 'a'

expecting success of 3070.595 'iwildmatch: match 'a' '[!]-]'': 
			test-tool wildmatch iwildmatch 'a' '[!]-]'
		
ok 595 - iwildmatch: match 'a' '[!]-]'

expecting success of 3070.596 'iwildmatch (via ls-files): match '[!]-]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 596 - iwildmatch (via ls-files): match '[!]-]' 'a'

expecting success of 3070.597 'pathmatch: match 'a' '[!]-]'': 
			test-tool wildmatch pathmatch 'a' '[!]-]'
		
ok 597 - pathmatch: match 'a' '[!]-]'

expecting success of 3070.598 'pathmatch (via ls-files): match '[!]-]' 'a'': 
				printf '%s' 'a' >expect &&
				git ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 598 - pathmatch (via ls-files): match '[!]-]' 'a'

expecting success of 3070.599 'ipathmatch: match 'a' '[!]-]'': 
			test-tool wildmatch ipathmatch 'a' '[!]-]'
		
ok 599 - ipathmatch: match 'a' '[!]-]'

expecting success of 3070.600 'ipathmatch (via ls-files): match '[!]-]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 600 - ipathmatch (via ls-files): match '[!]-]' 'a'

expecting success of 3070.601 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 601 - cleanup after previous file test

expecting success of 3070.602 'setup match file test for ': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 602 - setup match file test for 

expecting success of 3070.603 'wildmatch: no match '' '\'': 
			test_must_fail test-tool wildmatch wildmatch '' '\'
		
ok 603 - wildmatch: no match '' '\'

checking known breakage of 3070.604 'wildmatch (via ls-files): no match skip '\' ''': false
not ok 604 - wildmatch (via ls-files): no match skip '\' '' # TODO known breakage

expecting success of 3070.605 'iwildmatch: no match '' '\'': 
			test_must_fail test-tool wildmatch iwildmatch '' '\'
		
ok 605 - iwildmatch: no match '' '\'

checking known breakage of 3070.606 'iwildmatch (via ls-files): no match skip '\' ''': false
not ok 606 - iwildmatch (via ls-files): no match skip '\' '' # TODO known breakage

expecting success of 3070.607 'pathmatch: no match '' '\'': 
			test_must_fail test-tool wildmatch pathmatch '' '\'
		
ok 607 - pathmatch: no match '' '\'

checking known breakage of 3070.608 'pathmatch (via ls-files): no match skip '\' ''': false
not ok 608 - pathmatch (via ls-files): no match skip '\' '' # TODO known breakage

expecting success of 3070.609 'ipathmatch: no match '' '\'': 
			test_must_fail test-tool wildmatch ipathmatch '' '\'
		
ok 609 - ipathmatch: no match '' '\'

checking known breakage of 3070.610 'ipathmatch (via ls-files): no match skip '\' ''': false
not ok 610 - ipathmatch (via ls-files): no match skip '\' '' # TODO known breakage

expecting success of 3070.611 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 611 - cleanup after previous file test

expecting success of 3070.612 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 612 - setup match file test for \

expecting success of 3070.613 'wildmatch: no match '\' '\'': 
			test_must_fail test-tool wildmatch wildmatch '\' '\'
		
ok 613 - wildmatch: no match '\' '\'

expecting success of 3070.614 'wildmatch (via ls-files): match '\' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs ls-files -z -- '\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 614 - wildmatch (via ls-files): match '\' '\'

expecting success of 3070.615 'iwildmatch: no match '\' '\'': 
			test_must_fail test-tool wildmatch iwildmatch '\' '\'
		
ok 615 - iwildmatch: no match '\' '\'

expecting success of 3070.616 'iwildmatch (via ls-files): match '\' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 616 - iwildmatch (via ls-files): match '\' '\'

expecting success of 3070.617 'pathmatch: no match '\' '\'': 
			test_must_fail test-tool wildmatch pathmatch '\' '\'
		
ok 617 - pathmatch: no match '\' '\'

expecting success of 3070.618 'pathmatch (via ls-files): match '\' '\'': 
				printf '%s' '\' >expect &&
				git ls-files -z -- '\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 618 - pathmatch (via ls-files): match '\' '\'

expecting success of 3070.619 'ipathmatch: no match '\' '\'': 
			test_must_fail test-tool wildmatch ipathmatch '\' '\'
		
ok 619 - ipathmatch: no match '\' '\'

expecting success of 3070.620 'ipathmatch (via ls-files): match '\' '\'': 
				printf '%s' '\' >expect &&
				git --icase-pathspecs ls-files -z -- '\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 620 - ipathmatch (via ls-files): match '\' '\'

expecting success of 3070.621 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 621 - cleanup after previous file test

expecting success of 3070.622 'setup match file test for XXX/\': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 622 - setup match file test for XXX/\

expecting success of 3070.623 'wildmatch: no match 'XXX/\' '*/\'': 
			test_must_fail test-tool wildmatch wildmatch 'XXX/\' '*/\'
		
ok 623 - wildmatch: no match 'XXX/\' '*/\'

expecting success of 3070.624 'wildmatch (via ls-files): no match '*/\' 'XXX/\'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*/\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 624 - wildmatch (via ls-files): no match '*/\' 'XXX/\'

expecting success of 3070.625 'iwildmatch: no match 'XXX/\' '*/\'': 
			test_must_fail test-tool wildmatch iwildmatch 'XXX/\' '*/\'
		
ok 625 - iwildmatch: no match 'XXX/\' '*/\'

expecting success of 3070.626 'iwildmatch (via ls-files): no match '*/\' 'XXX/\'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 626 - iwildmatch (via ls-files): no match '*/\' 'XXX/\'

expecting success of 3070.627 'pathmatch: no match 'XXX/\' '*/\'': 
			test_must_fail test-tool wildmatch pathmatch 'XXX/\' '*/\'
		
ok 627 - pathmatch: no match 'XXX/\' '*/\'

expecting success of 3070.628 'pathmatch (via ls-files): no match '*/\' 'XXX/\'': 
				>expect &&
				git ls-files -z -- '*/\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 628 - pathmatch (via ls-files): no match '*/\' 'XXX/\'

expecting success of 3070.629 'ipathmatch: no match 'XXX/\' '*/\'': 
			test_must_fail test-tool wildmatch ipathmatch 'XXX/\' '*/\'
		
ok 629 - ipathmatch: no match 'XXX/\' '*/\'

expecting success of 3070.630 'ipathmatch (via ls-files): no match '*/\' 'XXX/\'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '*/\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 630 - ipathmatch (via ls-files): no match '*/\' 'XXX/\'

expecting success of 3070.631 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing XXX/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 631 - cleanup after previous file test

expecting success of 3070.632 'setup match file test for XXX/\': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 632 - setup match file test for XXX/\

expecting success of 3070.633 'wildmatch: match 'XXX/\' '*/\\'': 
			test-tool wildmatch wildmatch 'XXX/\' '*/\\'
		
ok 633 - wildmatch: match 'XXX/\' '*/\\'

expecting success of 3070.634 'wildmatch (via ls-files): match '*/\\' 'XXX/\'': 
				printf '%s' 'XXX/\' >expect &&
				git --glob-pathspecs ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 634 - wildmatch (via ls-files): match '*/\\' 'XXX/\'

expecting success of 3070.635 'iwildmatch: match 'XXX/\' '*/\\'': 
			test-tool wildmatch iwildmatch 'XXX/\' '*/\\'
		
ok 635 - iwildmatch: match 'XXX/\' '*/\\'

expecting success of 3070.636 'iwildmatch (via ls-files): match '*/\\' 'XXX/\'': 
				printf '%s' 'XXX/\' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 636 - iwildmatch (via ls-files): match '*/\\' 'XXX/\'

expecting success of 3070.637 'pathmatch: match 'XXX/\' '*/\\'': 
			test-tool wildmatch pathmatch 'XXX/\' '*/\\'
		
ok 637 - pathmatch: match 'XXX/\' '*/\\'

expecting success of 3070.638 'pathmatch (via ls-files): match '*/\\' 'XXX/\'': 
				printf '%s' 'XXX/\' >expect &&
				git ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 638 - pathmatch (via ls-files): match '*/\\' 'XXX/\'

expecting success of 3070.639 'ipathmatch: match 'XXX/\' '*/\\'': 
			test-tool wildmatch ipathmatch 'XXX/\' '*/\\'
		
ok 639 - ipathmatch: match 'XXX/\' '*/\\'

expecting success of 3070.640 'ipathmatch (via ls-files): match '*/\\' 'XXX/\'': 
				printf '%s' 'XXX/\' >expect &&
				git --icase-pathspecs ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 640 - ipathmatch (via ls-files): match '*/\\' 'XXX/\'

expecting success of 3070.641 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing XXX/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 641 - cleanup after previous file test

expecting success of 3070.642 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 642 - setup match file test for foo

expecting success of 3070.643 'wildmatch: match 'foo' 'foo'': 
			test-tool wildmatch wildmatch 'foo' 'foo'
		
ok 643 - wildmatch: match 'foo' 'foo'

expecting success of 3070.644 'wildmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 644 - wildmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.645 'iwildmatch: match 'foo' 'foo'': 
			test-tool wildmatch iwildmatch 'foo' 'foo'
		
ok 645 - iwildmatch: match 'foo' 'foo'

expecting success of 3070.646 'iwildmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 646 - iwildmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.647 'pathmatch: match 'foo' 'foo'': 
			test-tool wildmatch pathmatch 'foo' 'foo'
		
ok 647 - pathmatch: match 'foo' 'foo'

expecting success of 3070.648 'pathmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 648 - pathmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.649 'ipathmatch: match 'foo' 'foo'': 
			test-tool wildmatch ipathmatch 'foo' 'foo'
		
ok 649 - ipathmatch: match 'foo' 'foo'

expecting success of 3070.650 'ipathmatch (via ls-files): match 'foo' 'foo'': 
				printf '%s' 'foo' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 650 - ipathmatch (via ls-files): match 'foo' 'foo'

expecting success of 3070.651 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 651 - cleanup after previous file test

expecting success of 3070.652 'setup match file test for @foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 652 - setup match file test for @foo

expecting success of 3070.653 'wildmatch: match '@foo' '@foo'': 
			test-tool wildmatch wildmatch '@foo' '@foo'
		
ok 653 - wildmatch: match '@foo' '@foo'

expecting success of 3070.654 'wildmatch (via ls-files): match '@foo' '@foo'': 
				printf '%s' '@foo' >expect &&
				git --glob-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 654 - wildmatch (via ls-files): match '@foo' '@foo'

expecting success of 3070.655 'iwildmatch: match '@foo' '@foo'': 
			test-tool wildmatch iwildmatch '@foo' '@foo'
		
ok 655 - iwildmatch: match '@foo' '@foo'

expecting success of 3070.656 'iwildmatch (via ls-files): match '@foo' '@foo'': 
				printf '%s' '@foo' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 656 - iwildmatch (via ls-files): match '@foo' '@foo'

expecting success of 3070.657 'pathmatch: match '@foo' '@foo'': 
			test-tool wildmatch pathmatch '@foo' '@foo'
		
ok 657 - pathmatch: match '@foo' '@foo'

expecting success of 3070.658 'pathmatch (via ls-files): match '@foo' '@foo'': 
				printf '%s' '@foo' >expect &&
				git ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 658 - pathmatch (via ls-files): match '@foo' '@foo'

expecting success of 3070.659 'ipathmatch: match '@foo' '@foo'': 
			test-tool wildmatch ipathmatch '@foo' '@foo'
		
ok 659 - ipathmatch: match '@foo' '@foo'

expecting success of 3070.660 'ipathmatch (via ls-files): match '@foo' '@foo'': 
				printf '%s' '@foo' >expect &&
				git --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 660 - ipathmatch (via ls-files): match '@foo' '@foo'

expecting success of 3070.661 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing @foo
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 661 - cleanup after previous file test

expecting success of 3070.662 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 662 - setup match file test for foo

expecting success of 3070.663 'wildmatch: no match 'foo' '@foo'': 
			test_must_fail test-tool wildmatch wildmatch 'foo' '@foo'
		
ok 663 - wildmatch: no match 'foo' '@foo'

expecting success of 3070.664 'wildmatch (via ls-files): no match '@foo' 'foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 664 - wildmatch (via ls-files): no match '@foo' 'foo'

expecting success of 3070.665 'iwildmatch: no match 'foo' '@foo'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' '@foo'
		
ok 665 - iwildmatch: no match 'foo' '@foo'

expecting success of 3070.666 'iwildmatch (via ls-files): no match '@foo' 'foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 666 - iwildmatch (via ls-files): no match '@foo' 'foo'

expecting success of 3070.667 'pathmatch: no match 'foo' '@foo'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' '@foo'
		
ok 667 - pathmatch: no match 'foo' '@foo'

expecting success of 3070.668 'pathmatch (via ls-files): no match '@foo' 'foo'': 
				>expect &&
				git ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 668 - pathmatch (via ls-files): no match '@foo' 'foo'

expecting success of 3070.669 'ipathmatch: no match 'foo' '@foo'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' '@foo'
		
ok 669 - ipathmatch: no match 'foo' '@foo'

expecting success of 3070.670 'ipathmatch (via ls-files): no match '@foo' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 670 - ipathmatch (via ls-files): no match '@foo' 'foo'

expecting success of 3070.671 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 671 - cleanup after previous file test

expecting success of 3070.672 'setup match file test for [ab]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 672 - setup match file test for [ab]

expecting success of 3070.673 'wildmatch: match '[ab]' '\[ab]'': 
			test-tool wildmatch wildmatch '[ab]' '\[ab]'
		
ok 673 - wildmatch: match '[ab]' '\[ab]'

expecting success of 3070.674 'wildmatch (via ls-files): match '\[ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 674 - wildmatch (via ls-files): match '\[ab]' '[ab]'

expecting success of 3070.675 'iwildmatch: match '[ab]' '\[ab]'': 
			test-tool wildmatch iwildmatch '[ab]' '\[ab]'
		
ok 675 - iwildmatch: match '[ab]' '\[ab]'

expecting success of 3070.676 'iwildmatch (via ls-files): match '\[ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 676 - iwildmatch (via ls-files): match '\[ab]' '[ab]'

expecting success of 3070.677 'pathmatch: match '[ab]' '\[ab]'': 
			test-tool wildmatch pathmatch '[ab]' '\[ab]'
		
ok 677 - pathmatch: match '[ab]' '\[ab]'

expecting success of 3070.678 'pathmatch (via ls-files): match '\[ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 678 - pathmatch (via ls-files): match '\[ab]' '[ab]'

expecting success of 3070.679 'ipathmatch: match '[ab]' '\[ab]'': 
			test-tool wildmatch ipathmatch '[ab]' '\[ab]'
		
ok 679 - ipathmatch: match '[ab]' '\[ab]'

expecting success of 3070.680 'ipathmatch (via ls-files): match '\[ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --icase-pathspecs ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 680 - ipathmatch (via ls-files): match '\[ab]' '[ab]'

expecting success of 3070.681 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [ab]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 681 - cleanup after previous file test

expecting success of 3070.682 'setup match file test for [ab]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 682 - setup match file test for [ab]

expecting success of 3070.683 'wildmatch: match '[ab]' '[[]ab]'': 
			test-tool wildmatch wildmatch '[ab]' '[[]ab]'
		
ok 683 - wildmatch: match '[ab]' '[[]ab]'

expecting success of 3070.684 'wildmatch (via ls-files): match '[[]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 684 - wildmatch (via ls-files): match '[[]ab]' '[ab]'

expecting success of 3070.685 'iwildmatch: match '[ab]' '[[]ab]'': 
			test-tool wildmatch iwildmatch '[ab]' '[[]ab]'
		
ok 685 - iwildmatch: match '[ab]' '[[]ab]'

expecting success of 3070.686 'iwildmatch (via ls-files): match '[[]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 686 - iwildmatch (via ls-files): match '[[]ab]' '[ab]'

expecting success of 3070.687 'pathmatch: match '[ab]' '[[]ab]'': 
			test-tool wildmatch pathmatch '[ab]' '[[]ab]'
		
ok 687 - pathmatch: match '[ab]' '[[]ab]'

expecting success of 3070.688 'pathmatch (via ls-files): match '[[]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 688 - pathmatch (via ls-files): match '[[]ab]' '[ab]'

expecting success of 3070.689 'ipathmatch: match '[ab]' '[[]ab]'': 
			test-tool wildmatch ipathmatch '[ab]' '[[]ab]'
		
ok 689 - ipathmatch: match '[ab]' '[[]ab]'

expecting success of 3070.690 'ipathmatch (via ls-files): match '[[]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --icase-pathspecs ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 690 - ipathmatch (via ls-files): match '[[]ab]' '[ab]'

expecting success of 3070.691 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [ab]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 691 - cleanup after previous file test

expecting success of 3070.692 'setup match file test for [ab]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 692 - setup match file test for [ab]

expecting success of 3070.693 'wildmatch: match '[ab]' '[[:]ab]'': 
			test-tool wildmatch wildmatch '[ab]' '[[:]ab]'
		
ok 693 - wildmatch: match '[ab]' '[[:]ab]'

expecting success of 3070.694 'wildmatch (via ls-files): match '[[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 694 - wildmatch (via ls-files): match '[[:]ab]' '[ab]'

expecting success of 3070.695 'iwildmatch: match '[ab]' '[[:]ab]'': 
			test-tool wildmatch iwildmatch '[ab]' '[[:]ab]'
		
ok 695 - iwildmatch: match '[ab]' '[[:]ab]'

expecting success of 3070.696 'iwildmatch (via ls-files): match '[[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 696 - iwildmatch (via ls-files): match '[[:]ab]' '[ab]'

expecting success of 3070.697 'pathmatch: match '[ab]' '[[:]ab]'': 
			test-tool wildmatch pathmatch '[ab]' '[[:]ab]'
		
ok 697 - pathmatch: match '[ab]' '[[:]ab]'

expecting success of 3070.698 'pathmatch (via ls-files): match '[[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 698 - pathmatch (via ls-files): match '[[:]ab]' '[ab]'

expecting success of 3070.699 'ipathmatch: match '[ab]' '[[:]ab]'': 
			test-tool wildmatch ipathmatch '[ab]' '[[:]ab]'
		
ok 699 - ipathmatch: match '[ab]' '[[:]ab]'

expecting success of 3070.700 'ipathmatch (via ls-files): match '[[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 700 - ipathmatch (via ls-files): match '[[:]ab]' '[ab]'

expecting success of 3070.701 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [ab]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 701 - cleanup after previous file test

expecting success of 3070.702 'setup match file test for [ab]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 702 - setup match file test for [ab]

expecting success of 3070.703 'wildmatch: no match '[ab]' '[[::]ab]'': 
			test_must_fail test-tool wildmatch wildmatch '[ab]' '[[::]ab]'
		
ok 703 - wildmatch: no match '[ab]' '[[::]ab]'

expecting success of 3070.704 'wildmatch (via ls-files): no match '[[::]ab]' '[ab]'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 704 - wildmatch (via ls-files): no match '[[::]ab]' '[ab]'

expecting success of 3070.705 'iwildmatch: no match '[ab]' '[[::]ab]'': 
			test_must_fail test-tool wildmatch iwildmatch '[ab]' '[[::]ab]'
		
ok 705 - iwildmatch: no match '[ab]' '[[::]ab]'

expecting success of 3070.706 'iwildmatch (via ls-files): no match '[[::]ab]' '[ab]'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 706 - iwildmatch (via ls-files): no match '[[::]ab]' '[ab]'

expecting success of 3070.707 'pathmatch: no match '[ab]' '[[::]ab]'': 
			test_must_fail test-tool wildmatch pathmatch '[ab]' '[[::]ab]'
		
ok 707 - pathmatch: no match '[ab]' '[[::]ab]'

expecting success of 3070.708 'pathmatch (via ls-files): no match '[[::]ab]' '[ab]'': 
				>expect &&
				git ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 708 - pathmatch (via ls-files): no match '[[::]ab]' '[ab]'

expecting success of 3070.709 'ipathmatch: no match '[ab]' '[[::]ab]'': 
			test_must_fail test-tool wildmatch ipathmatch '[ab]' '[[::]ab]'
		
ok 709 - ipathmatch: no match '[ab]' '[[::]ab]'

expecting success of 3070.710 'ipathmatch (via ls-files): no match '[[::]ab]' '[ab]'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 710 - ipathmatch (via ls-files): no match '[[::]ab]' '[ab]'

expecting success of 3070.711 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [ab]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 711 - cleanup after previous file test

expecting success of 3070.712 'setup match file test for [ab]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 712 - setup match file test for [ab]

expecting success of 3070.713 'wildmatch: match '[ab]' '[[:digit]ab]'': 
			test-tool wildmatch wildmatch '[ab]' '[[:digit]ab]'
		
ok 713 - wildmatch: match '[ab]' '[[:digit]ab]'

expecting success of 3070.714 'wildmatch (via ls-files): match '[[:digit]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 714 - wildmatch (via ls-files): match '[[:digit]ab]' '[ab]'

expecting success of 3070.715 'iwildmatch: match '[ab]' '[[:digit]ab]'': 
			test-tool wildmatch iwildmatch '[ab]' '[[:digit]ab]'
		
ok 715 - iwildmatch: match '[ab]' '[[:digit]ab]'

expecting success of 3070.716 'iwildmatch (via ls-files): match '[[:digit]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 716 - iwildmatch (via ls-files): match '[[:digit]ab]' '[ab]'

expecting success of 3070.717 'pathmatch: match '[ab]' '[[:digit]ab]'': 
			test-tool wildmatch pathmatch '[ab]' '[[:digit]ab]'
		
ok 717 - pathmatch: match '[ab]' '[[:digit]ab]'

expecting success of 3070.718 'pathmatch (via ls-files): match '[[:digit]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 718 - pathmatch (via ls-files): match '[[:digit]ab]' '[ab]'

expecting success of 3070.719 'ipathmatch: match '[ab]' '[[:digit]ab]'': 
			test-tool wildmatch ipathmatch '[ab]' '[[:digit]ab]'
		
ok 719 - ipathmatch: match '[ab]' '[[:digit]ab]'

expecting success of 3070.720 'ipathmatch (via ls-files): match '[[:digit]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 720 - ipathmatch (via ls-files): match '[[:digit]ab]' '[ab]'

expecting success of 3070.721 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [ab]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 721 - cleanup after previous file test

expecting success of 3070.722 'setup match file test for [ab]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 722 - setup match file test for [ab]

expecting success of 3070.723 'wildmatch: match '[ab]' '[\[:]ab]'': 
			test-tool wildmatch wildmatch '[ab]' '[\[:]ab]'
		
ok 723 - wildmatch: match '[ab]' '[\[:]ab]'

expecting success of 3070.724 'wildmatch (via ls-files): match '[\[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 724 - wildmatch (via ls-files): match '[\[:]ab]' '[ab]'

expecting success of 3070.725 'iwildmatch: match '[ab]' '[\[:]ab]'': 
			test-tool wildmatch iwildmatch '[ab]' '[\[:]ab]'
		
ok 725 - iwildmatch: match '[ab]' '[\[:]ab]'

expecting success of 3070.726 'iwildmatch (via ls-files): match '[\[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 726 - iwildmatch (via ls-files): match '[\[:]ab]' '[ab]'

expecting success of 3070.727 'pathmatch: match '[ab]' '[\[:]ab]'': 
			test-tool wildmatch pathmatch '[ab]' '[\[:]ab]'
		
ok 727 - pathmatch: match '[ab]' '[\[:]ab]'

expecting success of 3070.728 'pathmatch (via ls-files): match '[\[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 728 - pathmatch (via ls-files): match '[\[:]ab]' '[ab]'

expecting success of 3070.729 'ipathmatch: match '[ab]' '[\[:]ab]'': 
			test-tool wildmatch ipathmatch '[ab]' '[\[:]ab]'
		
ok 729 - ipathmatch: match '[ab]' '[\[:]ab]'

expecting success of 3070.730 'ipathmatch (via ls-files): match '[\[:]ab]' '[ab]'': 
				printf '%s' '[ab]' >expect &&
				git --icase-pathspecs ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 730 - ipathmatch (via ls-files): match '[\[:]ab]' '[ab]'

expecting success of 3070.731 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [ab]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 731 - cleanup after previous file test

expecting success of 3070.732 'setup match file test for ?a?b': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 732 - setup match file test for ?a?b

expecting success of 3070.733 'wildmatch: match '?a?b' '\??\?b'': 
			test-tool wildmatch wildmatch '?a?b' '\??\?b'
		
ok 733 - wildmatch: match '?a?b' '\??\?b'

expecting success of 3070.734 'wildmatch (via ls-files): match '\??\?b' '?a?b'': 
				printf '%s' '?a?b' >expect &&
				git --glob-pathspecs ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 734 - wildmatch (via ls-files): match '\??\?b' '?a?b'

expecting success of 3070.735 'iwildmatch: match '?a?b' '\??\?b'': 
			test-tool wildmatch iwildmatch '?a?b' '\??\?b'
		
ok 735 - iwildmatch: match '?a?b' '\??\?b'

expecting success of 3070.736 'iwildmatch (via ls-files): match '\??\?b' '?a?b'': 
				printf '%s' '?a?b' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 736 - iwildmatch (via ls-files): match '\??\?b' '?a?b'

expecting success of 3070.737 'pathmatch: match '?a?b' '\??\?b'': 
			test-tool wildmatch pathmatch '?a?b' '\??\?b'
		
ok 737 - pathmatch: match '?a?b' '\??\?b'

expecting success of 3070.738 'pathmatch (via ls-files): match '\??\?b' '?a?b'': 
				printf '%s' '?a?b' >expect &&
				git ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 738 - pathmatch (via ls-files): match '\??\?b' '?a?b'

expecting success of 3070.739 'ipathmatch: match '?a?b' '\??\?b'': 
			test-tool wildmatch ipathmatch '?a?b' '\??\?b'
		
ok 739 - ipathmatch: match '?a?b' '\??\?b'

expecting success of 3070.740 'ipathmatch (via ls-files): match '\??\?b' '?a?b'': 
				printf '%s' '?a?b' >expect &&
				git --icase-pathspecs ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 740 - ipathmatch (via ls-files): match '\??\?b' '?a?b'

expecting success of 3070.741 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ?a?b
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 741 - cleanup after previous file test

expecting success of 3070.742 'setup match file test for abc': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 742 - setup match file test for abc

expecting success of 3070.743 'wildmatch: match 'abc' '\a\b\c'': 
			test-tool wildmatch wildmatch 'abc' '\a\b\c'
		
ok 743 - wildmatch: match 'abc' '\a\b\c'

expecting success of 3070.744 'wildmatch (via ls-files): match '\a\b\c' 'abc'': 
				printf '%s' 'abc' >expect &&
				git --glob-pathspecs ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 744 - wildmatch (via ls-files): match '\a\b\c' 'abc'

expecting success of 3070.745 'iwildmatch: match 'abc' '\a\b\c'': 
			test-tool wildmatch iwildmatch 'abc' '\a\b\c'
		
ok 745 - iwildmatch: match 'abc' '\a\b\c'

expecting success of 3070.746 'iwildmatch (via ls-files): match '\a\b\c' 'abc'': 
				printf '%s' 'abc' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 746 - iwildmatch (via ls-files): match '\a\b\c' 'abc'

expecting success of 3070.747 'pathmatch: match 'abc' '\a\b\c'': 
			test-tool wildmatch pathmatch 'abc' '\a\b\c'
		
ok 747 - pathmatch: match 'abc' '\a\b\c'

expecting success of 3070.748 'pathmatch (via ls-files): match '\a\b\c' 'abc'': 
				printf '%s' 'abc' >expect &&
				git ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 748 - pathmatch (via ls-files): match '\a\b\c' 'abc'

expecting success of 3070.749 'ipathmatch: match 'abc' '\a\b\c'': 
			test-tool wildmatch ipathmatch 'abc' '\a\b\c'
		
ok 749 - ipathmatch: match 'abc' '\a\b\c'

expecting success of 3070.750 'ipathmatch (via ls-files): match '\a\b\c' 'abc'': 
				printf '%s' 'abc' >expect &&
				git --icase-pathspecs ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 750 - ipathmatch (via ls-files): match '\a\b\c' 'abc'

expecting success of 3070.751 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing abc
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 751 - cleanup after previous file test

expecting success of 3070.752 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 752 - setup match file test for foo

expecting success of 3070.753 'wildmatch: no match 'foo' ''': 
			test_must_fail test-tool wildmatch wildmatch 'foo' ''
		
ok 753 - wildmatch: no match 'foo' ''

expecting success of 3070.754 'wildmatch (via ls-files): match dies on '' 'foo'': 
				printf '%s' 'foo' >expect &&
				test_must_fail git --glob-pathspecs ls-files -z -- ''
			
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
ok 754 - wildmatch (via ls-files): match dies on '' 'foo'

expecting success of 3070.755 'iwildmatch: no match 'foo' ''': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' ''
		
ok 755 - iwildmatch: no match 'foo' ''

expecting success of 3070.756 'iwildmatch (via ls-files): match dies on '' 'foo'': 
				printf '%s' 'foo' >expect &&
				test_must_fail git --glob-pathspecs --icase-pathspecs ls-files -z -- ''
			
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
ok 756 - iwildmatch (via ls-files): match dies on '' 'foo'

expecting success of 3070.757 'pathmatch: no match 'foo' ''': 
			test_must_fail test-tool wildmatch pathmatch 'foo' ''
		
ok 757 - pathmatch: no match 'foo' ''

expecting success of 3070.758 'pathmatch (via ls-files): match dies on '' 'foo'': 
				printf '%s' 'foo' >expect &&
				test_must_fail git ls-files -z -- ''
			
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
ok 758 - pathmatch (via ls-files): match dies on '' 'foo'

expecting success of 3070.759 'ipathmatch: no match 'foo' ''': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' ''
		
ok 759 - ipathmatch: no match 'foo' ''

expecting success of 3070.760 'ipathmatch (via ls-files): match dies on '' 'foo'': 
				printf '%s' 'foo' >expect &&
				test_must_fail git --icase-pathspecs ls-files -z -- ''
			
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
ok 760 - ipathmatch (via ls-files): match dies on '' 'foo'

expecting success of 3070.761 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing expect
Removing foo
ok 761 - cleanup after previous file test

expecting success of 3070.762 'setup match file test for foo/bar/baz/to': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 762 - setup match file test for foo/bar/baz/to

expecting success of 3070.763 'wildmatch: match 'foo/bar/baz/to' '**/t[o]'': 
			test-tool wildmatch wildmatch 'foo/bar/baz/to' '**/t[o]'
		
ok 763 - wildmatch: match 'foo/bar/baz/to' '**/t[o]'

expecting success of 3070.764 'wildmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'': 
				printf '%s' 'foo/bar/baz/to' >expect &&
				git --glob-pathspecs ls-files -z -- '**/t[o]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 764 - wildmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'

expecting success of 3070.765 'iwildmatch: match 'foo/bar/baz/to' '**/t[o]'': 
			test-tool wildmatch iwildmatch 'foo/bar/baz/to' '**/t[o]'
		
ok 765 - iwildmatch: match 'foo/bar/baz/to' '**/t[o]'

expecting success of 3070.766 'iwildmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'': 
				printf '%s' 'foo/bar/baz/to' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/t[o]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 766 - iwildmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'

expecting success of 3070.767 'pathmatch: match 'foo/bar/baz/to' '**/t[o]'': 
			test-tool wildmatch pathmatch 'foo/bar/baz/to' '**/t[o]'
		
ok 767 - pathmatch: match 'foo/bar/baz/to' '**/t[o]'

expecting success of 3070.768 'pathmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'': 
				printf '%s' 'foo/bar/baz/to' >expect &&
				git ls-files -z -- '**/t[o]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 768 - pathmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'

expecting success of 3070.769 'ipathmatch: match 'foo/bar/baz/to' '**/t[o]'': 
			test-tool wildmatch ipathmatch 'foo/bar/baz/to' '**/t[o]'
		
ok 769 - ipathmatch: match 'foo/bar/baz/to' '**/t[o]'

expecting success of 3070.770 'ipathmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'': 
				printf '%s' 'foo/bar/baz/to' >expect &&
				git --icase-pathspecs ls-files -z -- '**/t[o]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 770 - ipathmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'

expecting success of 3070.771 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 771 - cleanup after previous file test

expecting success of 3070.772 'setup match file test for a1B': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 772 - setup match file test for a1B

expecting success of 3070.773 'wildmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'': 
			test-tool wildmatch wildmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
		
ok 773 - wildmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'

expecting success of 3070.774 'wildmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'': 
				printf '%s' 'a1B' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 774 - wildmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'

expecting success of 3070.775 'iwildmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'': 
			test-tool wildmatch iwildmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
		
ok 775 - iwildmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'

expecting success of 3070.776 'iwildmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'': 
				printf '%s' 'a1B' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 776 - iwildmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'

expecting success of 3070.777 'pathmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'': 
			test-tool wildmatch pathmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
		
ok 777 - pathmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'

expecting success of 3070.778 'pathmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'': 
				printf '%s' 'a1B' >expect &&
				git ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 778 - pathmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'

expecting success of 3070.779 'ipathmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'': 
			test-tool wildmatch ipathmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
		
ok 779 - ipathmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'

expecting success of 3070.780 'ipathmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'': 
				printf '%s' 'a1B' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 780 - ipathmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'

expecting success of 3070.781 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a1B
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 781 - cleanup after previous file test

expecting success of 3070.782 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 782 - setup match file test for a

expecting success of 3070.783 'wildmatch: no match 'a' '[[:digit:][:upper:][:space:]]'': 
			test_must_fail test-tool wildmatch wildmatch 'a' '[[:digit:][:upper:][:space:]]'
		
ok 783 - wildmatch: no match 'a' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.784 'wildmatch (via ls-files): no match '[[:digit:][:upper:][:space:]]' 'a'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 784 - wildmatch (via ls-files): no match '[[:digit:][:upper:][:space:]]' 'a'

expecting success of 3070.785 'iwildmatch: match 'a' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch iwildmatch 'a' '[[:digit:][:upper:][:space:]]'
		
ok 785 - iwildmatch: match 'a' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.786 'iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 786 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'a'

expecting success of 3070.787 'pathmatch: no match 'a' '[[:digit:][:upper:][:space:]]'': 
			test_must_fail test-tool wildmatch pathmatch 'a' '[[:digit:][:upper:][:space:]]'
		
ok 787 - pathmatch: no match 'a' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.788 'pathmatch (via ls-files): no match '[[:digit:][:upper:][:space:]]' 'a'': 
				>expect &&
				git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 788 - pathmatch (via ls-files): no match '[[:digit:][:upper:][:space:]]' 'a'

expecting success of 3070.789 'ipathmatch: match 'a' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch ipathmatch 'a' '[[:digit:][:upper:][:space:]]'
		
ok 789 - ipathmatch: match 'a' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.790 'ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 790 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'a'

expecting success of 3070.791 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 791 - cleanup after previous file test

expecting success of 3070.792 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 792 - setup match file test for A

expecting success of 3070.793 'wildmatch: match 'A' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch wildmatch 'A' '[[:digit:][:upper:][:space:]]'
		
ok 793 - wildmatch: match 'A' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.794 'wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 794 - wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'

expecting success of 3070.795 'iwildmatch: match 'A' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch iwildmatch 'A' '[[:digit:][:upper:][:space:]]'
		
ok 795 - iwildmatch: match 'A' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.796 'iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 796 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'

expecting success of 3070.797 'pathmatch: match 'A' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch pathmatch 'A' '[[:digit:][:upper:][:space:]]'
		
ok 797 - pathmatch: match 'A' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.798 'pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 798 - pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'

expecting success of 3070.799 'ipathmatch: match 'A' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch ipathmatch 'A' '[[:digit:][:upper:][:space:]]'
		
ok 799 - ipathmatch: match 'A' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.800 'ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 800 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'

expecting success of 3070.801 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 801 - cleanup after previous file test

expecting success of 3070.802 'setup match file test for 1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 802 - setup match file test for 1

expecting success of 3070.803 'wildmatch: match '1' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch wildmatch '1' '[[:digit:][:upper:][:space:]]'
		
ok 803 - wildmatch: match '1' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.804 'wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'': 
				printf '%s' '1' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 804 - wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'

expecting success of 3070.805 'iwildmatch: match '1' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch iwildmatch '1' '[[:digit:][:upper:][:space:]]'
		
ok 805 - iwildmatch: match '1' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.806 'iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'': 
				printf '%s' '1' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 806 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'

expecting success of 3070.807 'pathmatch: match '1' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch pathmatch '1' '[[:digit:][:upper:][:space:]]'
		
ok 807 - pathmatch: match '1' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.808 'pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'': 
				printf '%s' '1' >expect &&
				git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 808 - pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'

expecting success of 3070.809 'ipathmatch: match '1' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch ipathmatch '1' '[[:digit:][:upper:][:space:]]'
		
ok 809 - ipathmatch: match '1' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.810 'ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'': 
				printf '%s' '1' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 810 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'

expecting success of 3070.811 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 1
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 811 - cleanup after previous file test

expecting success of 3070.812 'setup match file test for 1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 812 - setup match file test for 1

expecting success of 3070.813 'wildmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'': 
			test_must_fail test-tool wildmatch wildmatch '1' '[[:digit:][:upper:][:spaci:]]'
		
ok 813 - wildmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'

expecting success of 3070.814 'wildmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 814 - wildmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'

expecting success of 3070.815 'iwildmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'': 
			test_must_fail test-tool wildmatch iwildmatch '1' '[[:digit:][:upper:][:spaci:]]'
		
ok 815 - iwildmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'

expecting success of 3070.816 'iwildmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 816 - iwildmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'

expecting success of 3070.817 'pathmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'': 
			test_must_fail test-tool wildmatch pathmatch '1' '[[:digit:][:upper:][:spaci:]]'
		
ok 817 - pathmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'

expecting success of 3070.818 'pathmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'': 
				>expect &&
				git ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 818 - pathmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'

expecting success of 3070.819 'ipathmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'': 
			test_must_fail test-tool wildmatch ipathmatch '1' '[[:digit:][:upper:][:spaci:]]'
		
ok 819 - ipathmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'

expecting success of 3070.820 'ipathmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 820 - ipathmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'

expecting success of 3070.821 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 1
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 821 - cleanup after previous file test

expecting success of 3070.822 'setup match file test for  ': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 822 - setup match file test for  

expecting success of 3070.823 'wildmatch: match ' ' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch wildmatch ' ' '[[:digit:][:upper:][:space:]]'
		
ok 823 - wildmatch: match ' ' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.824 'wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '': 
				printf '%s' ' ' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 824 - wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '

expecting success of 3070.825 'iwildmatch: match ' ' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch iwildmatch ' ' '[[:digit:][:upper:][:space:]]'
		
ok 825 - iwildmatch: match ' ' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.826 'iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '': 
				printf '%s' ' ' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 826 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '

expecting success of 3070.827 'pathmatch: match ' ' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch pathmatch ' ' '[[:digit:][:upper:][:space:]]'
		
ok 827 - pathmatch: match ' ' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.828 'pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '': 
				printf '%s' ' ' >expect &&
				git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 828 - pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '

expecting success of 3070.829 'ipathmatch: match ' ' '[[:digit:][:upper:][:space:]]'': 
			test-tool wildmatch ipathmatch ' ' '[[:digit:][:upper:][:space:]]'
		
ok 829 - ipathmatch: match ' ' '[[:digit:][:upper:][:space:]]'

expecting success of 3070.830 'ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '': 
				printf '%s' ' ' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 830 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '

expecting success of 3070.831 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing  
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 831 - cleanup after previous file test

expecting success of 3070.832 'setup match file test for .': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 832 - setup match file test for .

expecting success of 3070.833 'wildmatch: no match '.' '[[:digit:][:upper:][:space:]]'': 
			test_must_fail test-tool wildmatch wildmatch '.' '[[:digit:][:upper:][:space:]]'
		
ok 833 - wildmatch: no match '.' '[[:digit:][:upper:][:space:]]'

checking known breakage of 3070.834 'wildmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.'': false
not ok 834 - wildmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage

expecting success of 3070.835 'iwildmatch: no match '.' '[[:digit:][:upper:][:space:]]'': 
			test_must_fail test-tool wildmatch iwildmatch '.' '[[:digit:][:upper:][:space:]]'
		
ok 835 - iwildmatch: no match '.' '[[:digit:][:upper:][:space:]]'

checking known breakage of 3070.836 'iwildmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.'': false
not ok 836 - iwildmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage

expecting success of 3070.837 'pathmatch: no match '.' '[[:digit:][:upper:][:space:]]'': 
			test_must_fail test-tool wildmatch pathmatch '.' '[[:digit:][:upper:][:space:]]'
		
ok 837 - pathmatch: no match '.' '[[:digit:][:upper:][:space:]]'

checking known breakage of 3070.838 'pathmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.'': false
not ok 838 - pathmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage

expecting success of 3070.839 'ipathmatch: no match '.' '[[:digit:][:upper:][:space:]]'': 
			test_must_fail test-tool wildmatch ipathmatch '.' '[[:digit:][:upper:][:space:]]'
		
ok 839 - ipathmatch: no match '.' '[[:digit:][:upper:][:space:]]'

checking known breakage of 3070.840 'ipathmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.'': false
not ok 840 - ipathmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage

expecting success of 3070.841 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 841 - cleanup after previous file test

expecting success of 3070.842 'setup match file test for .': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 842 - setup match file test for .

expecting success of 3070.843 'wildmatch: match '.' '[[:digit:][:punct:][:space:]]'': 
			test-tool wildmatch wildmatch '.' '[[:digit:][:punct:][:space:]]'
		
ok 843 - wildmatch: match '.' '[[:digit:][:punct:][:space:]]'

checking known breakage of 3070.844 'wildmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.'': false
not ok 844 - wildmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage

expecting success of 3070.845 'iwildmatch: match '.' '[[:digit:][:punct:][:space:]]'': 
			test-tool wildmatch iwildmatch '.' '[[:digit:][:punct:][:space:]]'
		
ok 845 - iwildmatch: match '.' '[[:digit:][:punct:][:space:]]'

checking known breakage of 3070.846 'iwildmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.'': false
not ok 846 - iwildmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage

expecting success of 3070.847 'pathmatch: match '.' '[[:digit:][:punct:][:space:]]'': 
			test-tool wildmatch pathmatch '.' '[[:digit:][:punct:][:space:]]'
		
ok 847 - pathmatch: match '.' '[[:digit:][:punct:][:space:]]'

checking known breakage of 3070.848 'pathmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.'': false
not ok 848 - pathmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage

expecting success of 3070.849 'ipathmatch: match '.' '[[:digit:][:punct:][:space:]]'': 
			test-tool wildmatch ipathmatch '.' '[[:digit:][:punct:][:space:]]'
		
ok 849 - ipathmatch: match '.' '[[:digit:][:punct:][:space:]]'

checking known breakage of 3070.850 'ipathmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.'': false
not ok 850 - ipathmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage

expecting success of 3070.851 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 851 - cleanup after previous file test

expecting success of 3070.852 'setup match file test for 5': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 852 - setup match file test for 5

expecting success of 3070.853 'wildmatch: match '5' '[[:xdigit:]]'': 
			test-tool wildmatch wildmatch '5' '[[:xdigit:]]'
		
ok 853 - wildmatch: match '5' '[[:xdigit:]]'

expecting success of 3070.854 'wildmatch (via ls-files): match '[[:xdigit:]]' '5'': 
				printf '%s' '5' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 854 - wildmatch (via ls-files): match '[[:xdigit:]]' '5'

expecting success of 3070.855 'iwildmatch: match '5' '[[:xdigit:]]'': 
			test-tool wildmatch iwildmatch '5' '[[:xdigit:]]'
		
ok 855 - iwildmatch: match '5' '[[:xdigit:]]'

expecting success of 3070.856 'iwildmatch (via ls-files): match '[[:xdigit:]]' '5'': 
				printf '%s' '5' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 856 - iwildmatch (via ls-files): match '[[:xdigit:]]' '5'

expecting success of 3070.857 'pathmatch: match '5' '[[:xdigit:]]'': 
			test-tool wildmatch pathmatch '5' '[[:xdigit:]]'
		
ok 857 - pathmatch: match '5' '[[:xdigit:]]'

expecting success of 3070.858 'pathmatch (via ls-files): match '[[:xdigit:]]' '5'': 
				printf '%s' '5' >expect &&
				git ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 858 - pathmatch (via ls-files): match '[[:xdigit:]]' '5'

expecting success of 3070.859 'ipathmatch: match '5' '[[:xdigit:]]'': 
			test-tool wildmatch ipathmatch '5' '[[:xdigit:]]'
		
ok 859 - ipathmatch: match '5' '[[:xdigit:]]'

expecting success of 3070.860 'ipathmatch (via ls-files): match '[[:xdigit:]]' '5'': 
				printf '%s' '5' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 860 - ipathmatch (via ls-files): match '[[:xdigit:]]' '5'

expecting success of 3070.861 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 5
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 861 - cleanup after previous file test

expecting success of 3070.862 'setup match file test for f': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 862 - setup match file test for f

expecting success of 3070.863 'wildmatch: match 'f' '[[:xdigit:]]'': 
			test-tool wildmatch wildmatch 'f' '[[:xdigit:]]'
		
ok 863 - wildmatch: match 'f' '[[:xdigit:]]'

expecting success of 3070.864 'wildmatch (via ls-files): match '[[:xdigit:]]' 'f'': 
				printf '%s' 'f' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 864 - wildmatch (via ls-files): match '[[:xdigit:]]' 'f'

expecting success of 3070.865 'iwildmatch: match 'f' '[[:xdigit:]]'': 
			test-tool wildmatch iwildmatch 'f' '[[:xdigit:]]'
		
ok 865 - iwildmatch: match 'f' '[[:xdigit:]]'

expecting success of 3070.866 'iwildmatch (via ls-files): match '[[:xdigit:]]' 'f'': 
				printf '%s' 'f' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 866 - iwildmatch (via ls-files): match '[[:xdigit:]]' 'f'

expecting success of 3070.867 'pathmatch: match 'f' '[[:xdigit:]]'': 
			test-tool wildmatch pathmatch 'f' '[[:xdigit:]]'
		
ok 867 - pathmatch: match 'f' '[[:xdigit:]]'

expecting success of 3070.868 'pathmatch (via ls-files): match '[[:xdigit:]]' 'f'': 
				printf '%s' 'f' >expect &&
				git ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 868 - pathmatch (via ls-files): match '[[:xdigit:]]' 'f'

expecting success of 3070.869 'ipathmatch: match 'f' '[[:xdigit:]]'': 
			test-tool wildmatch ipathmatch 'f' '[[:xdigit:]]'
		
ok 869 - ipathmatch: match 'f' '[[:xdigit:]]'

expecting success of 3070.870 'ipathmatch (via ls-files): match '[[:xdigit:]]' 'f'': 
				printf '%s' 'f' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 870 - ipathmatch (via ls-files): match '[[:xdigit:]]' 'f'

expecting success of 3070.871 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing f
ok 871 - cleanup after previous file test

expecting success of 3070.872 'setup match file test for D': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 872 - setup match file test for D

expecting success of 3070.873 'wildmatch: match 'D' '[[:xdigit:]]'': 
			test-tool wildmatch wildmatch 'D' '[[:xdigit:]]'
		
ok 873 - wildmatch: match 'D' '[[:xdigit:]]'

expecting success of 3070.874 'wildmatch (via ls-files): match '[[:xdigit:]]' 'D'': 
				printf '%s' 'D' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 874 - wildmatch (via ls-files): match '[[:xdigit:]]' 'D'

expecting success of 3070.875 'iwildmatch: match 'D' '[[:xdigit:]]'': 
			test-tool wildmatch iwildmatch 'D' '[[:xdigit:]]'
		
ok 875 - iwildmatch: match 'D' '[[:xdigit:]]'

expecting success of 3070.876 'iwildmatch (via ls-files): match '[[:xdigit:]]' 'D'': 
				printf '%s' 'D' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 876 - iwildmatch (via ls-files): match '[[:xdigit:]]' 'D'

expecting success of 3070.877 'pathmatch: match 'D' '[[:xdigit:]]'': 
			test-tool wildmatch pathmatch 'D' '[[:xdigit:]]'
		
ok 877 - pathmatch: match 'D' '[[:xdigit:]]'

expecting success of 3070.878 'pathmatch (via ls-files): match '[[:xdigit:]]' 'D'': 
				printf '%s' 'D' >expect &&
				git ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 878 - pathmatch (via ls-files): match '[[:xdigit:]]' 'D'

expecting success of 3070.879 'ipathmatch: match 'D' '[[:xdigit:]]'': 
			test-tool wildmatch ipathmatch 'D' '[[:xdigit:]]'
		
ok 879 - ipathmatch: match 'D' '[[:xdigit:]]'

expecting success of 3070.880 'ipathmatch (via ls-files): match '[[:xdigit:]]' 'D'': 
				printf '%s' 'D' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 880 - ipathmatch (via ls-files): match '[[:xdigit:]]' 'D'

expecting success of 3070.881 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing D
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 881 - cleanup after previous file test

expecting success of 3070.882 'setup match file test for _': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 882 - setup match file test for _

expecting success of 3070.883 'wildmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch wildmatch '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'
		
ok 883 - wildmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'

expecting success of 3070.884 'wildmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'': 
				printf '%s' '_' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 884 - wildmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'

expecting success of 3070.885 'iwildmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch iwildmatch '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'
		
ok 885 - iwildmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'

expecting success of 3070.886 'iwildmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'': 
				printf '%s' '_' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 886 - iwildmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'

expecting success of 3070.887 'pathmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch pathmatch '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'
		
ok 887 - pathmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'

expecting success of 3070.888 'pathmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'': 
				printf '%s' '_' >expect &&
				git ls-files -z -- '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 888 - pathmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'

expecting success of 3070.889 'ipathmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch ipathmatch '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'
		
ok 889 - ipathmatch: match '_' '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]'

expecting success of 3070.890 'ipathmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'': 
				printf '%s' '_' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 890 - ipathmatch (via ls-files): match '[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]]' '_'

expecting success of 3070.891 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing _
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 891 - cleanup after previous file test

expecting success of 3070.892 'setup match file test for .': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 892 - setup match file test for .

expecting success of 3070.893 'wildmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch wildmatch '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'
		
ok 893 - wildmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'

checking known breakage of 3070.894 'wildmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.'': false
not ok 894 - wildmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage

expecting success of 3070.895 'iwildmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch iwildmatch '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'
		
ok 895 - iwildmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'

checking known breakage of 3070.896 'iwildmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.'': false
not ok 896 - iwildmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage

expecting success of 3070.897 'pathmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch pathmatch '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'
		
ok 897 - pathmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'

checking known breakage of 3070.898 'pathmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.'': false
not ok 898 - pathmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage

expecting success of 3070.899 'ipathmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'': 
			test-tool wildmatch ipathmatch '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'
		
ok 899 - ipathmatch: match '.' '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]'

checking known breakage of 3070.900 'ipathmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.'': false
not ok 900 - ipathmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage

expecting success of 3070.901 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 901 - cleanup after previous file test

expecting success of 3070.902 'setup match file test for 5': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 902 - setup match file test for 5

expecting success of 3070.903 'wildmatch: match '5' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch wildmatch '5' '[a-c[:digit:]x-z]'
		
ok 903 - wildmatch: match '5' '[a-c[:digit:]x-z]'

expecting success of 3070.904 'wildmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'': 
				printf '%s' '5' >expect &&
				git --glob-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 904 - wildmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'

expecting success of 3070.905 'iwildmatch: match '5' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch iwildmatch '5' '[a-c[:digit:]x-z]'
		
ok 905 - iwildmatch: match '5' '[a-c[:digit:]x-z]'

expecting success of 3070.906 'iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'': 
				printf '%s' '5' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 906 - iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'

expecting success of 3070.907 'pathmatch: match '5' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch pathmatch '5' '[a-c[:digit:]x-z]'
		
ok 907 - pathmatch: match '5' '[a-c[:digit:]x-z]'

expecting success of 3070.908 'pathmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'': 
				printf '%s' '5' >expect &&
				git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 908 - pathmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'

expecting success of 3070.909 'ipathmatch: match '5' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch ipathmatch '5' '[a-c[:digit:]x-z]'
		
ok 909 - ipathmatch: match '5' '[a-c[:digit:]x-z]'

expecting success of 3070.910 'ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'': 
				printf '%s' '5' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 910 - ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'

expecting success of 3070.911 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 5
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 911 - cleanup after previous file test

expecting success of 3070.912 'setup match file test for b': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 912 - setup match file test for b

expecting success of 3070.913 'wildmatch: match 'b' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch wildmatch 'b' '[a-c[:digit:]x-z]'
		
ok 913 - wildmatch: match 'b' '[a-c[:digit:]x-z]'

expecting success of 3070.914 'wildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'': 
				printf '%s' 'b' >expect &&
				git --glob-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 914 - wildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'

expecting success of 3070.915 'iwildmatch: match 'b' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch iwildmatch 'b' '[a-c[:digit:]x-z]'
		
ok 915 - iwildmatch: match 'b' '[a-c[:digit:]x-z]'

expecting success of 3070.916 'iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'': 
				printf '%s' 'b' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 916 - iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'

expecting success of 3070.917 'pathmatch: match 'b' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch pathmatch 'b' '[a-c[:digit:]x-z]'
		
ok 917 - pathmatch: match 'b' '[a-c[:digit:]x-z]'

expecting success of 3070.918 'pathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'': 
				printf '%s' 'b' >expect &&
				git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 918 - pathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'

expecting success of 3070.919 'ipathmatch: match 'b' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch ipathmatch 'b' '[a-c[:digit:]x-z]'
		
ok 919 - ipathmatch: match 'b' '[a-c[:digit:]x-z]'

expecting success of 3070.920 'ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'': 
				printf '%s' 'b' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 920 - ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'

expecting success of 3070.921 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing b
Removing expect
ok 921 - cleanup after previous file test

expecting success of 3070.922 'setup match file test for y': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 922 - setup match file test for y

expecting success of 3070.923 'wildmatch: match 'y' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch wildmatch 'y' '[a-c[:digit:]x-z]'
		
ok 923 - wildmatch: match 'y' '[a-c[:digit:]x-z]'

expecting success of 3070.924 'wildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'': 
				printf '%s' 'y' >expect &&
				git --glob-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 924 - wildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'

expecting success of 3070.925 'iwildmatch: match 'y' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch iwildmatch 'y' '[a-c[:digit:]x-z]'
		
ok 925 - iwildmatch: match 'y' '[a-c[:digit:]x-z]'

expecting success of 3070.926 'iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'': 
				printf '%s' 'y' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 926 - iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'

expecting success of 3070.927 'pathmatch: match 'y' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch pathmatch 'y' '[a-c[:digit:]x-z]'
		
ok 927 - pathmatch: match 'y' '[a-c[:digit:]x-z]'

expecting success of 3070.928 'pathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'': 
				printf '%s' 'y' >expect &&
				git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 928 - pathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'

expecting success of 3070.929 'ipathmatch: match 'y' '[a-c[:digit:]x-z]'': 
			test-tool wildmatch ipathmatch 'y' '[a-c[:digit:]x-z]'
		
ok 929 - ipathmatch: match 'y' '[a-c[:digit:]x-z]'

expecting success of 3070.930 'ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'': 
				printf '%s' 'y' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 930 - ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'

expecting success of 3070.931 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing y
ok 931 - cleanup after previous file test

expecting success of 3070.932 'setup match file test for q': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 932 - setup match file test for q

expecting success of 3070.933 'wildmatch: no match 'q' '[a-c[:digit:]x-z]'': 
			test_must_fail test-tool wildmatch wildmatch 'q' '[a-c[:digit:]x-z]'
		
ok 933 - wildmatch: no match 'q' '[a-c[:digit:]x-z]'

expecting success of 3070.934 'wildmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 934 - wildmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'

expecting success of 3070.935 'iwildmatch: no match 'q' '[a-c[:digit:]x-z]'': 
			test_must_fail test-tool wildmatch iwildmatch 'q' '[a-c[:digit:]x-z]'
		
ok 935 - iwildmatch: no match 'q' '[a-c[:digit:]x-z]'

expecting success of 3070.936 'iwildmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 936 - iwildmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'

expecting success of 3070.937 'pathmatch: no match 'q' '[a-c[:digit:]x-z]'': 
			test_must_fail test-tool wildmatch pathmatch 'q' '[a-c[:digit:]x-z]'
		
ok 937 - pathmatch: no match 'q' '[a-c[:digit:]x-z]'

expecting success of 3070.938 'pathmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'': 
				>expect &&
				git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 938 - pathmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'

expecting success of 3070.939 'ipathmatch: no match 'q' '[a-c[:digit:]x-z]'': 
			test_must_fail test-tool wildmatch ipathmatch 'q' '[a-c[:digit:]x-z]'
		
ok 939 - ipathmatch: no match 'q' '[a-c[:digit:]x-z]'

expecting success of 3070.940 'ipathmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 940 - ipathmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'

expecting success of 3070.941 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing q
ok 941 - cleanup after previous file test

expecting success of 3070.942 'setup match file test for ]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 942 - setup match file test for ]

expecting success of 3070.943 'wildmatch: match ']' '[\\-^]'': 
			test-tool wildmatch wildmatch ']' '[\\-^]'
		
ok 943 - wildmatch: match ']' '[\\-^]'

expecting success of 3070.944 'wildmatch (via ls-files): match '[\\-^]' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 944 - wildmatch (via ls-files): match '[\\-^]' ']'

expecting success of 3070.945 'iwildmatch: match ']' '[\\-^]'': 
			test-tool wildmatch iwildmatch ']' '[\\-^]'
		
ok 945 - iwildmatch: match ']' '[\\-^]'

expecting success of 3070.946 'iwildmatch (via ls-files): match '[\\-^]' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 946 - iwildmatch (via ls-files): match '[\\-^]' ']'

expecting success of 3070.947 'pathmatch: match ']' '[\\-^]'': 
			test-tool wildmatch pathmatch ']' '[\\-^]'
		
ok 947 - pathmatch: match ']' '[\\-^]'

expecting success of 3070.948 'pathmatch (via ls-files): match '[\\-^]' ']'': 
				printf '%s' ']' >expect &&
				git ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 948 - pathmatch (via ls-files): match '[\\-^]' ']'

expecting success of 3070.949 'ipathmatch: match ']' '[\\-^]'': 
			test-tool wildmatch ipathmatch ']' '[\\-^]'
		
ok 949 - ipathmatch: match ']' '[\\-^]'

expecting success of 3070.950 'ipathmatch (via ls-files): match '[\\-^]' ']'': 
				printf '%s' ']' >expect &&
				git --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 950 - ipathmatch (via ls-files): match '[\\-^]' ']'

expecting success of 3070.951 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 951 - cleanup after previous file test

expecting success of 3070.952 'setup match file test for [': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 952 - setup match file test for [

expecting success of 3070.953 'wildmatch: no match '[' '[\\-^]'': 
			test_must_fail test-tool wildmatch wildmatch '[' '[\\-^]'
		
ok 953 - wildmatch: no match '[' '[\\-^]'

expecting success of 3070.954 'wildmatch (via ls-files): no match '[\\-^]' '['': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 954 - wildmatch (via ls-files): no match '[\\-^]' '['

expecting success of 3070.955 'iwildmatch: no match '[' '[\\-^]'': 
			test_must_fail test-tool wildmatch iwildmatch '[' '[\\-^]'
		
ok 955 - iwildmatch: no match '[' '[\\-^]'

expecting success of 3070.956 'iwildmatch (via ls-files): no match '[\\-^]' '['': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 956 - iwildmatch (via ls-files): no match '[\\-^]' '['

expecting success of 3070.957 'pathmatch: no match '[' '[\\-^]'': 
			test_must_fail test-tool wildmatch pathmatch '[' '[\\-^]'
		
ok 957 - pathmatch: no match '[' '[\\-^]'

expecting success of 3070.958 'pathmatch (via ls-files): no match '[\\-^]' '['': 
				>expect &&
				git ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 958 - pathmatch (via ls-files): no match '[\\-^]' '['

expecting success of 3070.959 'ipathmatch: no match '[' '[\\-^]'': 
			test_must_fail test-tool wildmatch ipathmatch '[' '[\\-^]'
		
ok 959 - ipathmatch: no match '[' '[\\-^]'

expecting success of 3070.960 'ipathmatch (via ls-files): no match '[\\-^]' '['': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 960 - ipathmatch (via ls-files): no match '[\\-^]' '['

expecting success of 3070.961 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 961 - cleanup after previous file test

expecting success of 3070.962 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 962 - setup match file test for -

expecting success of 3070.963 'wildmatch: match '-' '[\-_]'': 
			test-tool wildmatch wildmatch '-' '[\-_]'
		
ok 963 - wildmatch: match '-' '[\-_]'

expecting success of 3070.964 'wildmatch (via ls-files): match '[\-_]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 964 - wildmatch (via ls-files): match '[\-_]' '-'

expecting success of 3070.965 'iwildmatch: match '-' '[\-_]'': 
			test-tool wildmatch iwildmatch '-' '[\-_]'
		
ok 965 - iwildmatch: match '-' '[\-_]'

expecting success of 3070.966 'iwildmatch (via ls-files): match '[\-_]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 966 - iwildmatch (via ls-files): match '[\-_]' '-'

expecting success of 3070.967 'pathmatch: match '-' '[\-_]'': 
			test-tool wildmatch pathmatch '-' '[\-_]'
		
ok 967 - pathmatch: match '-' '[\-_]'

expecting success of 3070.968 'pathmatch (via ls-files): match '[\-_]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 968 - pathmatch (via ls-files): match '[\-_]' '-'

expecting success of 3070.969 'ipathmatch: match '-' '[\-_]'': 
			test-tool wildmatch ipathmatch '-' '[\-_]'
		
ok 969 - ipathmatch: match '-' '[\-_]'

expecting success of 3070.970 'ipathmatch (via ls-files): match '[\-_]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 970 - ipathmatch (via ls-files): match '[\-_]' '-'

expecting success of 3070.971 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 971 - cleanup after previous file test

expecting success of 3070.972 'setup match file test for ]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 972 - setup match file test for ]

expecting success of 3070.973 'wildmatch: match ']' '[\]]'': 
			test-tool wildmatch wildmatch ']' '[\]]'
		
ok 973 - wildmatch: match ']' '[\]]'

expecting success of 3070.974 'wildmatch (via ls-files): match '[\]]' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 974 - wildmatch (via ls-files): match '[\]]' ']'

expecting success of 3070.975 'iwildmatch: match ']' '[\]]'': 
			test-tool wildmatch iwildmatch ']' '[\]]'
		
ok 975 - iwildmatch: match ']' '[\]]'

expecting success of 3070.976 'iwildmatch (via ls-files): match '[\]]' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 976 - iwildmatch (via ls-files): match '[\]]' ']'

expecting success of 3070.977 'pathmatch: match ']' '[\]]'': 
			test-tool wildmatch pathmatch ']' '[\]]'
		
ok 977 - pathmatch: match ']' '[\]]'

expecting success of 3070.978 'pathmatch (via ls-files): match '[\]]' ']'': 
				printf '%s' ']' >expect &&
				git ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 978 - pathmatch (via ls-files): match '[\]]' ']'

expecting success of 3070.979 'ipathmatch: match ']' '[\]]'': 
			test-tool wildmatch ipathmatch ']' '[\]]'
		
ok 979 - ipathmatch: match ']' '[\]]'

expecting success of 3070.980 'ipathmatch (via ls-files): match '[\]]' ']'': 
				printf '%s' ']' >expect &&
				git --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 980 - ipathmatch (via ls-files): match '[\]]' ']'

expecting success of 3070.981 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 981 - cleanup after previous file test

expecting success of 3070.982 'setup match file test for \]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 982 - setup match file test for \]

expecting success of 3070.983 'wildmatch: no match '\]' '[\]]'': 
			test_must_fail test-tool wildmatch wildmatch '\]' '[\]]'
		
ok 983 - wildmatch: no match '\]' '[\]]'

expecting success of 3070.984 'wildmatch (via ls-files): no match '[\]]' '\]'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 984 - wildmatch (via ls-files): no match '[\]]' '\]'

expecting success of 3070.985 'iwildmatch: no match '\]' '[\]]'': 
			test_must_fail test-tool wildmatch iwildmatch '\]' '[\]]'
		
ok 985 - iwildmatch: no match '\]' '[\]]'

expecting success of 3070.986 'iwildmatch (via ls-files): no match '[\]]' '\]'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 986 - iwildmatch (via ls-files): no match '[\]]' '\]'

expecting success of 3070.987 'pathmatch: no match '\]' '[\]]'': 
			test_must_fail test-tool wildmatch pathmatch '\]' '[\]]'
		
ok 987 - pathmatch: no match '\]' '[\]]'

expecting success of 3070.988 'pathmatch (via ls-files): no match '[\]]' '\]'': 
				>expect &&
				git ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 988 - pathmatch (via ls-files): no match '[\]]' '\]'

expecting success of 3070.989 'ipathmatch: no match '\]' '[\]]'': 
			test_must_fail test-tool wildmatch ipathmatch '\]' '[\]]'
		
ok 989 - ipathmatch: no match '\]' '[\]]'

expecting success of 3070.990 'ipathmatch (via ls-files): no match '[\]]' '\]'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 990 - ipathmatch (via ls-files): no match '[\]]' '\]'

expecting success of 3070.991 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\]"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 991 - cleanup after previous file test

expecting success of 3070.992 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 992 - setup match file test for \

expecting success of 3070.993 'wildmatch: no match '\' '[\]]'': 
			test_must_fail test-tool wildmatch wildmatch '\' '[\]]'
		
ok 993 - wildmatch: no match '\' '[\]]'

expecting success of 3070.994 'wildmatch (via ls-files): no match '[\]]' '\'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 994 - wildmatch (via ls-files): no match '[\]]' '\'

expecting success of 3070.995 'iwildmatch: no match '\' '[\]]'': 
			test_must_fail test-tool wildmatch iwildmatch '\' '[\]]'
		
ok 995 - iwildmatch: no match '\' '[\]]'

expecting success of 3070.996 'iwildmatch (via ls-files): no match '[\]]' '\'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 996 - iwildmatch (via ls-files): no match '[\]]' '\'

expecting success of 3070.997 'pathmatch: no match '\' '[\]]'': 
			test_must_fail test-tool wildmatch pathmatch '\' '[\]]'
		
ok 997 - pathmatch: no match '\' '[\]]'

expecting success of 3070.998 'pathmatch (via ls-files): no match '[\]]' '\'': 
				>expect &&
				git ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 998 - pathmatch (via ls-files): no match '[\]]' '\'

expecting success of 3070.999 'ipathmatch: no match '\' '[\]]'': 
			test_must_fail test-tool wildmatch ipathmatch '\' '[\]]'
		
ok 999 - ipathmatch: no match '\' '[\]]'

expecting success of 3070.1000 'ipathmatch (via ls-files): no match '[\]]' '\'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1000 - ipathmatch (via ls-files): no match '[\]]' '\'

expecting success of 3070.1001 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1001 - cleanup after previous file test

expecting success of 3070.1002 'setup match file test for ab': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1002 - setup match file test for ab

expecting success of 3070.1003 'wildmatch: no match 'ab' 'a[]b'': 
			test_must_fail test-tool wildmatch wildmatch 'ab' 'a[]b'
		
ok 1003 - wildmatch: no match 'ab' 'a[]b'

expecting success of 3070.1004 'wildmatch (via ls-files): no match 'a[]b' 'ab'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1004 - wildmatch (via ls-files): no match 'a[]b' 'ab'

expecting success of 3070.1005 'iwildmatch: no match 'ab' 'a[]b'': 
			test_must_fail test-tool wildmatch iwildmatch 'ab' 'a[]b'
		
ok 1005 - iwildmatch: no match 'ab' 'a[]b'

expecting success of 3070.1006 'iwildmatch (via ls-files): no match 'a[]b' 'ab'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1006 - iwildmatch (via ls-files): no match 'a[]b' 'ab'

expecting success of 3070.1007 'pathmatch: no match 'ab' 'a[]b'': 
			test_must_fail test-tool wildmatch pathmatch 'ab' 'a[]b'
		
ok 1007 - pathmatch: no match 'ab' 'a[]b'

expecting success of 3070.1008 'pathmatch (via ls-files): no match 'a[]b' 'ab'': 
				>expect &&
				git ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1008 - pathmatch (via ls-files): no match 'a[]b' 'ab'

expecting success of 3070.1009 'ipathmatch: no match 'ab' 'a[]b'': 
			test_must_fail test-tool wildmatch ipathmatch 'ab' 'a[]b'
		
ok 1009 - ipathmatch: no match 'ab' 'a[]b'

expecting success of 3070.1010 'ipathmatch (via ls-files): no match 'a[]b' 'ab'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1010 - ipathmatch (via ls-files): no match 'a[]b' 'ab'

expecting success of 3070.1011 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1011 - cleanup after previous file test

expecting success of 3070.1012 'setup match file test for a[]b': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1012 - setup match file test for a[]b

expecting success of 3070.1013 'wildmatch: no match 'a[]b' 'a[]b'': 
			test_must_fail test-tool wildmatch wildmatch 'a[]b' 'a[]b'
		
ok 1013 - wildmatch: no match 'a[]b' 'a[]b'

expecting success of 3070.1014 'wildmatch (via ls-files): match 'a[]b' 'a[]b'': 
				printf '%s' 'a[]b' >expect &&
				git --glob-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1014 - wildmatch (via ls-files): match 'a[]b' 'a[]b'

expecting success of 3070.1015 'iwildmatch: no match 'a[]b' 'a[]b'': 
			test_must_fail test-tool wildmatch iwildmatch 'a[]b' 'a[]b'
		
ok 1015 - iwildmatch: no match 'a[]b' 'a[]b'

expecting success of 3070.1016 'iwildmatch (via ls-files): match 'a[]b' 'a[]b'': 
				printf '%s' 'a[]b' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1016 - iwildmatch (via ls-files): match 'a[]b' 'a[]b'

expecting success of 3070.1017 'pathmatch: no match 'a[]b' 'a[]b'': 
			test_must_fail test-tool wildmatch pathmatch 'a[]b' 'a[]b'
		
ok 1017 - pathmatch: no match 'a[]b' 'a[]b'

expecting success of 3070.1018 'pathmatch (via ls-files): match 'a[]b' 'a[]b'': 
				printf '%s' 'a[]b' >expect &&
				git ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1018 - pathmatch (via ls-files): match 'a[]b' 'a[]b'

expecting success of 3070.1019 'ipathmatch: no match 'a[]b' 'a[]b'': 
			test_must_fail test-tool wildmatch ipathmatch 'a[]b' 'a[]b'
		
ok 1019 - ipathmatch: no match 'a[]b' 'a[]b'

expecting success of 3070.1020 'ipathmatch (via ls-files): match 'a[]b' 'a[]b'': 
				printf '%s' 'a[]b' >expect &&
				git --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1020 - ipathmatch (via ls-files): match 'a[]b' 'a[]b'

expecting success of 3070.1021 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a[]b
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1021 - cleanup after previous file test

expecting success of 3070.1022 'setup match file test for ab[': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1022 - setup match file test for ab[

expecting success of 3070.1023 'wildmatch: no match 'ab[' 'ab['': 
			test_must_fail test-tool wildmatch wildmatch 'ab[' 'ab['
		
ok 1023 - wildmatch: no match 'ab[' 'ab['

expecting success of 3070.1024 'wildmatch (via ls-files): match 'ab[' 'ab['': 
				printf '%s' 'ab[' >expect &&
				git --glob-pathspecs ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1024 - wildmatch (via ls-files): match 'ab[' 'ab['

expecting success of 3070.1025 'iwildmatch: no match 'ab[' 'ab['': 
			test_must_fail test-tool wildmatch iwildmatch 'ab[' 'ab['
		
ok 1025 - iwildmatch: no match 'ab[' 'ab['

expecting success of 3070.1026 'iwildmatch (via ls-files): match 'ab[' 'ab['': 
				printf '%s' 'ab[' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1026 - iwildmatch (via ls-files): match 'ab[' 'ab['

expecting success of 3070.1027 'pathmatch: no match 'ab[' 'ab['': 
			test_must_fail test-tool wildmatch pathmatch 'ab[' 'ab['
		
ok 1027 - pathmatch: no match 'ab[' 'ab['

expecting success of 3070.1028 'pathmatch (via ls-files): match 'ab[' 'ab['': 
				printf '%s' 'ab[' >expect &&
				git ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1028 - pathmatch (via ls-files): match 'ab[' 'ab['

expecting success of 3070.1029 'ipathmatch: no match 'ab[' 'ab['': 
			test_must_fail test-tool wildmatch ipathmatch 'ab[' 'ab['
		
ok 1029 - ipathmatch: no match 'ab[' 'ab['

expecting success of 3070.1030 'ipathmatch (via ls-files): match 'ab[' 'ab['': 
				printf '%s' 'ab[' >expect &&
				git --icase-pathspecs ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1030 - ipathmatch (via ls-files): match 'ab[' 'ab['

expecting success of 3070.1031 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab[
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1031 - cleanup after previous file test

expecting success of 3070.1032 'setup match file test for ab': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1032 - setup match file test for ab

expecting success of 3070.1033 'wildmatch: no match 'ab' '[!'': 
			test_must_fail test-tool wildmatch wildmatch 'ab' '[!'
		
ok 1033 - wildmatch: no match 'ab' '[!'

expecting success of 3070.1034 'wildmatch (via ls-files): no match '[!' 'ab'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[!' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1034 - wildmatch (via ls-files): no match '[!' 'ab'

expecting success of 3070.1035 'iwildmatch: no match 'ab' '[!'': 
			test_must_fail test-tool wildmatch iwildmatch 'ab' '[!'
		
ok 1035 - iwildmatch: no match 'ab' '[!'

expecting success of 3070.1036 'iwildmatch (via ls-files): no match '[!' 'ab'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1036 - iwildmatch (via ls-files): no match '[!' 'ab'

expecting success of 3070.1037 'pathmatch: no match 'ab' '[!'': 
			test_must_fail test-tool wildmatch pathmatch 'ab' '[!'
		
ok 1037 - pathmatch: no match 'ab' '[!'

expecting success of 3070.1038 'pathmatch (via ls-files): no match '[!' 'ab'': 
				>expect &&
				git ls-files -z -- '[!' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1038 - pathmatch (via ls-files): no match '[!' 'ab'

expecting success of 3070.1039 'ipathmatch: no match 'ab' '[!'': 
			test_must_fail test-tool wildmatch ipathmatch 'ab' '[!'
		
ok 1039 - ipathmatch: no match 'ab' '[!'

expecting success of 3070.1040 'ipathmatch (via ls-files): no match '[!' 'ab'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[!' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1040 - ipathmatch (via ls-files): no match '[!' 'ab'

expecting success of 3070.1041 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1041 - cleanup after previous file test

expecting success of 3070.1042 'setup match file test for ab': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1042 - setup match file test for ab

expecting success of 3070.1043 'wildmatch: no match 'ab' '[-'': 
			test_must_fail test-tool wildmatch wildmatch 'ab' '[-'
		
ok 1043 - wildmatch: no match 'ab' '[-'

expecting success of 3070.1044 'wildmatch (via ls-files): no match '[-' 'ab'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1044 - wildmatch (via ls-files): no match '[-' 'ab'

expecting success of 3070.1045 'iwildmatch: no match 'ab' '[-'': 
			test_must_fail test-tool wildmatch iwildmatch 'ab' '[-'
		
ok 1045 - iwildmatch: no match 'ab' '[-'

expecting success of 3070.1046 'iwildmatch (via ls-files): no match '[-' 'ab'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1046 - iwildmatch (via ls-files): no match '[-' 'ab'

expecting success of 3070.1047 'pathmatch: no match 'ab' '[-'': 
			test_must_fail test-tool wildmatch pathmatch 'ab' '[-'
		
ok 1047 - pathmatch: no match 'ab' '[-'

expecting success of 3070.1048 'pathmatch (via ls-files): no match '[-' 'ab'': 
				>expect &&
				git ls-files -z -- '[-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1048 - pathmatch (via ls-files): no match '[-' 'ab'

expecting success of 3070.1049 'ipathmatch: no match 'ab' '[-'': 
			test_must_fail test-tool wildmatch ipathmatch 'ab' '[-'
		
ok 1049 - ipathmatch: no match 'ab' '[-'

expecting success of 3070.1050 'ipathmatch (via ls-files): no match '[-' 'ab'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1050 - ipathmatch (via ls-files): no match '[-' 'ab'

expecting success of 3070.1051 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1051 - cleanup after previous file test

expecting success of 3070.1052 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1052 - setup match file test for -

expecting success of 3070.1053 'wildmatch: match '-' '[-]'': 
			test-tool wildmatch wildmatch '-' '[-]'
		
ok 1053 - wildmatch: match '-' '[-]'

expecting success of 3070.1054 'wildmatch (via ls-files): match '[-]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1054 - wildmatch (via ls-files): match '[-]' '-'

expecting success of 3070.1055 'iwildmatch: match '-' '[-]'': 
			test-tool wildmatch iwildmatch '-' '[-]'
		
ok 1055 - iwildmatch: match '-' '[-]'

expecting success of 3070.1056 'iwildmatch (via ls-files): match '[-]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1056 - iwildmatch (via ls-files): match '[-]' '-'

expecting success of 3070.1057 'pathmatch: match '-' '[-]'': 
			test-tool wildmatch pathmatch '-' '[-]'
		
ok 1057 - pathmatch: match '-' '[-]'

expecting success of 3070.1058 'pathmatch (via ls-files): match '[-]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1058 - pathmatch (via ls-files): match '[-]' '-'

expecting success of 3070.1059 'ipathmatch: match '-' '[-]'': 
			test-tool wildmatch ipathmatch '-' '[-]'
		
ok 1059 - ipathmatch: match '-' '[-]'

expecting success of 3070.1060 'ipathmatch (via ls-files): match '[-]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[-]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1060 - ipathmatch (via ls-files): match '[-]' '-'

expecting success of 3070.1061 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1061 - cleanup after previous file test

expecting success of 3070.1062 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1062 - setup match file test for -

expecting success of 3070.1063 'wildmatch: no match '-' '[a-'': 
			test_must_fail test-tool wildmatch wildmatch '-' '[a-'
		
ok 1063 - wildmatch: no match '-' '[a-'

expecting success of 3070.1064 'wildmatch (via ls-files): no match '[a-' '-'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1064 - wildmatch (via ls-files): no match '[a-' '-'

expecting success of 3070.1065 'iwildmatch: no match '-' '[a-'': 
			test_must_fail test-tool wildmatch iwildmatch '-' '[a-'
		
ok 1065 - iwildmatch: no match '-' '[a-'

expecting success of 3070.1066 'iwildmatch (via ls-files): no match '[a-' '-'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1066 - iwildmatch (via ls-files): no match '[a-' '-'

expecting success of 3070.1067 'pathmatch: no match '-' '[a-'': 
			test_must_fail test-tool wildmatch pathmatch '-' '[a-'
		
ok 1067 - pathmatch: no match '-' '[a-'

expecting success of 3070.1068 'pathmatch (via ls-files): no match '[a-' '-'': 
				>expect &&
				git ls-files -z -- '[a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1068 - pathmatch (via ls-files): no match '[a-' '-'

expecting success of 3070.1069 'ipathmatch: no match '-' '[a-'': 
			test_must_fail test-tool wildmatch ipathmatch '-' '[a-'
		
ok 1069 - ipathmatch: no match '-' '[a-'

expecting success of 3070.1070 'ipathmatch (via ls-files): no match '[a-' '-'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1070 - ipathmatch (via ls-files): no match '[a-' '-'

expecting success of 3070.1071 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1071 - cleanup after previous file test

expecting success of 3070.1072 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1072 - setup match file test for -

expecting success of 3070.1073 'wildmatch: no match '-' '[!a-'': 
			test_must_fail test-tool wildmatch wildmatch '-' '[!a-'
		
ok 1073 - wildmatch: no match '-' '[!a-'

expecting success of 3070.1074 'wildmatch (via ls-files): no match '[!a-' '-'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1074 - wildmatch (via ls-files): no match '[!a-' '-'

expecting success of 3070.1075 'iwildmatch: no match '-' '[!a-'': 
			test_must_fail test-tool wildmatch iwildmatch '-' '[!a-'
		
ok 1075 - iwildmatch: no match '-' '[!a-'

expecting success of 3070.1076 'iwildmatch (via ls-files): no match '[!a-' '-'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1076 - iwildmatch (via ls-files): no match '[!a-' '-'

expecting success of 3070.1077 'pathmatch: no match '-' '[!a-'': 
			test_must_fail test-tool wildmatch pathmatch '-' '[!a-'
		
ok 1077 - pathmatch: no match '-' '[!a-'

expecting success of 3070.1078 'pathmatch (via ls-files): no match '[!a-' '-'': 
				>expect &&
				git ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1078 - pathmatch (via ls-files): no match '[!a-' '-'

expecting success of 3070.1079 'ipathmatch: no match '-' '[!a-'': 
			test_must_fail test-tool wildmatch ipathmatch '-' '[!a-'
		
ok 1079 - ipathmatch: no match '-' '[!a-'

expecting success of 3070.1080 'ipathmatch (via ls-files): no match '[!a-' '-'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1080 - ipathmatch (via ls-files): no match '[!a-' '-'

expecting success of 3070.1081 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1081 - cleanup after previous file test

expecting success of 3070.1082 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1082 - setup match file test for -

expecting success of 3070.1083 'wildmatch: match '-' '[--A]'': 
			test-tool wildmatch wildmatch '-' '[--A]'
		
ok 1083 - wildmatch: match '-' '[--A]'

expecting success of 3070.1084 'wildmatch (via ls-files): match '[--A]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1084 - wildmatch (via ls-files): match '[--A]' '-'

expecting success of 3070.1085 'iwildmatch: match '-' '[--A]'': 
			test-tool wildmatch iwildmatch '-' '[--A]'
		
ok 1085 - iwildmatch: match '-' '[--A]'

expecting success of 3070.1086 'iwildmatch (via ls-files): match '[--A]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1086 - iwildmatch (via ls-files): match '[--A]' '-'

expecting success of 3070.1087 'pathmatch: match '-' '[--A]'': 
			test-tool wildmatch pathmatch '-' '[--A]'
		
ok 1087 - pathmatch: match '-' '[--A]'

expecting success of 3070.1088 'pathmatch (via ls-files): match '[--A]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1088 - pathmatch (via ls-files): match '[--A]' '-'

expecting success of 3070.1089 'ipathmatch: match '-' '[--A]'': 
			test-tool wildmatch ipathmatch '-' '[--A]'
		
ok 1089 - ipathmatch: match '-' '[--A]'

expecting success of 3070.1090 'ipathmatch (via ls-files): match '[--A]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1090 - ipathmatch (via ls-files): match '[--A]' '-'

expecting success of 3070.1091 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1091 - cleanup after previous file test

expecting success of 3070.1092 'setup match file test for 5': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1092 - setup match file test for 5

expecting success of 3070.1093 'wildmatch: match '5' '[--A]'': 
			test-tool wildmatch wildmatch '5' '[--A]'
		
ok 1093 - wildmatch: match '5' '[--A]'

expecting success of 3070.1094 'wildmatch (via ls-files): match '[--A]' '5'': 
				printf '%s' '5' >expect &&
				git --glob-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1094 - wildmatch (via ls-files): match '[--A]' '5'

expecting success of 3070.1095 'iwildmatch: match '5' '[--A]'': 
			test-tool wildmatch iwildmatch '5' '[--A]'
		
ok 1095 - iwildmatch: match '5' '[--A]'

expecting success of 3070.1096 'iwildmatch (via ls-files): match '[--A]' '5'': 
				printf '%s' '5' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1096 - iwildmatch (via ls-files): match '[--A]' '5'

expecting success of 3070.1097 'pathmatch: match '5' '[--A]'': 
			test-tool wildmatch pathmatch '5' '[--A]'
		
ok 1097 - pathmatch: match '5' '[--A]'

expecting success of 3070.1098 'pathmatch (via ls-files): match '[--A]' '5'': 
				printf '%s' '5' >expect &&
				git ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1098 - pathmatch (via ls-files): match '[--A]' '5'

expecting success of 3070.1099 'ipathmatch: match '5' '[--A]'': 
			test-tool wildmatch ipathmatch '5' '[--A]'
		
ok 1099 - ipathmatch: match '5' '[--A]'

expecting success of 3070.1100 'ipathmatch (via ls-files): match '[--A]' '5'': 
				printf '%s' '5' >expect &&
				git --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1100 - ipathmatch (via ls-files): match '[--A]' '5'

expecting success of 3070.1101 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 5
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1101 - cleanup after previous file test

expecting success of 3070.1102 'setup match file test for  ': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1102 - setup match file test for  

expecting success of 3070.1103 'wildmatch: match ' ' '[ --]'': 
			test-tool wildmatch wildmatch ' ' '[ --]'
		
ok 1103 - wildmatch: match ' ' '[ --]'

expecting success of 3070.1104 'wildmatch (via ls-files): match '[ --]' ' '': 
				printf '%s' ' ' >expect &&
				git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1104 - wildmatch (via ls-files): match '[ --]' ' '

expecting success of 3070.1105 'iwildmatch: match ' ' '[ --]'': 
			test-tool wildmatch iwildmatch ' ' '[ --]'
		
ok 1105 - iwildmatch: match ' ' '[ --]'

expecting success of 3070.1106 'iwildmatch (via ls-files): match '[ --]' ' '': 
				printf '%s' ' ' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1106 - iwildmatch (via ls-files): match '[ --]' ' '

expecting success of 3070.1107 'pathmatch: match ' ' '[ --]'': 
			test-tool wildmatch pathmatch ' ' '[ --]'
		
ok 1107 - pathmatch: match ' ' '[ --]'

expecting success of 3070.1108 'pathmatch (via ls-files): match '[ --]' ' '': 
				printf '%s' ' ' >expect &&
				git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1108 - pathmatch (via ls-files): match '[ --]' ' '

expecting success of 3070.1109 'ipathmatch: match ' ' '[ --]'': 
			test-tool wildmatch ipathmatch ' ' '[ --]'
		
ok 1109 - ipathmatch: match ' ' '[ --]'

expecting success of 3070.1110 'ipathmatch (via ls-files): match '[ --]' ' '': 
				printf '%s' ' ' >expect &&
				git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1110 - ipathmatch (via ls-files): match '[ --]' ' '

expecting success of 3070.1111 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing  
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1111 - cleanup after previous file test

expecting success of 3070.1112 'setup match file test for $': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1112 - setup match file test for $

expecting success of 3070.1113 'wildmatch: match '$' '[ --]'': 
			test-tool wildmatch wildmatch '$' '[ --]'
		
ok 1113 - wildmatch: match '$' '[ --]'

expecting success of 3070.1114 'wildmatch (via ls-files): match '[ --]' '$'': 
				printf '%s' '$' >expect &&
				git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1114 - wildmatch (via ls-files): match '[ --]' '$'

expecting success of 3070.1115 'iwildmatch: match '$' '[ --]'': 
			test-tool wildmatch iwildmatch '$' '[ --]'
		
ok 1115 - iwildmatch: match '$' '[ --]'

expecting success of 3070.1116 'iwildmatch (via ls-files): match '[ --]' '$'': 
				printf '%s' '$' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1116 - iwildmatch (via ls-files): match '[ --]' '$'

expecting success of 3070.1117 'pathmatch: match '$' '[ --]'': 
			test-tool wildmatch pathmatch '$' '[ --]'
		
ok 1117 - pathmatch: match '$' '[ --]'

expecting success of 3070.1118 'pathmatch (via ls-files): match '[ --]' '$'': 
				printf '%s' '$' >expect &&
				git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1118 - pathmatch (via ls-files): match '[ --]' '$'

expecting success of 3070.1119 'ipathmatch: match '$' '[ --]'': 
			test-tool wildmatch ipathmatch '$' '[ --]'
		
ok 1119 - ipathmatch: match '$' '[ --]'

expecting success of 3070.1120 'ipathmatch (via ls-files): match '[ --]' '$'': 
				printf '%s' '$' >expect &&
				git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1120 - ipathmatch (via ls-files): match '[ --]' '$'

expecting success of 3070.1121 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing $
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1121 - cleanup after previous file test

expecting success of 3070.1122 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1122 - setup match file test for -

expecting success of 3070.1123 'wildmatch: match '-' '[ --]'': 
			test-tool wildmatch wildmatch '-' '[ --]'
		
ok 1123 - wildmatch: match '-' '[ --]'

expecting success of 3070.1124 'wildmatch (via ls-files): match '[ --]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1124 - wildmatch (via ls-files): match '[ --]' '-'

expecting success of 3070.1125 'iwildmatch: match '-' '[ --]'': 
			test-tool wildmatch iwildmatch '-' '[ --]'
		
ok 1125 - iwildmatch: match '-' '[ --]'

expecting success of 3070.1126 'iwildmatch (via ls-files): match '[ --]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1126 - iwildmatch (via ls-files): match '[ --]' '-'

expecting success of 3070.1127 'pathmatch: match '-' '[ --]'': 
			test-tool wildmatch pathmatch '-' '[ --]'
		
ok 1127 - pathmatch: match '-' '[ --]'

expecting success of 3070.1128 'pathmatch (via ls-files): match '[ --]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1128 - pathmatch (via ls-files): match '[ --]' '-'

expecting success of 3070.1129 'ipathmatch: match '-' '[ --]'': 
			test-tool wildmatch ipathmatch '-' '[ --]'
		
ok 1129 - ipathmatch: match '-' '[ --]'

expecting success of 3070.1130 'ipathmatch (via ls-files): match '[ --]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1130 - ipathmatch (via ls-files): match '[ --]' '-'

expecting success of 3070.1131 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1131 - cleanup after previous file test

expecting success of 3070.1132 'setup match file test for 0': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1132 - setup match file test for 0

expecting success of 3070.1133 'wildmatch: no match '0' '[ --]'': 
			test_must_fail test-tool wildmatch wildmatch '0' '[ --]'
		
ok 1133 - wildmatch: no match '0' '[ --]'

expecting success of 3070.1134 'wildmatch (via ls-files): no match '[ --]' '0'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1134 - wildmatch (via ls-files): no match '[ --]' '0'

expecting success of 3070.1135 'iwildmatch: no match '0' '[ --]'': 
			test_must_fail test-tool wildmatch iwildmatch '0' '[ --]'
		
ok 1135 - iwildmatch: no match '0' '[ --]'

expecting success of 3070.1136 'iwildmatch (via ls-files): no match '[ --]' '0'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1136 - iwildmatch (via ls-files): no match '[ --]' '0'

expecting success of 3070.1137 'pathmatch: no match '0' '[ --]'': 
			test_must_fail test-tool wildmatch pathmatch '0' '[ --]'
		
ok 1137 - pathmatch: no match '0' '[ --]'

expecting success of 3070.1138 'pathmatch (via ls-files): no match '[ --]' '0'': 
				>expect &&
				git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1138 - pathmatch (via ls-files): no match '[ --]' '0'

expecting success of 3070.1139 'ipathmatch: no match '0' '[ --]'': 
			test_must_fail test-tool wildmatch ipathmatch '0' '[ --]'
		
ok 1139 - ipathmatch: no match '0' '[ --]'

expecting success of 3070.1140 'ipathmatch (via ls-files): no match '[ --]' '0'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1140 - ipathmatch (via ls-files): no match '[ --]' '0'

expecting success of 3070.1141 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 0
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1141 - cleanup after previous file test

expecting success of 3070.1142 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1142 - setup match file test for -

expecting success of 3070.1143 'wildmatch: match '-' '[---]'': 
			test-tool wildmatch wildmatch '-' '[---]'
		
ok 1143 - wildmatch: match '-' '[---]'

expecting success of 3070.1144 'wildmatch (via ls-files): match '[---]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[---]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1144 - wildmatch (via ls-files): match '[---]' '-'

expecting success of 3070.1145 'iwildmatch: match '-' '[---]'': 
			test-tool wildmatch iwildmatch '-' '[---]'
		
ok 1145 - iwildmatch: match '-' '[---]'

expecting success of 3070.1146 'iwildmatch (via ls-files): match '[---]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[---]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1146 - iwildmatch (via ls-files): match '[---]' '-'

expecting success of 3070.1147 'pathmatch: match '-' '[---]'': 
			test-tool wildmatch pathmatch '-' '[---]'
		
ok 1147 - pathmatch: match '-' '[---]'

expecting success of 3070.1148 'pathmatch (via ls-files): match '[---]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[---]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1148 - pathmatch (via ls-files): match '[---]' '-'

expecting success of 3070.1149 'ipathmatch: match '-' '[---]'': 
			test-tool wildmatch ipathmatch '-' '[---]'
		
ok 1149 - ipathmatch: match '-' '[---]'

expecting success of 3070.1150 'ipathmatch (via ls-files): match '[---]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[---]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1150 - ipathmatch (via ls-files): match '[---]' '-'

expecting success of 3070.1151 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1151 - cleanup after previous file test

expecting success of 3070.1152 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1152 - setup match file test for -

expecting success of 3070.1153 'wildmatch: match '-' '[------]'': 
			test-tool wildmatch wildmatch '-' '[------]'
		
ok 1153 - wildmatch: match '-' '[------]'

expecting success of 3070.1154 'wildmatch (via ls-files): match '[------]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1154 - wildmatch (via ls-files): match '[------]' '-'

expecting success of 3070.1155 'iwildmatch: match '-' '[------]'': 
			test-tool wildmatch iwildmatch '-' '[------]'
		
ok 1155 - iwildmatch: match '-' '[------]'

expecting success of 3070.1156 'iwildmatch (via ls-files): match '[------]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1156 - iwildmatch (via ls-files): match '[------]' '-'

expecting success of 3070.1157 'pathmatch: match '-' '[------]'': 
			test-tool wildmatch pathmatch '-' '[------]'
		
ok 1157 - pathmatch: match '-' '[------]'

expecting success of 3070.1158 'pathmatch (via ls-files): match '[------]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1158 - pathmatch (via ls-files): match '[------]' '-'

expecting success of 3070.1159 'ipathmatch: match '-' '[------]'': 
			test-tool wildmatch ipathmatch '-' '[------]'
		
ok 1159 - ipathmatch: match '-' '[------]'

expecting success of 3070.1160 'ipathmatch (via ls-files): match '[------]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1160 - ipathmatch (via ls-files): match '[------]' '-'

expecting success of 3070.1161 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1161 - cleanup after previous file test

expecting success of 3070.1162 'setup match file test for j': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1162 - setup match file test for j

expecting success of 3070.1163 'wildmatch: no match 'j' '[a-e-n]'': 
			test_must_fail test-tool wildmatch wildmatch 'j' '[a-e-n]'
		
ok 1163 - wildmatch: no match 'j' '[a-e-n]'

expecting success of 3070.1164 'wildmatch (via ls-files): no match '[a-e-n]' 'j'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1164 - wildmatch (via ls-files): no match '[a-e-n]' 'j'

expecting success of 3070.1165 'iwildmatch: no match 'j' '[a-e-n]'': 
			test_must_fail test-tool wildmatch iwildmatch 'j' '[a-e-n]'
		
ok 1165 - iwildmatch: no match 'j' '[a-e-n]'

expecting success of 3070.1166 'iwildmatch (via ls-files): no match '[a-e-n]' 'j'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1166 - iwildmatch (via ls-files): no match '[a-e-n]' 'j'

expecting success of 3070.1167 'pathmatch: no match 'j' '[a-e-n]'': 
			test_must_fail test-tool wildmatch pathmatch 'j' '[a-e-n]'
		
ok 1167 - pathmatch: no match 'j' '[a-e-n]'

expecting success of 3070.1168 'pathmatch (via ls-files): no match '[a-e-n]' 'j'': 
				>expect &&
				git ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1168 - pathmatch (via ls-files): no match '[a-e-n]' 'j'

expecting success of 3070.1169 'ipathmatch: no match 'j' '[a-e-n]'': 
			test_must_fail test-tool wildmatch ipathmatch 'j' '[a-e-n]'
		
ok 1169 - ipathmatch: no match 'j' '[a-e-n]'

expecting success of 3070.1170 'ipathmatch (via ls-files): no match '[a-e-n]' 'j'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1170 - ipathmatch (via ls-files): no match '[a-e-n]' 'j'

expecting success of 3070.1171 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing j
ok 1171 - cleanup after previous file test

expecting success of 3070.1172 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1172 - setup match file test for -

expecting success of 3070.1173 'wildmatch: match '-' '[a-e-n]'': 
			test-tool wildmatch wildmatch '-' '[a-e-n]'
		
ok 1173 - wildmatch: match '-' '[a-e-n]'

expecting success of 3070.1174 'wildmatch (via ls-files): match '[a-e-n]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1174 - wildmatch (via ls-files): match '[a-e-n]' '-'

expecting success of 3070.1175 'iwildmatch: match '-' '[a-e-n]'': 
			test-tool wildmatch iwildmatch '-' '[a-e-n]'
		
ok 1175 - iwildmatch: match '-' '[a-e-n]'

expecting success of 3070.1176 'iwildmatch (via ls-files): match '[a-e-n]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1176 - iwildmatch (via ls-files): match '[a-e-n]' '-'

expecting success of 3070.1177 'pathmatch: match '-' '[a-e-n]'': 
			test-tool wildmatch pathmatch '-' '[a-e-n]'
		
ok 1177 - pathmatch: match '-' '[a-e-n]'

expecting success of 3070.1178 'pathmatch (via ls-files): match '[a-e-n]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1178 - pathmatch (via ls-files): match '[a-e-n]' '-'

expecting success of 3070.1179 'ipathmatch: match '-' '[a-e-n]'': 
			test-tool wildmatch ipathmatch '-' '[a-e-n]'
		
ok 1179 - ipathmatch: match '-' '[a-e-n]'

expecting success of 3070.1180 'ipathmatch (via ls-files): match '[a-e-n]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1180 - ipathmatch (via ls-files): match '[a-e-n]' '-'

expecting success of 3070.1181 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1181 - cleanup after previous file test

expecting success of 3070.1182 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1182 - setup match file test for a

expecting success of 3070.1183 'wildmatch: match 'a' '[!------]'': 
			test-tool wildmatch wildmatch 'a' '[!------]'
		
ok 1183 - wildmatch: match 'a' '[!------]'

expecting success of 3070.1184 'wildmatch (via ls-files): match '[!------]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1184 - wildmatch (via ls-files): match '[!------]' 'a'

expecting success of 3070.1185 'iwildmatch: match 'a' '[!------]'': 
			test-tool wildmatch iwildmatch 'a' '[!------]'
		
ok 1185 - iwildmatch: match 'a' '[!------]'

expecting success of 3070.1186 'iwildmatch (via ls-files): match '[!------]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1186 - iwildmatch (via ls-files): match '[!------]' 'a'

expecting success of 3070.1187 'pathmatch: match 'a' '[!------]'': 
			test-tool wildmatch pathmatch 'a' '[!------]'
		
ok 1187 - pathmatch: match 'a' '[!------]'

expecting success of 3070.1188 'pathmatch (via ls-files): match '[!------]' 'a'': 
				printf '%s' 'a' >expect &&
				git ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1188 - pathmatch (via ls-files): match '[!------]' 'a'

expecting success of 3070.1189 'ipathmatch: match 'a' '[!------]'': 
			test-tool wildmatch ipathmatch 'a' '[!------]'
		
ok 1189 - ipathmatch: match 'a' '[!------]'

expecting success of 3070.1190 'ipathmatch (via ls-files): match '[!------]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1190 - ipathmatch (via ls-files): match '[!------]' 'a'

expecting success of 3070.1191 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1191 - cleanup after previous file test

expecting success of 3070.1192 'setup match file test for [': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1192 - setup match file test for [

expecting success of 3070.1193 'wildmatch: no match '[' '[]-a]'': 
			test_must_fail test-tool wildmatch wildmatch '[' '[]-a]'
		
ok 1193 - wildmatch: no match '[' '[]-a]'

expecting success of 3070.1194 'wildmatch (via ls-files): no match '[]-a]' '['': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1194 - wildmatch (via ls-files): no match '[]-a]' '['

expecting success of 3070.1195 'iwildmatch: no match '[' '[]-a]'': 
			test_must_fail test-tool wildmatch iwildmatch '[' '[]-a]'
		
ok 1195 - iwildmatch: no match '[' '[]-a]'

expecting success of 3070.1196 'iwildmatch (via ls-files): no match '[]-a]' '['': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1196 - iwildmatch (via ls-files): no match '[]-a]' '['

expecting success of 3070.1197 'pathmatch: no match '[' '[]-a]'': 
			test_must_fail test-tool wildmatch pathmatch '[' '[]-a]'
		
ok 1197 - pathmatch: no match '[' '[]-a]'

expecting success of 3070.1198 'pathmatch (via ls-files): no match '[]-a]' '['': 
				>expect &&
				git ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1198 - pathmatch (via ls-files): no match '[]-a]' '['

expecting success of 3070.1199 'ipathmatch: no match '[' '[]-a]'': 
			test_must_fail test-tool wildmatch ipathmatch '[' '[]-a]'
		
ok 1199 - ipathmatch: no match '[' '[]-a]'

expecting success of 3070.1200 'ipathmatch (via ls-files): no match '[]-a]' '['': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1200 - ipathmatch (via ls-files): no match '[]-a]' '['

expecting success of 3070.1201 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1201 - cleanup after previous file test

expecting success of 3070.1202 'setup match file test for ^': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1202 - setup match file test for ^

expecting success of 3070.1203 'wildmatch: match '^' '[]-a]'': 
			test-tool wildmatch wildmatch '^' '[]-a]'
		
ok 1203 - wildmatch: match '^' '[]-a]'

expecting success of 3070.1204 'wildmatch (via ls-files): match '[]-a]' '^'': 
				printf '%s' '^' >expect &&
				git --glob-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1204 - wildmatch (via ls-files): match '[]-a]' '^'

expecting success of 3070.1205 'iwildmatch: match '^' '[]-a]'': 
			test-tool wildmatch iwildmatch '^' '[]-a]'
		
ok 1205 - iwildmatch: match '^' '[]-a]'

expecting success of 3070.1206 'iwildmatch (via ls-files): match '[]-a]' '^'': 
				printf '%s' '^' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1206 - iwildmatch (via ls-files): match '[]-a]' '^'

expecting success of 3070.1207 'pathmatch: match '^' '[]-a]'': 
			test-tool wildmatch pathmatch '^' '[]-a]'
		
ok 1207 - pathmatch: match '^' '[]-a]'

expecting success of 3070.1208 'pathmatch (via ls-files): match '[]-a]' '^'': 
				printf '%s' '^' >expect &&
				git ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1208 - pathmatch (via ls-files): match '[]-a]' '^'

expecting success of 3070.1209 'ipathmatch: match '^' '[]-a]'': 
			test-tool wildmatch ipathmatch '^' '[]-a]'
		
ok 1209 - ipathmatch: match '^' '[]-a]'

expecting success of 3070.1210 'ipathmatch (via ls-files): match '[]-a]' '^'': 
				printf '%s' '^' >expect &&
				git --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1210 - ipathmatch (via ls-files): match '[]-a]' '^'

expecting success of 3070.1211 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ^
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1211 - cleanup after previous file test

expecting success of 3070.1212 'setup match file test for ^': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1212 - setup match file test for ^

expecting success of 3070.1213 'wildmatch: no match '^' '[!]-a]'': 
			test_must_fail test-tool wildmatch wildmatch '^' '[!]-a]'
		
ok 1213 - wildmatch: no match '^' '[!]-a]'

expecting success of 3070.1214 'wildmatch (via ls-files): no match '[!]-a]' '^'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1214 - wildmatch (via ls-files): no match '[!]-a]' '^'

expecting success of 3070.1215 'iwildmatch: no match '^' '[!]-a]'': 
			test_must_fail test-tool wildmatch iwildmatch '^' '[!]-a]'
		
ok 1215 - iwildmatch: no match '^' '[!]-a]'

expecting success of 3070.1216 'iwildmatch (via ls-files): no match '[!]-a]' '^'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1216 - iwildmatch (via ls-files): no match '[!]-a]' '^'

expecting success of 3070.1217 'pathmatch: no match '^' '[!]-a]'': 
			test_must_fail test-tool wildmatch pathmatch '^' '[!]-a]'
		
ok 1217 - pathmatch: no match '^' '[!]-a]'

expecting success of 3070.1218 'pathmatch (via ls-files): no match '[!]-a]' '^'': 
				>expect &&
				git ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1218 - pathmatch (via ls-files): no match '[!]-a]' '^'

expecting success of 3070.1219 'ipathmatch: no match '^' '[!]-a]'': 
			test_must_fail test-tool wildmatch ipathmatch '^' '[!]-a]'
		
ok 1219 - ipathmatch: no match '^' '[!]-a]'

expecting success of 3070.1220 'ipathmatch (via ls-files): no match '[!]-a]' '^'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1220 - ipathmatch (via ls-files): no match '[!]-a]' '^'

expecting success of 3070.1221 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ^
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1221 - cleanup after previous file test

expecting success of 3070.1222 'setup match file test for [': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1222 - setup match file test for [

expecting success of 3070.1223 'wildmatch: match '[' '[!]-a]'': 
			test-tool wildmatch wildmatch '[' '[!]-a]'
		
ok 1223 - wildmatch: match '[' '[!]-a]'

expecting success of 3070.1224 'wildmatch (via ls-files): match '[!]-a]' '['': 
				printf '%s' '[' >expect &&
				git --glob-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1224 - wildmatch (via ls-files): match '[!]-a]' '['

expecting success of 3070.1225 'iwildmatch: match '[' '[!]-a]'': 
			test-tool wildmatch iwildmatch '[' '[!]-a]'
		
ok 1225 - iwildmatch: match '[' '[!]-a]'

expecting success of 3070.1226 'iwildmatch (via ls-files): match '[!]-a]' '['': 
				printf '%s' '[' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1226 - iwildmatch (via ls-files): match '[!]-a]' '['

expecting success of 3070.1227 'pathmatch: match '[' '[!]-a]'': 
			test-tool wildmatch pathmatch '[' '[!]-a]'
		
ok 1227 - pathmatch: match '[' '[!]-a]'

expecting success of 3070.1228 'pathmatch (via ls-files): match '[!]-a]' '['': 
				printf '%s' '[' >expect &&
				git ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1228 - pathmatch (via ls-files): match '[!]-a]' '['

expecting success of 3070.1229 'ipathmatch: match '[' '[!]-a]'': 
			test-tool wildmatch ipathmatch '[' '[!]-a]'
		
ok 1229 - ipathmatch: match '[' '[!]-a]'

expecting success of 3070.1230 'ipathmatch (via ls-files): match '[!]-a]' '['': 
				printf '%s' '[' >expect &&
				git --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1230 - ipathmatch (via ls-files): match '[!]-a]' '['

expecting success of 3070.1231 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1231 - cleanup after previous file test

expecting success of 3070.1232 'setup match file test for ^': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1232 - setup match file test for ^

expecting success of 3070.1233 'wildmatch: match '^' '[a^bc]'': 
			test-tool wildmatch wildmatch '^' '[a^bc]'
		
ok 1233 - wildmatch: match '^' '[a^bc]'

expecting success of 3070.1234 'wildmatch (via ls-files): match '[a^bc]' '^'': 
				printf '%s' '^' >expect &&
				git --glob-pathspecs ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1234 - wildmatch (via ls-files): match '[a^bc]' '^'

expecting success of 3070.1235 'iwildmatch: match '^' '[a^bc]'': 
			test-tool wildmatch iwildmatch '^' '[a^bc]'
		
ok 1235 - iwildmatch: match '^' '[a^bc]'

expecting success of 3070.1236 'iwildmatch (via ls-files): match '[a^bc]' '^'': 
				printf '%s' '^' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1236 - iwildmatch (via ls-files): match '[a^bc]' '^'

expecting success of 3070.1237 'pathmatch: match '^' '[a^bc]'': 
			test-tool wildmatch pathmatch '^' '[a^bc]'
		
ok 1237 - pathmatch: match '^' '[a^bc]'

expecting success of 3070.1238 'pathmatch (via ls-files): match '[a^bc]' '^'': 
				printf '%s' '^' >expect &&
				git ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1238 - pathmatch (via ls-files): match '[a^bc]' '^'

expecting success of 3070.1239 'ipathmatch: match '^' '[a^bc]'': 
			test-tool wildmatch ipathmatch '^' '[a^bc]'
		
ok 1239 - ipathmatch: match '^' '[a^bc]'

expecting success of 3070.1240 'ipathmatch (via ls-files): match '[a^bc]' '^'': 
				printf '%s' '^' >expect &&
				git --icase-pathspecs ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1240 - ipathmatch (via ls-files): match '[a^bc]' '^'

expecting success of 3070.1241 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ^
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1241 - cleanup after previous file test

expecting success of 3070.1242 'setup match file test for -b]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1242 - setup match file test for -b]

expecting success of 3070.1243 'wildmatch: match '-b]' '[a-]b]'': 
			test-tool wildmatch wildmatch '-b]' '[a-]b]'
		
ok 1243 - wildmatch: match '-b]' '[a-]b]'

expecting success of 3070.1244 'wildmatch (via ls-files): match '[a-]b]' '-b]'': 
				printf '%s' '-b]' >expect &&
				git --glob-pathspecs ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1244 - wildmatch (via ls-files): match '[a-]b]' '-b]'

expecting success of 3070.1245 'iwildmatch: match '-b]' '[a-]b]'': 
			test-tool wildmatch iwildmatch '-b]' '[a-]b]'
		
ok 1245 - iwildmatch: match '-b]' '[a-]b]'

expecting success of 3070.1246 'iwildmatch (via ls-files): match '[a-]b]' '-b]'': 
				printf '%s' '-b]' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1246 - iwildmatch (via ls-files): match '[a-]b]' '-b]'

expecting success of 3070.1247 'pathmatch: match '-b]' '[a-]b]'': 
			test-tool wildmatch pathmatch '-b]' '[a-]b]'
		
ok 1247 - pathmatch: match '-b]' '[a-]b]'

expecting success of 3070.1248 'pathmatch (via ls-files): match '[a-]b]' '-b]'': 
				printf '%s' '-b]' >expect &&
				git ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1248 - pathmatch (via ls-files): match '[a-]b]' '-b]'

expecting success of 3070.1249 'ipathmatch: match '-b]' '[a-]b]'': 
			test-tool wildmatch ipathmatch '-b]' '[a-]b]'
		
ok 1249 - ipathmatch: match '-b]' '[a-]b]'

expecting success of 3070.1250 'ipathmatch (via ls-files): match '[a-]b]' '-b]'': 
				printf '%s' '-b]' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1250 - ipathmatch (via ls-files): match '[a-]b]' '-b]'

expecting success of 3070.1251 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -b]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1251 - cleanup after previous file test

expecting success of 3070.1252 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1252 - setup match file test for \

expecting success of 3070.1253 'wildmatch: no match '\' '[\]'': 
			test_must_fail test-tool wildmatch wildmatch '\' '[\]'
		
ok 1253 - wildmatch: no match '\' '[\]'

expecting success of 3070.1254 'wildmatch (via ls-files): no match '[\]' '\'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1254 - wildmatch (via ls-files): no match '[\]' '\'

expecting success of 3070.1255 'iwildmatch: no match '\' '[\]'': 
			test_must_fail test-tool wildmatch iwildmatch '\' '[\]'
		
ok 1255 - iwildmatch: no match '\' '[\]'

expecting success of 3070.1256 'iwildmatch (via ls-files): no match '[\]' '\'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1256 - iwildmatch (via ls-files): no match '[\]' '\'

expecting success of 3070.1257 'pathmatch: no match '\' '[\]'': 
			test_must_fail test-tool wildmatch pathmatch '\' '[\]'
		
ok 1257 - pathmatch: no match '\' '[\]'

expecting success of 3070.1258 'pathmatch (via ls-files): no match '[\]' '\'': 
				>expect &&
				git ls-files -z -- '[\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1258 - pathmatch (via ls-files): no match '[\]' '\'

expecting success of 3070.1259 'ipathmatch: no match '\' '[\]'': 
			test_must_fail test-tool wildmatch ipathmatch '\' '[\]'
		
ok 1259 - ipathmatch: no match '\' '[\]'

expecting success of 3070.1260 'ipathmatch (via ls-files): no match '[\]' '\'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1260 - ipathmatch (via ls-files): no match '[\]' '\'

expecting success of 3070.1261 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1261 - cleanup after previous file test

expecting success of 3070.1262 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1262 - setup match file test for \

expecting success of 3070.1263 'wildmatch: match '\' '[\\]'': 
			test-tool wildmatch wildmatch '\' '[\\]'
		
ok 1263 - wildmatch: match '\' '[\\]'

expecting success of 3070.1264 'wildmatch (via ls-files): match '[\\]' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1264 - wildmatch (via ls-files): match '[\\]' '\'

expecting success of 3070.1265 'iwildmatch: match '\' '[\\]'': 
			test-tool wildmatch iwildmatch '\' '[\\]'
		
ok 1265 - iwildmatch: match '\' '[\\]'

expecting success of 3070.1266 'iwildmatch (via ls-files): match '[\\]' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1266 - iwildmatch (via ls-files): match '[\\]' '\'

expecting success of 3070.1267 'pathmatch: match '\' '[\\]'': 
			test-tool wildmatch pathmatch '\' '[\\]'
		
ok 1267 - pathmatch: match '\' '[\\]'

expecting success of 3070.1268 'pathmatch (via ls-files): match '[\\]' '\'': 
				printf '%s' '\' >expect &&
				git ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1268 - pathmatch (via ls-files): match '[\\]' '\'

expecting success of 3070.1269 'ipathmatch: match '\' '[\\]'': 
			test-tool wildmatch ipathmatch '\' '[\\]'
		
ok 1269 - ipathmatch: match '\' '[\\]'

expecting success of 3070.1270 'ipathmatch (via ls-files): match '[\\]' '\'': 
				printf '%s' '\' >expect &&
				git --icase-pathspecs ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1270 - ipathmatch (via ls-files): match '[\\]' '\'

expecting success of 3070.1271 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1271 - cleanup after previous file test

expecting success of 3070.1272 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1272 - setup match file test for \

expecting success of 3070.1273 'wildmatch: no match '\' '[!\\]'': 
			test_must_fail test-tool wildmatch wildmatch '\' '[!\\]'
		
ok 1273 - wildmatch: no match '\' '[!\\]'

expecting success of 3070.1274 'wildmatch (via ls-files): no match '[!\\]' '\'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1274 - wildmatch (via ls-files): no match '[!\\]' '\'

expecting success of 3070.1275 'iwildmatch: no match '\' '[!\\]'': 
			test_must_fail test-tool wildmatch iwildmatch '\' '[!\\]'
		
ok 1275 - iwildmatch: no match '\' '[!\\]'

expecting success of 3070.1276 'iwildmatch (via ls-files): no match '[!\\]' '\'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1276 - iwildmatch (via ls-files): no match '[!\\]' '\'

expecting success of 3070.1277 'pathmatch: no match '\' '[!\\]'': 
			test_must_fail test-tool wildmatch pathmatch '\' '[!\\]'
		
ok 1277 - pathmatch: no match '\' '[!\\]'

expecting success of 3070.1278 'pathmatch (via ls-files): no match '[!\\]' '\'': 
				>expect &&
				git ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1278 - pathmatch (via ls-files): no match '[!\\]' '\'

expecting success of 3070.1279 'ipathmatch: no match '\' '[!\\]'': 
			test_must_fail test-tool wildmatch ipathmatch '\' '[!\\]'
		
ok 1279 - ipathmatch: no match '\' '[!\\]'

expecting success of 3070.1280 'ipathmatch (via ls-files): no match '[!\\]' '\'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1280 - ipathmatch (via ls-files): no match '[!\\]' '\'

expecting success of 3070.1281 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1281 - cleanup after previous file test

expecting success of 3070.1282 'setup match file test for G': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1282 - setup match file test for G

expecting success of 3070.1283 'wildmatch: match 'G' '[A-\\]'': 
			test-tool wildmatch wildmatch 'G' '[A-\\]'
		
ok 1283 - wildmatch: match 'G' '[A-\\]'

expecting success of 3070.1284 'wildmatch (via ls-files): match '[A-\\]' 'G'': 
				printf '%s' 'G' >expect &&
				git --glob-pathspecs ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1284 - wildmatch (via ls-files): match '[A-\\]' 'G'

expecting success of 3070.1285 'iwildmatch: match 'G' '[A-\\]'': 
			test-tool wildmatch iwildmatch 'G' '[A-\\]'
		
ok 1285 - iwildmatch: match 'G' '[A-\\]'

expecting success of 3070.1286 'iwildmatch (via ls-files): match '[A-\\]' 'G'': 
				printf '%s' 'G' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1286 - iwildmatch (via ls-files): match '[A-\\]' 'G'

expecting success of 3070.1287 'pathmatch: match 'G' '[A-\\]'': 
			test-tool wildmatch pathmatch 'G' '[A-\\]'
		
ok 1287 - pathmatch: match 'G' '[A-\\]'

expecting success of 3070.1288 'pathmatch (via ls-files): match '[A-\\]' 'G'': 
				printf '%s' 'G' >expect &&
				git ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1288 - pathmatch (via ls-files): match '[A-\\]' 'G'

expecting success of 3070.1289 'ipathmatch: match 'G' '[A-\\]'': 
			test-tool wildmatch ipathmatch 'G' '[A-\\]'
		
ok 1289 - ipathmatch: match 'G' '[A-\\]'

expecting success of 3070.1290 'ipathmatch (via ls-files): match '[A-\\]' 'G'': 
				printf '%s' 'G' >expect &&
				git --icase-pathspecs ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1290 - ipathmatch (via ls-files): match '[A-\\]' 'G'

expecting success of 3070.1291 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing G
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1291 - cleanup after previous file test

expecting success of 3070.1292 'setup match file test for aaabbb': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1292 - setup match file test for aaabbb

expecting success of 3070.1293 'wildmatch: no match 'aaabbb' 'b*a'': 
			test_must_fail test-tool wildmatch wildmatch 'aaabbb' 'b*a'
		
ok 1293 - wildmatch: no match 'aaabbb' 'b*a'

expecting success of 3070.1294 'wildmatch (via ls-files): no match 'b*a' 'aaabbb'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1294 - wildmatch (via ls-files): no match 'b*a' 'aaabbb'

expecting success of 3070.1295 'iwildmatch: no match 'aaabbb' 'b*a'': 
			test_must_fail test-tool wildmatch iwildmatch 'aaabbb' 'b*a'
		
ok 1295 - iwildmatch: no match 'aaabbb' 'b*a'

expecting success of 3070.1296 'iwildmatch (via ls-files): no match 'b*a' 'aaabbb'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1296 - iwildmatch (via ls-files): no match 'b*a' 'aaabbb'

expecting success of 3070.1297 'pathmatch: no match 'aaabbb' 'b*a'': 
			test_must_fail test-tool wildmatch pathmatch 'aaabbb' 'b*a'
		
ok 1297 - pathmatch: no match 'aaabbb' 'b*a'

expecting success of 3070.1298 'pathmatch (via ls-files): no match 'b*a' 'aaabbb'': 
				>expect &&
				git ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1298 - pathmatch (via ls-files): no match 'b*a' 'aaabbb'

expecting success of 3070.1299 'ipathmatch: no match 'aaabbb' 'b*a'': 
			test_must_fail test-tool wildmatch ipathmatch 'aaabbb' 'b*a'
		
ok 1299 - ipathmatch: no match 'aaabbb' 'b*a'

expecting success of 3070.1300 'ipathmatch (via ls-files): no match 'b*a' 'aaabbb'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1300 - ipathmatch (via ls-files): no match 'b*a' 'aaabbb'

expecting success of 3070.1301 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing aaabbb
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1301 - cleanup after previous file test

expecting success of 3070.1302 'setup match file test for aabcaa': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1302 - setup match file test for aabcaa

expecting success of 3070.1303 'wildmatch: no match 'aabcaa' '*ba*'': 
			test_must_fail test-tool wildmatch wildmatch 'aabcaa' '*ba*'
		
ok 1303 - wildmatch: no match 'aabcaa' '*ba*'

expecting success of 3070.1304 'wildmatch (via ls-files): no match '*ba*' 'aabcaa'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1304 - wildmatch (via ls-files): no match '*ba*' 'aabcaa'

expecting success of 3070.1305 'iwildmatch: no match 'aabcaa' '*ba*'': 
			test_must_fail test-tool wildmatch iwildmatch 'aabcaa' '*ba*'
		
ok 1305 - iwildmatch: no match 'aabcaa' '*ba*'

expecting success of 3070.1306 'iwildmatch (via ls-files): no match '*ba*' 'aabcaa'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1306 - iwildmatch (via ls-files): no match '*ba*' 'aabcaa'

expecting success of 3070.1307 'pathmatch: no match 'aabcaa' '*ba*'': 
			test_must_fail test-tool wildmatch pathmatch 'aabcaa' '*ba*'
		
ok 1307 - pathmatch: no match 'aabcaa' '*ba*'

expecting success of 3070.1308 'pathmatch (via ls-files): no match '*ba*' 'aabcaa'': 
				>expect &&
				git ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1308 - pathmatch (via ls-files): no match '*ba*' 'aabcaa'

expecting success of 3070.1309 'ipathmatch: no match 'aabcaa' '*ba*'': 
			test_must_fail test-tool wildmatch ipathmatch 'aabcaa' '*ba*'
		
ok 1309 - ipathmatch: no match 'aabcaa' '*ba*'

expecting success of 3070.1310 'ipathmatch (via ls-files): no match '*ba*' 'aabcaa'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1310 - ipathmatch (via ls-files): no match '*ba*' 'aabcaa'

expecting success of 3070.1311 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing aabcaa
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1311 - cleanup after previous file test

expecting success of 3070.1312 'setup match file test for ,': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1312 - setup match file test for ,

expecting success of 3070.1313 'wildmatch: match ',' '[,]'': 
			test-tool wildmatch wildmatch ',' '[,]'
		
ok 1313 - wildmatch: match ',' '[,]'

expecting success of 3070.1314 'wildmatch (via ls-files): match '[,]' ','': 
				printf '%s' ',' >expect &&
				git --glob-pathspecs ls-files -z -- '[,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1314 - wildmatch (via ls-files): match '[,]' ','

expecting success of 3070.1315 'iwildmatch: match ',' '[,]'': 
			test-tool wildmatch iwildmatch ',' '[,]'
		
ok 1315 - iwildmatch: match ',' '[,]'

expecting success of 3070.1316 'iwildmatch (via ls-files): match '[,]' ','': 
				printf '%s' ',' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1316 - iwildmatch (via ls-files): match '[,]' ','

expecting success of 3070.1317 'pathmatch: match ',' '[,]'': 
			test-tool wildmatch pathmatch ',' '[,]'
		
ok 1317 - pathmatch: match ',' '[,]'

expecting success of 3070.1318 'pathmatch (via ls-files): match '[,]' ','': 
				printf '%s' ',' >expect &&
				git ls-files -z -- '[,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1318 - pathmatch (via ls-files): match '[,]' ','

expecting success of 3070.1319 'ipathmatch: match ',' '[,]'': 
			test-tool wildmatch ipathmatch ',' '[,]'
		
ok 1319 - ipathmatch: match ',' '[,]'

expecting success of 3070.1320 'ipathmatch (via ls-files): match '[,]' ','': 
				printf '%s' ',' >expect &&
				git --icase-pathspecs ls-files -z -- '[,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1320 - ipathmatch (via ls-files): match '[,]' ','

expecting success of 3070.1321 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ,
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1321 - cleanup after previous file test

expecting success of 3070.1322 'setup match file test for ,': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1322 - setup match file test for ,

expecting success of 3070.1323 'wildmatch: match ',' '[\\,]'': 
			test-tool wildmatch wildmatch ',' '[\\,]'
		
ok 1323 - wildmatch: match ',' '[\\,]'

expecting success of 3070.1324 'wildmatch (via ls-files): match '[\\,]' ','': 
				printf '%s' ',' >expect &&
				git --glob-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1324 - wildmatch (via ls-files): match '[\\,]' ','

expecting success of 3070.1325 'iwildmatch: match ',' '[\\,]'': 
			test-tool wildmatch iwildmatch ',' '[\\,]'
		
ok 1325 - iwildmatch: match ',' '[\\,]'

expecting success of 3070.1326 'iwildmatch (via ls-files): match '[\\,]' ','': 
				printf '%s' ',' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1326 - iwildmatch (via ls-files): match '[\\,]' ','

expecting success of 3070.1327 'pathmatch: match ',' '[\\,]'': 
			test-tool wildmatch pathmatch ',' '[\\,]'
		
ok 1327 - pathmatch: match ',' '[\\,]'

expecting success of 3070.1328 'pathmatch (via ls-files): match '[\\,]' ','': 
				printf '%s' ',' >expect &&
				git ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1328 - pathmatch (via ls-files): match '[\\,]' ','

expecting success of 3070.1329 'ipathmatch: match ',' '[\\,]'': 
			test-tool wildmatch ipathmatch ',' '[\\,]'
		
ok 1329 - ipathmatch: match ',' '[\\,]'

expecting success of 3070.1330 'ipathmatch (via ls-files): match '[\\,]' ','': 
				printf '%s' ',' >expect &&
				git --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1330 - ipathmatch (via ls-files): match '[\\,]' ','

expecting success of 3070.1331 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ,
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1331 - cleanup after previous file test

expecting success of 3070.1332 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1332 - setup match file test for \

expecting success of 3070.1333 'wildmatch: match '\' '[\\,]'': 
			test-tool wildmatch wildmatch '\' '[\\,]'
		
ok 1333 - wildmatch: match '\' '[\\,]'

expecting success of 3070.1334 'wildmatch (via ls-files): match '[\\,]' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1334 - wildmatch (via ls-files): match '[\\,]' '\'

expecting success of 3070.1335 'iwildmatch: match '\' '[\\,]'': 
			test-tool wildmatch iwildmatch '\' '[\\,]'
		
ok 1335 - iwildmatch: match '\' '[\\,]'

expecting success of 3070.1336 'iwildmatch (via ls-files): match '[\\,]' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1336 - iwildmatch (via ls-files): match '[\\,]' '\'

expecting success of 3070.1337 'pathmatch: match '\' '[\\,]'': 
			test-tool wildmatch pathmatch '\' '[\\,]'
		
ok 1337 - pathmatch: match '\' '[\\,]'

expecting success of 3070.1338 'pathmatch (via ls-files): match '[\\,]' '\'': 
				printf '%s' '\' >expect &&
				git ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1338 - pathmatch (via ls-files): match '[\\,]' '\'

expecting success of 3070.1339 'ipathmatch: match '\' '[\\,]'': 
			test-tool wildmatch ipathmatch '\' '[\\,]'
		
ok 1339 - ipathmatch: match '\' '[\\,]'

expecting success of 3070.1340 'ipathmatch (via ls-files): match '[\\,]' '\'': 
				printf '%s' '\' >expect &&
				git --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1340 - ipathmatch (via ls-files): match '[\\,]' '\'

expecting success of 3070.1341 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1341 - cleanup after previous file test

expecting success of 3070.1342 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1342 - setup match file test for -

expecting success of 3070.1343 'wildmatch: match '-' '[,-.]'': 
			test-tool wildmatch wildmatch '-' '[,-.]'
		
ok 1343 - wildmatch: match '-' '[,-.]'

expecting success of 3070.1344 'wildmatch (via ls-files): match '[,-.]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1344 - wildmatch (via ls-files): match '[,-.]' '-'

expecting success of 3070.1345 'iwildmatch: match '-' '[,-.]'': 
			test-tool wildmatch iwildmatch '-' '[,-.]'
		
ok 1345 - iwildmatch: match '-' '[,-.]'

expecting success of 3070.1346 'iwildmatch (via ls-files): match '[,-.]' '-'': 
				printf '%s' '-' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1346 - iwildmatch (via ls-files): match '[,-.]' '-'

expecting success of 3070.1347 'pathmatch: match '-' '[,-.]'': 
			test-tool wildmatch pathmatch '-' '[,-.]'
		
ok 1347 - pathmatch: match '-' '[,-.]'

expecting success of 3070.1348 'pathmatch (via ls-files): match '[,-.]' '-'': 
				printf '%s' '-' >expect &&
				git ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1348 - pathmatch (via ls-files): match '[,-.]' '-'

expecting success of 3070.1349 'ipathmatch: match '-' '[,-.]'': 
			test-tool wildmatch ipathmatch '-' '[,-.]'
		
ok 1349 - ipathmatch: match '-' '[,-.]'

expecting success of 3070.1350 'ipathmatch (via ls-files): match '[,-.]' '-'': 
				printf '%s' '-' >expect &&
				git --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1350 - ipathmatch (via ls-files): match '[,-.]' '-'

expecting success of 3070.1351 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1351 - cleanup after previous file test

expecting success of 3070.1352 'setup match file test for +': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1352 - setup match file test for +

expecting success of 3070.1353 'wildmatch: no match '+' '[,-.]'': 
			test_must_fail test-tool wildmatch wildmatch '+' '[,-.]'
		
ok 1353 - wildmatch: no match '+' '[,-.]'

expecting success of 3070.1354 'wildmatch (via ls-files): no match '[,-.]' '+'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1354 - wildmatch (via ls-files): no match '[,-.]' '+'

expecting success of 3070.1355 'iwildmatch: no match '+' '[,-.]'': 
			test_must_fail test-tool wildmatch iwildmatch '+' '[,-.]'
		
ok 1355 - iwildmatch: no match '+' '[,-.]'

expecting success of 3070.1356 'iwildmatch (via ls-files): no match '[,-.]' '+'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1356 - iwildmatch (via ls-files): no match '[,-.]' '+'

expecting success of 3070.1357 'pathmatch: no match '+' '[,-.]'': 
			test_must_fail test-tool wildmatch pathmatch '+' '[,-.]'
		
ok 1357 - pathmatch: no match '+' '[,-.]'

expecting success of 3070.1358 'pathmatch (via ls-files): no match '[,-.]' '+'': 
				>expect &&
				git ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1358 - pathmatch (via ls-files): no match '[,-.]' '+'

expecting success of 3070.1359 'ipathmatch: no match '+' '[,-.]'': 
			test_must_fail test-tool wildmatch ipathmatch '+' '[,-.]'
		
ok 1359 - ipathmatch: no match '+' '[,-.]'

expecting success of 3070.1360 'ipathmatch (via ls-files): no match '[,-.]' '+'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1360 - ipathmatch (via ls-files): no match '[,-.]' '+'

expecting success of 3070.1361 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing +
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1361 - cleanup after previous file test

expecting success of 3070.1362 'setup match file test for -.]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1362 - setup match file test for -.]

expecting success of 3070.1363 'wildmatch: no match '-.]' '[,-.]'': 
			test_must_fail test-tool wildmatch wildmatch '-.]' '[,-.]'
		
ok 1363 - wildmatch: no match '-.]' '[,-.]'

expecting success of 3070.1364 'wildmatch (via ls-files): no match '[,-.]' '-.]'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1364 - wildmatch (via ls-files): no match '[,-.]' '-.]'

expecting success of 3070.1365 'iwildmatch: no match '-.]' '[,-.]'': 
			test_must_fail test-tool wildmatch iwildmatch '-.]' '[,-.]'
		
ok 1365 - iwildmatch: no match '-.]' '[,-.]'

expecting success of 3070.1366 'iwildmatch (via ls-files): no match '[,-.]' '-.]'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1366 - iwildmatch (via ls-files): no match '[,-.]' '-.]'

expecting success of 3070.1367 'pathmatch: no match '-.]' '[,-.]'': 
			test_must_fail test-tool wildmatch pathmatch '-.]' '[,-.]'
		
ok 1367 - pathmatch: no match '-.]' '[,-.]'

expecting success of 3070.1368 'pathmatch (via ls-files): no match '[,-.]' '-.]'': 
				>expect &&
				git ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1368 - pathmatch (via ls-files): no match '[,-.]' '-.]'

expecting success of 3070.1369 'ipathmatch: no match '-.]' '[,-.]'': 
			test_must_fail test-tool wildmatch ipathmatch '-.]' '[,-.]'
		
ok 1369 - ipathmatch: no match '-.]' '[,-.]'

expecting success of 3070.1370 'ipathmatch (via ls-files): no match '[,-.]' '-.]'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1370 - ipathmatch (via ls-files): no match '[,-.]' '-.]'

expecting success of 3070.1371 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -.]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1371 - cleanup after previous file test

expecting success of 3070.1372 'setup match file test for 2': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1372 - setup match file test for 2

expecting success of 3070.1373 'wildmatch: match '2' '[\1-\3]'': 
			test-tool wildmatch wildmatch '2' '[\1-\3]'
		
ok 1373 - wildmatch: match '2' '[\1-\3]'

expecting success of 3070.1374 'wildmatch (via ls-files): match '[\1-\3]' '2'': 
				printf '%s' '2' >expect &&
				git --glob-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1374 - wildmatch (via ls-files): match '[\1-\3]' '2'

expecting success of 3070.1375 'iwildmatch: match '2' '[\1-\3]'': 
			test-tool wildmatch iwildmatch '2' '[\1-\3]'
		
ok 1375 - iwildmatch: match '2' '[\1-\3]'

expecting success of 3070.1376 'iwildmatch (via ls-files): match '[\1-\3]' '2'': 
				printf '%s' '2' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1376 - iwildmatch (via ls-files): match '[\1-\3]' '2'

expecting success of 3070.1377 'pathmatch: match '2' '[\1-\3]'': 
			test-tool wildmatch pathmatch '2' '[\1-\3]'
		
ok 1377 - pathmatch: match '2' '[\1-\3]'

expecting success of 3070.1378 'pathmatch (via ls-files): match '[\1-\3]' '2'': 
				printf '%s' '2' >expect &&
				git ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1378 - pathmatch (via ls-files): match '[\1-\3]' '2'

expecting success of 3070.1379 'ipathmatch: match '2' '[\1-\3]'': 
			test-tool wildmatch ipathmatch '2' '[\1-\3]'
		
ok 1379 - ipathmatch: match '2' '[\1-\3]'

expecting success of 3070.1380 'ipathmatch (via ls-files): match '[\1-\3]' '2'': 
				printf '%s' '2' >expect &&
				git --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1380 - ipathmatch (via ls-files): match '[\1-\3]' '2'

expecting success of 3070.1381 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 2
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1381 - cleanup after previous file test

expecting success of 3070.1382 'setup match file test for 3': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1382 - setup match file test for 3

expecting success of 3070.1383 'wildmatch: match '3' '[\1-\3]'': 
			test-tool wildmatch wildmatch '3' '[\1-\3]'
		
ok 1383 - wildmatch: match '3' '[\1-\3]'

expecting success of 3070.1384 'wildmatch (via ls-files): match '[\1-\3]' '3'': 
				printf '%s' '3' >expect &&
				git --glob-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1384 - wildmatch (via ls-files): match '[\1-\3]' '3'

expecting success of 3070.1385 'iwildmatch: match '3' '[\1-\3]'': 
			test-tool wildmatch iwildmatch '3' '[\1-\3]'
		
ok 1385 - iwildmatch: match '3' '[\1-\3]'

expecting success of 3070.1386 'iwildmatch (via ls-files): match '[\1-\3]' '3'': 
				printf '%s' '3' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1386 - iwildmatch (via ls-files): match '[\1-\3]' '3'

expecting success of 3070.1387 'pathmatch: match '3' '[\1-\3]'': 
			test-tool wildmatch pathmatch '3' '[\1-\3]'
		
ok 1387 - pathmatch: match '3' '[\1-\3]'

expecting success of 3070.1388 'pathmatch (via ls-files): match '[\1-\3]' '3'': 
				printf '%s' '3' >expect &&
				git ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1388 - pathmatch (via ls-files): match '[\1-\3]' '3'

expecting success of 3070.1389 'ipathmatch: match '3' '[\1-\3]'': 
			test-tool wildmatch ipathmatch '3' '[\1-\3]'
		
ok 1389 - ipathmatch: match '3' '[\1-\3]'

expecting success of 3070.1390 'ipathmatch (via ls-files): match '[\1-\3]' '3'': 
				printf '%s' '3' >expect &&
				git --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1390 - ipathmatch (via ls-files): match '[\1-\3]' '3'

expecting success of 3070.1391 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 3
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1391 - cleanup after previous file test

expecting success of 3070.1392 'setup match file test for 4': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1392 - setup match file test for 4

expecting success of 3070.1393 'wildmatch: no match '4' '[\1-\3]'': 
			test_must_fail test-tool wildmatch wildmatch '4' '[\1-\3]'
		
ok 1393 - wildmatch: no match '4' '[\1-\3]'

expecting success of 3070.1394 'wildmatch (via ls-files): no match '[\1-\3]' '4'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1394 - wildmatch (via ls-files): no match '[\1-\3]' '4'

expecting success of 3070.1395 'iwildmatch: no match '4' '[\1-\3]'': 
			test_must_fail test-tool wildmatch iwildmatch '4' '[\1-\3]'
		
ok 1395 - iwildmatch: no match '4' '[\1-\3]'

expecting success of 3070.1396 'iwildmatch (via ls-files): no match '[\1-\3]' '4'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1396 - iwildmatch (via ls-files): no match '[\1-\3]' '4'

expecting success of 3070.1397 'pathmatch: no match '4' '[\1-\3]'': 
			test_must_fail test-tool wildmatch pathmatch '4' '[\1-\3]'
		
ok 1397 - pathmatch: no match '4' '[\1-\3]'

expecting success of 3070.1398 'pathmatch (via ls-files): no match '[\1-\3]' '4'': 
				>expect &&
				git ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1398 - pathmatch (via ls-files): no match '[\1-\3]' '4'

expecting success of 3070.1399 'ipathmatch: no match '4' '[\1-\3]'': 
			test_must_fail test-tool wildmatch ipathmatch '4' '[\1-\3]'
		
ok 1399 - ipathmatch: no match '4' '[\1-\3]'

expecting success of 3070.1400 'ipathmatch (via ls-files): no match '[\1-\3]' '4'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1400 - ipathmatch (via ls-files): no match '[\1-\3]' '4'

expecting success of 3070.1401 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing 4
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1401 - cleanup after previous file test

expecting success of 3070.1402 'setup match file test for \': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1402 - setup match file test for \

expecting success of 3070.1403 'wildmatch: match '\' '[[-\]]'': 
			test-tool wildmatch wildmatch '\' '[[-\]]'
		
ok 1403 - wildmatch: match '\' '[[-\]]'

expecting success of 3070.1404 'wildmatch (via ls-files): match '[[-\]]' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1404 - wildmatch (via ls-files): match '[[-\]]' '\'

expecting success of 3070.1405 'iwildmatch: match '\' '[[-\]]'': 
			test-tool wildmatch iwildmatch '\' '[[-\]]'
		
ok 1405 - iwildmatch: match '\' '[[-\]]'

expecting success of 3070.1406 'iwildmatch (via ls-files): match '[[-\]]' '\'': 
				printf '%s' '\' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1406 - iwildmatch (via ls-files): match '[[-\]]' '\'

expecting success of 3070.1407 'pathmatch: match '\' '[[-\]]'': 
			test-tool wildmatch pathmatch '\' '[[-\]]'
		
ok 1407 - pathmatch: match '\' '[[-\]]'

expecting success of 3070.1408 'pathmatch (via ls-files): match '[[-\]]' '\'': 
				printf '%s' '\' >expect &&
				git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1408 - pathmatch (via ls-files): match '[[-\]]' '\'

expecting success of 3070.1409 'ipathmatch: match '\' '[[-\]]'': 
			test-tool wildmatch ipathmatch '\' '[[-\]]'
		
ok 1409 - ipathmatch: match '\' '[[-\]]'

expecting success of 3070.1410 'ipathmatch (via ls-files): match '[[-\]]' '\'': 
				printf '%s' '\' >expect &&
				git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1410 - ipathmatch (via ls-files): match '[[-\]]' '\'

expecting success of 3070.1411 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing "\\"
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1411 - cleanup after previous file test

expecting success of 3070.1412 'setup match file test for [': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1412 - setup match file test for [

expecting success of 3070.1413 'wildmatch: match '[' '[[-\]]'': 
			test-tool wildmatch wildmatch '[' '[[-\]]'
		
ok 1413 - wildmatch: match '[' '[[-\]]'

expecting success of 3070.1414 'wildmatch (via ls-files): match '[[-\]]' '['': 
				printf '%s' '[' >expect &&
				git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1414 - wildmatch (via ls-files): match '[[-\]]' '['

expecting success of 3070.1415 'iwildmatch: match '[' '[[-\]]'': 
			test-tool wildmatch iwildmatch '[' '[[-\]]'
		
ok 1415 - iwildmatch: match '[' '[[-\]]'

expecting success of 3070.1416 'iwildmatch (via ls-files): match '[[-\]]' '['': 
				printf '%s' '[' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1416 - iwildmatch (via ls-files): match '[[-\]]' '['

expecting success of 3070.1417 'pathmatch: match '[' '[[-\]]'': 
			test-tool wildmatch pathmatch '[' '[[-\]]'
		
ok 1417 - pathmatch: match '[' '[[-\]]'

expecting success of 3070.1418 'pathmatch (via ls-files): match '[[-\]]' '['': 
				printf '%s' '[' >expect &&
				git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1418 - pathmatch (via ls-files): match '[[-\]]' '['

expecting success of 3070.1419 'ipathmatch: match '[' '[[-\]]'': 
			test-tool wildmatch ipathmatch '[' '[[-\]]'
		
ok 1419 - ipathmatch: match '[' '[[-\]]'

expecting success of 3070.1420 'ipathmatch (via ls-files): match '[[-\]]' '['': 
				printf '%s' '[' >expect &&
				git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1420 - ipathmatch (via ls-files): match '[[-\]]' '['

expecting success of 3070.1421 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing [
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1421 - cleanup after previous file test

expecting success of 3070.1422 'setup match file test for ]': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1422 - setup match file test for ]

expecting success of 3070.1423 'wildmatch: match ']' '[[-\]]'': 
			test-tool wildmatch wildmatch ']' '[[-\]]'
		
ok 1423 - wildmatch: match ']' '[[-\]]'

expecting success of 3070.1424 'wildmatch (via ls-files): match '[[-\]]' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1424 - wildmatch (via ls-files): match '[[-\]]' ']'

expecting success of 3070.1425 'iwildmatch: match ']' '[[-\]]'': 
			test-tool wildmatch iwildmatch ']' '[[-\]]'
		
ok 1425 - iwildmatch: match ']' '[[-\]]'

expecting success of 3070.1426 'iwildmatch (via ls-files): match '[[-\]]' ']'': 
				printf '%s' ']' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1426 - iwildmatch (via ls-files): match '[[-\]]' ']'

expecting success of 3070.1427 'pathmatch: match ']' '[[-\]]'': 
			test-tool wildmatch pathmatch ']' '[[-\]]'
		
ok 1427 - pathmatch: match ']' '[[-\]]'

expecting success of 3070.1428 'pathmatch (via ls-files): match '[[-\]]' ']'': 
				printf '%s' ']' >expect &&
				git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1428 - pathmatch (via ls-files): match '[[-\]]' ']'

expecting success of 3070.1429 'ipathmatch: match ']' '[[-\]]'': 
			test-tool wildmatch ipathmatch ']' '[[-\]]'
		
ok 1429 - ipathmatch: match ']' '[[-\]]'

expecting success of 3070.1430 'ipathmatch (via ls-files): match '[[-\]]' ']'': 
				printf '%s' ']' >expect &&
				git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1430 - ipathmatch (via ls-files): match '[[-\]]' ']'

expecting success of 3070.1431 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ]
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1431 - cleanup after previous file test

expecting success of 3070.1432 'setup match file test for -': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1432 - setup match file test for -

expecting success of 3070.1433 'wildmatch: no match '-' '[[-\]]'': 
			test_must_fail test-tool wildmatch wildmatch '-' '[[-\]]'
		
ok 1433 - wildmatch: no match '-' '[[-\]]'

expecting success of 3070.1434 'wildmatch (via ls-files): no match '[[-\]]' '-'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1434 - wildmatch (via ls-files): no match '[[-\]]' '-'

expecting success of 3070.1435 'iwildmatch: no match '-' '[[-\]]'': 
			test_must_fail test-tool wildmatch iwildmatch '-' '[[-\]]'
		
ok 1435 - iwildmatch: no match '-' '[[-\]]'

expecting success of 3070.1436 'iwildmatch (via ls-files): no match '[[-\]]' '-'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1436 - iwildmatch (via ls-files): no match '[[-\]]' '-'

expecting success of 3070.1437 'pathmatch: no match '-' '[[-\]]'': 
			test_must_fail test-tool wildmatch pathmatch '-' '[[-\]]'
		
ok 1437 - pathmatch: no match '-' '[[-\]]'

expecting success of 3070.1438 'pathmatch (via ls-files): no match '[[-\]]' '-'': 
				>expect &&
				git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1438 - pathmatch (via ls-files): no match '[[-\]]' '-'

expecting success of 3070.1439 'ipathmatch: no match '-' '[[-\]]'': 
			test_must_fail test-tool wildmatch ipathmatch '-' '[[-\]]'
		
ok 1439 - ipathmatch: no match '-' '[[-\]]'

expecting success of 3070.1440 'ipathmatch (via ls-files): no match '[[-\]]' '-'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1440 - ipathmatch (via ls-files): no match '[[-\]]' '-'

expecting success of 3070.1441 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1441 - cleanup after previous file test

expecting success of 3070.1442 'setup match file test for -adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1442 - setup match file test for -adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1

expecting success of 3070.1443 'wildmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test-tool wildmatch wildmatch '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1443 - wildmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1444 'wildmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'': 
				printf '%s' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' >expect &&
				git --glob-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1444 - wildmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'

expecting success of 3070.1445 'iwildmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test-tool wildmatch iwildmatch '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1445 - iwildmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1446 'iwildmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'': 
				printf '%s' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1446 - iwildmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'

expecting success of 3070.1447 'pathmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test-tool wildmatch pathmatch '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1447 - pathmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1448 'pathmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'': 
				printf '%s' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' >expect &&
				git ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1448 - pathmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'

expecting success of 3070.1449 'ipathmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test-tool wildmatch ipathmatch '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1449 - ipathmatch: match '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1450 'ipathmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'': 
				printf '%s' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1' >expect &&
				git --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1450 - ipathmatch (via ls-files): match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1'

expecting success of 3070.1451 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1451 - cleanup after previous file test

expecting success of 3070.1452 'setup match file test for -adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1452 - setup match file test for -adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1

expecting success of 3070.1453 'wildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch wildmatch '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1453 - wildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1454 'wildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1454 - wildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'

expecting success of 3070.1455 'iwildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch iwildmatch '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1455 - iwildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1456 'iwildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1456 - iwildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'

expecting success of 3070.1457 'pathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch pathmatch '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1457 - pathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1458 'pathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'': 
				>expect &&
				git ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1458 - pathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'

expecting success of 3070.1459 'ipathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch ipathmatch '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1459 - ipathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1460 'ipathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1460 - ipathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1'

expecting success of 3070.1461 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1461 - cleanup after previous file test

expecting success of 3070.1462 'setup match file test for -adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1462 - setup match file test for -adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1

expecting success of 3070.1463 'wildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch wildmatch '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1463 - wildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1464 'wildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1464 - wildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'

expecting success of 3070.1465 'iwildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch iwildmatch '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1465 - iwildmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1466 'iwildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1466 - iwildmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'

expecting success of 3070.1467 'pathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch pathmatch '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1467 - pathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1468 'pathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'': 
				>expect &&
				git ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1468 - pathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'

expecting success of 3070.1469 'ipathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'': 
			test_must_fail test-tool wildmatch ipathmatch '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'
		
ok 1469 - ipathmatch: no match '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1' '-*-*-*-*-*-*-12-*-*-*-m-*-*-*'

expecting success of 3070.1470 'ipathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1470 - ipathmatch (via ls-files): no match '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' '-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1'

expecting success of 3070.1471 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing -adobe-courier-bold-o-normal--12-120-75-75-/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1471 - cleanup after previous file test

expecting success of 3070.1472 'setup match file test for XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1472 - setup match file test for XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1

expecting success of 3070.1473 'wildmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test-tool wildmatch wildmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1473 - wildmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1474 'wildmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1'': false
not ok 1474 - wildmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' # TODO known breakage

expecting success of 3070.1475 'iwildmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test-tool wildmatch iwildmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1475 - iwildmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1476 'iwildmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1'': false
not ok 1476 - iwildmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' # TODO known breakage

expecting success of 3070.1477 'pathmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test-tool wildmatch pathmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1477 - pathmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1478 'pathmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1'': false
not ok 1478 - pathmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' # TODO known breakage

expecting success of 3070.1479 'ipathmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test-tool wildmatch ipathmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1479 - ipathmatch: match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1480 'ipathmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1'': false
not ok 1480 - ipathmatch (via ls-files): match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1' # TODO known breakage

expecting success of 3070.1481 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 1481 - cleanup after previous file test

expecting success of 3070.1482 'setup match file test for XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1482 - setup match file test for XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1

expecting success of 3070.1483 'wildmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test_must_fail test-tool wildmatch wildmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1483 - wildmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1484 'wildmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1'': false
not ok 1484 - wildmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' # TODO known breakage

expecting success of 3070.1485 'iwildmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1485 - iwildmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1486 'iwildmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1'': false
not ok 1486 - iwildmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' # TODO known breakage

expecting success of 3070.1487 'pathmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test_must_fail test-tool wildmatch pathmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1487 - pathmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1488 'pathmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1'': false
not ok 1488 - pathmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' # TODO known breakage

expecting success of 3070.1489 'ipathmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'': 
			test_must_fail test-tool wildmatch ipathmatch 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'
		
ok 1489 - ipathmatch: no match 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*'

checking known breakage of 3070.1490 'ipathmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1'': false
not ok 1490 - ipathmatch (via ls-files): no match skip 'XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*' 'XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1' # TODO known breakage

expecting success of 3070.1491 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
ok 1491 - cleanup after previous file test

expecting success of 3070.1492 'setup match file test for abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1492 - setup match file test for abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt

expecting success of 3070.1493 'wildmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'': 
			test-tool wildmatch wildmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'
		
ok 1493 - wildmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'

expecting success of 3070.1494 'wildmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'': 
				printf '%s' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' >expect &&
				git --glob-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1494 - wildmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'

expecting success of 3070.1495 'iwildmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'': 
			test-tool wildmatch iwildmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'
		
ok 1495 - iwildmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'

expecting success of 3070.1496 'iwildmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'': 
				printf '%s' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1496 - iwildmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'

expecting success of 3070.1497 'pathmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'': 
			test-tool wildmatch pathmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'
		
ok 1497 - pathmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'

expecting success of 3070.1498 'pathmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'': 
				printf '%s' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' >expect &&
				git ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1498 - pathmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'

expecting success of 3070.1499 'ipathmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'': 
			test-tool wildmatch ipathmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'
		
ok 1499 - ipathmatch: match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' '**/*a*b*g*n*t'

expecting success of 3070.1500 'ipathmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'': 
				printf '%s' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt' >expect &&
				git --icase-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1500 - ipathmatch (via ls-files): match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt'

expecting success of 3070.1501 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing abcd/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1501 - cleanup after previous file test

expecting success of 3070.1502 'setup match file test for abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1502 - setup match file test for abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz

expecting success of 3070.1503 'wildmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'': 
			test_must_fail test-tool wildmatch wildmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'
		
ok 1503 - wildmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'

expecting success of 3070.1504 'wildmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1504 - wildmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'

expecting success of 3070.1505 'iwildmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'': 
			test_must_fail test-tool wildmatch iwildmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'
		
ok 1505 - iwildmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'

expecting success of 3070.1506 'iwildmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1506 - iwildmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'

expecting success of 3070.1507 'pathmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'': 
			test_must_fail test-tool wildmatch pathmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'
		
ok 1507 - pathmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'

expecting success of 3070.1508 'pathmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'': 
				>expect &&
				git ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1508 - pathmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'

expecting success of 3070.1509 'ipathmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'': 
			test_must_fail test-tool wildmatch ipathmatch 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'
		
ok 1509 - ipathmatch: no match 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz' '**/*a*b*g*n*t'

expecting success of 3070.1510 'ipathmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1510 - ipathmatch (via ls-files): no match '**/*a*b*g*n*t' 'abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz'

expecting success of 3070.1511 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing abcd/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1511 - cleanup after previous file test

expecting success of 3070.1512 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1512 - setup match file test for foo

expecting success of 3070.1513 'wildmatch: no match 'foo' '*/*/*'': 
			test_must_fail test-tool wildmatch wildmatch 'foo' '*/*/*'
		
ok 1513 - wildmatch: no match 'foo' '*/*/*'

expecting success of 3070.1514 'wildmatch (via ls-files): no match '*/*/*' 'foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1514 - wildmatch (via ls-files): no match '*/*/*' 'foo'

expecting success of 3070.1515 'iwildmatch: no match 'foo' '*/*/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' '*/*/*'
		
ok 1515 - iwildmatch: no match 'foo' '*/*/*'

expecting success of 3070.1516 'iwildmatch (via ls-files): no match '*/*/*' 'foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1516 - iwildmatch (via ls-files): no match '*/*/*' 'foo'

expecting success of 3070.1517 'pathmatch: no match 'foo' '*/*/*'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' '*/*/*'
		
ok 1517 - pathmatch: no match 'foo' '*/*/*'

expecting success of 3070.1518 'pathmatch (via ls-files): no match '*/*/*' 'foo'': 
				>expect &&
				git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1518 - pathmatch (via ls-files): no match '*/*/*' 'foo'

expecting success of 3070.1519 'ipathmatch: no match 'foo' '*/*/*'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' '*/*/*'
		
ok 1519 - ipathmatch: no match 'foo' '*/*/*'

expecting success of 3070.1520 'ipathmatch (via ls-files): no match '*/*/*' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1520 - ipathmatch (via ls-files): no match '*/*/*' 'foo'

expecting success of 3070.1521 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 1521 - cleanup after previous file test

expecting success of 3070.1522 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1522 - setup match file test for foo/bar

expecting success of 3070.1523 'wildmatch: no match 'foo/bar' '*/*/*'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' '*/*/*'
		
ok 1523 - wildmatch: no match 'foo/bar' '*/*/*'

expecting success of 3070.1524 'wildmatch (via ls-files): no match '*/*/*' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1524 - wildmatch (via ls-files): no match '*/*/*' 'foo/bar'

expecting success of 3070.1525 'iwildmatch: no match 'foo/bar' '*/*/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' '*/*/*'
		
ok 1525 - iwildmatch: no match 'foo/bar' '*/*/*'

expecting success of 3070.1526 'iwildmatch (via ls-files): no match '*/*/*' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1526 - iwildmatch (via ls-files): no match '*/*/*' 'foo/bar'

expecting success of 3070.1527 'pathmatch: no match 'foo/bar' '*/*/*'': 
			test_must_fail test-tool wildmatch pathmatch 'foo/bar' '*/*/*'
		
ok 1527 - pathmatch: no match 'foo/bar' '*/*/*'

expecting success of 3070.1528 'pathmatch (via ls-files): no match '*/*/*' 'foo/bar'': 
				>expect &&
				git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1528 - pathmatch (via ls-files): no match '*/*/*' 'foo/bar'

expecting success of 3070.1529 'ipathmatch: no match 'foo/bar' '*/*/*'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo/bar' '*/*/*'
		
ok 1529 - ipathmatch: no match 'foo/bar' '*/*/*'

expecting success of 3070.1530 'ipathmatch (via ls-files): no match '*/*/*' 'foo/bar'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1530 - ipathmatch (via ls-files): no match '*/*/*' 'foo/bar'

expecting success of 3070.1531 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1531 - cleanup after previous file test

expecting success of 3070.1532 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1532 - setup match file test for foo/bba/arr

expecting success of 3070.1533 'wildmatch: match 'foo/bba/arr' '*/*/*'': 
			test-tool wildmatch wildmatch 'foo/bba/arr' '*/*/*'
		
ok 1533 - wildmatch: match 'foo/bba/arr' '*/*/*'

expecting success of 3070.1534 'wildmatch (via ls-files): match '*/*/*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1534 - wildmatch (via ls-files): match '*/*/*' 'foo/bba/arr'

expecting success of 3070.1535 'iwildmatch: match 'foo/bba/arr' '*/*/*'': 
			test-tool wildmatch iwildmatch 'foo/bba/arr' '*/*/*'
		
ok 1535 - iwildmatch: match 'foo/bba/arr' '*/*/*'

expecting success of 3070.1536 'iwildmatch (via ls-files): match '*/*/*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1536 - iwildmatch (via ls-files): match '*/*/*' 'foo/bba/arr'

expecting success of 3070.1537 'pathmatch: match 'foo/bba/arr' '*/*/*'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' '*/*/*'
		
ok 1537 - pathmatch: match 'foo/bba/arr' '*/*/*'

expecting success of 3070.1538 'pathmatch (via ls-files): match '*/*/*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1538 - pathmatch (via ls-files): match '*/*/*' 'foo/bba/arr'

expecting success of 3070.1539 'ipathmatch: match 'foo/bba/arr' '*/*/*'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' '*/*/*'
		
ok 1539 - ipathmatch: match 'foo/bba/arr' '*/*/*'

expecting success of 3070.1540 'ipathmatch (via ls-files): match '*/*/*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1540 - ipathmatch (via ls-files): match '*/*/*' 'foo/bba/arr'

expecting success of 3070.1541 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1541 - cleanup after previous file test

expecting success of 3070.1542 'setup match file test for foo/bb/aa/rr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1542 - setup match file test for foo/bb/aa/rr

expecting success of 3070.1543 'wildmatch: no match 'foo/bb/aa/rr' '*/*/*'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bb/aa/rr' '*/*/*'
		
ok 1543 - wildmatch: no match 'foo/bb/aa/rr' '*/*/*'

expecting success of 3070.1544 'wildmatch (via ls-files): no match '*/*/*' 'foo/bb/aa/rr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1544 - wildmatch (via ls-files): no match '*/*/*' 'foo/bb/aa/rr'

expecting success of 3070.1545 'iwildmatch: no match 'foo/bb/aa/rr' '*/*/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bb/aa/rr' '*/*/*'
		
ok 1545 - iwildmatch: no match 'foo/bb/aa/rr' '*/*/*'

expecting success of 3070.1546 'iwildmatch (via ls-files): no match '*/*/*' 'foo/bb/aa/rr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1546 - iwildmatch (via ls-files): no match '*/*/*' 'foo/bb/aa/rr'

expecting success of 3070.1547 'pathmatch: match 'foo/bb/aa/rr' '*/*/*'': 
			test-tool wildmatch pathmatch 'foo/bb/aa/rr' '*/*/*'
		
ok 1547 - pathmatch: match 'foo/bb/aa/rr' '*/*/*'

expecting success of 3070.1548 'pathmatch (via ls-files): match '*/*/*' 'foo/bb/aa/rr'': 
				printf '%s' 'foo/bb/aa/rr' >expect &&
				git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1548 - pathmatch (via ls-files): match '*/*/*' 'foo/bb/aa/rr'

expecting success of 3070.1549 'ipathmatch: match 'foo/bb/aa/rr' '*/*/*'': 
			test-tool wildmatch ipathmatch 'foo/bb/aa/rr' '*/*/*'
		
ok 1549 - ipathmatch: match 'foo/bb/aa/rr' '*/*/*'

expecting success of 3070.1550 'ipathmatch (via ls-files): match '*/*/*' 'foo/bb/aa/rr'': 
				printf '%s' 'foo/bb/aa/rr' >expect &&
				git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1550 - ipathmatch (via ls-files): match '*/*/*' 'foo/bb/aa/rr'

expecting success of 3070.1551 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1551 - cleanup after previous file test

expecting success of 3070.1552 'setup match file test for foo/bb/aa/rr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1552 - setup match file test for foo/bb/aa/rr

expecting success of 3070.1553 'wildmatch: match 'foo/bb/aa/rr' '**/**/**'': 
			test-tool wildmatch wildmatch 'foo/bb/aa/rr' '**/**/**'
		
ok 1553 - wildmatch: match 'foo/bb/aa/rr' '**/**/**'

expecting success of 3070.1554 'wildmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'': 
				printf '%s' 'foo/bb/aa/rr' >expect &&
				git --glob-pathspecs ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1554 - wildmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'

expecting success of 3070.1555 'iwildmatch: match 'foo/bb/aa/rr' '**/**/**'': 
			test-tool wildmatch iwildmatch 'foo/bb/aa/rr' '**/**/**'
		
ok 1555 - iwildmatch: match 'foo/bb/aa/rr' '**/**/**'

expecting success of 3070.1556 'iwildmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'': 
				printf '%s' 'foo/bb/aa/rr' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1556 - iwildmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'

expecting success of 3070.1557 'pathmatch: match 'foo/bb/aa/rr' '**/**/**'': 
			test-tool wildmatch pathmatch 'foo/bb/aa/rr' '**/**/**'
		
ok 1557 - pathmatch: match 'foo/bb/aa/rr' '**/**/**'

expecting success of 3070.1558 'pathmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'': 
				printf '%s' 'foo/bb/aa/rr' >expect &&
				git ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1558 - pathmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'

expecting success of 3070.1559 'ipathmatch: match 'foo/bb/aa/rr' '**/**/**'': 
			test-tool wildmatch ipathmatch 'foo/bb/aa/rr' '**/**/**'
		
ok 1559 - ipathmatch: match 'foo/bb/aa/rr' '**/**/**'

expecting success of 3070.1560 'ipathmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'': 
				printf '%s' 'foo/bb/aa/rr' >expect &&
				git --icase-pathspecs ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1560 - ipathmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'

expecting success of 3070.1561 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1561 - cleanup after previous file test

expecting success of 3070.1562 'setup match file test for abcXdefXghi': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1562 - setup match file test for abcXdefXghi

expecting success of 3070.1563 'wildmatch: match 'abcXdefXghi' '*X*i'': 
			test-tool wildmatch wildmatch 'abcXdefXghi' '*X*i'
		
ok 1563 - wildmatch: match 'abcXdefXghi' '*X*i'

expecting success of 3070.1564 'wildmatch (via ls-files): match '*X*i' 'abcXdefXghi'': 
				printf '%s' 'abcXdefXghi' >expect &&
				git --glob-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1564 - wildmatch (via ls-files): match '*X*i' 'abcXdefXghi'

expecting success of 3070.1565 'iwildmatch: match 'abcXdefXghi' '*X*i'': 
			test-tool wildmatch iwildmatch 'abcXdefXghi' '*X*i'
		
ok 1565 - iwildmatch: match 'abcXdefXghi' '*X*i'

expecting success of 3070.1566 'iwildmatch (via ls-files): match '*X*i' 'abcXdefXghi'': 
				printf '%s' 'abcXdefXghi' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1566 - iwildmatch (via ls-files): match '*X*i' 'abcXdefXghi'

expecting success of 3070.1567 'pathmatch: match 'abcXdefXghi' '*X*i'': 
			test-tool wildmatch pathmatch 'abcXdefXghi' '*X*i'
		
ok 1567 - pathmatch: match 'abcXdefXghi' '*X*i'

expecting success of 3070.1568 'pathmatch (via ls-files): match '*X*i' 'abcXdefXghi'': 
				printf '%s' 'abcXdefXghi' >expect &&
				git ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1568 - pathmatch (via ls-files): match '*X*i' 'abcXdefXghi'

expecting success of 3070.1569 'ipathmatch: match 'abcXdefXghi' '*X*i'': 
			test-tool wildmatch ipathmatch 'abcXdefXghi' '*X*i'
		
ok 1569 - ipathmatch: match 'abcXdefXghi' '*X*i'

expecting success of 3070.1570 'ipathmatch (via ls-files): match '*X*i' 'abcXdefXghi'': 
				printf '%s' 'abcXdefXghi' >expect &&
				git --icase-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1570 - ipathmatch (via ls-files): match '*X*i' 'abcXdefXghi'

expecting success of 3070.1571 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing abcXdefXghi
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1571 - cleanup after previous file test

expecting success of 3070.1572 'setup match file test for ab/cXd/efXg/hi': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1572 - setup match file test for ab/cXd/efXg/hi

expecting success of 3070.1573 'wildmatch: no match 'ab/cXd/efXg/hi' '*X*i'': 
			test_must_fail test-tool wildmatch wildmatch 'ab/cXd/efXg/hi' '*X*i'
		
ok 1573 - wildmatch: no match 'ab/cXd/efXg/hi' '*X*i'

expecting success of 3070.1574 'wildmatch (via ls-files): no match '*X*i' 'ab/cXd/efXg/hi'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1574 - wildmatch (via ls-files): no match '*X*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1575 'iwildmatch: no match 'ab/cXd/efXg/hi' '*X*i'': 
			test_must_fail test-tool wildmatch iwildmatch 'ab/cXd/efXg/hi' '*X*i'
		
ok 1575 - iwildmatch: no match 'ab/cXd/efXg/hi' '*X*i'

expecting success of 3070.1576 'iwildmatch (via ls-files): no match '*X*i' 'ab/cXd/efXg/hi'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1576 - iwildmatch (via ls-files): no match '*X*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1577 'pathmatch: match 'ab/cXd/efXg/hi' '*X*i'': 
			test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '*X*i'
		
ok 1577 - pathmatch: match 'ab/cXd/efXg/hi' '*X*i'

expecting success of 3070.1578 'pathmatch (via ls-files): match '*X*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1578 - pathmatch (via ls-files): match '*X*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1579 'ipathmatch: match 'ab/cXd/efXg/hi' '*X*i'': 
			test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '*X*i'
		
ok 1579 - ipathmatch: match 'ab/cXd/efXg/hi' '*X*i'

expecting success of 3070.1580 'ipathmatch (via ls-files): match '*X*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --icase-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1580 - ipathmatch (via ls-files): match '*X*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1581 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1581 - cleanup after previous file test

expecting success of 3070.1582 'setup match file test for ab/cXd/efXg/hi': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1582 - setup match file test for ab/cXd/efXg/hi

expecting success of 3070.1583 'wildmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'': 
			test-tool wildmatch wildmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
		
ok 1583 - wildmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'

expecting success of 3070.1584 'wildmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --glob-pathspecs ls-files -z -- '*/*X*/*/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1584 - wildmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1585 'iwildmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'': 
			test-tool wildmatch iwildmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
		
ok 1585 - iwildmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'

expecting success of 3070.1586 'iwildmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*X*/*/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1586 - iwildmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1587 'pathmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'': 
			test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
		
ok 1587 - pathmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'

expecting success of 3070.1588 'pathmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git ls-files -z -- '*/*X*/*/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1588 - pathmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1589 'ipathmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'': 
			test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
		
ok 1589 - ipathmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'

expecting success of 3070.1590 'ipathmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --icase-pathspecs ls-files -z -- '*/*X*/*/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1590 - ipathmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1591 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1591 - cleanup after previous file test

expecting success of 3070.1592 'setup match file test for ab/cXd/efXg/hi': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1592 - setup match file test for ab/cXd/efXg/hi

expecting success of 3070.1593 'wildmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'': 
			test-tool wildmatch wildmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
		
ok 1593 - wildmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'

expecting success of 3070.1594 'wildmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --glob-pathspecs ls-files -z -- '**/*X*/**/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1594 - wildmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1595 'iwildmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'': 
			test-tool wildmatch iwildmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
		
ok 1595 - iwildmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'

expecting success of 3070.1596 'iwildmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/*X*/**/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1596 - iwildmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1597 'pathmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'': 
			test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
		
ok 1597 - pathmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'

expecting success of 3070.1598 'pathmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git ls-files -z -- '**/*X*/**/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1598 - pathmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1599 'ipathmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'': 
			test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
		
ok 1599 - ipathmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'

expecting success of 3070.1600 'ipathmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --icase-pathspecs ls-files -z -- '**/*X*/**/*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1600 - ipathmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1601 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1601 - cleanup after previous file test

expecting success of 3070.1602 'setup match file test for foo': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1602 - setup match file test for foo

expecting success of 3070.1603 'wildmatch: no match 'foo' 'fo'': 
			test_must_fail test-tool wildmatch wildmatch 'foo' 'fo'
		
ok 1603 - wildmatch: no match 'foo' 'fo'

expecting success of 3070.1604 'wildmatch (via ls-files): no match 'fo' 'foo'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'fo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1604 - wildmatch (via ls-files): no match 'fo' 'foo'

expecting success of 3070.1605 'iwildmatch: no match 'foo' 'fo'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo' 'fo'
		
ok 1605 - iwildmatch: no match 'foo' 'fo'

expecting success of 3070.1606 'iwildmatch (via ls-files): no match 'fo' 'foo'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'fo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1606 - iwildmatch (via ls-files): no match 'fo' 'foo'

expecting success of 3070.1607 'pathmatch: no match 'foo' 'fo'': 
			test_must_fail test-tool wildmatch pathmatch 'foo' 'fo'
		
ok 1607 - pathmatch: no match 'foo' 'fo'

expecting success of 3070.1608 'pathmatch (via ls-files): no match 'fo' 'foo'': 
				>expect &&
				git ls-files -z -- 'fo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1608 - pathmatch (via ls-files): no match 'fo' 'foo'

expecting success of 3070.1609 'ipathmatch: no match 'foo' 'fo'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo' 'fo'
		
ok 1609 - ipathmatch: no match 'foo' 'fo'

expecting success of 3070.1610 'ipathmatch (via ls-files): no match 'fo' 'foo'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'fo' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1610 - ipathmatch (via ls-files): no match 'fo' 'foo'

expecting success of 3070.1611 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo
ok 1611 - cleanup after previous file test

expecting success of 3070.1612 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1612 - setup match file test for foo/bar

expecting success of 3070.1613 'wildmatch: match 'foo/bar' 'foo/bar'': 
			test-tool wildmatch wildmatch 'foo/bar' 'foo/bar'
		
ok 1613 - wildmatch: match 'foo/bar' 'foo/bar'

expecting success of 3070.1614 'wildmatch (via ls-files): match 'foo/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1614 - wildmatch (via ls-files): match 'foo/bar' 'foo/bar'

expecting success of 3070.1615 'iwildmatch: match 'foo/bar' 'foo/bar'': 
			test-tool wildmatch iwildmatch 'foo/bar' 'foo/bar'
		
ok 1615 - iwildmatch: match 'foo/bar' 'foo/bar'

expecting success of 3070.1616 'iwildmatch (via ls-files): match 'foo/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1616 - iwildmatch (via ls-files): match 'foo/bar' 'foo/bar'

expecting success of 3070.1617 'pathmatch: match 'foo/bar' 'foo/bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo/bar'
		
ok 1617 - pathmatch: match 'foo/bar' 'foo/bar'

expecting success of 3070.1618 'pathmatch (via ls-files): match 'foo/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1618 - pathmatch (via ls-files): match 'foo/bar' 'foo/bar'

expecting success of 3070.1619 'ipathmatch: match 'foo/bar' 'foo/bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo/bar'
		
ok 1619 - ipathmatch: match 'foo/bar' 'foo/bar'

expecting success of 3070.1620 'ipathmatch (via ls-files): match 'foo/bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1620 - ipathmatch (via ls-files): match 'foo/bar' 'foo/bar'

expecting success of 3070.1621 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1621 - cleanup after previous file test

expecting success of 3070.1622 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1622 - setup match file test for foo/bar

expecting success of 3070.1623 'wildmatch: match 'foo/bar' 'foo/*'': 
			test-tool wildmatch wildmatch 'foo/bar' 'foo/*'
		
ok 1623 - wildmatch: match 'foo/bar' 'foo/*'

expecting success of 3070.1624 'wildmatch (via ls-files): match 'foo/*' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1624 - wildmatch (via ls-files): match 'foo/*' 'foo/bar'

expecting success of 3070.1625 'iwildmatch: match 'foo/bar' 'foo/*'': 
			test-tool wildmatch iwildmatch 'foo/bar' 'foo/*'
		
ok 1625 - iwildmatch: match 'foo/bar' 'foo/*'

expecting success of 3070.1626 'iwildmatch (via ls-files): match 'foo/*' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1626 - iwildmatch (via ls-files): match 'foo/*' 'foo/bar'

expecting success of 3070.1627 'pathmatch: match 'foo/bar' 'foo/*'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo/*'
		
ok 1627 - pathmatch: match 'foo/bar' 'foo/*'

expecting success of 3070.1628 'pathmatch (via ls-files): match 'foo/*' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1628 - pathmatch (via ls-files): match 'foo/*' 'foo/bar'

expecting success of 3070.1629 'ipathmatch: match 'foo/bar' 'foo/*'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo/*'
		
ok 1629 - ipathmatch: match 'foo/bar' 'foo/*'

expecting success of 3070.1630 'ipathmatch (via ls-files): match 'foo/*' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1630 - ipathmatch (via ls-files): match 'foo/*' 'foo/bar'

expecting success of 3070.1631 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1631 - cleanup after previous file test

expecting success of 3070.1632 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1632 - setup match file test for foo/bba/arr

expecting success of 3070.1633 'wildmatch: no match 'foo/bba/arr' 'foo/*'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/*'
		
ok 1633 - wildmatch: no match 'foo/bba/arr' 'foo/*'

expecting success of 3070.1634 'wildmatch (via ls-files): no match 'foo/*' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1634 - wildmatch (via ls-files): no match 'foo/*' 'foo/bba/arr'

expecting success of 3070.1635 'iwildmatch: no match 'foo/bba/arr' 'foo/*'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/*'
		
ok 1635 - iwildmatch: no match 'foo/bba/arr' 'foo/*'

expecting success of 3070.1636 'iwildmatch (via ls-files): no match 'foo/*' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1636 - iwildmatch (via ls-files): no match 'foo/*' 'foo/bba/arr'

expecting success of 3070.1637 'pathmatch: match 'foo/bba/arr' 'foo/*'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/*'
		
ok 1637 - pathmatch: match 'foo/bba/arr' 'foo/*'

expecting success of 3070.1638 'pathmatch (via ls-files): match 'foo/*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1638 - pathmatch (via ls-files): match 'foo/*' 'foo/bba/arr'

expecting success of 3070.1639 'ipathmatch: match 'foo/bba/arr' 'foo/*'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/*'
		
ok 1639 - ipathmatch: match 'foo/bba/arr' 'foo/*'

expecting success of 3070.1640 'ipathmatch (via ls-files): match 'foo/*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1640 - ipathmatch (via ls-files): match 'foo/*' 'foo/bba/arr'

expecting success of 3070.1641 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1641 - cleanup after previous file test

expecting success of 3070.1642 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1642 - setup match file test for foo/bba/arr

expecting success of 3070.1643 'wildmatch: match 'foo/bba/arr' 'foo/**'': 
			test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/**'
		
ok 1643 - wildmatch: match 'foo/bba/arr' 'foo/**'

expecting success of 3070.1644 'wildmatch (via ls-files): match 'foo/**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1644 - wildmatch (via ls-files): match 'foo/**' 'foo/bba/arr'

expecting success of 3070.1645 'iwildmatch: match 'foo/bba/arr' 'foo/**'': 
			test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/**'
		
ok 1645 - iwildmatch: match 'foo/bba/arr' 'foo/**'

expecting success of 3070.1646 'iwildmatch (via ls-files): match 'foo/**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1646 - iwildmatch (via ls-files): match 'foo/**' 'foo/bba/arr'

expecting success of 3070.1647 'pathmatch: match 'foo/bba/arr' 'foo/**'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/**'
		
ok 1647 - pathmatch: match 'foo/bba/arr' 'foo/**'

expecting success of 3070.1648 'pathmatch (via ls-files): match 'foo/**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1648 - pathmatch (via ls-files): match 'foo/**' 'foo/bba/arr'

expecting success of 3070.1649 'ipathmatch: match 'foo/bba/arr' 'foo/**'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/**'
		
ok 1649 - ipathmatch: match 'foo/bba/arr' 'foo/**'

expecting success of 3070.1650 'ipathmatch (via ls-files): match 'foo/**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1650 - ipathmatch (via ls-files): match 'foo/**' 'foo/bba/arr'

expecting success of 3070.1651 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1651 - cleanup after previous file test

expecting success of 3070.1652 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1652 - setup match file test for foo/bba/arr

expecting success of 3070.1653 'wildmatch: no match 'foo/bba/arr' 'foo*'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo*'
		
ok 1653 - wildmatch: no match 'foo/bba/arr' 'foo*'

expecting success of 3070.1654 'wildmatch (via ls-files): no match 'foo*' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1654 - wildmatch (via ls-files): no match 'foo*' 'foo/bba/arr'

expecting success of 3070.1655 'iwildmatch: no match 'foo/bba/arr' 'foo*'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo*'
		
ok 1655 - iwildmatch: no match 'foo/bba/arr' 'foo*'

expecting success of 3070.1656 'iwildmatch (via ls-files): no match 'foo*' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1656 - iwildmatch (via ls-files): no match 'foo*' 'foo/bba/arr'

expecting success of 3070.1657 'pathmatch: match 'foo/bba/arr' 'foo*'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' 'foo*'
		
ok 1657 - pathmatch: match 'foo/bba/arr' 'foo*'

expecting success of 3070.1658 'pathmatch (via ls-files): match 'foo*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1658 - pathmatch (via ls-files): match 'foo*' 'foo/bba/arr'

expecting success of 3070.1659 'ipathmatch: match 'foo/bba/arr' 'foo*'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo*'
		
ok 1659 - ipathmatch: match 'foo/bba/arr' 'foo*'

expecting success of 3070.1660 'ipathmatch (via ls-files): match 'foo*' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1660 - ipathmatch (via ls-files): match 'foo*' 'foo/bba/arr'

expecting success of 3070.1661 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1661 - cleanup after previous file test

expecting success of 3070.1662 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1662 - setup match file test for foo/bba/arr

expecting success of 3070.1663 'wildmatch: no match 'foo/bba/arr' 'foo**'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo**'
		
ok 1663 - wildmatch: no match 'foo/bba/arr' 'foo**'

expecting success of 3070.1664 'wildmatch (via ls-files): match 'foo**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --glob-pathspecs ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1664 - wildmatch (via ls-files): match 'foo**' 'foo/bba/arr'

expecting success of 3070.1665 'iwildmatch: no match 'foo/bba/arr' 'foo**'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo**'
		
ok 1665 - iwildmatch: no match 'foo/bba/arr' 'foo**'

expecting success of 3070.1666 'iwildmatch (via ls-files): match 'foo**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1666 - iwildmatch (via ls-files): match 'foo**' 'foo/bba/arr'

expecting success of 3070.1667 'pathmatch: match 'foo/bba/arr' 'foo**'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' 'foo**'
		
ok 1667 - pathmatch: match 'foo/bba/arr' 'foo**'

expecting success of 3070.1668 'pathmatch (via ls-files): match 'foo**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1668 - pathmatch (via ls-files): match 'foo**' 'foo/bba/arr'

expecting success of 3070.1669 'ipathmatch: match 'foo/bba/arr' 'foo**'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo**'
		
ok 1669 - ipathmatch: match 'foo/bba/arr' 'foo**'

expecting success of 3070.1670 'ipathmatch (via ls-files): match 'foo**' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1670 - ipathmatch (via ls-files): match 'foo**' 'foo/bba/arr'

expecting success of 3070.1671 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1671 - cleanup after previous file test

expecting success of 3070.1672 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1672 - setup match file test for foo/bba/arr

expecting success of 3070.1673 'wildmatch: no match 'foo/bba/arr' 'foo/*arr'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/*arr'
		
ok 1673 - wildmatch: no match 'foo/bba/arr' 'foo/*arr'

expecting success of 3070.1674 'wildmatch (via ls-files): no match 'foo/*arr' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1674 - wildmatch (via ls-files): no match 'foo/*arr' 'foo/bba/arr'

expecting success of 3070.1675 'iwildmatch: no match 'foo/bba/arr' 'foo/*arr'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/*arr'
		
ok 1675 - iwildmatch: no match 'foo/bba/arr' 'foo/*arr'

expecting success of 3070.1676 'iwildmatch (via ls-files): no match 'foo/*arr' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1676 - iwildmatch (via ls-files): no match 'foo/*arr' 'foo/bba/arr'

expecting success of 3070.1677 'pathmatch: match 'foo/bba/arr' 'foo/*arr'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/*arr'
		
ok 1677 - pathmatch: match 'foo/bba/arr' 'foo/*arr'

expecting success of 3070.1678 'pathmatch (via ls-files): match 'foo/*arr' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1678 - pathmatch (via ls-files): match 'foo/*arr' 'foo/bba/arr'

expecting success of 3070.1679 'ipathmatch: match 'foo/bba/arr' 'foo/*arr'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/*arr'
		
ok 1679 - ipathmatch: match 'foo/bba/arr' 'foo/*arr'

expecting success of 3070.1680 'ipathmatch (via ls-files): match 'foo/*arr' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1680 - ipathmatch (via ls-files): match 'foo/*arr' 'foo/bba/arr'

expecting success of 3070.1681 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1681 - cleanup after previous file test

expecting success of 3070.1682 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1682 - setup match file test for foo/bba/arr

expecting success of 3070.1683 'wildmatch: no match 'foo/bba/arr' 'foo/**arr'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/**arr'
		
ok 1683 - wildmatch: no match 'foo/bba/arr' 'foo/**arr'

expecting success of 3070.1684 'wildmatch (via ls-files): no match 'foo/**arr' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1684 - wildmatch (via ls-files): no match 'foo/**arr' 'foo/bba/arr'

expecting success of 3070.1685 'iwildmatch: no match 'foo/bba/arr' 'foo/**arr'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/**arr'
		
ok 1685 - iwildmatch: no match 'foo/bba/arr' 'foo/**arr'

expecting success of 3070.1686 'iwildmatch (via ls-files): no match 'foo/**arr' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1686 - iwildmatch (via ls-files): no match 'foo/**arr' 'foo/bba/arr'

expecting success of 3070.1687 'pathmatch: match 'foo/bba/arr' 'foo/**arr'': 
			test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/**arr'
		
ok 1687 - pathmatch: match 'foo/bba/arr' 'foo/**arr'

expecting success of 3070.1688 'pathmatch (via ls-files): match 'foo/**arr' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1688 - pathmatch (via ls-files): match 'foo/**arr' 'foo/bba/arr'

expecting success of 3070.1689 'ipathmatch: match 'foo/bba/arr' 'foo/**arr'': 
			test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/**arr'
		
ok 1689 - ipathmatch: match 'foo/bba/arr' 'foo/**arr'

expecting success of 3070.1690 'ipathmatch (via ls-files): match 'foo/**arr' 'foo/bba/arr'': 
				printf '%s' 'foo/bba/arr' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1690 - ipathmatch (via ls-files): match 'foo/**arr' 'foo/bba/arr'

expecting success of 3070.1691 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1691 - cleanup after previous file test

expecting success of 3070.1692 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1692 - setup match file test for foo/bba/arr

expecting success of 3070.1693 'wildmatch: no match 'foo/bba/arr' 'foo/*z'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/*z'
		
ok 1693 - wildmatch: no match 'foo/bba/arr' 'foo/*z'

expecting success of 3070.1694 'wildmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1694 - wildmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'

expecting success of 3070.1695 'iwildmatch: no match 'foo/bba/arr' 'foo/*z'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/*z'
		
ok 1695 - iwildmatch: no match 'foo/bba/arr' 'foo/*z'

expecting success of 3070.1696 'iwildmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1696 - iwildmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'

expecting success of 3070.1697 'pathmatch: no match 'foo/bba/arr' 'foo/*z'': 
			test_must_fail test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/*z'
		
ok 1697 - pathmatch: no match 'foo/bba/arr' 'foo/*z'

expecting success of 3070.1698 'pathmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'': 
				>expect &&
				git ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1698 - pathmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'

expecting success of 3070.1699 'ipathmatch: no match 'foo/bba/arr' 'foo/*z'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/*z'
		
ok 1699 - ipathmatch: no match 'foo/bba/arr' 'foo/*z'

expecting success of 3070.1700 'ipathmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1700 - ipathmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'

expecting success of 3070.1701 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1701 - cleanup after previous file test

expecting success of 3070.1702 'setup match file test for foo/bba/arr': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1702 - setup match file test for foo/bba/arr

expecting success of 3070.1703 'wildmatch: no match 'foo/bba/arr' 'foo/**z'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/**z'
		
ok 1703 - wildmatch: no match 'foo/bba/arr' 'foo/**z'

expecting success of 3070.1704 'wildmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1704 - wildmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'

expecting success of 3070.1705 'iwildmatch: no match 'foo/bba/arr' 'foo/**z'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/**z'
		
ok 1705 - iwildmatch: no match 'foo/bba/arr' 'foo/**z'

expecting success of 3070.1706 'iwildmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1706 - iwildmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'

expecting success of 3070.1707 'pathmatch: no match 'foo/bba/arr' 'foo/**z'': 
			test_must_fail test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/**z'
		
ok 1707 - pathmatch: no match 'foo/bba/arr' 'foo/**z'

expecting success of 3070.1708 'pathmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'': 
				>expect &&
				git ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1708 - pathmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'

expecting success of 3070.1709 'ipathmatch: no match 'foo/bba/arr' 'foo/**z'': 
			test_must_fail test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/**z'
		
ok 1709 - ipathmatch: no match 'foo/bba/arr' 'foo/**z'

expecting success of 3070.1710 'ipathmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'': 
				>expect &&
				git --icase-pathspecs ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1710 - ipathmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'

expecting success of 3070.1711 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1711 - cleanup after previous file test

expecting success of 3070.1712 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1712 - setup match file test for foo/bar

expecting success of 3070.1713 'wildmatch: no match 'foo/bar' 'foo?bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo?bar'
		
ok 1713 - wildmatch: no match 'foo/bar' 'foo?bar'

expecting success of 3070.1714 'wildmatch (via ls-files): no match 'foo?bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1714 - wildmatch (via ls-files): no match 'foo?bar' 'foo/bar'

expecting success of 3070.1715 'iwildmatch: no match 'foo/bar' 'foo?bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo?bar'
		
ok 1715 - iwildmatch: no match 'foo/bar' 'foo?bar'

expecting success of 3070.1716 'iwildmatch (via ls-files): no match 'foo?bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1716 - iwildmatch (via ls-files): no match 'foo?bar' 'foo/bar'

expecting success of 3070.1717 'pathmatch: match 'foo/bar' 'foo?bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo?bar'
		
ok 1717 - pathmatch: match 'foo/bar' 'foo?bar'

expecting success of 3070.1718 'pathmatch (via ls-files): match 'foo?bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1718 - pathmatch (via ls-files): match 'foo?bar' 'foo/bar'

expecting success of 3070.1719 'ipathmatch: match 'foo/bar' 'foo?bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo?bar'
		
ok 1719 - ipathmatch: match 'foo/bar' 'foo?bar'

expecting success of 3070.1720 'ipathmatch (via ls-files): match 'foo?bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1720 - ipathmatch (via ls-files): match 'foo?bar' 'foo/bar'

expecting success of 3070.1721 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1721 - cleanup after previous file test

expecting success of 3070.1722 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1722 - setup match file test for foo/bar

expecting success of 3070.1723 'wildmatch: no match 'foo/bar' 'foo[/]bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo[/]bar'
		
ok 1723 - wildmatch: no match 'foo/bar' 'foo[/]bar'

expecting success of 3070.1724 'wildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1724 - wildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'

expecting success of 3070.1725 'iwildmatch: no match 'foo/bar' 'foo[/]bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo[/]bar'
		
ok 1725 - iwildmatch: no match 'foo/bar' 'foo[/]bar'

expecting success of 3070.1726 'iwildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1726 - iwildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'

expecting success of 3070.1727 'pathmatch: match 'foo/bar' 'foo[/]bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo[/]bar'
		
ok 1727 - pathmatch: match 'foo/bar' 'foo[/]bar'

expecting success of 3070.1728 'pathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1728 - pathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'

expecting success of 3070.1729 'ipathmatch: match 'foo/bar' 'foo[/]bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo[/]bar'
		
ok 1729 - ipathmatch: match 'foo/bar' 'foo[/]bar'

expecting success of 3070.1730 'ipathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1730 - ipathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'

expecting success of 3070.1731 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1731 - cleanup after previous file test

expecting success of 3070.1732 'setup match file test for foo/bar': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1732 - setup match file test for foo/bar

expecting success of 3070.1733 'wildmatch: no match 'foo/bar' 'foo[^a-z]bar'': 
			test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 1733 - wildmatch: no match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.1734 'wildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1734 - wildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.1735 'iwildmatch: no match 'foo/bar' 'foo[^a-z]bar'': 
			test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 1735 - iwildmatch: no match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.1736 'iwildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1736 - iwildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.1737 'pathmatch: match 'foo/bar' 'foo[^a-z]bar'': 
			test-tool wildmatch pathmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 1737 - pathmatch: match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.1738 'pathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1738 - pathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.1739 'ipathmatch: match 'foo/bar' 'foo[^a-z]bar'': 
			test-tool wildmatch ipathmatch 'foo/bar' 'foo[^a-z]bar'
		
ok 1739 - ipathmatch: match 'foo/bar' 'foo[^a-z]bar'

expecting success of 3070.1740 'ipathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'': 
				printf '%s' 'foo/bar' >expect &&
				git --icase-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1740 - ipathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'

expecting success of 3070.1741 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing foo/
ok 1741 - cleanup after previous file test

expecting success of 3070.1742 'setup match file test for ab/cXd/efXg/hi': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1742 - setup match file test for ab/cXd/efXg/hi

expecting success of 3070.1743 'wildmatch: no match 'ab/cXd/efXg/hi' '*Xg*i'': 
			test_must_fail test-tool wildmatch wildmatch 'ab/cXd/efXg/hi' '*Xg*i'
		
ok 1743 - wildmatch: no match 'ab/cXd/efXg/hi' '*Xg*i'

expecting success of 3070.1744 'wildmatch (via ls-files): no match '*Xg*i' 'ab/cXd/efXg/hi'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1744 - wildmatch (via ls-files): no match '*Xg*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1745 'iwildmatch: no match 'ab/cXd/efXg/hi' '*Xg*i'': 
			test_must_fail test-tool wildmatch iwildmatch 'ab/cXd/efXg/hi' '*Xg*i'
		
ok 1745 - iwildmatch: no match 'ab/cXd/efXg/hi' '*Xg*i'

expecting success of 3070.1746 'iwildmatch (via ls-files): no match '*Xg*i' 'ab/cXd/efXg/hi'': 
				>expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1746 - iwildmatch (via ls-files): no match '*Xg*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1747 'pathmatch: match 'ab/cXd/efXg/hi' '*Xg*i'': 
			test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '*Xg*i'
		
ok 1747 - pathmatch: match 'ab/cXd/efXg/hi' '*Xg*i'

expecting success of 3070.1748 'pathmatch (via ls-files): match '*Xg*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1748 - pathmatch (via ls-files): match '*Xg*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1749 'ipathmatch: match 'ab/cXd/efXg/hi' '*Xg*i'': 
			test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '*Xg*i'
		
ok 1749 - ipathmatch: match 'ab/cXd/efXg/hi' '*Xg*i'

expecting success of 3070.1750 'ipathmatch (via ls-files): match '*Xg*i' 'ab/cXd/efXg/hi'': 
				printf '%s' 'ab/cXd/efXg/hi' >expect &&
				git --icase-pathspecs ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1750 - ipathmatch (via ls-files): match '*Xg*i' 'ab/cXd/efXg/hi'

expecting success of 3070.1751 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing ab/
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1751 - cleanup after previous file test

expecting success of 3070.1752 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1752 - setup match file test for a

expecting success of 3070.1753 'wildmatch: no match 'a' '[A-Z]'': 
			test_must_fail test-tool wildmatch wildmatch 'a' '[A-Z]'
		
ok 1753 - wildmatch: no match 'a' '[A-Z]'

expecting success of 3070.1754 'wildmatch (via ls-files): no match '[A-Z]' 'a'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1754 - wildmatch (via ls-files): no match '[A-Z]' 'a'

expecting success of 3070.1755 'iwildmatch: match 'a' '[A-Z]'': 
			test-tool wildmatch iwildmatch 'a' '[A-Z]'
		
ok 1755 - iwildmatch: match 'a' '[A-Z]'

expecting success of 3070.1756 'iwildmatch (via ls-files): match '[A-Z]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1756 - iwildmatch (via ls-files): match '[A-Z]' 'a'

expecting success of 3070.1757 'pathmatch: no match 'a' '[A-Z]'': 
			test_must_fail test-tool wildmatch pathmatch 'a' '[A-Z]'
		
ok 1757 - pathmatch: no match 'a' '[A-Z]'

expecting success of 3070.1758 'pathmatch (via ls-files): no match '[A-Z]' 'a'': 
				>expect &&
				git ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1758 - pathmatch (via ls-files): no match '[A-Z]' 'a'

expecting success of 3070.1759 'ipathmatch: match 'a' '[A-Z]'': 
			test-tool wildmatch ipathmatch 'a' '[A-Z]'
		
ok 1759 - ipathmatch: match 'a' '[A-Z]'

expecting success of 3070.1760 'ipathmatch (via ls-files): match '[A-Z]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1760 - ipathmatch (via ls-files): match '[A-Z]' 'a'

expecting success of 3070.1761 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1761 - cleanup after previous file test

expecting success of 3070.1762 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1762 - setup match file test for A

expecting success of 3070.1763 'wildmatch: match 'A' '[A-Z]'': 
			test-tool wildmatch wildmatch 'A' '[A-Z]'
		
ok 1763 - wildmatch: match 'A' '[A-Z]'

expecting success of 3070.1764 'wildmatch (via ls-files): match '[A-Z]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1764 - wildmatch (via ls-files): match '[A-Z]' 'A'

expecting success of 3070.1765 'iwildmatch: match 'A' '[A-Z]'': 
			test-tool wildmatch iwildmatch 'A' '[A-Z]'
		
ok 1765 - iwildmatch: match 'A' '[A-Z]'

expecting success of 3070.1766 'iwildmatch (via ls-files): match '[A-Z]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1766 - iwildmatch (via ls-files): match '[A-Z]' 'A'

expecting success of 3070.1767 'pathmatch: match 'A' '[A-Z]'': 
			test-tool wildmatch pathmatch 'A' '[A-Z]'
		
ok 1767 - pathmatch: match 'A' '[A-Z]'

expecting success of 3070.1768 'pathmatch (via ls-files): match '[A-Z]' 'A'': 
				printf '%s' 'A' >expect &&
				git ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1768 - pathmatch (via ls-files): match '[A-Z]' 'A'

expecting success of 3070.1769 'ipathmatch: match 'A' '[A-Z]'': 
			test-tool wildmatch ipathmatch 'A' '[A-Z]'
		
ok 1769 - ipathmatch: match 'A' '[A-Z]'

expecting success of 3070.1770 'ipathmatch (via ls-files): match '[A-Z]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1770 - ipathmatch (via ls-files): match '[A-Z]' 'A'

expecting success of 3070.1771 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1771 - cleanup after previous file test

expecting success of 3070.1772 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1772 - setup match file test for A

expecting success of 3070.1773 'wildmatch: no match 'A' '[a-z]'': 
			test_must_fail test-tool wildmatch wildmatch 'A' '[a-z]'
		
ok 1773 - wildmatch: no match 'A' '[a-z]'

expecting success of 3070.1774 'wildmatch (via ls-files): no match '[a-z]' 'A'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1774 - wildmatch (via ls-files): no match '[a-z]' 'A'

expecting success of 3070.1775 'iwildmatch: match 'A' '[a-z]'': 
			test-tool wildmatch iwildmatch 'A' '[a-z]'
		
ok 1775 - iwildmatch: match 'A' '[a-z]'

expecting success of 3070.1776 'iwildmatch (via ls-files): match '[a-z]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1776 - iwildmatch (via ls-files): match '[a-z]' 'A'

expecting success of 3070.1777 'pathmatch: no match 'A' '[a-z]'': 
			test_must_fail test-tool wildmatch pathmatch 'A' '[a-z]'
		
ok 1777 - pathmatch: no match 'A' '[a-z]'

expecting success of 3070.1778 'pathmatch (via ls-files): no match '[a-z]' 'A'': 
				>expect &&
				git ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1778 - pathmatch (via ls-files): no match '[a-z]' 'A'

expecting success of 3070.1779 'ipathmatch: match 'A' '[a-z]'': 
			test-tool wildmatch ipathmatch 'A' '[a-z]'
		
ok 1779 - ipathmatch: match 'A' '[a-z]'

expecting success of 3070.1780 'ipathmatch (via ls-files): match '[a-z]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1780 - ipathmatch (via ls-files): match '[a-z]' 'A'

expecting success of 3070.1781 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1781 - cleanup after previous file test

expecting success of 3070.1782 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1782 - setup match file test for a

expecting success of 3070.1783 'wildmatch: match 'a' '[a-z]'': 
			test-tool wildmatch wildmatch 'a' '[a-z]'
		
ok 1783 - wildmatch: match 'a' '[a-z]'

expecting success of 3070.1784 'wildmatch (via ls-files): match '[a-z]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1784 - wildmatch (via ls-files): match '[a-z]' 'a'

expecting success of 3070.1785 'iwildmatch: match 'a' '[a-z]'': 
			test-tool wildmatch iwildmatch 'a' '[a-z]'
		
ok 1785 - iwildmatch: match 'a' '[a-z]'

expecting success of 3070.1786 'iwildmatch (via ls-files): match '[a-z]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1786 - iwildmatch (via ls-files): match '[a-z]' 'a'

expecting success of 3070.1787 'pathmatch: match 'a' '[a-z]'': 
			test-tool wildmatch pathmatch 'a' '[a-z]'
		
ok 1787 - pathmatch: match 'a' '[a-z]'

expecting success of 3070.1788 'pathmatch (via ls-files): match '[a-z]' 'a'': 
				printf '%s' 'a' >expect &&
				git ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1788 - pathmatch (via ls-files): match '[a-z]' 'a'

expecting success of 3070.1789 'ipathmatch: match 'a' '[a-z]'': 
			test-tool wildmatch ipathmatch 'a' '[a-z]'
		
ok 1789 - ipathmatch: match 'a' '[a-z]'

expecting success of 3070.1790 'ipathmatch (via ls-files): match '[a-z]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1790 - ipathmatch (via ls-files): match '[a-z]' 'a'

expecting success of 3070.1791 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1791 - cleanup after previous file test

expecting success of 3070.1792 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1792 - setup match file test for a

expecting success of 3070.1793 'wildmatch: no match 'a' '[[:upper:]]'': 
			test_must_fail test-tool wildmatch wildmatch 'a' '[[:upper:]]'
		
ok 1793 - wildmatch: no match 'a' '[[:upper:]]'

expecting success of 3070.1794 'wildmatch (via ls-files): no match '[[:upper:]]' 'a'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1794 - wildmatch (via ls-files): no match '[[:upper:]]' 'a'

expecting success of 3070.1795 'iwildmatch: match 'a' '[[:upper:]]'': 
			test-tool wildmatch iwildmatch 'a' '[[:upper:]]'
		
ok 1795 - iwildmatch: match 'a' '[[:upper:]]'

expecting success of 3070.1796 'iwildmatch (via ls-files): match '[[:upper:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1796 - iwildmatch (via ls-files): match '[[:upper:]]' 'a'

expecting success of 3070.1797 'pathmatch: no match 'a' '[[:upper:]]'': 
			test_must_fail test-tool wildmatch pathmatch 'a' '[[:upper:]]'
		
ok 1797 - pathmatch: no match 'a' '[[:upper:]]'

expecting success of 3070.1798 'pathmatch (via ls-files): no match '[[:upper:]]' 'a'': 
				>expect &&
				git ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1798 - pathmatch (via ls-files): no match '[[:upper:]]' 'a'

expecting success of 3070.1799 'ipathmatch: match 'a' '[[:upper:]]'': 
			test-tool wildmatch ipathmatch 'a' '[[:upper:]]'
		
ok 1799 - ipathmatch: match 'a' '[[:upper:]]'

expecting success of 3070.1800 'ipathmatch (via ls-files): match '[[:upper:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1800 - ipathmatch (via ls-files): match '[[:upper:]]' 'a'

expecting success of 3070.1801 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1801 - cleanup after previous file test

expecting success of 3070.1802 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1802 - setup match file test for A

expecting success of 3070.1803 'wildmatch: match 'A' '[[:upper:]]'': 
			test-tool wildmatch wildmatch 'A' '[[:upper:]]'
		
ok 1803 - wildmatch: match 'A' '[[:upper:]]'

expecting success of 3070.1804 'wildmatch (via ls-files): match '[[:upper:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1804 - wildmatch (via ls-files): match '[[:upper:]]' 'A'

expecting success of 3070.1805 'iwildmatch: match 'A' '[[:upper:]]'': 
			test-tool wildmatch iwildmatch 'A' '[[:upper:]]'
		
ok 1805 - iwildmatch: match 'A' '[[:upper:]]'

expecting success of 3070.1806 'iwildmatch (via ls-files): match '[[:upper:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1806 - iwildmatch (via ls-files): match '[[:upper:]]' 'A'

expecting success of 3070.1807 'pathmatch: match 'A' '[[:upper:]]'': 
			test-tool wildmatch pathmatch 'A' '[[:upper:]]'
		
ok 1807 - pathmatch: match 'A' '[[:upper:]]'

expecting success of 3070.1808 'pathmatch (via ls-files): match '[[:upper:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1808 - pathmatch (via ls-files): match '[[:upper:]]' 'A'

expecting success of 3070.1809 'ipathmatch: match 'A' '[[:upper:]]'': 
			test-tool wildmatch ipathmatch 'A' '[[:upper:]]'
		
ok 1809 - ipathmatch: match 'A' '[[:upper:]]'

expecting success of 3070.1810 'ipathmatch (via ls-files): match '[[:upper:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1810 - ipathmatch (via ls-files): match '[[:upper:]]' 'A'

expecting success of 3070.1811 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1811 - cleanup after previous file test

expecting success of 3070.1812 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1812 - setup match file test for A

expecting success of 3070.1813 'wildmatch: no match 'A' '[[:lower:]]'': 
			test_must_fail test-tool wildmatch wildmatch 'A' '[[:lower:]]'
		
ok 1813 - wildmatch: no match 'A' '[[:lower:]]'

expecting success of 3070.1814 'wildmatch (via ls-files): no match '[[:lower:]]' 'A'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1814 - wildmatch (via ls-files): no match '[[:lower:]]' 'A'

expecting success of 3070.1815 'iwildmatch: match 'A' '[[:lower:]]'': 
			test-tool wildmatch iwildmatch 'A' '[[:lower:]]'
		
ok 1815 - iwildmatch: match 'A' '[[:lower:]]'

expecting success of 3070.1816 'iwildmatch (via ls-files): match '[[:lower:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1816 - iwildmatch (via ls-files): match '[[:lower:]]' 'A'

expecting success of 3070.1817 'pathmatch: no match 'A' '[[:lower:]]'': 
			test_must_fail test-tool wildmatch pathmatch 'A' '[[:lower:]]'
		
ok 1817 - pathmatch: no match 'A' '[[:lower:]]'

expecting success of 3070.1818 'pathmatch (via ls-files): no match '[[:lower:]]' 'A'': 
				>expect &&
				git ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1818 - pathmatch (via ls-files): no match '[[:lower:]]' 'A'

expecting success of 3070.1819 'ipathmatch: match 'A' '[[:lower:]]'': 
			test-tool wildmatch ipathmatch 'A' '[[:lower:]]'
		
ok 1819 - ipathmatch: match 'A' '[[:lower:]]'

expecting success of 3070.1820 'ipathmatch (via ls-files): match '[[:lower:]]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1820 - ipathmatch (via ls-files): match '[[:lower:]]' 'A'

expecting success of 3070.1821 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1821 - cleanup after previous file test

expecting success of 3070.1822 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1822 - setup match file test for a

expecting success of 3070.1823 'wildmatch: match 'a' '[[:lower:]]'': 
			test-tool wildmatch wildmatch 'a' '[[:lower:]]'
		
ok 1823 - wildmatch: match 'a' '[[:lower:]]'

expecting success of 3070.1824 'wildmatch (via ls-files): match '[[:lower:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1824 - wildmatch (via ls-files): match '[[:lower:]]' 'a'

expecting success of 3070.1825 'iwildmatch: match 'a' '[[:lower:]]'': 
			test-tool wildmatch iwildmatch 'a' '[[:lower:]]'
		
ok 1825 - iwildmatch: match 'a' '[[:lower:]]'

expecting success of 3070.1826 'iwildmatch (via ls-files): match '[[:lower:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1826 - iwildmatch (via ls-files): match '[[:lower:]]' 'a'

expecting success of 3070.1827 'pathmatch: match 'a' '[[:lower:]]'': 
			test-tool wildmatch pathmatch 'a' '[[:lower:]]'
		
ok 1827 - pathmatch: match 'a' '[[:lower:]]'

expecting success of 3070.1828 'pathmatch (via ls-files): match '[[:lower:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1828 - pathmatch (via ls-files): match '[[:lower:]]' 'a'

expecting success of 3070.1829 'ipathmatch: match 'a' '[[:lower:]]'': 
			test-tool wildmatch ipathmatch 'a' '[[:lower:]]'
		
ok 1829 - ipathmatch: match 'a' '[[:lower:]]'

expecting success of 3070.1830 'ipathmatch (via ls-files): match '[[:lower:]]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1830 - ipathmatch (via ls-files): match '[[:lower:]]' 'a'

expecting success of 3070.1831 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1831 - cleanup after previous file test

expecting success of 3070.1832 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1832 - setup match file test for A

expecting success of 3070.1833 'wildmatch: no match 'A' '[B-Za]'': 
			test_must_fail test-tool wildmatch wildmatch 'A' '[B-Za]'
		
ok 1833 - wildmatch: no match 'A' '[B-Za]'

expecting success of 3070.1834 'wildmatch (via ls-files): no match '[B-Za]' 'A'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1834 - wildmatch (via ls-files): no match '[B-Za]' 'A'

expecting success of 3070.1835 'iwildmatch: match 'A' '[B-Za]'': 
			test-tool wildmatch iwildmatch 'A' '[B-Za]'
		
ok 1835 - iwildmatch: match 'A' '[B-Za]'

expecting success of 3070.1836 'iwildmatch (via ls-files): match '[B-Za]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1836 - iwildmatch (via ls-files): match '[B-Za]' 'A'

expecting success of 3070.1837 'pathmatch: no match 'A' '[B-Za]'': 
			test_must_fail test-tool wildmatch pathmatch 'A' '[B-Za]'
		
ok 1837 - pathmatch: no match 'A' '[B-Za]'

expecting success of 3070.1838 'pathmatch (via ls-files): no match '[B-Za]' 'A'': 
				>expect &&
				git ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1838 - pathmatch (via ls-files): no match '[B-Za]' 'A'

expecting success of 3070.1839 'ipathmatch: match 'A' '[B-Za]'': 
			test-tool wildmatch ipathmatch 'A' '[B-Za]'
		
ok 1839 - ipathmatch: match 'A' '[B-Za]'

expecting success of 3070.1840 'ipathmatch (via ls-files): match '[B-Za]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1840 - ipathmatch (via ls-files): match '[B-Za]' 'A'

expecting success of 3070.1841 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1841 - cleanup after previous file test

expecting success of 3070.1842 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1842 - setup match file test for a

expecting success of 3070.1843 'wildmatch: match 'a' '[B-Za]'': 
			test-tool wildmatch wildmatch 'a' '[B-Za]'
		
ok 1843 - wildmatch: match 'a' '[B-Za]'

expecting success of 3070.1844 'wildmatch (via ls-files): match '[B-Za]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1844 - wildmatch (via ls-files): match '[B-Za]' 'a'

expecting success of 3070.1845 'iwildmatch: match 'a' '[B-Za]'': 
			test-tool wildmatch iwildmatch 'a' '[B-Za]'
		
ok 1845 - iwildmatch: match 'a' '[B-Za]'

expecting success of 3070.1846 'iwildmatch (via ls-files): match '[B-Za]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1846 - iwildmatch (via ls-files): match '[B-Za]' 'a'

expecting success of 3070.1847 'pathmatch: match 'a' '[B-Za]'': 
			test-tool wildmatch pathmatch 'a' '[B-Za]'
		
ok 1847 - pathmatch: match 'a' '[B-Za]'

expecting success of 3070.1848 'pathmatch (via ls-files): match '[B-Za]' 'a'': 
				printf '%s' 'a' >expect &&
				git ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1848 - pathmatch (via ls-files): match '[B-Za]' 'a'

expecting success of 3070.1849 'ipathmatch: match 'a' '[B-Za]'': 
			test-tool wildmatch ipathmatch 'a' '[B-Za]'
		
ok 1849 - ipathmatch: match 'a' '[B-Za]'

expecting success of 3070.1850 'ipathmatch (via ls-files): match '[B-Za]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1850 - ipathmatch (via ls-files): match '[B-Za]' 'a'

expecting success of 3070.1851 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1851 - cleanup after previous file test

expecting success of 3070.1852 'setup match file test for A': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1852 - setup match file test for A

expecting success of 3070.1853 'wildmatch: no match 'A' '[B-a]'': 
			test_must_fail test-tool wildmatch wildmatch 'A' '[B-a]'
		
ok 1853 - wildmatch: no match 'A' '[B-a]'

expecting success of 3070.1854 'wildmatch (via ls-files): no match '[B-a]' 'A'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1854 - wildmatch (via ls-files): no match '[B-a]' 'A'

expecting success of 3070.1855 'iwildmatch: match 'A' '[B-a]'': 
			test-tool wildmatch iwildmatch 'A' '[B-a]'
		
ok 1855 - iwildmatch: match 'A' '[B-a]'

expecting success of 3070.1856 'iwildmatch (via ls-files): match '[B-a]' 'A'': 
				printf '%s' 'A' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1856 - iwildmatch (via ls-files): match '[B-a]' 'A'

expecting success of 3070.1857 'pathmatch: no match 'A' '[B-a]'': 
			test_must_fail test-tool wildmatch pathmatch 'A' '[B-a]'
		
ok 1857 - pathmatch: no match 'A' '[B-a]'

expecting success of 3070.1858 'pathmatch (via ls-files): no match '[B-a]' 'A'': 
				>expect &&
				git ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1858 - pathmatch (via ls-files): no match '[B-a]' 'A'

expecting success of 3070.1859 'ipathmatch: match 'A' '[B-a]'': 
			test-tool wildmatch ipathmatch 'A' '[B-a]'
		
ok 1859 - ipathmatch: match 'A' '[B-a]'

expecting success of 3070.1860 'ipathmatch (via ls-files): match '[B-a]' 'A'': 
				printf '%s' 'A' >expect &&
				git --icase-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1860 - ipathmatch (via ls-files): match '[B-a]' 'A'

expecting success of 3070.1861 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing A
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1861 - cleanup after previous file test

expecting success of 3070.1862 'setup match file test for a': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1862 - setup match file test for a

expecting success of 3070.1863 'wildmatch: match 'a' '[B-a]'': 
			test-tool wildmatch wildmatch 'a' '[B-a]'
		
ok 1863 - wildmatch: match 'a' '[B-a]'

expecting success of 3070.1864 'wildmatch (via ls-files): match '[B-a]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1864 - wildmatch (via ls-files): match '[B-a]' 'a'

expecting success of 3070.1865 'iwildmatch: match 'a' '[B-a]'': 
			test-tool wildmatch iwildmatch 'a' '[B-a]'
		
ok 1865 - iwildmatch: match 'a' '[B-a]'

expecting success of 3070.1866 'iwildmatch (via ls-files): match '[B-a]' 'a'': 
				printf '%s' 'a' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1866 - iwildmatch (via ls-files): match '[B-a]' 'a'

expecting success of 3070.1867 'pathmatch: match 'a' '[B-a]'': 
			test-tool wildmatch pathmatch 'a' '[B-a]'
		
ok 1867 - pathmatch: match 'a' '[B-a]'

expecting success of 3070.1868 'pathmatch (via ls-files): match '[B-a]' 'a'': 
				printf '%s' 'a' >expect &&
				git ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1868 - pathmatch (via ls-files): match '[B-a]' 'a'

expecting success of 3070.1869 'ipathmatch: match 'a' '[B-a]'': 
			test-tool wildmatch ipathmatch 'a' '[B-a]'
		
ok 1869 - ipathmatch: match 'a' '[B-a]'

expecting success of 3070.1870 'ipathmatch (via ls-files): match '[B-a]' 'a'': 
				printf '%s' 'a' >expect &&
				git --icase-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1870 - ipathmatch (via ls-files): match '[B-a]' 'a'

expecting success of 3070.1871 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing a
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
ok 1871 - cleanup after previous file test

expecting success of 3070.1872 'setup match file test for z': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1872 - setup match file test for z

expecting success of 3070.1873 'wildmatch: no match 'z' '[Z-y]'': 
			test_must_fail test-tool wildmatch wildmatch 'z' '[Z-y]'
		
ok 1873 - wildmatch: no match 'z' '[Z-y]'

expecting success of 3070.1874 'wildmatch (via ls-files): no match '[Z-y]' 'z'': 
				>expect &&
				git --glob-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1874 - wildmatch (via ls-files): no match '[Z-y]' 'z'

expecting success of 3070.1875 'iwildmatch: match 'z' '[Z-y]'': 
			test-tool wildmatch iwildmatch 'z' '[Z-y]'
		
ok 1875 - iwildmatch: match 'z' '[Z-y]'

expecting success of 3070.1876 'iwildmatch (via ls-files): match '[Z-y]' 'z'': 
				printf '%s' 'z' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1876 - iwildmatch (via ls-files): match '[Z-y]' 'z'

expecting success of 3070.1877 'pathmatch: no match 'z' '[Z-y]'': 
			test_must_fail test-tool wildmatch pathmatch 'z' '[Z-y]'
		
ok 1877 - pathmatch: no match 'z' '[Z-y]'

expecting success of 3070.1878 'pathmatch (via ls-files): no match '[Z-y]' 'z'': 
				>expect &&
				git ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1878 - pathmatch (via ls-files): no match '[Z-y]' 'z'

expecting success of 3070.1879 'ipathmatch: match 'z' '[Z-y]'': 
			test-tool wildmatch ipathmatch 'z' '[Z-y]'
		
ok 1879 - ipathmatch: match 'z' '[Z-y]'

expecting success of 3070.1880 'ipathmatch (via ls-files): match '[Z-y]' 'z'': 
				printf '%s' 'z' >expect &&
				git --icase-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1880 - ipathmatch (via ls-files): match '[Z-y]' 'z'

expecting success of 3070.1881 'cleanup after previous file test': 
		if test -e .git/created_test_file
		then
			git reset &&
			git clean -df
		fi
	
Removing actual
Removing actual.err
Removing actual.raw
Removing expect
Removing z
ok 1881 - cleanup after previous file test

expecting success of 3070.1882 'setup match file test for Z': 
		file=$(cat .git/expected_test_file) &&
		if should_create_test_file "$file"
		then
			dirs=${file%/*}
			if test "$file" != "$dirs"
			then
				mkdir -p -- "$dirs" &&
				touch -- "./$text"
			else
				touch -- "./$file"
			fi &&
			git add -A &&
			printf "%s" "$file" >.git/created_test_file
		elif test -e .git/created_test_file
		then
			rm .git/created_test_file
		fi
	
ok 1882 - setup match file test for Z

expecting success of 3070.1883 'wildmatch: match 'Z' '[Z-y]'': 
			test-tool wildmatch wildmatch 'Z' '[Z-y]'
		
ok 1883 - wildmatch: match 'Z' '[Z-y]'

expecting success of 3070.1884 'wildmatch (via ls-files): match '[Z-y]' 'Z'': 
				printf '%s' 'Z' >expect &&
				git --glob-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1884 - wildmatch (via ls-files): match '[Z-y]' 'Z'

expecting success of 3070.1885 'iwildmatch: match 'Z' '[Z-y]'': 
			test-tool wildmatch iwildmatch 'Z' '[Z-y]'
		
ok 1885 - iwildmatch: match 'Z' '[Z-y]'

expecting success of 3070.1886 'iwildmatch (via ls-files): match '[Z-y]' 'Z'': 
				printf '%s' 'Z' >expect &&
				git --glob-pathspecs --icase-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1886 - iwildmatch (via ls-files): match '[Z-y]' 'Z'

expecting success of 3070.1887 'pathmatch: match 'Z' '[Z-y]'': 
			test-tool wildmatch pathmatch 'Z' '[Z-y]'
		
ok 1887 - pathmatch: match 'Z' '[Z-y]'

expecting success of 3070.1888 'pathmatch (via ls-files): match '[Z-y]' 'Z'': 
				printf '%s' 'Z' >expect &&
				git ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1888 - pathmatch (via ls-files): match '[Z-y]' 'Z'

expecting success of 3070.1889 'ipathmatch: match 'Z' '[Z-y]'': 
			test-tool wildmatch ipathmatch 'Z' '[Z-y]'
		
ok 1889 - ipathmatch: match 'Z' '[Z-y]'

expecting success of 3070.1890 'ipathmatch (via ls-files): match '[Z-y]' 'Z'': 
				printf '%s' 'Z' >expect &&
				git --icase-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
				
		tr -d '\0' <actual.raw >actual &&
		test_must_be_empty actual.err &&
		test_cmp expect actual
			
ok 1890 - ipathmatch (via ls-files): match '[Z-y]' 'Z'

# still have 40 known breakage(s)
# passed all remaining 1850 test(s)
1..1890
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3405-rebase-malformed.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3405-rebase-malformed/.git/
expecting success of 3405.1 'setup': 

	>file1 &&
	>file2 &&
	git add file1 file2 &&
	test_tick &&
	git commit -m "Initial commit" &&
	git branch diff-in-message &&
	git branch empty-message-merge &&

	git checkout -b multi-line-subject &&
	cat F >file2 &&
	git add file2 &&
	test_tick &&
	git commit -F F &&

	git cat-file commit HEAD | sed -e "1,/^\$/d" >F0 &&

	git checkout diff-in-message &&
	echo "commit log message containing a diff" >G &&
	echo "" >>G &&
	cat G >file2 &&
	git add file2 &&
	git diff --cached >>G &&
	test_tick &&
	git commit -F G &&

	git cat-file commit HEAD | sed -e "1,/^\$/d" >G0 &&

	git checkout empty-message-merge &&
	echo file3 >file3 &&
	git add file3 &&
	git commit --allow-empty-message -m "" &&

	git checkout master &&

	echo One >file1 &&
	test_tick &&
	git add file1 &&
	git commit -m "Second commit"

[master (root-commit) a8d727e] Initial commit
 Author: A U Thor <author@example.com>
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1
 create mode 100644 file2
Switched to a new branch 'multi-line-subject'
[multi-line-subject 5037af6] This is an example of a commit log message that does not  conform to git commit convention.
 Author: A U Thor <author@example.com>
 1 file changed, 5 insertions(+)
Switched to branch 'diff-in-message'
[diff-in-message 132c17c] commit log message containing a diff
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+)
Switched to branch 'empty-message-merge'
[empty-message-merge 942c0ff] 
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file3
Switched to branch 'master'
[master d5181bc] Second commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
ok 1 - setup

expecting success of 3405.2 'rebase commit with multi-line subject': 

	git rebase master multi-line-subject &&
	git cat-file commit HEAD | sed -e "1,/^\$/d" >F1 &&

	test_cmp F0 F1 &&
	test_cmp F F0

Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/multi-line-subject.
ok 2 - rebase commit with multi-line subject

expecting success of 3405.3 'rebase commit with diff in message': 
	git rebase master diff-in-message &&
	git cat-file commit HEAD | sed -e "1,/^$/d" >G1 &&
	test_cmp G0 G1 &&
	test_cmp G G0

Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/diff-in-message.
ok 3 - rebase commit with diff in message

expecting success of 3405.4 'rebase -m commit with empty message': 
	git rebase -m master empty-message-merge

Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/empty-message-merge.
ok 4 - rebase -m commit with empty message

expecting success of 3405.5 'rebase -i commit with empty message': 
	git checkout diff-in-message &&
	set_fake_editor &&
	test_must_fail env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
		git rebase -i HEAD^

Switched to branch 'diff-in-message'
rebase -i script before editing:
pick 87b000b commit log message containing a diff

rebase -i script after editing:
reword 87b000b commit log message containing a diff
Rebasing (1/1)
Aborting commit due to empty commit message.
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
ok 5 - rebase -i commit with empty message

# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3406-rebase-message.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3406-rebase-message/.git/
expecting success of 3406.1 'setup': 
	test_commit O fileO &&
	test_commit X fileX &&
	test_commit A fileA &&
	test_commit B fileB &&
	test_commit Y fileY &&

	git checkout -b topic O &&
	git cherry-pick A B &&
	test_commit Z fileZ &&
	git tag start

[master (root-commit) 3749684] O
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileO
[master a2df67f] X
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileX
[master 9491ce3] A
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileA
[master 83a6553] B
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileB
[master 545b0d0] Y
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileY
Switched to a new branch 'topic'
[topic 80ec5e8] A
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:15:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 fileA
[topic 4ff7882] B
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:16:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 fileB
[topic dd88760] Z
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileZ
ok 1 - setup

expecting success of 3406.2 'rebase -m': 
	git rebase -m master >actual &&
	test_must_be_empty actual

Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 2 - rebase -m

expecting success of 3406.3 'rebase against master twice': 
	git rebase --apply master >out &&
	test_i18ngrep "Current branch topic is up to date" out

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
Current branch topic is up to date.
ok 3 - rebase against master twice

expecting success of 3406.4 'rebase against master twice with --force': 
	git rebase --force-rebase --apply master >out &&
	test_i18ngrep "Current branch topic is up to date, rebase forced" out

Current branch topic is up to date, rebase forced.
ok 4 - rebase against master twice with --force

expecting success of 3406.5 'rebase against master twice from another branch': 
	git checkout topic^ &&
	git rebase --apply master topic >out &&
	test_i18ngrep "Current branch topic is up to date" out

Note: switching to 'topic^'.

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 545b0d0 Y
Current branch topic is up to date.
ok 5 - rebase against master twice from another branch

expecting success of 3406.6 'rebase fast-forward to master': 
	git checkout topic^ &&
	git rebase --apply topic >out &&
	test_i18ngrep "Fast-forwarded HEAD to topic" out

Note: switching to 'topic^'.

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 545b0d0 Y
Fast-forwarded HEAD to topic.
ok 6 - rebase fast-forward to master

expecting success of 3406.7 'rebase --stat': 
	git reset --hard start &&
	git rebase --stat master >diffstat.txt &&
	grep "^ fileX |  *1 +$" diffstat.txt

HEAD is now at dd88760 Z
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
 fileX | 1 +
ok 7 - rebase --stat

expecting success of 3406.8 'rebase w/config rebase.stat': 
	git reset --hard start &&
	git config rebase.stat true &&
	git rebase master >diffstat.txt &&
	grep "^ fileX |  *1 +$" diffstat.txt

HEAD is now at dd88760 Z
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
 fileX | 1 +
ok 8 - rebase w/config rebase.stat

expecting success of 3406.9 'rebase -n overrides config rebase.stat config': 
	git reset --hard start &&
	git config rebase.stat true &&
	git rebase -n master >diffstat.txt &&
	! grep "^ fileX |  *1 +$" diffstat.txt

HEAD is now at dd88760 Z
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 9 - rebase -n overrides config rebase.stat config

expecting success of 3406.10 'rebase --onto outputs the invalid ref': 
	test_must_fail git rebase --onto invalid-ref HEAD HEAD 2>err &&
	test_i18ngrep "invalid-ref" err

fatal: Does not point to a valid commit 'invalid-ref'
ok 10 - rebase --onto outputs the invalid ref

expecting success of 3406.11 'error out early upon -C<n> or --whitespace=<bad>': 
	test_must_fail git rebase -Cnot-a-number HEAD 2>err &&
	test_i18ngrep "numerical value" err &&
	test_must_fail git rebase --whitespace=bad HEAD 2>err &&
	test_i18ngrep "Invalid whitespace option" err

fatal: switch `C' expects a numerical value
fatal: Invalid whitespace option: 'bad'
ok 11 - error out early upon -C<n> or --whitespace=<bad>

expecting success of 3406.12 'GIT_REFLOG_ACTION': 
	git checkout start &&
	test_commit reflog-onto &&
	git checkout -b reflog-topic start &&
	test_commit reflog-to-rebase &&

	git rebase reflog-onto &&
	git log -g --format=%gs -3 >actual &&
	cat >expect <<-\EOF &&
	rebase (finish): returning to refs/heads/reflog-topic
	rebase (pick): reflog-to-rebase
	rebase (start): checkout reflog-onto
	EOF
	test_cmp expect actual &&

	git checkout -b reflog-prefix reflog-to-rebase &&
	GIT_REFLOG_ACTION=change-the-reflog git rebase reflog-onto &&
	git log -g --format=%gs -3 >actual &&
	cat >expect <<-\EOF &&
	change-the-reflog (finish): returning to refs/heads/reflog-prefix
	change-the-reflog (pick): reflog-to-rebase
	change-the-reflog (start): checkout reflog-onto
	EOF
	test_cmp expect actual

Previous HEAD position was 102672f Z
HEAD is now at dd88760 Z
[detached HEAD de4658a] reflog-onto
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 reflog-onto.t
Previous HEAD position was de4658a reflog-onto
Switched to a new branch 'reflog-topic'
[reflog-topic d91d0e4] reflog-to-rebase
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 reflog-to-rebase.t
 reflog-onto.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 reflog-onto.t
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/reflog-topic.
Switched to a new branch 'reflog-prefix'
 reflog-onto.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 reflog-onto.t
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/reflog-prefix.
ok 12 - GIT_REFLOG_ACTION

expecting success of 3406.13 'rebase -i onto unrelated history': 
	git init unrelated &&
	test_commit -C unrelated 1 &&
	git -C unrelated remote add -f origin "$PWD" &&
	git -C unrelated branch --set-upstream-to=origin/master &&
	git -C unrelated -c core.editor=true rebase -i -v --stat >actual &&
	test_i18ngrep "Changes to " actual &&
	test_i18ngrep "5 files changed" 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.t3406-rebase-message/unrelated/.git/
[master (root-commit) 11730cb] 1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 1.t
Updating origin
From /<<PKGBUILDDIR>>/t/trash directory.t3406-rebase-message
 * [new branch]      master        -> origin/master
 * [new branch]      reflog-prefix -> origin/reflog-prefix
 * [new branch]      reflog-topic  -> origin/reflog-topic
 * [new branch]      topic         -> origin/topic
 * [new tag]         Y             -> Y
 * [new tag]         A             -> A
 * [new tag]         B             -> B
 * [new tag]         O             -> O
 * [new tag]         X             -> X
 * [new tag]         Z             -> Z
 * [new tag]         reflog-onto   -> reflog-onto
 * [new tag]         start         -> start
Branch 'master' set up to track remote branch 'master' from 'origin'.
Note: switching to '545b0d0a5d2af9b721d265dc5293dbb3418ab768'.

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 545b0d0 Y
Rebasing (1/1)
Successfully rebased and updated refs/heads/master.
Changes to 545b0d0a5d2af9b721d265dc5293dbb3418ab768:
 5 files changed, 5 insertions(+)
 5 files changed, 5 insertions(+)
ok 13 - rebase -i onto unrelated history

# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3407-rebase-abort.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3407-rebase-abort/.git/
expecting success of 3407.1 'setup': 
	mkdir -p "$work_dir" &&
	cd "$work_dir" &&
	git init &&
	echo a > a &&
	git add a &&
	git commit -m a &&
	git branch to-rebase &&

	echo b > a &&
	git commit -a -m b &&
	echo c > a &&
	git commit -a -m c &&

	git checkout to-rebase &&
	echo d > a &&
	git commit -a -m "merge should fail on this" &&
	echo e > a &&
	git commit -a -m "merge should fail on this, too" &&
	git branch pre-rebase

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t3407-rebase-abort/test dir/.git/
[master (root-commit) 7bdc13c] a
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a
[master 45d819c] b
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master fc35ab3] c
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'to-rebase'
[to-rebase fe79bdf] merge should fail on this
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[to-rebase 8ab52af] merge should fail on this, too
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup

expecting success of 3407.2 'rebase --apply --abort': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_path_is_dir "$dotest" &&
		git rebase --abort &&
		test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
		test ! -d "$dotest"
	
HEAD is now at 8ab52af merge should fail on this, too
First, rewinding head to replay your work on top of it...
Applying: merge should fail on this
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this
found 1 common ancestor:
virtual aaff74984cccd156a469afa7d9ab10e4777beb24
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 merge should fail on this
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".
ok 2 - rebase --apply --abort

expecting success of 3407.3 'rebase --apply --abort after --skip': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_path_is_dir "$dotest" &&
		test_must_fail git rebase --skip &&
		test $(git rev-parse HEAD) = $(git rev-parse master) &&
		git rebase --abort &&
		test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
		test ! -d "$dotest"
	
HEAD is now at 8ab52af merge should fail on this, too
First, rewinding head to replay your work on top of it...
Applying: merge should fail on this
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this
found 1 common ancestor:
virtual aaff74984cccd156a469afa7d9ab10e4777beb24
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 merge should fail on this
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".
Applying: merge should fail on this, too
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this, too
found 1 common ancestor:
virtual f788de73cfc81f8d734fa7efc658cc63ca083f50
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0002 merge should fail on this, too
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".
ok 3 - rebase --apply --abort after --skip

expecting success of 3407.4 'rebase --apply --abort after --continue': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_path_is_dir "$dotest" &&
		echo c > a &&
		echo d >> a &&
		git add a &&
		test_must_fail git rebase --continue &&
		test $(git rev-parse HEAD) != $(git rev-parse master) &&
		git rebase --abort &&
		test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
		test ! -d "$dotest"
	
HEAD is now at 8ab52af merge should fail on this, too
First, rewinding head to replay your work on top of it...
Applying: merge should fail on this
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this
found 1 common ancestor:
virtual aaff74984cccd156a469afa7d9ab10e4777beb24
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 merge should fail on this
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".
Applying: merge should fail on this
Applying: merge should fail on this, too
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
3a57314 merge should fail on this
virtual merge should fail on this, too
found 1 common ancestor:
virtual f788de73cfc81f8d734fa7efc658cc63ca083f50
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0002 merge should fail on this, too
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".
ok 4 - rebase --apply --abort after --continue

expecting success of 3407.5 'rebase --apply --abort does not update reflog': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		git reflog show to-rebase > reflog_before &&
		test_must_fail git rebase$type master &&
		git rebase --abort &&
		git reflog show to-rebase > reflog_after &&
		test_cmp reflog_before reflog_after &&
		rm reflog_before reflog_after
	
HEAD is now at 8ab52af merge should fail on this, too
First, rewinding head to replay your work on top of it...
Applying: merge should fail on this
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this
found 1 common ancestor:
virtual aaff74984cccd156a469afa7d9ab10e4777beb24
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 merge should fail on this
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".
ok 5 - rebase --apply --abort does not update reflog

expecting success of 3407.6 'rebase --abort can not be used with other options': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_must_fail git rebase -v --abort &&
		test_must_fail git rebase --abort -v &&
		git rebase --abort
	
HEAD is now at 8ab52af merge should fail on this, too
First, rewinding head to replay your work on top of it...
Applying: merge should fail on this
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this
found 1 common ancestor:
virtual aaff74984cccd156a469afa7d9ab10e4777beb24
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 merge should fail on this
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".
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

ok 6 - rebase --abort can not be used with other options

expecting success of 3407.7 'rebase --merge --abort': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_path_is_dir "$dotest" &&
		git rebase --abort &&
		test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
		test ! -d "$dotest"
	
HEAD is now at 8ab52af merge should fail on this, too
Rebasing (1/2)
error: could not apply fe79bdf... merge should fail on this
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".
Could not apply fe79bdf... merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 7 - rebase --merge --abort

expecting success of 3407.8 'rebase --merge --abort after --skip': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_path_is_dir "$dotest" &&
		test_must_fail git rebase --skip &&
		test $(git rev-parse HEAD) = $(git rev-parse master) &&
		git rebase --abort &&
		test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
		test ! -d "$dotest"
	
HEAD is now at 8ab52af merge should fail on this, too
Rebasing (1/2)
error: could not apply fe79bdf... merge should fail on this
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".
Could not apply fe79bdf... merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
Rebasing (2/2)
error: could not apply 8ab52af... merge should fail on this, too
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".
Could not apply 8ab52af... merge should fail on this, too
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 8 - rebase --merge --abort after --skip

expecting success of 3407.9 'rebase --merge --abort after --continue': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_path_is_dir "$dotest" &&
		echo c > a &&
		echo d >> a &&
		git add a &&
		test_must_fail git rebase --continue &&
		test $(git rev-parse HEAD) != $(git rev-parse master) &&
		git rebase --abort &&
		test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
		test ! -d "$dotest"
	
HEAD is now at 8ab52af merge should fail on this, too
Rebasing (1/2)
error: could not apply fe79bdf... merge should fail on this
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".
Could not apply fe79bdf... merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
[detached HEAD 3a57314] merge should fail on this
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Rebasing (2/2)
error: could not apply 8ab52af... merge should fail on this, too
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".
Could not apply 8ab52af... merge should fail on this, too
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 9 - rebase --merge --abort after --continue

expecting success of 3407.10 'rebase --merge --abort does not update reflog': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		git reflog show to-rebase > reflog_before &&
		test_must_fail git rebase$type master &&
		git rebase --abort &&
		git reflog show to-rebase > reflog_after &&
		test_cmp reflog_before reflog_after &&
		rm reflog_before reflog_after
	
HEAD is now at 8ab52af merge should fail on this, too
Rebasing (1/2)
error: could not apply fe79bdf... merge should fail on this
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".
Could not apply fe79bdf... merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 10 - rebase --merge --abort does not update reflog

expecting success of 3407.11 'rebase --abort can not be used with other options': 
		cd "$work_dir" &&
		# Clean up the state from the previous one
		git reset --hard pre-rebase &&
		test_must_fail git rebase$type master &&
		test_must_fail git rebase -v --abort &&
		test_must_fail git rebase --abort -v &&
		git rebase --abort
	
HEAD is now at 8ab52af merge should fail on this, too
Rebasing (1/2)
error: could not apply fe79bdf... merge should fail on this
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".
Could not apply fe79bdf... merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

ok 11 - rebase --abort can not be used with other options

expecting success of 3407.12 'rebase --apply --quit': 
	cd "$work_dir" &&
	# Clean up the state from the previous one
	git reset --hard pre-rebase &&
	test_must_fail git rebase --apply master &&
	test_path_is_dir .git/rebase-apply &&
	head_before=$(git rev-parse HEAD) &&
	git rebase --quit &&
	test $(git rev-parse HEAD) = $head_before &&
	test ! -d .git/rebase-apply

HEAD is now at 8ab52af merge should fail on this, too
First, rewinding head to replay your work on top of it...
Applying: merge should fail on this
Using index info to reconstruct a base tree...
M	a
Falling back to patching base and 3-way merge...
Merging:
fc35ab3 c
virtual merge should fail on this
found 1 common ancestor:
virtual aaff74984cccd156a469afa7d9ab10e4777beb24
Auto-merging a
CONFLICT (content): Merge conflict in a
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 merge should fail on this
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".
ok 12 - rebase --apply --quit

expecting success of 3407.13 'rebase --merge --quit': 
	cd "$work_dir" &&
	# Clean up the state from the previous one
	git reset --hard pre-rebase &&
	test_must_fail git rebase --merge master &&
	test_path_is_dir .git/rebase-merge &&
	head_before=$(git rev-parse HEAD) &&
	git rebase --quit &&
	test $(git rev-parse HEAD) = $head_before &&
	test ! -d .git/rebase-merge

HEAD is now at 8ab52af merge should fail on this, too
Rebasing (1/2)
error: could not apply fe79bdf... merge should fail on this
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".
Could not apply fe79bdf... merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 13 - rebase --merge --quit

# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3305-notes-fanout.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3305-notes-fanout/.git/
expecting success of 3305.1 'tweak test environment': 
	git checkout -b nondeterminism &&
	test_commit A &&
	git checkout --orphan with_notes;

Switched to a new branch 'nondeterminism'
[nondeterminism (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 'with_notes'
ok 1 - tweak test environment

expecting success of 3305.2 'creating many notes with git-notes': 
	num_notes=300 &&
	i=0 &&
	while test $i -lt $num_notes
	do
		i=$(($i + 1)) &&
		test_tick &&
		echo "file for commit #$i" > file &&
		git add file &&
		git commit -q -m "commit #$i" &&
		git notes add -m "note #$i" || return 1
	done

ok 2 - creating many notes with git-notes

expecting success of 3305.3 'many notes created correctly with git-notes': 
	git log | grep "^    " > output &&
	i=$num_notes &&
	while test $i -gt 0
	do
		echo "    commit #$i" &&
		echo "    note #$i" &&
		i=$(($i - 1));
	done > expect &&
	test_cmp expect output

ok 3 - many notes created correctly with git-notes

expecting success of 3305.4 'stable fanout 0 is followed by stable fanout 1': 
	i=$num_notes &&
	fanout=0 &&
	while test $i -gt 0
	do
		i=$(($i - 1)) &&
		if touched_one_note_with_fanout refs/notes/commits~$i A $fanout
		then
			continue
		elif test $fanout -eq 0
		then
			fanout=1 &&
			if all_notes_have_fanout refs/notes/commits~$i $fanout
			then
				echo "Fanout 0 -> 1 at refs/notes/commits~$i" &&
				continue
			fi
		fi &&
		echo "Failed fanout=$fanout check at refs/notes/commits~$i" &&
		git ls-tree -r --name-only refs/notes/commits~$i &&
		return 1
	done &&
	all_notes_have_fanout refs/notes/commits 1

Fanout 0 -> 1 at refs/notes/commits~202
ok 4 - stable fanout 0 is followed by stable fanout 1

expecting success of 3305.5 'deleting most notes with git-notes': 
	remove_notes=285 &&
	i=0 &&
	git rev-list HEAD |
	while test $i -lt $remove_notes && read sha1
	do
		i=$(($i + 1)) &&
		test_tick &&
		git notes remove "$sha1" 2>/dev/null || return 1
	done

ok 5 - deleting most notes with git-notes

expecting success of 3305.6 'most notes deleted correctly with git-notes': 
	git log HEAD~$remove_notes | grep "^    " > output &&
	i=$(($num_notes - $remove_notes)) &&
	while test $i -gt 0
	do
		echo "    commit #$i" &&
		echo "    note #$i" &&
		i=$(($i - 1));
	done > expect &&
	test_cmp expect output

ok 6 - most notes deleted correctly with git-notes

expecting success of 3305.7 'stable fanout 1 is followed by stable fanout 0': 
	i=$remove_notes &&
	fanout=1 &&
	while test $i -gt 0
	do
		i=$(($i - 1)) &&
		if touched_one_note_with_fanout refs/notes/commits~$i D $fanout
		then
			continue
		elif test $fanout -eq 1
		then
			fanout=0 &&
			if all_notes_have_fanout refs/notes/commits~$i $fanout
			then
				echo "Fanout 1 -> 0 at refs/notes/commits~$i" &&
				continue
			fi
		fi &&
		echo "Failed fanout=$fanout check at refs/notes/commits~$i" &&
		git ls-tree -r --name-only refs/notes/commits~$i &&
		return 1
	done &&
	all_notes_have_fanout refs/notes/commits 0

Fanout 1 -> 0 at refs/notes/commits~43
ok 7 - stable fanout 1 is followed by stable fanout 0

# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3408-rebase-multi-line.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3408-rebase-multi-line/.git/
expecting success of 3408.1 'setup': 

	>file &&
	git add file &&
	test_tick &&
	git commit -m initial &&

	echo hello >file &&
	test_tick &&
	git commit -a -m "A sample commit log message that has a long
summary that spills over multiple lines.

But otherwise with a sane description." &&

	git branch side &&

	git reset --hard HEAD^ &&
	>elif &&
	git add elif &&
	test_tick &&
	git commit -m second &&

	git checkout -b side2 &&
	>afile &&
	git add afile &&
	test_tick &&
	git commit -m third &&
	echo hello >afile &&
	test_tick &&
	git commit -a -m fourth &&
	git checkout -b side-merge &&
	git reset --hard HEAD^^ &&
	git merge --no-ff -m "A merge commit log message that has a long
summary that spills over multiple lines.

But otherwise with a sane description." side2 &&
	git branch side-merge-original

[master (root-commit) 1bd44cb] initial
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file
[master 1708bf0] A sample commit log message that has a long summary that spills over multiple lines.
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
HEAD is now at 1bd44cb initial
[master e79e348] second
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 elif
Switched to a new branch 'side2'
[side2 0c9638e] third
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 afile
[side2 5efd714] fourth
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Switched to a new branch 'side-merge'
HEAD is now at e79e348 second
Merging:
e79e348 second
virtual side2
found 1 common ancestor:
e79e348 second
Merge made by the 'recursive' strategy.
 afile | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 afile
ok 1 - setup

expecting success of 3408.2 'rebase': 

	git checkout side &&
	git rebase master &&
	git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
	git cat-file commit side@{1} | sed -e "1,/^\$/d" >expect &&
	test_cmp expect actual


Switched to branch 'side'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/side.
ok 2 - rebase

checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3408.3 'rebasep': 

	git checkout side-merge &&
	git rebase -p side &&
	git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
	git cat-file commit side-merge-original | sed -e "1,/^\$/d" >expect &&
	test_cmp expect actual


Switched to branch 'side-merge'
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated refs/heads/side-merge.
ok 3 - rebasep

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3409-rebase-preserve-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3409-rebase-preserve-merges/.git/
checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3409.1 'setup for merge-preserving rebase': echo First > A &&
	git add A &&
	git commit -m "Add A1" &&
	git checkout -b topic &&
	echo Second > B &&
	git add B &&
	git commit -m "Add B1" &&
	git checkout -f master &&
	echo Third >> A &&
	git commit -a -m "Modify A2" &&
	echo Fifth > B &&
	git add B &&
	git commit -m "Add different B" &&

	git clone ./. clone2 &&
	(
		cd clone2 &&
		git checkout -b topic origin/topic &&
		test_must_fail git merge origin/master &&
		echo Resolved >B &&
		git add B &&
		git commit -m "Merge origin/master into topic"
	) &&

	git clone ./. clone3 &&
	(
		cd clone3 &&
		git checkout -b topic2 origin/topic &&
		echo Sixth > A &&
		git commit -a -m "Modify A3" &&
		git checkout -b topic origin/topic &&
		git merge --no-ff topic2
	) &&

	git clone ./. clone4 &&
	(
		cd clone4 &&
		git checkout -b topic2 origin/topic &&
		echo Sixth > A &&
		git commit -a -m "Modify A3" &&
		git checkout -b topic origin/topic &&
		git merge --no-ff topic2
	) &&

	git checkout topic &&
	echo Fourth >> B &&
	git commit -a -m "Modify B2"

[master (root-commit) e7327d1] Add A1
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+)
 create mode 100644 A
Switched to a new branch 'topic'
[topic 5cad5e8] Add B1
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+)
 create mode 100644 B
Switched to branch 'master'
[master 822fdbb] Modify A2
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+)
[master b7edc06] Add different B
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+)
 create mode 100644 B
Cloning into 'clone2'...
done.
Switched to a new branch 'topic'
Branch 'topic' set up to track remote branch 'topic' from 'origin'.
Merging:
5cad5e8 Add B1
virtual origin/master
found 1 common ancestor:
e7327d1 Add A1
CONFLICT (add/add): Merge conflict in B
Auto-merging B
Automatic merge failed; fix conflicts and then commit the result.
[topic 4a9032a] Merge origin/master into topic
 Author: A U Thor <bogus_email_address>
Cloning into 'clone3'...
done.
Switched to a new branch 'topic2'
Branch 'topic2' set up to track remote branch 'topic' from 'origin'.
[topic2 8855ad8] Modify A3
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'topic'
Branch 'topic' set up to track remote branch 'topic' from 'origin'.
Merging:
5cad5e8 Add B1
virtual topic2
found 1 common ancestor:
5cad5e8 Add B1
Merge made by the 'recursive' strategy.
 A | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Cloning into 'clone4'...
done.
Switched to a new branch 'topic2'
Branch 'topic2' set up to track remote branch 'topic' from 'origin'.
[topic2 8855ad8] Modify A3
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'topic'
Branch 'topic' set up to track remote branch 'topic' from 'origin'.
Merging:
5cad5e8 Add B1
virtual topic2
found 1 common ancestor:
5cad5e8 Add B1
Merge made by the 'recursive' strategy.
 A | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'topic'
[topic ddfb986] Modify B2
 Author: A U Thor <bogus_email_address>
 1 file changed, 1 insertion(+)
ok 1 - setup for merge-preserving rebase

expecting success of 3409.2 '--continue works after a conflict': 
	(
	cd clone2 &&
	git fetch &&
	test_must_fail git rebase -p origin/topic &&
	test 2 = $(git ls-files B | wc -l) &&
	echo Resolved again > B &&
	test_must_fail git rebase --continue &&
	grep "^@@@ " .git/rebase-merge/patch &&
	git add B &&
	git rebase --continue &&
	test 1 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&
	test 1 = $(git rev-list --all --pretty=oneline | grep "Add different" | wc -l) &&
	test 1 = $(git rev-list --all --pretty=oneline | grep "Merge origin" | wc -l)
	)

From /<<PKGBUILDDIR>>/t/trash directory.t3409-rebase-preserve-merges/./.
   5cad5e8..ddfb986  topic      -> origin/topic
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/1)
Merging:
ddfb986 Modify B2
virtual b7edc06852df6a8e8e44fa59af9dd87e10fbe196
found 1 common ancestor:
e7327d1 Add A1
CONFLICT (add/add): Merge conflict in B
Auto-merging B
Automatic merge failed; fix conflicts and then commit the result.
Error redoing merge 4a9032abcea80cff6831e3996de739918e6311ff
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
B: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add
@@@ -1,1 -1,1 +1,1 @@@
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
[detached HEAD 04f7bc3] Merge origin/master into topic
 Author: A U Thor <bogus_email_address>
Rebasing (1/1)
Successfully rebased and updated refs/heads/topic.
ok 2 - --continue works after a conflict

expecting success of 3409.3 'rebase -p preserves no-ff merges': 
	(
	cd clone3 &&
	git fetch &&
	git rebase -p origin/topic &&
	test 3 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&
	test 1 = $(git rev-list --all --pretty=oneline | grep "Merge branch" | wc -l)
	)

From /<<PKGBUILDDIR>>/t/trash directory.t3409-rebase-preserve-merges/./.
   5cad5e8..ddfb986  topic      -> origin/topic
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/topic.
ok 3 - rebase -p preserves no-ff merges

expecting success of 3409.4 'rebase -p ignores merge.log config': 
	(
	cd clone4 &&
	git fetch &&
	git -c merge.log=1 rebase -p origin/topic &&
	echo >expected &&
	git log --format="%b" -1 >current &&
	test_cmp expected current
	)

From /<<PKGBUILDDIR>>/t/trash directory.t3409-rebase-preserve-merges/./.
   5cad5e8..ddfb986  topic      -> origin/topic
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/topic.
ok 4 - rebase -p ignores merge.log config

# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3411-rebase-preserve-around-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3411-rebase-preserve-around-merges/.git/
checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3411.1 'setup': 
	test_commit A1 &&
	test_commit B1 &&
	test_commit C1 &&
	git reset --hard B1 &&
	test_commit D1 &&
	test_merge E1 C1 &&
	test_commit F1

[master (root-commit) 6fb0b66] A1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 A1.t
[master 37e5de5] B1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 B1.t
[master 9db6c33] C1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 C1.t
HEAD is now at 37e5de5 B1
[master 98f5076] D1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 D1.t
Merging:
98f5076 D1
virtual C1
found 1 common ancestor:
37e5de5 B1
Merge made by the 'recursive' strategy.
 C1.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 C1.t
[master 0f3967e] F1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 F1.t
ok 1 - setup

expecting success of 3411.2 'squash F1 into D1': 
	FAKE_LINES="1 squash 4 2 3" git rebase -i -p B1 &&
	test "$(git rev-parse HEAD^2)" = "$(git rev-parse C1)" &&
	test "$(git rev-parse HEAD~2)" = "$(git rev-parse B1)" &&
	git tag E2

warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
rebase -i script before editing:
pick 98f5076 D1
pick 9db6c33 C1
pick b855587 E1
pick 0f3967e F1

rebase -i script after editing:
pick 98f5076 D1
squash 0f3967e F1
pick 9db6c33 C1
pick b855587 E1
Rebasing (1/4)
Rebasing (2/4)
[detached HEAD 5d81168] D1
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:16:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 D1.t
 create mode 100644 F1.t
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated refs/heads/master.
ok 2 - squash F1 into D1

expecting success of 3411.3 'rebase two levels of merge': 
	git checkout A1 &&
	test_commit G1 &&
	test_commit H1 &&
	test_commit I1 &&
	git checkout -b branch3 H1 &&
	test_commit J1 &&
	test_merge K1 I1 &&
	git checkout -b branch2 G1 &&
	test_commit L1 &&
	test_merge M1 K1 &&
	GIT_EDITOR=: git rebase -i -p E2 &&
	test "$(git rev-parse HEAD~3)" = "$(git rev-parse E2)" &&
	test "$(git rev-parse HEAD~2)" = "$(git rev-parse HEAD^2^2~2)" &&
	test "$(git rev-parse HEAD^2^1^1)" = "$(git rev-parse HEAD^2^2^1)"

Note: switching to 'A1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

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 6fb0b66 A1
[detached HEAD f51c4db] G1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 G1.t
[detached HEAD 8227962] H1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 H1.t
[detached HEAD f56baeb] I1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 I1.t
Previous HEAD position was f56baeb I1
Switched to a new branch 'branch3'
[branch3 904e05f] J1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 J1.t
Merging:
904e05f J1
virtual I1
found 1 common ancestor:
8227962 H1
Merge made by the 'recursive' strategy.
 I1.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 I1.t
Switched to a new branch 'branch2'
[branch2 86c413d] L1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 L1.t
Merging:
86c413d L1
virtual K1
found 1 common ancestor:
f51c4db G1
Merge made by the 'recursive' strategy.
 H1.t | 1 +
 I1.t | 1 +
 J1.t | 1 +
 3 files changed, 3 insertions(+)
 create mode 100644 H1.t
 create mode 100644 I1.t
 create mode 100644 J1.t
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/7)
Rebasing (2/7)
Rebasing (3/7)
Rebasing (4/7)
Rebasing (5/7)
Rebasing (6/7)
Rebasing (7/7)
Successfully rebased and updated refs/heads/branch2.
ok 3 - rebase two levels of merge

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3410-rebase-preserve-dropped-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3410-rebase-preserve-dropped-merges/.git/
checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3410.1 'setup': 
	test_commit A file1 &&
	test_commit B file1 1 &&
	test_commit C file2 &&
	test_commit D file1 2 &&
	test_commit E file3 &&
	git checkout A &&
	test_commit F file4 &&
	test_commit G file1 3 &&
	test_commit H file5 &&
	git checkout F &&
	test_commit I file6

[master (root-commit) 6e62bf8] A
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file1
[master 5c95b17] B
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 7be4cc1] C
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file2
[master 3d13cae] D
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 1fe5a44] E
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file3
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 6e62bf8 A
[detached HEAD cfefd94] F
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file4
[detached HEAD 66ee775] G
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 25e63b2] H
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file5
Previous HEAD position was 25e63b2 H
HEAD is now at cfefd94 F
[detached HEAD 615be62] I
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file6
ok 1 - setup

expecting success of 3410.2 'skip same-resolution merges with -p': 
	git checkout H &&
	test_must_fail git merge E &&
	test_commit L file1 23 &&
	git checkout I &&
	test_commit G2 file1 3 &&
	test_must_fail git merge E &&
	test_commit J file1 23 &&
	test_commit K file7 file7 &&
	git rebase -i -p L &&
	test $(git rev-parse HEAD^^) = $(git rev-parse L) &&
	test "23" = "$(cat file1)" &&
	test "I" = "$(cat file6)" &&
	test "file7" = "$(cat file7)"

Previous HEAD position was 615be62 I
HEAD is now at 25e63b2 H
Merging:
25e63b2 H
virtual E
found 1 common ancestor:
6e62bf8 A
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 70a312a] L
 Author: A U Thor <author@example.com>
Previous HEAD position was 70a312a L
HEAD is now at 615be62 I
[detached HEAD 93b50ed] G2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Merging:
93b50ed G2
virtual E
found 1 common ancestor:
6e62bf8 A
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 6b192df] J
 Author: A U Thor <author@example.com>
[detached HEAD 273eec6] K
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file7
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 2 - skip same-resolution merges with -p

expecting success of 3410.3 'keep different-resolution merges with -p': 
	git checkout H &&
	test_must_fail git merge E &&
	test_commit L2 file1 23 &&
	git checkout I &&
	test_commit G3 file1 4 &&
	test_must_fail git merge E &&
	test_commit J2 file1 24 &&
	test_commit K2 file7 file7 &&
	test_must_fail git rebase -i -p L2 &&
	echo 234 > file1 &&
	git add file1 &&
	git rebase --continue &&
	test $(git rev-parse HEAD^^^) = $(git rev-parse L2) &&
	test "234" = "$(cat file1)" &&
	test "I" = "$(cat file6)" &&
	test "file7" = "$(cat file7)"

Warning: you are leaving 2 commits behind, not connected to
any of your branches:

  519f02c K
  e785c42 I

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 519f02c

HEAD is now at 25e63b2 H
Merging:
25e63b2 H
virtual E
found 1 common ancestor:
6e62bf8 A
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 4c4dd24] L2
 Author: A U Thor <author@example.com>
Previous HEAD position was 4c4dd24 L2
HEAD is now at 615be62 I
[detached HEAD 6e00aee] G3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Merging:
6e00aee G3
virtual E
found 1 common ancestor:
6e62bf8 A
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 4917c92] J2
 Author: A U Thor <author@example.com>
[detached HEAD c670ef0] K2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file7
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/4)
Rebasing (2/4)
Auto-merging file1
CONFLICT (content): Merge conflict in file1
error: could not apply 6e00aee... G3

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".
Could not pick 6e00aee07e42a4daf7ffd5d296964868ea26ad79
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
[detached HEAD ff7174a] G3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 3 - keep different-resolution merges with -p

# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3413-rebase-hook.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3413-rebase-hook/.git/
expecting success of 3413.1 'setup': 
	echo hello >file &&
	git add file &&
	test_tick &&
	git commit -m initial &&
	echo goodbye >file &&
	git add file &&
	test_tick &&
	git commit -m second &&
	git checkout -b side HEAD^ &&
	echo world >git &&
	git add git &&
	test_tick &&
	git commit -m side &&
	git checkout master &&
	git log --pretty=oneline --abbrev-commit --graph --all &&
	git branch test side

[master (root-commit) 6637599] initial
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
[master 20a11a4] second
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'side'
[side c847452] side
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 git
Switched to branch 'master'
* c847452 side
| * 20a11a4 second
|/  
* 6637599 initial
ok 1 - setup

expecting success of 3413.2 'rebase': 
	git checkout test &&
	git reset --hard side &&
	git rebase master &&
	test "z$(cat git)" = zworld

Switched to branch 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 2 - rebase

expecting success of 3413.3 'rebase -i': 
	git checkout test &&
	git reset --hard side &&
	EDITOR=true git rebase -i master &&
	test "z$(cat git)" = zworld

Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 3 - rebase -i

expecting success of 3413.4 'setup pre-rebase hook': 
	mkdir -p .git/hooks &&
	cat >.git/hooks/pre-rebase <<EOF &&
#!$SHELL_PATH
echo "\$1,\$2" >.git/PRE-REBASE-INPUT
EOF
	chmod +x .git/hooks/pre-rebase

ok 4 - setup pre-rebase hook

expecting success of 3413.5 'pre-rebase hook gets correct input (1)': 
	git checkout test &&
	git reset --hard side &&
	git rebase master &&
	test "z$(cat git)" = zworld &&
	test "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,


Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 5 - pre-rebase hook gets correct input (1)

expecting success of 3413.6 'pre-rebase hook gets correct input (2)': 
	git checkout test &&
	git reset --hard side &&
	git rebase master test &&
	test "z$(cat git)" = zworld &&
	test "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test

Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 6 - pre-rebase hook gets correct input (2)

expecting success of 3413.7 'pre-rebase hook gets correct input (3)': 
	git checkout test &&
	git reset --hard side &&
	git checkout master &&
	git rebase master test &&
	test "z$(cat git)" = zworld &&
	test "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test

Already on 'test'
HEAD is now at c847452 side
Switched to branch 'master'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 7 - pre-rebase hook gets correct input (3)

expecting success of 3413.8 'pre-rebase hook gets correct input (4)': 
	git checkout test &&
	git reset --hard side &&
	EDITOR=true git rebase -i master &&
	test "z$(cat git)" = zworld &&
	test "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,


Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 8 - pre-rebase hook gets correct input (4)

expecting success of 3413.9 'pre-rebase hook gets correct input (5)': 
	git checkout test &&
	git reset --hard side &&
	EDITOR=true git rebase -i master test &&
	test "z$(cat git)" = zworld &&
	test "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test

Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 9 - pre-rebase hook gets correct input (5)

expecting success of 3413.10 'pre-rebase hook gets correct input (6)': 
	git checkout test &&
	git reset --hard side &&
	git checkout master &&
	EDITOR=true git rebase -i master test &&
	test "z$(cat git)" = zworld &&
	test "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test

Already on 'test'
HEAD is now at c847452 side
Switched to branch 'master'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 10 - pre-rebase hook gets correct input (6)

expecting success of 3413.11 'setup pre-rebase hook that fails': 
	mkdir -p .git/hooks &&
	cat >.git/hooks/pre-rebase <<EOF &&
#!$SHELL_PATH
false
EOF
	chmod +x .git/hooks/pre-rebase

ok 11 - setup pre-rebase hook that fails

expecting success of 3413.12 'pre-rebase hook stops rebase (1)': 
	git checkout test &&
	git reset --hard side &&
	test_must_fail git rebase master &&
	test "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&
	test 0 = $(git rev-list HEAD...side | wc -l)

Already on 'test'
HEAD is now at c847452 side
fatal: The pre-rebase hook refused to rebase.
ok 12 - pre-rebase hook stops rebase (1)

expecting success of 3413.13 'pre-rebase hook stops rebase (2)': 
	git checkout test &&
	git reset --hard side &&
	test_must_fail env EDITOR=: git rebase -i master &&
	test "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&
	test 0 = $(git rev-list HEAD...side | wc -l)

Already on 'test'
HEAD is now at c847452 side
fatal: The pre-rebase hook refused to rebase.
ok 13 - pre-rebase hook stops rebase (2)

expecting success of 3413.14 'rebase --no-verify overrides pre-rebase (1)': 
	git checkout test &&
	git reset --hard side &&
	git rebase --no-verify master &&
	test "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&
	test "z$(cat git)" = zworld

Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 14 - rebase --no-verify overrides pre-rebase (1)

expecting success of 3413.15 'rebase --no-verify overrides pre-rebase (2)': 
	git checkout test &&
	git reset --hard side &&
	EDITOR=true git rebase --no-verify -i master &&
	test "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&
	test "z$(cat git)" = zworld

Already on 'test'
HEAD is now at c847452 side
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test.
ok 15 - rebase --no-verify overrides pre-rebase (2)

# passed all 15 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3414-rebase-preserve-onto.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3414-rebase-preserve-onto/.git/
checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3414.1 'setup': 
	test_commit A1 &&
	test_commit B1 &&
	test_commit C1 &&
	test_commit D1 &&
	git reset --hard B1 &&
	test_commit E1 &&
	test_commit F1 &&
	test_merge G1 D1 &&
	git reset --hard A1 &&
	test_commit H1

[master (root-commit) 6fb0b66] A1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 A1.t
[master 37e5de5] B1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 B1.t
[master 9db6c33] C1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 C1.t
[master d7157d8] D1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 D1.t
HEAD is now at 37e5de5 B1
[master b959d6c] E1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 E1.t
[master 81dc3a6] F1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 F1.t
Merging:
81dc3a6 F1
virtual D1
found 1 common ancestor:
37e5de5 B1
Merge made by the 'recursive' strategy.
 C1.t | 1 +
 D1.t | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 C1.t
 create mode 100644 D1.t
HEAD is now at 6fb0b66 A1
[master 4950a7c] H1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 H1.t
ok 1 - setup

expecting success of 3414.2 'rebase from B1 onto H1': 
	git checkout G1 &&
	git rebase -p --onto H1 B1 &&
	test "$(git rev-parse HEAD^1^1^1)" = "$(git rev-parse H1)" &&
	test "$(git rev-parse HEAD^2^1^1)" = "$(git rev-parse H1)"

Note: switching to 'G1'.

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 52308dd G1
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)
Successfully rebased and updated detached HEAD.
ok 2 - rebase from B1 onto H1

expecting success of 3414.3 'rebase from E1 onto H1': 
	git checkout G1 &&
	git rebase -p --onto H1 E1 &&
	test "$(git rev-parse HEAD^1^1)" = "$(git rev-parse H1)" &&
	test "$(git rev-parse HEAD^2)" = "$(git rev-parse D1)"

Warning: you are leaving 5 commits behind, not connected to
any of your branches:

  ab2e25c G1
  eb95cad F1
  52202eb D1
  227fb12 E1
  9e481e9 C1

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> ab2e25c

HEAD is now at 52308dd G1
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 3 - rebase from E1 onto H1

expecting success of 3414.4 'rebase from C1 onto H1': 
	git checkout G1 &&
	git rev-list --first-parent --pretty=oneline C1..G1 &&
	git rebase -p --onto H1 C1 &&
	test "$(git rev-parse HEAD^2^1)" = "$(git rev-parse H1)" &&
	test "$(git rev-parse HEAD^1)" = "$(git rev-parse F1)"

Warning: you are leaving 2 commits behind, not connected to
any of your branches:

  a6d9fc8 G1
  4d3dd7d F1

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> a6d9fc8

HEAD is now at 52308dd G1
52308dd60394ebd5599b39fb69108f164975ed7a G1
81dc3a6494c9a0091f921c65194433ffa66d8dac F1
b959d6cc0d4f2d10f0d432e45cd5578c75065af5 E1
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 4 - rebase from C1 onto H1

# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3416-rebase-onto-threedots.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3416-rebase-onto-threedots/.git/
expecting success of 3416.1 'setup': 
	test_commit A &&
	test_commit B &&
	git branch side &&
	test_commit C &&
	git branch topic &&
	git checkout side &&
	test_commit H &&
	git checkout master &&
	test_tick &&
	git merge H &&
	git tag D &&
	test_commit E &&
	git checkout topic &&
	test_commit F &&
	test_commit G &&
	git checkout side &&
	test_tick &&
	git merge C &&
	git tag I &&
	test_commit J &&
	test_commit K

[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
[master 35a8500] C
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 C.t
Switched to branch 'side'
[side e9f30f6] H
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 H.t
Switched to branch 'master'
Merging:
35a8500 C
virtual H
found 1 common ancestor:
d9df450 B
Merge made by the 'recursive' strategy.
 H.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 H.t
[master 0cd72fb] E
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 E.t
Switched to branch 'topic'
[topic 0fb828b] F
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 F.t
[topic a08c965] G
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 G.t
Switched to branch 'side'
Merging:
e9f30f6 H
virtual C
found 1 common ancestor:
d9df450 B
Merge made by the 'recursive' strategy.
 C.t | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 C.t
[side 9eed7bf] J
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 J.t
[side 4d3c411] K
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 K.t
ok 1 - setup

expecting success of 3416.2 'rebase --onto master...topic': 
	git reset --hard &&
	git checkout topic &&
	git reset --hard G &&

	git rebase --onto master...topic F &&
	git rev-parse HEAD^1 >actual &&
	git rev-parse C^0 >expect &&
	test_cmp expect actual

HEAD is now at 4d3c411 K
Switched to branch 'topic'
HEAD is now at a08c965 G
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 2 - rebase --onto master...topic

expecting success of 3416.3 'rebase --onto master...': 
	git reset --hard &&
	git checkout topic &&
	git reset --hard G &&

	git rebase --onto master... F &&
	git rev-parse HEAD^1 >actual &&
	git rev-parse C^0 >expect &&
	test_cmp expect actual

HEAD is now at f576ef2 G
Already on 'topic'
HEAD is now at a08c965 G
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 3 - rebase --onto master...

expecting success of 3416.4 'rebase --onto master...side': 
	git reset --hard &&
	git checkout side &&
	git reset --hard K &&

	test_must_fail git rebase --onto master...side J

HEAD is now at f576ef2 G
Switched to branch 'side'
HEAD is now at 4d3c411 K
fatal: 'master...side': need exactly one merge base
ok 4 - rebase --onto master...side

expecting success of 3416.5 'rebase -i --onto master...topic': 
	git reset --hard &&
	git checkout topic &&
	git reset --hard G &&
	set_fake_editor &&
	EXPECT_COUNT=1 git rebase -i --onto master...topic F &&
	git rev-parse HEAD^1 >actual &&
	git rev-parse C^0 >expect &&
	test_cmp expect actual

HEAD is now at 4d3c411 K
Switched to branch 'topic'
HEAD is now at a08c965 G
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 5 - rebase -i --onto master...topic

expecting success of 3416.6 'rebase -i --onto master...': 
	git reset --hard &&
	git checkout topic &&
	git reset --hard G &&
	set_fake_editor &&
	EXPECT_COUNT=1 git rebase -i --onto master... F &&
	git rev-parse HEAD^1 >actual &&
	git rev-parse C^0 >expect &&
	test_cmp expect actual

HEAD is now at f576ef2 G
Already on 'topic'
HEAD is now at a08c965 G
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 6 - rebase -i --onto master...

expecting success of 3416.7 'rebase -i --onto master...side': 
	git reset --hard &&
	git checkout side &&
	git reset --hard K &&

	set_fake_editor &&
	test_must_fail git rebase -i --onto master...side J

HEAD is now at f576ef2 G
Switched to branch 'side'
HEAD is now at 4d3c411 K
fatal: 'master...side': need exactly one merge base
ok 7 - rebase -i --onto master...side

expecting success of 3416.8 'rebase --keep-base --onto incompatible': 
	test_must_fail git rebase --keep-base --onto master...

fatal: cannot combine '--keep-base' with '--onto'
ok 8 - rebase --keep-base --onto incompatible

expecting success of 3416.9 'rebase --keep-base --root incompatible': 
	test_must_fail git rebase --keep-base --root

fatal: cannot combine '--keep-base' with '--root'
ok 9 - rebase --keep-base --root incompatible

expecting success of 3416.10 'rebase --keep-base master from topic': 
	git reset --hard &&
	git checkout topic &&
	git reset --hard G &&

	git rebase --keep-base master &&
	git rev-parse C >base.expect &&
	git merge-base master HEAD >base.actual &&
	test_cmp base.expect base.actual &&

	git rev-parse HEAD~2 >actual &&
	git rev-parse C^0 >expect &&
	test_cmp expect actual

HEAD is now at 4d3c411 K
Switched to branch 'topic'
HEAD is now at a08c965 G
Current branch topic is up to date.
ok 10 - rebase --keep-base master from topic

expecting success of 3416.11 'rebase --keep-base master from side': 
	git reset --hard &&
	git checkout side &&
	git reset --hard K &&

	test_must_fail git rebase --keep-base master

HEAD is now at a08c965 G
Switched to branch 'side'
HEAD is now at 4d3c411 K
fatal: 'master': need exactly one merge base with branch
ok 11 - rebase --keep-base master from side

expecting success of 3416.12 'rebase -i --keep-base master from topic': 
	git reset --hard &&
	git checkout topic &&
	git reset --hard G &&

	set_fake_editor &&
	EXPECT_COUNT=2 git rebase -i --keep-base master &&
	git rev-parse C >base.expect &&
	git merge-base master HEAD >base.actual &&
	test_cmp base.expect base.actual &&

	git rev-parse HEAD~2 >actual &&
	git rev-parse C^0 >expect &&
	test_cmp expect actual

HEAD is now at 4d3c411 K
Switched to branch 'topic'
HEAD is now at a08c965 G

                                                                                
Successfully rebased and updated refs/heads/topic.
ok 12 - rebase -i --keep-base master from topic

expecting success of 3416.13 'rebase -i --keep-base master from side': 
	git reset --hard &&
	git checkout side &&
	git reset --hard K &&

	set_fake_editor &&
	test_must_fail git rebase -i --keep-base master

HEAD is now at a08c965 G
Switched to branch 'side'
HEAD is now at 4d3c411 K
fatal: 'master': need exactly one merge base with branch
ok 13 - rebase -i --keep-base master from side

# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3415-rebase-autosquash.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3415-rebase-autosquash/.git/
expecting success of 3415.1 'setup': 
	echo 0 >file0 &&
	git add . &&
	test_tick &&
	git commit -m "initial commit" &&
	echo 0 >file1 &&
	echo 2 >file2 &&
	git add . &&
	test_tick &&
	git commit -m "first commit" &&
	git tag first-commit &&
	echo 3 >file3 &&
	git add . &&
	test_tick &&
	git commit -m "second commit" &&
	git tag base

[master (root-commit) d78c915] initial commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file0
[master 244a0fe] first commit
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
[master f0c2a7e] second commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file3
ok 1 - setup

expecting success of 3415.2 'auto fixup (option)': 
	test_auto_fixup final-fixup-option --autosquash

HEAD is now at f0c2a7e second commit
[master e17f730] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 2 - auto fixup (option)

expecting success of 3415.3 'auto fixup (config)': 
	git config rebase.autosquash true &&
	test_auto_fixup final-fixup-config-true &&
	test_auto_fixup ! fixup-config-true-no --no-autosquash &&
	git config rebase.autosquash false &&
	test_auto_fixup ! final-fixup-config-false

HEAD is now at f0c2a7e second commit
[master f84b6d6] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
HEAD is now at f0c2a7e second commit
[master 03041cb] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/master.
HEAD is now at f0c2a7e second commit
[master bee11d3] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 3 - auto fixup (config)

expecting success of 3415.4 'auto squash (option)': 
	test_auto_squash final-squash --autosquash

HEAD is now at f0c2a7e second commit
[master 19ce186] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
[detached HEAD 9064ef2] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 4 - auto squash (option)

expecting success of 3415.5 'auto squash (config)': 
	git config rebase.autosquash true &&
	test_auto_squash final-squash-config-true &&
	test_auto_squash ! squash-config-true-no --no-autosquash &&
	git config rebase.autosquash false &&
	test_auto_squash ! final-squash-config-false

HEAD is now at f0c2a7e second commit
[master a95a906] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
[detached HEAD 46676fa] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
HEAD is now at f0c2a7e second commit
[master fc8ff6e] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/master.
HEAD is now at f0c2a7e second commit
[master 336ee2b] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 5 - auto squash (config)

expecting success of 3415.6 'misspelled auto squash': 
	git reset --hard base &&
	echo 1 >file1 &&
	git add -u &&
	test_tick &&
	git commit -m "squash! forst" &&
	git tag final-missquash &&
	test_tick &&
	git rebase --autosquash -i HEAD^^^ &&
	git log --oneline >actual &&
	test_line_count = 4 actual &&
	git diff --exit-code final-missquash &&
	git rev-list final-missquash...HEAD >list &&
	test_must_be_empty list

HEAD is now at f0c2a7e second commit
[master bdc406a] squash! forst
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 6 - misspelled auto squash

expecting success of 3415.7 'auto squash that matches 2 commits': 
	git reset --hard base &&
	echo 4 >file4 &&
	git add file4 &&
	test_tick &&
	git commit -m "first new commit" &&
	echo 1 >file1 &&
	git add -u &&
	test_tick &&
	git commit -m "squash! first" &&
	git tag final-multisquash &&
	test_tick &&
	git rebase --autosquash -i HEAD~4 &&
	git log --oneline >actual &&
	test_line_count = 4 actual &&
	git diff --exit-code final-multisquash &&
	echo 1 >expect &&
	git cat-file blob HEAD^^:file1 >actual &&
	test_cmp expect actual &&
	git cat-file commit HEAD^^ >commit &&
	grep first commit >actual &&
	test_line_count = 2 actual &&
	git cat-file commit HEAD >commit &&
	grep first commit >actual &&
	test_line_count = 1 actual

HEAD is now at f0c2a7e second commit
[master 671d0de] first new commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file4
[master 1cded01] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/4)
[detached HEAD 8cc2a0e] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 7 - auto squash that matches 2 commits

expecting success of 3415.8 'auto squash that matches a commit after the squash': 
	git reset --hard base &&
	echo 1 >file1 &&
	git add -u &&
	test_tick &&
	git commit -m "squash! third" &&
	echo 4 >file4 &&
	git add file4 &&
	test_tick &&
	git commit -m "third commit" &&
	git tag final-presquash &&
	test_tick &&
	git rebase --autosquash -i HEAD~4 &&
	git log --oneline >actual &&
	test_line_count = 5 actual &&
	git diff --exit-code final-presquash &&
	echo 0 >expect &&
	git cat-file blob HEAD^^:file1 >actual &&
	test_cmp expect actual &&
	echo 1 >expect &&
	git cat-file blob HEAD^:file1 >actual &&
	test_cmp expect actual &&
	git cat-file commit HEAD >commit &&
	grep third commit >actual &&
	test_line_count = 1 actual &&
	git cat-file commit HEAD^ >commit &&
	grep third commit >actual &&
	test_line_count = 1 actual

HEAD is now at f0c2a7e second commit
[master 3a205cd] squash! third
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 76ae28b] third commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file4

                                                                                
Successfully rebased and updated refs/heads/master.
ok 8 - auto squash that matches a commit after the squash

expecting success of 3415.9 'auto squash that matches a sha1': 
	git reset --hard base &&
	echo 1 >file1 &&
	git add -u &&
	test_tick &&
	oid=$(git rev-parse --short HEAD^) &&
	git commit -m "squash! $oid" &&
	git tag final-shasquash &&
	test_tick &&
	git rebase --autosquash -i HEAD^^^ &&
	git log --oneline >actual &&
	test_line_count = 3 actual &&
	git diff --exit-code final-shasquash &&
	echo 1 >expect &&
	git cat-file blob HEAD^:file1 >actual &&
	test_cmp expect actual &&
	git cat-file commit HEAD^ >commit &&
	grep squash commit >actual &&
	test_line_count = 1 actual

HEAD is now at f0c2a7e second commit
[master 2592f98] squash! 244a0fe
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
[detached HEAD ba6c8cf] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 9 - auto squash that matches a sha1

expecting success of 3415.10 'auto squash that matches longer sha1': 
	git reset --hard base &&
	echo 1 >file1 &&
	git add -u &&
	test_tick &&
	oid=$(git rev-parse --short=11 HEAD^) &&
	git commit -m "squash! $oid" &&
	git tag final-longshasquash &&
	test_tick &&
	git rebase --autosquash -i HEAD^^^ &&
	git log --oneline >actual &&
	test_line_count = 3 actual &&
	git diff --exit-code final-longshasquash &&
	echo 1 >expect &&
	git cat-file blob HEAD^:file1 >actual &&
	test_cmp expect actual &&
	git cat-file commit HEAD^ >commit &&
	grep squash commit >actual &&
	test_line_count = 1 actual

HEAD is now at f0c2a7e second commit
[master 358ddef] squash! 244a0fe611d
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
[detached HEAD 2fb404b] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 10 - auto squash that matches longer sha1

expecting success of 3415.11 'use commit --fixup': 
	test_auto_commit_flags fixup 1

HEAD is now at f0c2a7e second commit
[master ec3ac31] fixup! first commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 11 - use commit --fixup

expecting success of 3415.12 'use commit --squash': 
	test_auto_commit_flags squash 2

HEAD is now at f0c2a7e second commit
[master 56a0d48] squash! first commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)
[detached HEAD ca39a78] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 12 - use commit --squash

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
expecting success of 3415.13 'fixup! fixup!': 
	test_auto_fixup_fixup fixup fixup

HEAD is now at f0c2a7e second commit
[master f2259fa] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master a8ab281] fixup! fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
error: There was a problem with the editor '"$FAKE_EDITOR"'.
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 13 - fixup! fixup!

expecting success of 3415.14 'fixup! squash!': 
	test_auto_fixup_fixup fixup squash

HEAD is now at f0c2a7e second commit
[master a1ad567] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master ec0f8ee] fixup! squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
error: There was a problem with the editor '"$FAKE_EDITOR"'.
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 14 - fixup! squash!

expecting success of 3415.15 'squash! squash!': 
	test_auto_fixup_fixup squash squash

HEAD is now at f0c2a7e second commit
[master b3c0532] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 90b2119] squash! squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
error: There was a problem with the editor '"$FAKE_EDITOR"'.
Rebasing (2/4)
Rebasing (3/4)
[detached HEAD 0c6388e] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 15 - squash! squash!

expecting success of 3415.16 'squash! fixup!': 
	test_auto_fixup_fixup squash fixup

HEAD is now at f0c2a7e second commit
[master 9e62506] squash! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master baa3050] squash! fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
error: There was a problem with the editor '"$FAKE_EDITOR"'.
Rebasing (2/4)
Rebasing (3/4)
[detached HEAD f53dd90] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 16 - squash! fixup!

expecting success of 3415.17 'autosquash with custom inst format': 
	git reset --hard base &&
	git config --add rebase.instructionFormat "[%an @ %ar] %s"  &&
	echo 2 >file1 &&
	git add -u &&
	test_tick &&
	oid=$(git rev-parse --short HEAD^) &&
	git commit -m "squash! $oid" &&
	echo 1 >file1 &&
	git add -u &&
	test_tick &&
	subject=$(git log -n 1 --format=%s HEAD~2) &&
	git commit -m "squash! $subject" &&
	git tag final-squash-instFmt &&
	test_tick &&
	git rebase --autosquash -i HEAD~4 &&
	git log --oneline >actual &&
	test_line_count = 3 actual &&
	git diff --exit-code final-squash-instFmt &&
	echo 1 >expect &&
	git cat-file blob HEAD^:file1 >actual &&
	test_cmp expect actual &&
	git cat-file commit HEAD^ >commit &&
	grep squash commit >actual &&
	test_line_count = 2 actual

HEAD is now at f0c2a7e second commit
[master 8c2a608] squash! 244a0fe
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master ab98abd] squash! first commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/4)
Rebasing (3/4)
[detached HEAD a066413] first commit
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file1
 create mode 100644 file2
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 17 - autosquash with custom inst format

expecting success of 3415.18 'autosquash with empty custom instructionFormat': 
	git reset --hard base &&
	test_commit empty-instructionFormat-test &&
	(
		set_cat_todo_editor &&
		test_must_fail git -c rebase.instructionFormat= \
			rebase --autosquash  --force-rebase -i HEAD^ >actual &&
		git log -1 --format="pick %h %s" >expect &&
		test_cmp expect actual
	)

HEAD is now at f0c2a7e second commit
[master c73d304] empty-instructionFormat-test
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 empty-instructionFormat-test.t
error: There was a problem with the editor '"$FAKE_EDITOR"'.
ok 18 - autosquash with empty custom instructionFormat

expecting success of 3415.19 'autosquash with multiple empty patches': 
	test_tick &&
	git commit --allow-empty -m "empty" &&
	test_tick &&
	git commit --allow-empty -m "empty2" &&
	test_tick &&
	>fixup &&
	git add fixup &&
	git commit --fixup HEAD^^ &&
	(
		set_backup_editor &&
		GIT_USE_REBASE_HELPER=false \
		git rebase -i --force-rebase --autosquash HEAD~4 &&
		grep empty2 .git/backup-git-rebase-todo
	)

[master f0b00cc] empty
 Author: A U Thor <author@example.com>
[master 57d336e] empty2
 Author: A U Thor <author@example.com>
[master 214c1c2] fixup! empty-instructionFormat-test
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 fixup
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/master.
pick 57d336e [A U Thor @ 18 years ago] empty2 # empty
ok 19 - autosquash with multiple empty patches

expecting success of 3415.20 'extra spaces after fixup!': 
	base=$(git rev-parse HEAD) &&
	test_commit to-fixup &&
	git commit --allow-empty -m "fixup!  to-fixup" &&
	git rebase -i --autosquash --keep-empty HEAD~2 &&
	parent=$(git rev-parse HEAD^) &&
	test $base = $parent

[master 0584c83] to-fixup
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 to-fixup.t
[master 25cc60b] fixup!  to-fixup
 Author: A U Thor <author@example.com>
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 20 - extra spaces after fixup!

expecting success of 3415.21 'wrapped original subject': 
	if test -d .git/rebase-merge; then git rebase --abort; fi &&
	base=$(git rev-parse HEAD) &&
	echo "wrapped subject" >wrapped &&
	git add wrapped &&
	test_tick &&
	git commit --allow-empty -m "$(printf "To\nfixup")" &&
	test_tick &&
	git commit --allow-empty -m "fixup! To fixup" &&
	git rebase -i --autosquash --keep-empty HEAD~2 &&
	parent=$(git rev-parse HEAD^) &&
	test $base = $parent

[master 0e6e19d] To fixup
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 wrapped
[master 8874732] fixup! To fixup
 Author: A U Thor <author@example.com>
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 21 - wrapped original subject

expecting success of 3415.22 'abort last squash': 
	test_when_finished "test_might_fail git rebase --abort" &&
	test_when_finished "git checkout master" &&

	git checkout -b some-squashes &&
	git commit --allow-empty -m first &&
	git commit --allow-empty --squash HEAD &&
	git commit --allow-empty -m second &&
	git commit --allow-empty --squash HEAD &&

	test_must_fail git -c core.editor="grep -q ^pick" \
		rebase -ki --autosquash HEAD~4 &&
	: do not finish the squash, but resolve it manually &&
	git commit --allow-empty --amend -m edited-first &&
	git rebase --skip &&
	git show >actual &&
	! grep first actual

Switched to a new branch 'some-squashes'
[some-squashes f124f9c] first
 Author: A U Thor <author@example.com>
[some-squashes 1adce10] squash! first
 Author: A U Thor <author@example.com>
[some-squashes dbd878b] second
 Author: A U Thor <author@example.com>
[some-squashes 57e67c3] squash! second
 Author: A U Thor <author@example.com>
Rebasing (2/4)
error: There was a problem with the editor 'grep -q ^pick'.
Please supply the message using either -m or -F option.
Could not apply 1adce10... [A U Thor @ 18 years ago] squash! first # empty
[detached HEAD 7723319] edited-first
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 16:09:13 2005 -0700
Rebasing (3/4)
Rebasing (4/4)
[detached HEAD 2efc566] second
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 16:09:13 2005 -0700

                                                                                
Successfully rebased and updated refs/heads/some-squashes.
Switched to branch 'master'
fatal: No rebase in progress?
ok 22 - abort last squash

expecting success of 3415.23 'fixup a fixup': 
	echo 0to-fixup >file0 &&
	test_tick &&
	git commit -m "to-fixup" file0 &&
	test_tick &&
	git commit --squash HEAD -m X --allow-empty &&
	test_tick &&
	git commit --squash HEAD^ -m Y --allow-empty &&
	test_tick &&
	git commit -m "squash! $(git rev-parse HEAD^)" -m Z --allow-empty &&
	test_tick &&
	git commit -m "squash! $(git rev-parse HEAD^^)" -m W --allow-empty &&
	git rebase -ki --autosquash HEAD~5 &&
	test XZWY = $(git show | tr -cd W-Z)

[master 8b8914f] to-fixup
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master d639a09] squash! to-fixup
 Author: A U Thor <author@example.com>
[master d15a015] squash! to-fixup
 Author: A U Thor <author@example.com>
[master 46ee2c5] squash! d639a0930479ded42c578b382731e0c4be6ca4c3
 Author: A U Thor <author@example.com>
[master 2d365fb] squash! d639a0930479ded42c578b382731e0c4be6ca4c3
 Author: A U Thor <author@example.com>
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)
[detached HEAD f574627] to-fixup
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 16:10:13 2005 -0700
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/master.
ok 23 - fixup a fixup

# passed all 23 test(s)
1..23
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3417-rebase-whitespace-fix.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3417-rebase-whitespace-fix/.git/
expecting success of 3417.1 'blank line at end of file; extend at end of file': 
	git commit --allow-empty -m "Initial empty commit" &&
	git add file && git commit -m first &&
	mv second file &&
	git add file && git commit -m second &&
	git rebase --whitespace=fix HEAD^^ &&
	git diff --exit-code HEAD^:file expect-first &&
	test_cmp expect-second file

[master (root-commit) 6c54391] Initial empty commit
 Author: A U Thor <author@example.com>
[master e2d0a8f] first
 Author: A U Thor <author@example.com>
 1 file changed, 4 insertions(+)
 create mode 100644 file
[master 14cb724] second
 Author: A U Thor <author@example.com>
 1 file changed, 7 insertions(+)
First, rewinding head to replay your work on top of it...
Applying: first
Applying: second
ok 1 - blank line at end of file; extend at end of file

expecting success of 3417.2 'two blanks line at end of file; extend at end of file': 
	cp third file && git add file && git commit -m third &&
	git rebase --whitespace=fix HEAD^^ &&
	git diff --exit-code HEAD^:file expect-second &&
	test_cmp expect-third file

[master c2f1416] third
 Author: A U Thor <author@example.com>
 1 file changed, 7 insertions(+)
First, rewinding head to replay your work on top of it...
Applying: second
Applying: third
ok 2 - two blanks line at end of file; extend at end of file

expecting success of 3417.3 'same, but do not remove trailing spaces': 
	git config core.whitespace "-blank-at-eol" &&
	git reset --hard HEAD^ &&
	cp third file && git add file && git commit -m third &&
	git rebase --whitespace=fix HEAD^^ &&
	git diff --exit-code HEAD^:file expect-second &&
	test_cmp file third

HEAD is now at 0c4819a second
[master c2f1416] third
 Author: A U Thor <author@example.com>
 1 file changed, 7 insertions(+)
First, rewinding head to replay your work on top of it...
Applying: second
Applying: third
ok 3 - same, but do not remove trailing spaces

expecting success of 3417.4 'at beginning of file': 
	git config core.whitespace "blank-at-eol" &&
	cp beginning file &&
	git commit -m beginning file &&
	for i in 1 2 3 4 5; do
		echo $i
	done >> file &&
	git commit -m more file &&
	git rebase --whitespace=fix HEAD^^ &&
	test_cmp expect-beginning file

[master 5eeec3e] beginning
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+), 13 deletions(-)
[master b2ce110] more
 Author: A U Thor <author@example.com>
 1 file changed, 5 insertions(+)
First, rewinding head to replay your work on top of it...
Applying: beginning
Applying: more
ok 4 - at beginning of file

# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3412-rebase-root.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3412-rebase-root/.git/
expecting success of 3412.1 'prepare repository': 
	test_commit 1 A &&
	test_commit 2 A &&
	git symbolic-ref HEAD refs/heads/other &&
	rm .git/index &&
	test_commit 3 B &&
	test_commit 1b A 1 &&
	test_commit 4 B

[master (root-commit) c746ea0] 1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 A
[master 46611ad] 2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[other (root-commit) 2c64091] 3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 B
[other 1c4476a] 1b
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 A
[other 41e7797] 4
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - prepare repository

expecting success of 3412.2 'rebase --root fails with too many args': 
	git checkout -B fail other &&
	test_must_fail git rebase --onto master --root fail fail

Switched to a new branch 'fail'
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
   or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
   or: git rebase --continue | --abort | --skip | --edit-todo

    --onto <revision>     rebase onto given branch instead of upstream
    --keep-base           use the merge-base of upstream and branch as the current base
    --no-verify           allow pre-rebase hook to run
    -q, --quiet           be quiet. implies --no-stat
    -v, --verbose         display a diffstat of what changed upstream
    -n, --no-stat         do not show diffstat of what changed upstream
    --signoff             add a Signed-off-by trailer to each commit
    --committer-date-is-author-date
                          make committer date match author date
    --reset-author-date   ignore author date and use current date
    -C <n>                passed to 'git apply'
    --ignore-whitespace   ignore changes in whitespace
    --whitespace <action>
                          passed to 'git apply'
    -f, --force-rebase    cherry-pick all commits, even if unchanged
    --no-ff               cherry-pick all commits, even if unchanged
    --continue            continue
    --skip                skip current patch and continue
    --abort               abort and check out the original branch
    --quit                abort but keep HEAD where it is
    --edit-todo           edit the todo list during an interactive rebase
    --show-current-patch  show the patch file being applied or merged
    --apply               use apply strategies to rebase
    -m, --merge           use merging strategies to rebase
    -i, --interactive     let the user edit the list of commits to rebase
    --rerere-autoupdate   update the index with reused conflict resolution if possible
    --empty <{drop,keep,ask}>
                          how to handle commits that become empty
    --autosquash          move commits that begin with squash!/fixup! under -i
    -S, --gpg-sign[=<key-id>]
                          GPG-sign commits
    --autostash           automatically stash/stash pop before and after
    -x, --exec <exec>     add exec lines after each commit of the editable list
    -r, --rebase-merges[=<mode>]
                          try to rebase merges instead of skipping them
    --fork-point          use 'merge-base --fork-point' to refine upstream
    -s, --strategy <strategy>
                          use the given merge strategy
    -X, --strategy-option <option>
                          pass the argument through to the merge strategy
    --root                rebase all reachable commits up to the root(s)
    --reschedule-failed-exec
                          automatically re-schedule any `exec` that fails
    --reapply-cherry-picks
                          apply all changes, even those already present upstream

ok 2 - rebase --root fails with too many args

expecting success of 3412.3 'setup pre-rebase hook': 
	mkdir -p .git/hooks &&
	cat >.git/hooks/pre-rebase <<EOF &&
#!$SHELL_PATH
echo "\$1,\$2" >.git/PRE-REBASE-INPUT
EOF
	chmod +x .git/hooks/pre-rebase

ok 3 - setup pre-rebase hook

expecting success of 3412.4 'rebase --root --onto <newbase>': 
	git checkout -b work other &&
	git rebase --root --onto master &&
	git log --pretty=tformat:"%s" > rebased &&
	test_cmp expect rebased

Switched to a new branch 'work'
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/work.
ok 4 - rebase --root --onto <newbase>

expecting success of 3412.5 'pre-rebase got correct input (1)': 
	test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,

ok 5 - pre-rebase got correct input (1)

expecting success of 3412.6 'rebase --root --onto <newbase> <branch>': 
	git branch work2 other &&
	git rebase --root --onto master work2 &&
	git log --pretty=tformat:"%s" > rebased2 &&
	test_cmp expect rebased2

Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/work2.
ok 6 - rebase --root --onto <newbase> <branch>

expecting success of 3412.7 'pre-rebase got correct input (2)': 
	test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,work2

ok 7 - pre-rebase got correct input (2)

expecting success of 3412.8 'rebase -i --root --onto <newbase>': 
	git checkout -b work3 other &&
	git rebase -i --root --onto master &&
	git log --pretty=tformat:"%s" > rebased3 &&
	test_cmp expect rebased3

Switched to a new branch 'work3'
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/work3.
ok 8 - rebase -i --root --onto <newbase>

expecting success of 3412.9 'pre-rebase got correct input (3)': 
	test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,

ok 9 - pre-rebase got correct input (3)

expecting success of 3412.10 'rebase -i --root --onto <newbase> <branch>': 
	git branch work4 other &&
	git rebase -i --root --onto master work4 &&
	git log --pretty=tformat:"%s" > rebased4 &&
	test_cmp expect rebased4

Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/work4.
ok 10 - rebase -i --root --onto <newbase> <branch>

expecting success of 3412.11 'pre-rebase got correct input (4)': 
	test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,work4

ok 11 - pre-rebase got correct input (4)

checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3412.12 'rebase -i -p with linear history': 
	git checkout -b work5 other &&
	git rebase -i -p --root --onto master &&
	git log --pretty=tformat:"%s" > rebased5 &&
	test_cmp expect rebased5

Switched to a new branch 'work5'
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/work5.
ok 12 - rebase -i -p with linear history

expecting success of 3412.13 'pre-rebase got correct input (5)': 
	test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,

ok 13 - pre-rebase got correct input (5)

expecting success of 3412.14 'set up merge history': 
	git checkout other^ &&
	git checkout -b side &&
	test_commit 5 C &&
	git checkout other &&
	git merge side

Note: switching to 'other^'.

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 1c4476a 1b
Switched to a new branch 'side'
[side 0c9a4e9] 5
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 C
Switched to branch 'other'
Merging:
41e7797 4
virtual side
found 1 common ancestor:
1c4476a 1b
Merge made by the 'recursive' strategy.
 C | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 C
ok 14 - set up merge history

expecting success of 3412.15 'rebase -i -p with merge': 
	git checkout -b work6 other &&
	git rebase -i -p --root --onto master &&
	log_with_names work6 > rebased6 &&
	test_cmp expect-side rebased6

Switched to a new branch 'work6'
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated refs/heads/work6.
ok 15 - rebase -i -p with merge

expecting success of 3412.16 'set up second root and merge': 
	git symbolic-ref HEAD refs/heads/third &&
	rm .git/index &&
	rm A B C &&
	test_commit 6 D &&
	git checkout other &&
	git merge --allow-unrelated-histories third

[third (root-commit) 00ac2af] 6
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 D
Switched to branch 'other'
Merging:
ddb0186 Merge branch 'side' into other
virtual third
found 0 common ancestors:
Merge made by the 'recursive' strategy.
 D | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 D
ok 16 - set up second root and merge

expecting success of 3412.17 'rebase -i -p with two roots': 
	git checkout -b work7 other &&
	git rebase -i -p --root --onto master &&
	log_with_names work7 > rebased7 &&
	test_cmp expect-third rebased7

Switched to a new branch 'work7'
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/6)
Rebasing (2/6)
Rebasing (3/6)
Rebasing (4/6)
Rebasing (5/6)
Rebasing (6/6)
Successfully rebased and updated refs/heads/work7.
ok 17 - rebase -i -p with two roots

expecting success of 3412.18 'setup pre-rebase hook that fails': 
	mkdir -p .git/hooks &&
	cat >.git/hooks/pre-rebase <<EOF &&
#!$SHELL_PATH
false
EOF
	chmod +x .git/hooks/pre-rebase

ok 18 - setup pre-rebase hook that fails

expecting success of 3412.19 'pre-rebase hook stops rebase': 
	git checkout -b stops1 other &&
	test_must_fail git rebase --root --onto master &&
	test "z$(git symbolic-ref HEAD)" = zrefs/heads/stops1 &&
	test 0 = $(git rev-list other...stops1 | wc -l)

Switched to a new branch 'stops1'
fatal: The pre-rebase hook refused to rebase.
ok 19 - pre-rebase hook stops rebase

expecting success of 3412.20 'pre-rebase hook stops rebase -i': 
	git checkout -b stops2 other &&
	test_must_fail git rebase --root --onto master &&
	test "z$(git symbolic-ref HEAD)" = zrefs/heads/stops2 &&
	test 0 = $(git rev-list other...stops2 | wc -l)

Switched to a new branch 'stops2'
fatal: The pre-rebase hook refused to rebase.
ok 20 - pre-rebase hook stops rebase -i

expecting success of 3412.21 'remove pre-rebase hook': 
	rm -f .git/hooks/pre-rebase

ok 21 - remove pre-rebase hook

expecting success of 3412.22 'set up a conflict': 
	git checkout master &&
	echo conflict > B &&
	git add B &&
	git commit -m conflict

Switched to branch 'master'
[master f80eebe] conflict
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 B
ok 22 - set up a conflict

expecting success of 3412.23 'rebase --root with conflict (first part)': 
	git checkout -b conflict1 other &&
	test_must_fail git rebase --root --onto master &&
	git ls-files -u | grep "B$"

Switched to a new branch 'conflict1'
Rebasing (1/4)
error: could not apply 2c64091... 3
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".
Could not apply 2c64091... 3
CONFLICT (add/add): Merge conflict in B
Auto-merging B
100644 9b1719f5cf069568785080a0bbabbe7c377e22ae 2	B
100644 00750edc07d6415dcc07ae0351e9397b0222b7ba 3	B
ok 23 - rebase --root with conflict (first part)

expecting success of 3412.24 'fix the conflict': 
	echo 3 > B &&
	git add B

ok 24 - fix the conflict

expecting success of 3412.25 'rebase --root with conflict (second part)': 
	git rebase --continue &&
	git log --pretty=tformat:"%s" > conflict1 &&
	test_cmp expect-conflict conflict1

[detached HEAD 308ae33] 3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/conflict1.
ok 25 - rebase --root with conflict (second part)

expecting success of 3412.26 'rebase -i --root with conflict (first part)': 
	git checkout -b conflict2 other &&
	test_must_fail git rebase -i --root --onto master &&
	git ls-files -u | grep "B$"

Switched to a new branch 'conflict2'
Rebasing (1/4)
error: could not apply 2c64091... 3
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".
Could not apply 2c64091... 3
CONFLICT (add/add): Merge conflict in B
Auto-merging B
100644 9b1719f5cf069568785080a0bbabbe7c377e22ae 2	B
100644 00750edc07d6415dcc07ae0351e9397b0222b7ba 3	B
ok 26 - rebase -i --root with conflict (first part)

expecting success of 3412.27 'fix the conflict': 
	echo 3 > B &&
	git add B

ok 27 - fix the conflict

expecting success of 3412.28 'rebase -i --root with conflict (second part)': 
	git rebase --continue &&
	git log --pretty=tformat:"%s" > conflict2 &&
	test_cmp expect-conflict conflict2

[detached HEAD 308ae33] 3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/conflict2.
ok 28 - rebase -i --root with conflict (second part)

expecting success of 3412.29 'rebase -i -p --root with conflict (first part)': 
	git checkout -b conflict3 other &&
	test_must_fail git rebase -i -p --root --onto master &&
	git ls-files -u | grep "B$"

Switched to a new branch 'conflict3'
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/6)
CONFLICT (add/add): Merge conflict in B
Auto-merging B
error: could not apply 2c64091... 3

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".
Could not pick 2c64091600777cfca4ad9dca6ec274f5a2554d69
100644 9b1719f5cf069568785080a0bbabbe7c377e22ae 2	B
100644 00750edc07d6415dcc07ae0351e9397b0222b7ba 3	B
ok 29 - rebase -i -p --root with conflict (first part)

expecting success of 3412.30 'fix the conflict': 
	echo 3 > B &&
	git add B

ok 30 - fix the conflict

expecting success of 3412.31 'rebase -i -p --root with conflict (second part)': 
	git rebase --continue &&
	log_with_names conflict3 >out &&
	test_cmp expect-conflict-p out

warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
[detached HEAD 308ae33] 3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/6)
Rebasing (3/6)
Rebasing (4/6)
Rebasing (5/6)
Rebasing (6/6)
Successfully rebased and updated refs/heads/conflict3.
ok 31 - rebase -i -p --root with conflict (second part)

# passed all 31 test(s)
1..31
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3419-rebase-patch-id.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3419-rebase-patch-id/.git/
expecting success of 3419.1 'setup': 
	git commit --allow-empty -m initial &&
	git tag root

[master (root-commit) 8b2b4f6] initial
 Author: A U Thor <author@example.com>
ok 1 - setup

expecting success of 3419.2 'setup: 500 lines': 
	rm -f .gitattributes &&
	git checkout -q -f master &&
	git reset --hard root &&
	test_seq 500 >file &&
	git add file &&
	git commit -q -m initial &&
	git branch -f other &&

	scramble file &&
	git add file &&
	git commit -q -m "change big file" &&

	git checkout -q other &&
	: >newfile &&
	git add newfile &&
	git commit -q -m "add small file" &&

	git cherry-pick master >/dev/null 2>&1

HEAD is now at 8b2b4f6 initial
ok 2 - setup: 500 lines

expecting success of 3419.3 'setup attributes': 
	echo "file binary" >.gitattributes

ok 3 - setup attributes

expecting success of 3419.4 'detect upstream patch': 
	git checkout -q master &&
	scramble file &&
	git add file &&
	git commit -q -m "change big file again" &&
	git checkout -q other^{} &&
	git rebase master &&
	git rev-list master...HEAD~ >revs &&
	test_must_be_empty revs

Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 4 - detect upstream patch

expecting success of 3419.5 'do not drop patch': 
	git branch -f squashed master &&
	git checkout -q -f squashed &&
	git reset -q --soft HEAD~2 &&
	git commit -q -m squashed &&
	git checkout -q other^{} &&
	test_must_fail git rebase squashed &&
	git rebase --quit

Rebasing (1/2)
Rebasing (2/2)
warning: Cannot merge binary files: file (HEAD vs. 463cec6 (change big file))
error: could not apply 463cec6... change big file
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".
Could not apply 463cec6... change big file
Auto-merging file
CONFLICT (content): Merge conflict in file
ok 5 - do not drop patch

# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3404-rebase-interactive.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3404-rebase-interactive/.git/
expecting success of 3404.1 'setup': 
	git switch -C primary &&
	test_commit A file1 &&
	test_commit B file1 &&
	test_commit C file2 &&
	test_commit D file1 &&
	test_commit E file3 &&
	git checkout -b branch1 A &&
	test_commit F file4 &&
	test_commit G file1 &&
	test_commit H file5 &&
	git checkout -b branch2 F &&
	test_commit I file6 &&
	git checkout -b conflict-branch A &&
	test_commit one conflict &&
	test_commit two conflict &&
	test_commit three conflict &&
	test_commit four conflict &&
	git checkout -b no-conflict-branch A &&
	test_commit J fileJ &&
	test_commit K fileK &&
	test_commit L fileL &&
	test_commit M fileM &&
	git checkout -b no-ff-branch A &&
	test_commit N fileN &&
	test_commit O fileO &&
	test_commit P fileP

Switched to a new branch 'primary'
[primary (root-commit) 6e62bf8] A
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file1
[primary 313fe96] B
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[primary d0f65f2] C
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file2
[primary 0547e3f] D
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[primary 8f99a4f] E
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file3
Switched to a new branch 'branch1'
[branch1 cfefd94] F
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file4
[branch1 83751a6] G
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[branch1 4373208] H
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file5
Switched to a new branch 'branch2'
[branch2 615be62] I
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file6
Switched to a new branch 'conflict-branch'
[conflict-branch b895952] one
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 conflict
[conflict-branch 766a798] two
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[conflict-branch 1eadf03] three
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[conflict-branch f91a2b3] four
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'no-conflict-branch'
[no-conflict-branch 808874f] J
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileJ
[no-conflict-branch 265b89e] K
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileK
[no-conflict-branch 6b0f5e6] L
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileL
[no-conflict-branch 3389558] M
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileM
Switched to a new branch 'no-ff-branch'
[no-ff-branch 53b4423] N
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileN
[no-ff-branch cc47714] O
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileO
[no-ff-branch faef1a5] P
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 fileP
ok 1 - setup

expecting success of 3404.2 'rebase --keep-empty': 
	git checkout -b emptybranch primary &&
	git commit --allow-empty -m "empty" &&
	git rebase --keep-empty -i HEAD~2 &&
	git log --oneline >actual &&
	test_line_count = 6 actual

Switched to a new branch 'emptybranch'
[emptybranch da33401] empty
 Author: A U Thor <author@example.com>

                                                                                
Successfully rebased and updated refs/heads/emptybranch.
ok 2 - rebase --keep-empty

expecting success of 3404.3 'rebase -i with empty todo list': 
	cat >expect <<-\EOF &&
	error: nothing to do
	EOF
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="#" \
			git rebase -i HEAD^ >output 2>&1
	) &&
	tail -n 1 output >actual &&  # Ignore output about changing todo list
	test_i18ncmp expect actual

checking prerequisite: C_LOCALE_OUTPUT

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false

)
prerequisite C_LOCALE_OUTPUT ok
ok 3 - rebase -i with empty todo list

expecting success of 3404.4 'rebase -i with the exec command': 
	git checkout primary &&
	(
	set_fake_editor &&
	FAKE_LINES="1 exec_>touch-one
		2 exec_>touch-two exec_false exec_>touch-three
		3 4 exec_>\"touch-file__name_with_spaces\";_>touch-after-semicolon 5" &&
	export FAKE_LINES &&
	test_must_fail git rebase -i A
	) &&
	test_path_is_file touch-one &&
	test_path_is_file touch-two &&
	test_path_is_missing touch-three " (should have stopped before)" &&
	test_cmp_rev C HEAD &&
	git rebase --continue &&
	test_path_is_file touch-three &&
	test_path_is_file "touch-file  name with spaces" &&
	test_path_is_file touch-after-semicolon &&
	test_cmp_rev primary HEAD &&
	rm -f touch-*

Switched to branch 'primary'
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
pick 313fe96 B
exec >touch-one
pick d0f65f2 C
exec >touch-two
exec false
exec >touch-three
pick 0547e3f D
pick 8f99a4f E
exec >"touch-file  name with spaces"; >touch-after-semicolon
Rebasing (2/9)

                                                                                
Executing: >touch-one
Rebasing (3/9)
Rebasing (4/9)

                                                                                
Executing: >touch-two
Rebasing (5/9)

                                                                                
Executing: false
warning: execution failed: false
You can fix the problem, and then run

  git rebase --continue


Rebasing (6/9)

                                                                                
Executing: >touch-three
Rebasing (7/9)
Rebasing (8/9)
Rebasing (9/9)

                                                                                
Executing: >"touch-file  name with spaces"; >touch-after-semicolon

                                                                                
Successfully rebased and updated refs/heads/primary.
ok 4 - rebase -i with the exec command

expecting success of 3404.5 'rebase -i with the exec command runs from tree root': 
	git checkout primary &&
	mkdir subdir && (cd subdir &&
	set_fake_editor &&
	FAKE_LINES="1 exec_>touch-subdir" \
		git rebase -i HEAD^
	) &&
	test_path_is_file touch-subdir &&
	rm -fr subdir

Already on 'primary'
rebase -i script before editing:
pick 8f99a4f E

rebase -i script after editing:
pick 8f99a4f E
exec >touch-subdir
Rebasing (2/2)

                                                                                
Executing: >touch-subdir

                                                                                
Successfully rebased and updated refs/heads/primary.
ok 5 - rebase -i with the exec command runs from tree root

expecting success of 3404.6 'rebase -i with exec allows git commands in subdirs': 
	test_when_finished "rm -rf subdir" &&
	test_when_finished "git rebase --abort ||:" &&
	git checkout primary &&
	mkdir subdir && (cd subdir &&
	set_fake_editor &&
	FAKE_LINES="1 x_cd_subdir_&&_git_rev-parse_--is-inside-work-tree" \
		git rebase -i HEAD^
	)

Already on 'primary'
rebase -i script before editing:
pick 8f99a4f E

rebase -i script after editing:
pick 8f99a4f E
x cd subdir && git rev-parse --is-inside-work-tree
Rebasing (2/2)

                                                                                
Executing: cd subdir && git rev-parse --is-inside-work-tree
true

                                                                                
Successfully rebased and updated refs/heads/primary.
fatal: No rebase in progress?
ok 6 - rebase -i with exec allows git commands in subdirs

expecting success of 3404.7 'rebase -i sets work tree properly': 
	test_when_finished "rm -rf subdir" &&
	test_when_finished "test_might_fail git rebase --abort" &&
	mkdir subdir &&
	git rebase -x "(cd subdir && git rev-parse --show-toplevel)" HEAD^ \
		>actual &&
	! grep "/subdir$" actual

Rebasing (2/2)

                                                                                
Executing: (cd subdir && git rev-parse --show-toplevel)

                                                                                
Successfully rebased and updated refs/heads/primary.
fatal: No rebase in progress?
ok 7 - rebase -i sets work tree properly

expecting success of 3404.8 'rebase -i with the exec command checks tree cleanness': 
	git checkout primary &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="exec_echo_foo_>file1 1" \
			git rebase -i HEAD^
	) &&
	test_cmp_rev primary^ HEAD &&
	git reset --hard &&
	git rebase --continue

Already on 'primary'
rebase -i script before editing:
pick 8f99a4f E

rebase -i script after editing:
exec echo foo >file1
pick 8f99a4f E
Rebasing (1/2)

                                                                                
Executing: echo foo >file1
error: cannot rebase: You have unstaged changes.
warning: execution succeeded: echo foo >file1
but left changes to the index and/or the working tree
Commit or stash your changes, and then run

  git rebase --continue


HEAD is now at 0547e3f D
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/primary.
ok 8 - rebase -i with the exec command checks tree cleanness

expecting success of 3404.9 'rebase -x with empty command fails': 
	test_when_finished "git rebase --abort ||:" &&
	test_must_fail env git rebase -x "" @ 2>actual &&
	test_write_lines "error: empty exec command" >expected &&
	test_i18ncmp expected actual &&
	test_must_fail env git rebase -x " " @ 2>actual &&
	test_i18ncmp expected actual

fatal: No rebase in progress?
ok 9 - rebase -x with empty command fails

expecting success of 3404.10 'rebase -x with newline in command fails': 
	test_when_finished "git rebase --abort ||:" &&
	test_must_fail env git rebase -x "a${LF}b" @ 2>actual &&
	test_write_lines "error: exec commands cannot contain newlines" \
			 >expected &&
	test_i18ncmp expected actual

fatal: No rebase in progress?
ok 10 - rebase -x with newline in command fails

expecting success of 3404.11 'rebase -i with exec of inexistent command': 
	git checkout primary &&
	test_when_finished "git rebase --abort" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="exec_this-command-does-not-exist 1" \
			git rebase -i HEAD^ >actual 2>&1
	) &&
	! grep "Maybe git-rebase is broken" actual

Already on 'primary'
ok 11 - rebase -i with exec of inexistent command

expecting success of 3404.12 'implicit interactive rebase does not invoke sequence editor': 
	test_when_finished "git rebase --abort ||:" &&
	GIT_SEQUENCE_EDITOR="echo bad >" git rebase -x"echo one" @^

Rebasing (2/2)

                                                                                
Executing: echo one
one

                                                                                
Successfully rebased and updated refs/heads/primary.
fatal: No rebase in progress?
ok 12 - implicit interactive rebase does not invoke sequence editor

expecting success of 3404.13 'no changes are a nop': 
	git checkout branch2 &&
	git rebase -i F &&
	test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" &&
	test_cmp_rev I HEAD

Switched to branch 'branch2'

                                                                                
Successfully rebased and updated refs/heads/branch2.
ok 13 - no changes are a nop

expecting success of 3404.14 'test the [branch] option': 
	git checkout -b dead-end &&
	git rm file6 &&
	git commit -m "stop here" &&
	git rebase -i F branch2 &&
	test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" &&
	test_cmp_rev I branch2 &&
	test_cmp_rev I HEAD

Switched to a new branch 'dead-end'
rm 'file6'
[dead-end f814f58] stop here
 Author: A U Thor <author@example.com>
 1 file changed, 1 deletion(-)
 delete mode 100644 file6

                                                                                
Successfully rebased and updated refs/heads/branch2.
ok 14 - test the [branch] option

expecting success of 3404.15 'test --onto <branch>': 
	git checkout -b test-onto branch2 &&
	git rebase -i --onto branch1 F &&
	test "$(git symbolic-ref -q HEAD)" = "refs/heads/test-onto" &&
	test_cmp_rev HEAD^ branch1 &&
	test_cmp_rev I branch2

Switched to a new branch 'test-onto'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/test-onto.
ok 15 - test --onto <branch>

expecting success of 3404.16 'rebase on top of a non-conflicting commit': 
	git checkout branch1 &&
	git tag original-branch1 &&
	git rebase -i branch2 &&
	test file6 = $(git diff --name-only original-branch1) &&
	test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
	test_cmp_rev I branch2 &&
	test_cmp_rev I HEAD~2

Switched to branch 'branch1'
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/branch1.
ok 16 - rebase on top of a non-conflicting commit

expecting success of 3404.17 'reflog for the branch shows state before rebase': 
	test_cmp_rev branch1@{1} original-branch1

ok 17 - reflog for the branch shows state before rebase

expecting success of 3404.18 'reflog for the branch shows correct finish message': 
	printf "rebase (finish): refs/heads/branch1 onto %s\n" \
		"$(git rev-parse branch2)" >expected &&
	git log -g --pretty=%gs -1 refs/heads/branch1 >actual &&
	test_cmp expected actual

ok 18 - reflog for the branch shows correct finish message

expecting success of 3404.19 'exchange two commits': 
	(
		set_fake_editor &&
		FAKE_LINES="2 1" git rebase -i HEAD~2
	) &&
	test H = $(git cat-file commit HEAD^ | sed -ne \$p) &&
	test G = $(git cat-file commit HEAD | sed -ne \$p) &&
	blob1=$(git rev-parse --short HEAD^:file1) &&
	blob2=$(git rev-parse --short HEAD:file1) &&
	commit=$(git rev-parse --short HEAD)

rebase -i script before editing:
pick ae8f65e G
pick f5f5249 H

rebase -i script after editing:
pick f5f5249 H
pick ae8f65e G
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/branch1.
ok 19 - exchange two commits

expecting success of 3404.20 'stop on conflicting pick': 
	cat >expect <<-EOF &&
	diff --git a/file1 b/file1
	index $blob1..$blob2 100644
	--- a/file1
	+++ b/file1
	@@ -1 +1 @@
	-A
	+G
	EOF
	cat >expect2 <<-EOF &&
	<<<<<<< HEAD
	D
	=======
	G
	>>>>>>> $commit (G)
	EOF
	git tag new-branch1 &&
	test_must_fail git rebase -i primary &&
	test "$(git rev-parse HEAD~3)" = "$(git rev-parse primary)" &&
	test_cmp expect .git/rebase-merge/patch &&
	test_cmp expect2 file1 &&
	test "$(git diff --name-status |
		sed -n -e "/^U/s/^U[^a-z]*//p")" = file1 &&
	test 4 = $(grep -v "^#" < .git/rebase-merge/done | wc -l) &&
	test 0 = $(grep -c "^[^#]" < .git/rebase-merge/git-rebase-todo)

Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
error: could not apply 5d18e54... G
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".
Could not apply 5d18e54... G
Auto-merging file1
CONFLICT (content): Merge conflict in file1
ok 20 - stop on conflicting pick

expecting success of 3404.21 'show conflicted patch': 
	GIT_TRACE=1 git rebase --show-current-patch >/dev/null 2>stderr &&
	grep "show.*REBASE_HEAD" stderr &&
	# the original stopped-sha1 is abbreviated
	stopped_sha1="$(git rev-parse $(cat ".git/rebase-merge/stopped-sha"))" &&
	test "$(git rev-parse REBASE_HEAD)" = "$stopped_sha1"

trace: run_command: git show REBASE_HEAD --
trace: built-in: git show REBASE_HEAD --
ok 21 - show conflicted patch

expecting success of 3404.22 'abort': 
	git rebase --abort &&
	test_cmp_rev new-branch1 HEAD &&
	test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
	test_path_is_missing .git/rebase-merge

ok 22 - abort

expecting success of 3404.23 'abort with error when new base cannot be checked out': 
	git rm --cached file1 &&
	git commit -m "remove file in base" &&
	test_must_fail git rebase -i primary > output 2>&1 &&
	test_i18ngrep "The following untracked working tree files would be overwritten by checkout:" \
		output &&
	test_i18ngrep "file1" output &&
	test_path_is_missing .git/rebase-merge &&
	git reset --hard HEAD^

rm 'file1'
[branch1 2dd5570] remove file in base
 Author: A U Thor <author@example.com>
 1 file changed, 1 deletion(-)
 delete mode 100644 file1
error: The following untracked working tree files would be overwritten by checkout:
	file1
HEAD is now at 5d18e54 G
ok 23 - abort with error when new base cannot be checked out

expecting success of 3404.24 'retain authorship': 
	echo A > file7 &&
	git add file7 &&
	test_tick &&
	GIT_AUTHOR_NAME="Twerp Snog" git commit -m "different author" &&
	git tag twerp &&
	git rebase -i --onto primary HEAD^ &&
	git show HEAD | grep "^Author: Twerp Snog"

[branch1 2596307] different author
 Author: Twerp Snog <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file7
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/branch1.
Author: Twerp Snog <author@example.com>
ok 24 - retain authorship

expecting success of 3404.25 'retain authorship w/ conflicts': 
	oGIT_AUTHOR_NAME=$GIT_AUTHOR_NAME &&
	test_when_finished "GIT_AUTHOR_NAME=\$oGIT_AUTHOR_NAME" &&

	git reset --hard twerp &&
	test_commit a conflict a conflict-a &&
	git reset --hard twerp &&

	GIT_AUTHOR_NAME=AttributeMe &&
	export GIT_AUTHOR_NAME &&
	test_commit b conflict b conflict-b &&
	GIT_AUTHOR_NAME=$oGIT_AUTHOR_NAME &&

	test_must_fail git rebase -i conflict-a &&
	echo resolved >conflict &&
	git add conflict &&
	git rebase --continue &&
	test_cmp_rev conflict-a^0 HEAD^ &&
	git show >out &&
	grep AttributeMe out

HEAD is now at 2596307 different author
[branch1 748a43d] a
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 conflict
HEAD is now at 2596307 different author
[branch1 34d1a6c] b
 Author: AttributeMe <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 conflict
Rebasing (1/1)
error: could not apply 34d1a6c... b
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".
Could not apply 34d1a6c... b
CONFLICT (add/add): Merge conflict in conflict
Auto-merging conflict
[detached HEAD 7866b12] b
 Author: AttributeMe <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/branch1.
Author: AttributeMe <author@example.com>
ok 25 - retain authorship w/ conflicts

expecting success of 3404.26 'squash': 
	git reset --hard twerp &&
	echo B > file7 &&
	test_tick &&
	GIT_AUTHOR_NAME="Nitfol" git commit -m "nitfol" file7 &&
	echo "******************************" &&
	(
		set_fake_editor &&
		FAKE_LINES="1 squash 2" EXPECT_HEADER_COUNT=2 \
			git rebase -i --onto primary HEAD~2
	) &&
	test B = $(cat file7) &&
	test_cmp_rev HEAD^ primary

HEAD is now at 2596307 different author
[branch1 cdf577a] nitfol
 Author: Nitfol <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
******************************
rebase -i script before editing:
pick 2596307 different author
pick cdf577a nitfol

rebase -i script after editing:
pick 2596307 different author
squash cdf577a nitfol
Rebasing (1/2)
Rebasing (2/2)
[detached HEAD d2d5ba7] different author
 Author: Twerp Snog <author@example.com>
 Date: Thu Apr 7 15:33:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file7

                                                                                
Successfully rebased and updated refs/heads/branch1.
ok 26 - squash

expecting success of 3404.27 'retain authorship when squashing': 
	git show HEAD | grep "^Author: Twerp Snog"

Author: Twerp Snog <author@example.com>
ok 27 - retain authorship when squashing

checking prerequisite: REBASE_P

mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-REBASE_P" &&
	test -z "$GIT_TEST_SKIP_REBASE_P"

)
prerequisite REBASE_P ok
expecting success of 3404.28 '-p handles "no changes" gracefully': 
	HEAD=$(git rev-parse HEAD) &&
	git rebase -i -p HEAD^ &&
	git update-index --refresh &&
	git diff-files --quiet &&
	git diff-index --quiet --cached HEAD -- &&
	test $HEAD = $(git rev-parse HEAD)

warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/1)
Successfully rebased and updated refs/heads/branch1.
ok 28 - -p handles "no changes" gracefully

checking known breakage of 3404.29 'exchange two commits with -p': 
	git checkout H &&
	(
		set_fake_editor &&
		FAKE_LINES="2 1" git rebase -i -p HEAD~2
	) &&
	test H = $(git cat-file commit HEAD^ | sed -ne \$p) &&
	test G = $(git cat-file commit HEAD | sed -ne \$p)

Note: switching to 'H'.

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 4373208 H
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
rebase -i script before editing:
pick 83751a6 G
pick 4373208 H

rebase -i script after editing:
pick 4373208 H
pick 83751a6 G
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
not ok 29 - exchange two commits with -p # TODO known breakage

expecting success of 3404.30 'preserve merges with -p': 
	git checkout -b to-be-preserved primary^ &&
	: > unrelated-file &&
	git add unrelated-file &&
	test_tick &&
	git commit -m "unrelated" &&
	git checkout -b another-branch primary &&
	echo B > file1 &&
	test_tick &&
	git commit -m J file1 &&
	test_tick &&
	git merge to-be-preserved &&
	echo C > file1 &&
	test_tick &&
	git commit -m K file1 &&
	echo D > file1 &&
	test_tick &&
	git commit -m L1 file1 &&
	git checkout HEAD^ &&
	echo 1 > unrelated-file &&
	test_tick &&
	git commit -m L2 unrelated-file &&
	test_tick &&
	git merge another-branch &&
	echo E > file1 &&
	test_tick &&
	git commit -m M file1 &&
	git checkout -b to-be-rebased &&
	test_tick &&
	git rebase -i -p --onto branch1 primary &&
	git update-index --refresh &&
	git diff-files --quiet &&
	git diff-index --quiet --cached HEAD -- &&
	test_cmp_rev HEAD~6 branch1 &&
	test_cmp_rev HEAD~4^2 to-be-preserved &&
	test_cmp_rev HEAD^^2^ HEAD^^^ &&
	test $(git show HEAD~5:file1) = B &&
	test $(git show HEAD~3:file1) = C &&
	test $(git show HEAD:file1) = E &&
	test $(git show HEAD:unrelated-file) = 1

Previous HEAD position was 83751a6 G
Switched to a new branch 'to-be-preserved'
[to-be-preserved 8dba1b0] unrelated
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 unrelated-file
Switched to a new branch 'another-branch'
[another-branch b55ddc1] J
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Merging:
b55ddc1 J
virtual to-be-preserved
found 1 common ancestor:
0547e3f D
Merge made by the 'recursive' strategy.
 unrelated-file | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 unrelated-file
[another-branch 28ab3c9] K
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[another-branch b22c0b1] L1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Note: switching to 'HEAD^'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <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 28ab3c9 K
[detached HEAD 9986375] L2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Merging:
9986375 L2
virtual another-branch
found 1 common ancestor:
28ab3c9 K
Merge made by the 'recursive' strategy.
 file1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 806db33] M
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'to-be-rebased'
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (1/7)
Rebasing (2/7)
Rebasing (3/7)
Rebasing (4/7)
Rebasing (5/7)
Rebasing (6/7)
Rebasing (7/7)
Successfully rebased and updated refs/heads/to-be-rebased.
ok 30 - preserve merges with -p

expecting success of 3404.31 'edit ancestor with -p': 
	(
		set_fake_editor &&
		FAKE_LINES="1 2 edit 3 4" git rebase -i -p HEAD~3
	) &&
	echo 2 > unrelated-file &&
	test_tick &&
	git commit -m L2-modified --amend unrelated-file &&
	git rebase --continue &&
	git update-index --refresh &&
	git diff-files --quiet &&
	git diff-index --quiet --cached HEAD -- &&
	test $(git show HEAD:unrelated-file) = 2

warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
rebase -i script before editing:
pick 028896d L2
pick 44a20cd L1
pick 5f48528 Merge branch 'another-branch' into HEAD
pick 2c6682a M

rebase -i script after editing:
pick 028896d L2
pick 44a20cd L1
edit 5f48528 Merge branch 'another-branch' into HEAD
pick 2c6682a M
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Stopped at 5f48528... Merge branch 'another-branch' into HEAD
You can amend the commit now, with

	git commit --amend 

Once you are satisfied with your changes, run

	git rebase --continue

[detached HEAD ed60d45] L2-modified
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:43:13 2005 -0700
warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Rebasing (4/4)
Successfully rebased and updated refs/heads/to-be-rebased.
ok 31 - edit ancestor with -p

expecting success of 3404.32 '--continue tries to commit': 
	git reset --hard D &&
	test_tick &&
	(
		set_fake_editor &&
		test_must_fail git rebase -i --onto new-branch1 HEAD^ &&
		echo resolved > file1 &&
		git add file1 &&
		FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue
	) &&
	test_cmp_rev HEAD^ new-branch1 &&
	git show HEAD | grep chouette

HEAD is now at 0547e3f D
Rebasing (1/1)
error: could not apply 0547e3f... D
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".
Could not apply 0547e3f... D
Auto-merging file1
CONFLICT (content): Merge conflict in file1
[detached HEAD eb2be51] chouette!
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated refs/heads/to-be-rebased.
    chouette!
ok 32 - --continue tries to commit

expecting success of 3404.33 'verbose flag is heeded, even after --continue': 
	git reset --hard primary@{1} &&
	test_tick &&
	test_must_fail git rebase -v -i --onto new-branch1 HEAD^ &&
	echo resolved > file1 &&
	git add file1 &&
	git rebase --continue > output &&
	grep "^ file1 | 2 +-$" output

HEAD is now at 0547e3f D
Changes from 6e62bf890e21973b771e4e6fc28f5ade62edb4bc to 5d18e5414f663da21d1363c271f2d684aeda7b5b:
 file1 | 2 +-
 file4 | 1 +
 file5 | 1 +
 file6 | 1 +
 4 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 file4
 create mode 100644 file5
 create mode 100644 file6
Note: switching to '5d18e5414f663da21d1363c271f2d684aeda7b5b'.

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 5d18e54 G
Rebasing (1/1)
error: could not apply 0547e3f... D
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".
Could not apply 0547e3f... D
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Successfully rebased and updated refs/heads/to-be-rebased.
 file1 | 2 +-
ok 33 - verbose flag is heeded, even after --continue

expecting success of 3404.34 'multi-squash only fires up editor once': 
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		FAKE_COMMIT_AMEND="ONCE" \
			FAKE_LINES="1 squash 2 squash 3 squash 4" \
			EXPECT_HEADER_COUNT=4 \
			git rebase -i $base
	) &&
	test $base = $(git rev-parse HEAD^) &&
	test 1 = $(git show | grep ONCE | wc -l)

rebase -i script before editing:
pick 615be62 I
pick 0626e8d H
pick 5d18e54 G
pick 2e6badc D

rebase -i script after editing:
pick 615be62 I
squash 0626e8d H
squash 5d18e54 G
squash 2e6badc D
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
[detached HEAD e5aa6ef] I
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:21:13 2005 -0700
 3 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 file5
 create mode 100644 file6

                                                                                
Successfully rebased and updated refs/heads/to-be-rebased.
ok 34 - multi-squash only fires up editor once

expecting success of 3404.35 'multi-fixup does not fire up editor': 
	git checkout -b multi-fixup E &&
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		FAKE_COMMIT_AMEND="NEVER" \
			FAKE_LINES="1 fixup 2 fixup 3 fixup 4" \
			git rebase -i $base
	) &&
	test $base = $(git rev-parse HEAD^) &&
	test 0 = $(git show | grep NEVER | wc -l) &&
	git checkout @{-1} &&
	git branch -D multi-fixup

Switched to a new branch 'multi-fixup'
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
pick 313fe96 B
fixup d0f65f2 C
fixup 0547e3f D
fixup 8f99a4f E
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/multi-fixup.
Switched to branch 'to-be-rebased'
Deleted branch multi-fixup (was acbd024).
ok 35 - multi-fixup does not fire up editor

expecting success of 3404.36 'commit message used after conflict': 
	git checkout -b conflict-fixup conflict-branch &&
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 fixup 3 fixup 4" \
			git rebase -i $base &&
		echo three > conflict &&
		git add conflict &&
		FAKE_COMMIT_AMEND="ONCE" EXPECT_HEADER_COUNT=2 \
			git rebase --continue
	) &&
	test $base = $(git rev-parse HEAD^) &&
	test 1 = $(git show | grep ONCE | wc -l) &&
	git checkout @{-1} &&
	git branch -D conflict-fixup

Switched to a new branch 'conflict-fixup'
rebase -i script before editing:
pick b895952 one
pick 766a798 two
pick 1eadf03 three
pick f91a2b3 four

rebase -i script after editing:
pick b895952 one
fixup 1eadf03 three
fixup f91a2b3 four
Rebasing (2/3)
error: could not apply 1eadf03... three
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".
Could not apply 1eadf03... three
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD c36af95] one
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:22:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 conflict
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/conflict-fixup.
Switched to branch 'to-be-rebased'
Deleted branch conflict-fixup (was 221ec56).
ok 36 - commit message used after conflict

expecting success of 3404.37 'commit message retained after conflict': 
	git checkout -b conflict-squash conflict-branch &&
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 fixup 3 squash 4" \
			git rebase -i $base &&
		echo three > conflict &&
		git add conflict &&
		FAKE_COMMIT_AMEND="TWICE" EXPECT_HEADER_COUNT=2 \
			git rebase --continue
	) &&
	test $base = $(git rev-parse HEAD^) &&
	test 2 = $(git show | grep TWICE | wc -l) &&
	git checkout @{-1} &&
	git branch -D conflict-squash

Switched to a new branch 'conflict-squash'
rebase -i script before editing:
pick b895952 one
pick 766a798 two
pick 1eadf03 three
pick f91a2b3 four

rebase -i script after editing:
pick b895952 one
fixup 1eadf03 three
squash f91a2b3 four
Rebasing (2/3)
error: could not apply 1eadf03... three
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".
Could not apply 1eadf03... three
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD 191a914] one
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:22:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 conflict
Rebasing (3/3)
[detached HEAD 60ec801] one
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:22:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 conflict

                                                                                
Successfully rebased and updated refs/heads/conflict-squash.
Switched to branch 'to-be-rebased'
Deleted branch conflict-squash (was 60ec801).
ok 37 - commit message retained after conflict

expecting success of 3404.38 'squash and fixup generate correct log messages': 
	cat >expect-squash-fixup <<-\EOF &&
	B

	D

	ONCE
	EOF
	git checkout -b squash-fixup E &&
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		FAKE_COMMIT_AMEND="ONCE" \
			FAKE_LINES="1 fixup 2 squash 3 fixup 4" \
			EXPECT_HEADER_COUNT=4 \
			git rebase -i $base
	) &&
	git cat-file commit HEAD | sed -e 1,/^\$/d > actual-squash-fixup &&
	test_cmp expect-squash-fixup actual-squash-fixup &&
	git cat-file commit HEAD@{2} |
		grep "^# This is a combination of 3 commits\."  &&
	git cat-file commit HEAD@{3} |
		grep "^# This is a combination of 2 commits\."  &&
	git checkout @{-1} &&
	git branch -D squash-fixup

Switched to a new branch 'squash-fixup'
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
pick 313fe96 B
fixup d0f65f2 C
squash 0547e3f D
fixup 8f99a4f E
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
[detached HEAD 74d534c] B
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 3 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 file2
 create mode 100644 file3

                                                                                
Successfully rebased and updated refs/heads/squash-fixup.
# This is a combination of 3 commits.
# This is a combination of 2 commits.
Switched to branch 'to-be-rebased'
Deleted branch squash-fixup (was 74d534c).
ok 38 - squash and fixup generate correct log messages

expecting success of 3404.39 'squash ignores comments': 
	git checkout -b skip-comments E &&
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		FAKE_COMMIT_AMEND="ONCE" \
			FAKE_LINES="# 1 # squash 2 # squash 3 # squash 4 #" \
			EXPECT_HEADER_COUNT=4 \
			git rebase -i $base
	) &&
	test $base = $(git rev-parse HEAD^) &&
	test 1 = $(git show | grep ONCE | wc -l) &&
	git checkout @{-1} &&
	git branch -D skip-comments

Switched to a new branch 'skip-comments'
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
# comment
pick 313fe96 B
# comment
squash d0f65f2 C
# comment
squash 0547e3f D
# comment
squash 8f99a4f E
# comment
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
[detached HEAD f397ac4] B
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 3 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 file2
 create mode 100644 file3

                                                                                
Successfully rebased and updated refs/heads/skip-comments.
Switched to branch 'to-be-rebased'
Deleted branch skip-comments (was f397ac4).
ok 39 - squash ignores comments

expecting success of 3404.40 'squash ignores blank lines': 
	git checkout -b skip-blank-lines E &&
	base=$(git rev-parse HEAD~4) &&
	(
		set_fake_editor &&
		FAKE_COMMIT_AMEND="ONCE" \
			FAKE_LINES="> 1 > squash 2 > squash 3 > squash 4 >" \
			EXPECT_HEADER_COUNT=4 \
			git rebase -i $base
	) &&
	test $base = $(git rev-parse HEAD^) &&
	test 1 = $(git show | grep ONCE | wc -l) &&
	git checkout @{-1} &&
	git branch -D skip-blank-lines

Switched to a new branch 'skip-blank-lines'
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:

pick 313fe96 B

squash d0f65f2 C

squash 0547e3f D

squash 8f99a4f E

Rebasing (3/7)
Rebasing (4/7)
Rebasing (5/7)
[detached HEAD f397ac4] B
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 3 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 file2
 create mode 100644 file3

                                                                                
Successfully rebased and updated refs/heads/skip-blank-lines.
Switched to branch 'to-be-rebased'
Deleted branch skip-blank-lines (was f397ac4).
ok 40 - squash ignores blank lines

expecting success of 3404.41 'squash works as expected': 
	git checkout -b squash-works no-conflict-branch &&
	one=$(git rev-parse HEAD~3) &&
	(
		set_fake_editor &&
		FAKE_LINES="1 s 3 2" EXPECT_HEADER_COUNT=2 git rebase -i HEAD~3
	) &&
	test $one = $(git rev-parse HEAD~2)

Switched to a new branch 'squash-works'
rebase -i script before editing:
pick 265b89e K
pick 6b0f5e6 L
pick 3389558 M

rebase -i script after editing:
pick 265b89e K
s 3389558 M
pick 6b0f5e6 L
Rebasing (2/3)
[detached HEAD fb01347] K
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:27:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 fileK
 create mode 100644 fileM
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/squash-works.
ok 41 - squash works as expected

expecting success of 3404.42 'interrupted squash works as expected': 
	git checkout -b interrupted-squash conflict-branch &&
	one=$(git rev-parse HEAD~3) &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 squash 3 2" \
			git rebase -i HEAD~3
	) &&
	test_write_lines one two four > conflict &&
	git add conflict &&
	test_must_fail git rebase --continue &&
	echo resolved > conflict &&
	git add conflict &&
	git rebase --continue &&
	test $one = $(git rev-parse HEAD~2)

Switched to a new branch 'interrupted-squash'
rebase -i script before editing:
pick 766a798 two
pick 1eadf03 three
pick f91a2b3 four

rebase -i script after editing:
pick 766a798 two
squash f91a2b3 four
pick 1eadf03 three
Rebasing (2/3)
error: could not apply f91a2b3... four
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".
Could not apply f91a2b3... four
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD d1cbea4] two
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:23:13 2005 -0700
 1 file changed, 2 insertions(+)
Rebasing (3/3)
error: could not apply 1eadf03... three
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".
Could not apply 1eadf03... three
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD 634f347] three
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 3 deletions(-)

                                                                                
Successfully rebased and updated refs/heads/interrupted-squash.
ok 42 - interrupted squash works as expected

expecting success of 3404.43 'interrupted squash works as expected (case 2)': 
	git checkout -b interrupted-squash2 conflict-branch &&
	one=$(git rev-parse HEAD~3) &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="3 squash 1 2" \
			git rebase -i HEAD~3
	) &&
	test_write_lines one four > conflict &&
	git add conflict &&
	test_must_fail git rebase --continue &&
	test_write_lines one two four > conflict &&
	git add conflict &&
	test_must_fail git rebase --continue &&
	echo resolved > conflict &&
	git add conflict &&
	git rebase --continue &&
	test $one = $(git rev-parse HEAD~2)

Switched to a new branch 'interrupted-squash2'
rebase -i script before editing:
pick 766a798 two
pick 1eadf03 three
pick f91a2b3 four

rebase -i script after editing:
pick f91a2b3 four
squash 766a798 two
pick 1eadf03 three
Rebasing (1/3)
error: could not apply f91a2b3... four
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".
Could not apply f91a2b3... four
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD d5ff450] four
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
Rebasing (2/3)
error: could not apply 766a798... two
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".
Could not apply 766a798... two
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD ea11a0c] four
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:25:13 2005 -0700
 1 file changed, 2 insertions(+)
Rebasing (3/3)
error: could not apply 1eadf03... three
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".
Could not apply 1eadf03... three
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
[detached HEAD f26b32e] three
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 3 deletions(-)

                                                                                
Successfully rebased and updated refs/heads/interrupted-squash2.
ok 43 - interrupted squash works as expected (case 2)

expecting success of 3404.44 '--continue tries to commit, even for "edit"': 
	echo unrelated > file7 &&
	git add file7 &&
	test_tick &&
	git commit -m "unrelated change" &&
	parent=$(git rev-parse HEAD^) &&
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1" git rebase -i HEAD^ &&
		echo edited > file7 &&
		git add file7 &&
		FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue
	) &&
	test edited = $(git show HEAD:file7) &&
	git show HEAD | grep chouette &&
	test $parent = $(git rev-parse HEAD^)

[interrupted-squash2 1c8cc7a] unrelated change
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file7
rebase -i script before editing:
pick 1c8cc7a unrelated change

rebase -i script after editing:
edit 1c8cc7a unrelated change
Rebasing (1/1)

                                                                                
Stopped at 1c8cc7a...  unrelated change
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
[detached HEAD d64edb7] chouette!
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:49:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file7

                                                                                
Successfully rebased and updated refs/heads/interrupted-squash2.
    chouette!
ok 44 - --continue tries to commit, even for "edit"

expecting success of 3404.45 'aborted --continue does not squash commits after "edit"': 
	old=$(git rev-parse HEAD) &&
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1" git rebase -i HEAD^ &&
		echo "edited again" > file7 &&
		git add file7 &&
		test_must_fail env FAKE_COMMIT_MESSAGE=" " git rebase --continue
	) &&
	test $old = $(git rev-parse HEAD) &&
	git rebase --abort

rebase -i script before editing:
pick d64edb7 chouette!

rebase -i script after editing:
edit d64edb7 chouette!
Rebasing (1/1)

                                                                                
Stopped at d64edb7...  chouette!
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
Aborting commit due to empty commit message.
error: could not commit staged changes.
ok 45 - aborted --continue does not squash commits after "edit"

expecting success of 3404.46 'auto-amend only edited commits after "edit"': 
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1" git rebase -i HEAD^ &&
		echo "edited again" > file7 &&
		git add file7 &&
		FAKE_COMMIT_MESSAGE="edited file7 again" git commit &&
		echo "and again" > file7 &&
		git add file7 &&
		test_tick &&
		test_must_fail env FAKE_COMMIT_MESSAGE="and again" \
			git rebase --continue
	) &&
	git rebase --abort

rebase -i script before editing:
pick d64edb7 chouette!

rebase -i script after editing:
edit d64edb7 chouette!
Rebasing (1/1)

                                                                                
Stopped at d64edb7...  chouette!
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
[detached HEAD 53dfc25] edited file7 again
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
error: 
You have uncommitted changes in your working tree. Please, commit them
first and then run 'git rebase --continue' again.
ok 46 - auto-amend only edited commits after "edit"

expecting success of 3404.47 'clean error after failed "exec"': 
	test_tick &&
	test_when_finished "git rebase --abort || :" &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 exec_false" git rebase -i HEAD^
	) &&
	echo "edited again" > file7 &&
	git add file7 &&
	test_must_fail git rebase --continue 2>error &&
	test_i18ngrep "you have staged changes in your working tree" error

rebase -i script before editing:
pick d64edb7 chouette!

rebase -i script after editing:
pick d64edb7 chouette!
exec false
Rebasing (2/2)

                                                                                
Executing: false
warning: execution failed: false
You can fix the problem, and then run

  git rebase --continue


error: you have staged changes in your working tree
ok 47 - clean error after failed "exec"

expecting success of 3404.48 'rebase a detached HEAD': 
	grandparent=$(git rev-parse HEAD~2) &&
	git checkout $(git rev-parse HEAD) &&
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES="2 1" git rebase -i HEAD~2
	) &&
	test $grandparent = $(git rev-parse HEAD~2)

Note: switching to 'd64edb765ae5cc14a814411cd3214035536d1e31'.

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 d64edb7 chouette!
rebase -i script before editing:
pick f26b32e three
pick d64edb7 chouette!

rebase -i script after editing:
pick d64edb7 chouette!
pick f26b32e three
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated detached HEAD.
ok 48 - rebase a detached HEAD

expecting success of 3404.49 'rebase a commit violating pre-commit': 

	mkdir -p .git/hooks &&
	write_script .git/hooks/pre-commit <<-\EOF &&
	test -z "$(git diff --cached --check)"
	EOF
	echo "monde! " >> file1 &&
	test_tick &&
	test_must_fail git commit -m doesnt-verify file1 &&
	git commit -m doesnt-verify --no-verify file1 &&
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES=2 git rebase -i HEAD~2
	)

[detached HEAD 13c0478] doesnt-verify
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
rebase -i script before editing:
pick 29560d1 three
pick 13c0478 doesnt-verify

rebase -i script after editing:
pick 13c0478 doesnt-verify
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 49 - rebase a commit violating pre-commit

expecting success of 3404.50 'rebase with a file named HEAD in worktree': 

	rm -fr .git/hooks &&
	git reset --hard &&
	git checkout -b branch3 A &&

	(
		GIT_AUTHOR_NAME="Squashed Away" &&
		export GIT_AUTHOR_NAME &&
		>HEAD &&
		git add HEAD &&
		git commit -m "Add head" &&
		>BODY &&
		git add BODY &&
		git commit -m "Add body"
	) &&

	(
		set_fake_editor &&
		FAKE_LINES="1 squash 2" git rebase -i @{-1}
	) &&
	test "$(git show -s --pretty=format:%an)" = "Squashed Away"


HEAD is now at 979acac doesnt-verify
Warning: you are leaving 2 commits behind, not connected to
any of your branches:

  979acac doesnt-verify
  cf07873 chouette!

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 979acac

Switched to a new branch 'branch3'
[branch3 cedbd2f] Add head
 Author: Squashed Away <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 HEAD
[branch3 66a68f4] Add body
 Author: Squashed Away <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 BODY
rebase -i script before editing:
pick cedbd2f Add head
pick 66a68f4 Add body

rebase -i script after editing:
pick cedbd2f Add head
squash 66a68f4 Add body
Rebasing (1/2)
Rebasing (2/2)
[detached HEAD 60b81b7] Add head
 Author: Squashed Away <author@example.com>
 Date: Thu Apr 7 15:56:13 2005 -0700
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 BODY
 create mode 100644 HEAD

                                                                                
Successfully rebased and updated refs/heads/branch3.
ok 50 - rebase with a file named HEAD in worktree

expecting success of 3404.51 'do "noop" when there is nothing to cherry-pick': 

	git checkout -b branch4 HEAD &&
	GIT_EDITOR=: git commit --amend \
		--author="Somebody else <somebody@else.com>" &&
	test $(git rev-parse branch3) != $(git rev-parse branch4) &&
	git rebase -i branch3 &&
	test_cmp_rev branch3 branch4


Switched to a new branch 'branch4'
[branch4 9401f29] Add head
 Author: Somebody else <somebody@else.com>
 Date: Thu Apr 7 15:56:13 2005 -0700
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 BODY
 create mode 100644 HEAD

                                                                                
Successfully rebased and updated refs/heads/branch4.
ok 51 - do "noop" when there is nothing to cherry-pick

expecting success of 3404.52 'submodule rebase setup': 
	git checkout A &&
	mkdir sub &&
	(
		cd sub && git init && >elif &&
		git add elif && git commit -m "submodule initial"
	) &&
	echo 1 >file1 &&
	git add file1 sub &&
	test_tick &&
	git commit -m "One" &&
	echo 2 >file1 &&
	test_tick &&
	git commit -a -m "Two" &&
	(
		cd sub && echo 3 >elif &&
		git commit -a -m "submodule second"
	) &&
	test_tick &&
	git commit -a -m "Three changes submodule"

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 6e62bf8 A
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <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.t3404-rebase-interactive/sub/.git/
[master (root-commit) 0b64bc6] submodule initial
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 elif
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.
[detached HEAD 42fc8d1] One
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 160000 sub
[detached HEAD 9a16e40] Two
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 0c2cff6] submodule second
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[detached HEAD cf819fe] Three changes submodule
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 52 - submodule rebase setup

expecting success of 3404.53 'submodule rebase -i': 
	(
		set_fake_editor &&
		FAKE_LINES="1 squash 2 3" git rebase -i A
	)

rebase -i script before editing:
pick 42fc8d1 One
pick 9a16e40 Two
pick cf819fe Three changes submodule

rebase -i script after editing:
pick 42fc8d1 One
squash 9a16e40 Two
pick cf819fe Three changes submodule
Rebasing (2/3)
[detached HEAD b8191c6] One
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:57:13 2005 -0700
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 160000 sub
Rebasing (3/3)

                                                                                
Successfully rebased and updated detached HEAD.
ok 53 - submodule rebase -i

expecting success of 3404.54 'submodule conflict setup': 
	git tag submodule-base &&
	git checkout HEAD^ &&
	(
		cd sub && git checkout HEAD^ && echo 4 >elif &&
		git add elif && git commit -m "submodule conflict"
	) &&
	git add sub &&
	test_tick &&
	git commit -m "Conflict in submodule" &&
	git tag submodule-topic

Previous HEAD position was 40031c8 Three changes submodule
HEAD is now at b8191c6 One
M	sub
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 0b64bc6 submodule initial
[detached HEAD 5dcc8af] submodule conflict
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[detached HEAD 352ba4e] Conflict in submodule
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 54 - submodule conflict setup

expecting success of 3404.55 'rebase -i continue with only submodule staged': 
	test_must_fail git rebase -i submodule-base &&
	git add sub &&
	git rebase --continue &&
	test $(git rev-parse submodule-base) != $(git rev-parse HEAD)

Rebasing (1/1)
error: could not apply 352ba4e... Conflict in submodule
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".
Could not apply 352ba4e... Conflict in submodule
Failed to merge submodule sub (merge following commits not found)
Auto-merging sub
CONFLICT (submodule): Merge conflict in sub
[detached HEAD f9edb30] Conflict in submodule
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)

                                                                                
Successfully rebased and updated detached HEAD.
ok 55 - rebase -i continue with only submodule staged

expecting success of 3404.56 'rebase -i continue with unstaged submodule': 
	git checkout submodule-topic &&
	git reset --hard &&
	test_must_fail git rebase -i submodule-base &&
	git reset &&
	git rebase --continue &&
	test_cmp_rev submodule-base HEAD

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  f9edb30 Conflict in submodule

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> f9edb30

HEAD is now at 352ba4e Conflict in submodule
HEAD is now at 352ba4e Conflict in submodule
Rebasing (1/1)
error: could not apply 352ba4e... Conflict in submodule
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".
Could not apply 352ba4e... Conflict in submodule
Failed to merge submodule sub (merge following commits not found)
Auto-merging sub
CONFLICT (submodule): Merge conflict in sub
Unstaged changes after reset:
M	sub

                                                                                
Successfully rebased and updated detached HEAD.
ok 56 - rebase -i continue with unstaged submodule

expecting success of 3404.57 'avoid unnecessary reset': 
	git checkout primary &&
	git reset --hard &&
	test-tool chmtime =123456789 file3 &&
	git update-index --refresh &&
	HEAD=$(git rev-parse HEAD) &&
	git rebase -i HEAD~4 &&
	test $HEAD = $(git rev-parse HEAD) &&
	MTIME=$(test-tool chmtime --get file3) &&
	test 123456789 = $MTIME

warning: unable to rmdir 'sub': Directory not empty
Previous HEAD position was 40031c8 Three changes submodule
Switched to branch 'primary'
HEAD is now at 8f99a4f E

                                                                                
Successfully rebased and updated refs/heads/primary.
ok 57 - avoid unnecessary reset

expecting success of 3404.58 'reword': 
	git checkout -b reword-branch primary &&
	(
		set_fake_editor &&
		FAKE_LINES="1 2 3 reword 4" FAKE_COMMIT_MESSAGE="E changed" \
			git rebase -i A &&
		git show HEAD | grep "E changed" &&
		test $(git rev-parse primary) != $(git rev-parse HEAD) &&
		test_cmp_rev primary^ HEAD^ &&
		FAKE_LINES="1 2 reword 3 4" FAKE_COMMIT_MESSAGE="D changed" \
			git rebase -i A &&
		git show HEAD^ | grep "D changed" &&
		FAKE_LINES="reword 1 2 3 4" FAKE_COMMIT_MESSAGE="B changed" \
			git rebase -i A &&
		git show HEAD~3 | grep "B changed" &&
		FAKE_LINES="1 r 2 pick 3 p 4" FAKE_COMMIT_MESSAGE="C changed" \
			git rebase -i A
	) &&
	git show HEAD~2 | grep "C changed"

Switched to a new branch 'reword-branch'
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
reword 8f99a4f E
Rebasing (4/4)
[detached HEAD e5fbe06] E changed
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:17:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file3

                                                                                
Successfully rebased and updated refs/heads/reword-branch.
    E changed
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick e5fbe06 E changed

rebase -i script after editing:
pick 313fe96 B
pick d0f65f2 C
reword 0547e3f D
pick e5fbe06 E changed
Rebasing (3/4)
[detached HEAD 73d2e2b] D changed
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:16:13 2005 -0700
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/reword-branch.
    D changed
rebase -i script before editing:
pick 313fe96 B
pick d0f65f2 C
pick 73d2e2b D changed
pick a9c9952 E changed

rebase -i script after editing:
reword 313fe96 B
pick d0f65f2 C
pick 73d2e2b D changed
pick a9c9952 E changed
Rebasing (1/4)
[detached HEAD 9bbe91d] B changed
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:14:13 2005 -0700
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/reword-branch.
    B changed
rebase -i script before editing:
pick 9bbe91d B changed
pick 3d079ed C
pick e6bc7a3 D changed
pick 14d169d E changed

rebase -i script after editing:
pick 9bbe91d B changed
r 3d079ed C
pick e6bc7a3 D changed
p 14d169d E changed
Rebasing (2/4)
[detached HEAD a907224] C changed
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:15:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file2
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/reword-branch.
    C changed
ok 58 - reword

expecting success of 3404.59 'rebase -i can copy notes': 
	git config notes.rewrite.rebase true &&
	git config notes.rewriteRef "refs/notes/*" &&
	test_commit n1 &&
	test_commit n2 &&
	test_commit n3 &&
	git notes add -m"a note" n3 &&
	git rebase -i --onto n1 n2 &&
	test "a note" = "$(git notes show HEAD)"

[reword-branch 6e7d4de] n1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 n1.t
[reword-branch ebe0b2a] n2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 n2.t
[reword-branch 3735222] n3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 n3.t
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/reword-branch.
ok 59 - rebase -i can copy notes

expecting success of 3404.60 'rebase -i can copy notes over a fixup': 
	cat >expect <<-\EOF &&
	an earlier note

	a note
	EOF
	git reset --hard n3 &&
	git notes add -m"an earlier note" n2 &&
	(
		set_fake_editor &&
		GIT_NOTES_REWRITE_MODE=concatenate FAKE_LINES="1 f 2" \
			git rebase -i n1
	) &&
	git notes show > output &&
	test_cmp expect output

HEAD is now at 3735222 n3
rebase -i script before editing:
pick ebe0b2a n2
pick 3735222 n3

rebase -i script after editing:
pick ebe0b2a n2
f 3735222 n3
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/reword-branch.
ok 60 - rebase -i can copy notes over a fixup

expecting success of 3404.61 'rebase while detaching HEAD': 
	git symbolic-ref HEAD &&
	grandparent=$(git rev-parse HEAD~2) &&
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES="2 1" git rebase -i HEAD~2 HEAD^0
	) &&
	test $grandparent = $(git rev-parse HEAD~2) &&
	test_must_fail git symbolic-ref HEAD

refs/heads/reword-branch
rebase -i script before editing:
pick 6e7d4de n1
pick 81df84f n2

rebase -i script after editing:
pick 81df84f n2
pick 6e7d4de n1
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated detached HEAD.
fatal: ref HEAD is not a symbolic ref
ok 61 - rebase while detaching HEAD

expecting success of 3404.62 'always cherry-pick with --no-ff': 
	git checkout no-ff-branch &&
	git tag original-no-ff-branch &&
	git rebase -i --no-ff A &&
	for p in 0 1 2
	do
		test ! $(git rev-parse HEAD~$p) = $(git rev-parse original-no-ff-branch~$p) &&
		git diff HEAD~$p original-no-ff-branch~$p > out &&
		test_must_be_empty out
	done &&
	test_cmp_rev HEAD~3 original-no-ff-branch~3 &&
	git diff HEAD~3 original-no-ff-branch~3 > out &&
	test_must_be_empty out

Warning: you are leaving 2 commits behind, not connected to
any of your branches:

  2fe7bcb n1
  c0eb36e n2

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 2fe7bcb

Switched to branch 'no-ff-branch'
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/no-ff-branch.
ok 62 - always cherry-pick with --no-ff

expecting success of 3404.63 'set up commits with funny messages': 
	git checkout -b funny A &&
	echo >>file1 &&
	test_tick &&
	git commit -a -m "end with slash\\" &&
	echo >>file1 &&
	test_tick &&
	git commit -a -m "something (\000) that looks like octal" &&
	echo >>file1 &&
	test_tick &&
	git commit -a -m "something (\n) that looks like a newline" &&
	echo >>file1 &&
	test_tick &&
	git commit -a -m "another commit"

Switched to a new branch 'funny'
[funny 9be5dec] end with slash\
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[funny 038543e] something (\000) that looks like octal
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[funny 060003b] something (\n) that looks like a newline
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
[funny b852a0f] another commit
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
ok 63 - set up commits with funny messages

expecting success of 3404.64 'rebase-i history with funny messages': 
	git rev-list A..funny >expect &&
	test_tick &&
	(
		set_fake_editor &&
		FAKE_LINES="1 2 3 4" git rebase -i A
	) &&
	git rev-list A.. >actual &&
	test_cmp expect actual

rebase -i script before editing:
pick 9be5dec end with slash\
pick 038543e something (\000) that looks like octal
pick 060003b something (\n) that looks like a newline
pick b852a0f another commit

rebase -i script after editing:
pick 9be5dec end with slash\
pick 038543e something (\000) that looks like octal
pick 060003b something (\n) that looks like a newline
pick b852a0f another commit

                                                                                
Successfully rebased and updated refs/heads/funny.
ok 64 - rebase-i history with funny messages

expecting success of 3404.65 'prepare for rebase -i --exec': 
	git checkout primary &&
	git checkout -b execute &&
	test_commit one_exec main.txt one_exec &&
	test_commit two_exec main.txt two_exec &&
	test_commit three_exec main.txt three_exec

Switched to branch 'primary'
Switched to a new branch 'execute'
[execute bce9bd0] one_exec
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 main.txt
[execute 23773ee] two_exec
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[execute 658e4d9] three_exec
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 65 - prepare for rebase -i --exec

expecting success of 3404.66 'running "git rebase -i --exec git show HEAD"': 
	(
		set_fake_editor &&
		git rebase -i --exec "git show HEAD" HEAD~2 >actual &&
		FAKE_LINES="1 exec_git_show_HEAD 2 exec_git_show_HEAD" &&
		export FAKE_LINES &&
		git rebase -i HEAD~2 >expect
	) &&
	sed -e "1,9d" expect >expected &&
	test_cmp expected actual

Rebasing (2/4)

                                                                                
Executing: git show HEAD
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/execute.
Rebasing (2/4)

                                                                                
Executing: git show HEAD
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/execute.
ok 66 - running "git rebase -i --exec git show HEAD"

expecting success of 3404.67 'running "git rebase --exec git show HEAD -i"': 
	git reset --hard execute &&
	(
		set_fake_editor &&
		git rebase --exec "git show HEAD" -i HEAD~2 >actual &&
		FAKE_LINES="1 exec_git_show_HEAD 2 exec_git_show_HEAD" &&
		export FAKE_LINES &&
		git rebase -i HEAD~2 >expect
	) &&
	sed -e "1,9d" expect >expected &&
	test_cmp expected actual

HEAD is now at 658e4d9 three_exec
Rebasing (2/4)

                                                                                
Executing: git show HEAD
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/execute.
Rebasing (2/4)

                                                                                
Executing: git show HEAD
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/execute.
ok 67 - running "git rebase --exec git show HEAD -i"

expecting success of 3404.68 'running "git rebase -ix git show HEAD"': 
	git reset --hard execute &&
	(
		set_fake_editor &&
		git rebase -ix "git show HEAD" HEAD~2 >actual &&
		FAKE_LINES="1 exec_git_show_HEAD 2 exec_git_show_HEAD" &&
		export FAKE_LINES &&
		git rebase -i HEAD~2 >expect
	) &&
	sed -e "1,9d" expect >expected &&
	test_cmp expected actual

HEAD is now at 658e4d9 three_exec
Rebasing (2/4)

                                                                                
Executing: git show HEAD
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/execute.
Rebasing (2/4)

                                                                                
Executing: git show HEAD
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/execute.
ok 68 - running "git rebase -ix git show HEAD"

expecting success of 3404.69 'rebase -ix with several <CMD>': 
	git reset --hard execute &&
	(
		set_fake_editor &&
		git rebase -ix "git show HEAD; pwd" HEAD~2 >actual &&
		FAKE_LINES="1 exec_git_show_HEAD;_pwd 2 exec_git_show_HEAD;_pwd" &&
		export FAKE_LINES &&
		git rebase -i HEAD~2 >expect
	) &&
	sed -e "1,9d" expect >expected &&
	test_cmp expected actual

HEAD is now at 658e4d9 three_exec
Rebasing (2/4)

                                                                                
Executing: git show HEAD; pwd
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD; pwd

                                                                                
Successfully rebased and updated refs/heads/execute.
Rebasing (2/4)

                                                                                
Executing: git show HEAD; pwd
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Executing: git show HEAD; pwd

                                                                                
Successfully rebased and updated refs/heads/execute.
ok 69 - rebase -ix with several <CMD>

expecting success of 3404.70 'rebase -ix with several instances of --exec': 
	git reset --hard execute &&
	(
		set_fake_editor &&
		git rebase -i --exec "git show HEAD" --exec "pwd" HEAD~2 >actual &&
		FAKE_LINES="1 exec_git_show_HEAD exec_pwd 2
				exec_git_show_HEAD exec_pwd" &&
		export FAKE_LINES &&
		git rebase -i HEAD~2 >expect
	) &&
	sed -e "1,11d" expect >expected &&
	test_cmp expected actual

HEAD is now at 658e4d9 three_exec
Rebasing (2/6)

                                                                                
Executing: git show HEAD
Rebasing (3/6)

                                                                                
Executing: pwd
Rebasing (4/6)
Rebasing (5/6)

                                                                                
Executing: git show HEAD
Rebasing (6/6)

                                                                                
Executing: pwd

                                                                                
Successfully rebased and updated refs/heads/execute.
Rebasing (2/6)

                                                                                
Executing: git show HEAD
Rebasing (3/6)

                                                                                
Executing: pwd
Rebasing (4/6)
Rebasing (5/6)

                                                                                
Executing: git show HEAD
Rebasing (6/6)

                                                                                
Executing: pwd

                                                                                
Successfully rebased and updated refs/heads/execute.
ok 70 - rebase -ix with several instances of --exec

expecting success of 3404.71 'rebase -ix with --autosquash': 
	git reset --hard execute &&
	git checkout -b autosquash &&
	echo second >second.txt &&
	git add second.txt &&
	git commit -m "fixup! two_exec" &&
	echo bis >bis.txt &&
	git add bis.txt &&
	git commit -m "fixup! two_exec" &&
	git checkout -b autosquash_actual &&
	git rebase -i --exec "git show HEAD" --autosquash HEAD~4 >actual &&
	git checkout autosquash &&
	(
		set_fake_editor &&
		git checkout -b autosquash_expected &&
		FAKE_LINES="1 fixup 3 fixup 4 exec_git_show_HEAD 2 exec_git_show_HEAD" &&
		export FAKE_LINES &&
		git rebase -i HEAD~4 >expect
	) &&
	sed -e "1,13d" expect >expected &&
	test_cmp expected actual

HEAD is now at 658e4d9 three_exec
Switched to a new branch 'autosquash'
[autosquash 6500855] fixup! two_exec
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 second.txt
[autosquash 620ecf2] fixup! two_exec
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 bis.txt
Switched to a new branch 'autosquash_actual'
Rebasing (2/6)
Rebasing (3/6)
Rebasing (4/6)

                                                                                
Executing: git show HEAD
Rebasing (5/6)
Rebasing (6/6)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/autosquash_actual.
Switched to branch 'autosquash'
Switched to a new branch 'autosquash_expected'
Rebasing (2/6)
Rebasing (3/6)
Rebasing (4/6)

                                                                                
Executing: git show HEAD
Rebasing (5/6)
Rebasing (6/6)

                                                                                
Executing: git show HEAD

                                                                                
Successfully rebased and updated refs/heads/autosquash_expected.
ok 71 - rebase -ix with --autosquash

expecting success of 3404.72 'rebase --exec works without -i ': 
	git reset --hard execute &&
	rm -rf exec_output &&
	EDITOR="echo >invoked_editor" git rebase --exec "echo a line >>exec_output"  HEAD~2 2>actual &&
	test_i18ngrep  "Successfully rebased and updated" actual &&
	test_line_count = 2 exec_output &&
	test_path_is_missing invoked_editor

HEAD is now at 658e4d9 three_exec

                                                                                
Successfully rebased and updated refs/heads/autosquash_expected.
ok 72 - rebase --exec works without -i 

expecting success of 3404.73 'rebase -i --exec without <CMD>': 
	git reset --hard execute &&
	test_must_fail git rebase -i --exec 2>actual &&
	test_i18ngrep "requires a value" actual &&
	git checkout primary

HEAD is now at 658e4d9 three_exec
error: option `exec' requires a value
Switched to branch 'primary'
ok 73 - rebase -i --exec without <CMD>

expecting success of 3404.74 'rebase -i --root re-order and drop commits': 
	git checkout E &&
	(
		set_fake_editor &&
		FAKE_LINES="3 1 2 5" git rebase -i --root
	) &&
	test E = $(git cat-file commit HEAD | sed -ne \$p) &&
	test B = $(git cat-file commit HEAD^ | sed -ne \$p) &&
	test A = $(git cat-file commit HEAD^^ | sed -ne \$p) &&
	test C = $(git cat-file commit HEAD^^^ | sed -ne \$p) &&
	test 0 = $(git cat-file commit HEAD^^^ | grep -c ^parent\ )

Note: switching to 'E'.

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 8f99a4f E
rebase -i script before editing:
pick 6e62bf8 A
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
pick d0f65f2 C
pick 6e62bf8 A
pick 313fe96 B
pick 8f99a4f E
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated detached HEAD.
ok 74 - rebase -i --root re-order and drop commits

expecting success of 3404.75 'rebase -i --root retain root commit author and message': 
	git checkout A &&
	echo B >file7 &&
	git add file7 &&
	GIT_AUTHOR_NAME="Twerp Snog" git commit -m "different author" &&
	(
		set_fake_editor &&
		FAKE_LINES="2" git rebase -i --root
	) &&
	git cat-file commit HEAD | grep -q "^author Twerp Snog" &&
	git cat-file commit HEAD | grep -q "^different author$"

Warning: you are leaving 4 commits behind, not connected to
any of your branches:

  f9ee9d8 E
  09cb0d2 B
  2d7aeda A
  c2b7dac C

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> f9ee9d8

HEAD is now at 6e62bf8 A
[detached HEAD 2e05f7a] different author
 Author: Twerp Snog <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file7
rebase -i script before editing:
pick 6e62bf8 A
pick 2e05f7a different author

rebase -i script after editing:
pick 2e05f7a different author
Rebasing (1/1)

                                                                                
Successfully rebased and updated detached HEAD.
ok 75 - rebase -i --root retain root commit author and message

expecting success of 3404.76 'rebase -i --root temporary sentinel commit': 
	git checkout B &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="2" git rebase -i --root
	) &&
	git cat-file commit HEAD | grep "^tree $EMPTY_TREE" &&
	git rebase --abort

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  da7ee39 different author

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> da7ee39

HEAD is now at 313fe96 B
rebase -i script before editing:
pick 6e62bf8 A
pick 313fe96 B

rebase -i script after editing:
pick 313fe96 B
Rebasing (1/1)
error: could not apply 313fe96... B
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".
Could not apply 313fe96... B
CONFLICT (modify/delete): file1 deleted in HEAD and modified in 313fe96 (B). Version 313fe96 (B) of file1 left in tree.
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
ok 76 - rebase -i --root temporary sentinel commit

expecting success of 3404.77 'rebase -i --root fixup root commit': 
	git checkout B &&
	(
		set_fake_editor &&
		FAKE_LINES="1 fixup 2" git rebase -i --root
	) &&
	test A = $(git cat-file commit HEAD | sed -ne \$p) &&
	test B = $(git show HEAD:file1) &&
	test 0 = $(git cat-file commit HEAD | grep -c ^parent\ )

HEAD is now at 313fe96 B
rebase -i script before editing:
pick 6e62bf8 A
pick 313fe96 B

rebase -i script after editing:
pick 6e62bf8 A
fixup 313fe96 B
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated detached HEAD.
ok 77 - rebase -i --root fixup root commit

expecting success of 3404.78 'rebase -i --root reword original root commit': 
	test_when_finished "test_might_fail git rebase --abort" &&
	git checkout -b reword-original-root-branch primary &&
	(
		set_fake_editor &&
		FAKE_LINES="reword 1 2" FAKE_COMMIT_MESSAGE="A changed" \
			git rebase -i --root
	) &&
	git show HEAD^ | grep "A changed" &&
	test -z "$(git show -s --format=%p HEAD^)"

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  2aaf5d3 A

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> 2aaf5d3

Switched to a new branch 'reword-original-root-branch'
rebase -i script before editing:
pick 6e62bf8 A
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
reword 6e62bf8 A
pick 313fe96 B
Rebasing (1/2)
[detached HEAD 8bdee38] A changed
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:13:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file1
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/reword-original-root-branch.
    A changed
fatal: No rebase in progress?
ok 78 - rebase -i --root reword original root commit

expecting success of 3404.79 'rebase -i --root reword new root commit': 
	test_when_finished "test_might_fail git rebase --abort" &&
	git checkout -b reword-now-root-branch primary &&
	(
		set_fake_editor &&
		FAKE_LINES="reword 3 1" FAKE_COMMIT_MESSAGE="C changed" \
		git rebase -i --root
	) &&
	git show HEAD^ | grep "C changed" &&
	test -z "$(git show -s --format=%p HEAD^)"

Switched to a new branch 'reword-now-root-branch'
rebase -i script before editing:
pick 6e62bf8 A
pick 313fe96 B
pick d0f65f2 C
pick 0547e3f D
pick 8f99a4f E

rebase -i script after editing:
reword d0f65f2 C
pick 6e62bf8 A
Rebasing (1/2)
[detached HEAD 3619304] C changed
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:15:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file2
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/reword-now-root-branch.
    C changed
fatal: No rebase in progress?
ok 79 - rebase -i --root reword new root commit

expecting success of 3404.80 'rebase -i --root when root has untracked file conflict': 
	test_when_finished "reset_rebase" &&
	git checkout -b failing-root-pick A &&
	echo x >file2 &&
	git rm file1 &&
	git commit -m "remove file 1 add file 2" &&
	echo z >file1 &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 2" git rebase -i --root
	) &&
	rm file1 &&
	git rebase --continue &&
	test "$(git log -1 --format=%B)" = "remove file 1 add file 2" &&
	test "$(git rev-list --count HEAD)" = 2

Switched to a new branch 'failing-root-pick'
rm 'file1'
[failing-root-pick 92d6056] remove file 1 add file 2
 Author: A U Thor <author@example.com>
 1 file changed, 1 deletion(-)
 delete mode 100644 file1
rebase -i script before editing:
pick 6e62bf8 A
pick 92d6056 remove file 1 add file 2

rebase -i script after editing:
pick 6e62bf8 A
pick 92d6056 remove file 1 add file 2
Rebasing (1/2)
error: The following untracked working tree files would be overwritten by merge:
	file1
Please move or remove them before you merge.
Aborting
hint: Could not execute the todo command
hint: 
hint:     pick 6e62bf890e21973b771e4e6fc28f5ade62edb4bc A
hint: 
hint: It has been rescheduled; To edit the command before continuing, please
hint: edit the todo list first:
hint: 
hint:     git rebase --edit-todo
hint:     git rebase --continue
Could not apply 6e62bf8... A
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/failing-root-pick.
fatal: No rebase in progress?
HEAD is now at 92d6056 remove file 1 add file 2
Removing actual
Removing actual-squash-fixup
Removing error
Removing exec_output
Removing expect
Removing expect-squash-fixup
Removing expect2
Removing expected
Removing fake-editor.sh
Removing file2
Removing out
Removing output
Removing stderr
Removing touch-subdir
ok 80 - rebase -i --root when root has untracked file conflict

expecting success of 3404.81 'rebase -i --root reword root when root has untracked file conflict': 
	test_when_finished "reset_rebase" &&
	echo z>file1 &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="reword 1 2" \
			FAKE_COMMIT_MESSAGE="Modified A" git rebase -i --root &&
		rm file1 &&
		FAKE_COMMIT_MESSAGE="Reworded A" git rebase --continue
	) &&
	test "$(git log -1 --format=%B HEAD^)" = "Reworded A" &&
	test "$(git rev-list --count HEAD)" = 2

rebase -i script before editing:
pick 6e62bf8 A
pick 92d6056 remove file 1 add file 2

rebase -i script after editing:
reword 6e62bf8 A
pick 92d6056 remove file 1 add file 2
Rebasing (1/2)
error: The following untracked working tree files would be overwritten by merge:
	file1
Please move or remove them before you merge.
Aborting
hint: Could not execute the todo command
hint: 
hint:     reword 6e62bf890e21973b771e4e6fc28f5ade62edb4bc A
hint: 
hint: It has been rescheduled; To edit the command before continuing, please
hint: edit the todo list first:
hint: 
hint:     git rebase --edit-todo
hint:     git rebase --continue
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
Rebasing (2/3)
[detached HEAD d2dfdfe] Reworded A
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:13:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 file1
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/failing-root-pick.
fatal: No rebase in progress?
HEAD is now at 6c0467e remove file 1 add file 2
Removing fake-editor.sh
ok 81 - rebase -i --root reword root when root has untracked file conflict

expecting success of 3404.82 'rebase --edit-todo does not work on non-interactive rebase': 
	git checkout reword-original-root-branch &&
	git reset --hard &&
	git checkout conflict-branch &&
	(
		set_fake_editor &&
		test_must_fail git rebase -f --apply --onto HEAD~2 HEAD~ &&
		test_must_fail git rebase --edit-todo
	) &&
	git rebase --abort

Switched to branch 'reword-original-root-branch'
HEAD is now at 8269fae B
Switched to branch 'conflict-branch'
First, rewinding head to replay your work on top of it...
Applying: four
Using index info to reconstruct a base tree...
M	conflict
Falling back to patching base and 3-way merge...
Merging:
766a798 two
virtual four
found 1 common ancestor:
virtual 3d3da6c4fe4fab218d150e2af365b8b07d465a22
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 four
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: The --edit-todo action can only be used during interactive rebase.
ok 82 - rebase --edit-todo does not work on non-interactive rebase

expecting success of 3404.83 'rebase --edit-todo can be used to modify todo': 
	git reset --hard &&
	git checkout no-conflict-branch^0 &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1 2 3" git rebase -i HEAD~3 &&
		FAKE_LINES="2 1" git rebase --edit-todo &&
		git rebase --continue
	) &&
	test M = $(git cat-file commit HEAD^ | sed -ne \$p) &&
	test L = $(git cat-file commit HEAD | sed -ne \$p)

HEAD is now at f91a2b3 four
Note: switching to 'no-conflict-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 3389558 M
rebase -i script before editing:
pick 265b89e K
pick 6b0f5e6 L
pick 3389558 M

rebase -i script after editing:
edit 265b89e K
pick 6b0f5e6 L
pick 3389558 M
Rebasing (1/3)

                                                                                
Stopped at 265b89e...  K
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
rebase -i script before editing:
pick 6b0f5e6 L
pick 3389558 M
rebase -i script after editing:
pick 3389558 M
pick 6b0f5e6 L
Rebasing (2/3)
Rebasing (3/3)

                                                                                
Successfully rebased and updated detached HEAD.
ok 83 - rebase --edit-todo can be used to modify todo

expecting success of 3404.84 'rebase -i produces readable reflog': 
	git reset --hard &&
	git branch -f branch-reflog-test H &&
	git rebase -i --onto I F branch-reflog-test &&
	cat >expect <<-\EOF &&
	rebase (finish): returning to refs/heads/branch-reflog-test
	rebase (pick): H
	rebase (pick): G
	rebase (start): checkout I
	EOF
	git reflog -n4 HEAD |
	sed "s/[^:]*: //" >actual &&
	test_cmp expect actual

HEAD is now at 8580780 L
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/branch-reflog-test.
ok 84 - rebase -i produces readable reflog

expecting success of 3404.85 'rebase -i respects core.commentchar': 
	git reset --hard &&
	git checkout E^0 &&
	test_config core.commentchar "\\" &&
	write_script remove-all-but-first.sh <<-\EOF &&
	sed -e "2,\$s/^/\\\\/" "$1" >"$1.tmp" &&
	mv "$1.tmp" "$1"
	EOF
	(
		test_set_editor "$(pwd)/remove-all-but-first.sh" &&
		git rebase -i B
	) &&
	test B = $(git cat-file commit HEAD^ | sed -ne \$p)

HEAD is now at d716b9a H
Note: switching to 'E^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 8f99a4f E

                                                                                
Successfully rebased and updated detached HEAD.
ok 85 - rebase -i respects core.commentchar

expecting success of 3404.86 'rebase -i respects core.commentchar=auto': 
	test_config core.commentchar auto &&
	write_script copy-edit-script.sh <<-\EOF &&
	cp "$1" edit-script
	EOF
	test_when_finished "git rebase --abort || :" &&
	(
		test_set_editor "$(pwd)/copy-edit-script.sh" &&
		git rebase -i HEAD^
	) &&
	test -z "$(grep -ve "^#" -e "^\$" -e "^pick" edit-script)"


                                                                                
Successfully rebased and updated detached HEAD.
fatal: No rebase in progress?
ok 86 - rebase -i respects core.commentchar=auto

expecting success of 3404.87 'rebase -i, with <onto> and <upstream> specified as :/quuxery': 
	test_when_finished "git branch -D torebase" &&
	git checkout -b torebase branch1 &&
	upstream=$(git rev-parse ":/J") &&
	onto=$(git rev-parse ":/A") &&
	git rebase --onto $onto $upstream &&
	git reset --hard branch1 &&
	git rebase --onto ":/A" ":/J" &&
	git checkout branch1

Previous HEAD position was d0f65f2 C
Switched to a new branch 'torebase'
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/torebase.
HEAD is now at d2d5ba7 different author
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/torebase.
Switched to branch 'branch1'
Deleted branch torebase (was 1dcc343).
ok 87 - rebase -i, with <onto> and <upstream> specified as :/quuxery

expecting success of 3404.88 'rebase -i with --strategy and -X': 
	git checkout -b conflict-merge-use-theirs conflict-branch &&
	git reset --hard HEAD^ &&
	echo five >conflict &&
	echo Z >file1 &&
	git commit -a -m "one file conflict" &&
	EDITOR=true git rebase -i --strategy=recursive -Xours conflict-branch &&
	test $(git show conflict-branch:conflict) = $(cat conflict) &&
	test $(cat file1) = Z

Switched to a new branch 'conflict-merge-use-theirs'
HEAD is now at 1eadf03 three
[conflict-merge-use-theirs 3217947] one file conflict
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+), 2 deletions(-)
Rebasing (1/1)

                                                                                
Successfully rebased and updated refs/heads/conflict-merge-use-theirs.
ok 88 - rebase -i with --strategy and -X

expecting success of 3404.89 'interrupted rebase -i with --strategy and -X': 
	git checkout -b conflict-merge-use-theirs-interrupted conflict-branch &&
	git reset --hard HEAD^ &&
	>breakpoint &&
	git add breakpoint &&
	git commit -m "breakpoint for interactive mode" &&
	echo five >conflict &&
	echo Z >file1 &&
	git commit -a -m "one file conflict" &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1 2" git rebase -i --strategy=recursive \
			-Xours conflict-branch
	) &&
	git rebase --continue &&
	test $(git show conflict-branch:conflict) = $(cat conflict) &&
	test $(cat file1) = Z

Switched to a new branch 'conflict-merge-use-theirs-interrupted'
HEAD is now at 1eadf03 three
[conflict-merge-use-theirs-interrupted b7f9273] breakpoint for interactive mode
 Author: A U Thor <author@example.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 breakpoint
[conflict-merge-use-theirs-interrupted c2ed968] one file conflict
 Author: A U Thor <author@example.com>
 2 files changed, 2 insertions(+), 2 deletions(-)
rebase -i script before editing:
pick b7f9273 breakpoint for interactive mode
pick c2ed968 one file conflict

rebase -i script after editing:
edit b7f9273 breakpoint for interactive mode
pick c2ed968 one file conflict
Rebasing (1/2)

                                                                                
Stopped at b7f9273...  breakpoint for interactive mode
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/conflict-merge-use-theirs-interrupted.
ok 89 - interrupted rebase -i with --strategy and -X

expecting success of 3404.90 'rebase -i error on commits with \ in message': 
	current_head=$(git rev-parse HEAD) &&
	test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
	test_commit TO-REMOVE will-conflict old-content &&
	test_commit "\temp" will-conflict new-content dummy &&
	test_must_fail env EDITOR=true git rebase -i HEAD^ --onto HEAD^^ 2>error &&
	test_expect_code 1 grep  "	emp" error

[conflict-merge-use-theirs-interrupted 41e6757] TO-REMOVE
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 will-conflict
[conflict-merge-use-theirs-interrupted a0e4b4b] \temp
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
CONFLICT (modify/delete): will-conflict deleted in HEAD and modified in a0e4b4b (\temp). Version a0e4b4b (\temp) of will-conflict left in tree.
HEAD is now at 1732bb2 one file conflict
ok 90 - rebase -i error on commits with \ in message

expecting success of 3404.91 'short commit ID setup': 
	test_when_finished "git checkout primary" &&
	git checkout --orphan collide &&
	git rm -rf . &&
	(
	unset test_tick &&
	test_commit collide1 collide &&
	test_commit --notick collide2 collide &&
	test_commit --notick collide3 collide
	)

Switched to a new branch 'collide'
rm 'breakpoint'
rm 'conflict'
rm 'file1'
[collide (root-commit) 674fc94] collide1
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 collide
[collide 0b53f45] collide2
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[collide 6bcda37] collide3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'primary'
ok 91 - short commit ID setup

expecting success of 3404.92 'short commit ID collide': 
	test_oid_cache <<-EOF &&
	# collision-related constants
	t3404_collision	sha1:6bcd
	t3404_collision	sha256:0161
	t3404_collider	sha1:ac4f2ee
	t3404_collider	sha256:16697
	EOF
	test_when_finished "reset_rebase && git checkout primary" &&
	git checkout collide &&
	colliding_id=$(test_oid t3404_collision) &&
	hexsz=$(test_oid hexsz) &&
	test $colliding_id = "$(git rev-parse HEAD | cut -c 1-4)" &&
	test_config core.abbrev 4 &&
	(
		unset test_tick &&
		test_tick &&
		set_fake_editor &&
		FAKE_COMMIT_MESSAGE="collide2 $(test_oid t3404_collider)" \
		FAKE_LINES="reword 1 break 2" git rebase -i HEAD~2 &&
		test $colliding_id = "$(git rev-parse HEAD | cut -c 1-4)" &&
		grep "^pick $colliding_id " \
			.git/rebase-merge/git-rebase-todo.tmp &&
		grep "^pick [0-9a-f]\{$hexsz\}" \
			.git/rebase-merge/git-rebase-todo &&
		grep "^pick [0-9a-f]\{$hexsz\}" \
			.git/rebase-merge/git-rebase-todo.backup &&
		git rebase --continue
	) &&
	collide2="$(git rev-parse HEAD~1 | cut -c 1-4)" &&
	collide3="$(git rev-parse collide3 | cut -c 1-4)" &&
	test "$collide2" = "$collide3"

Switched to branch 'collide'
rebase -i script before editing:
pick 0b53 collide2
pick 6bcd collide3

rebase -i script after editing:
reword 0b53 collide2
break
pick 6bcd collide3
Rebasing (1/3)
[detached HEAD 6bcda37f] collide2 ac4f2ee
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:13:13 2005 -0700
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/3)

                                                                                
Stopped at 6bcda37f (collide2 ac4f2ee)
pick 6bcd collide3
pick 6bcda372b23d641debbf943e0b709349f72dcd92 collide3
pick 0b53f4541f74116336854697b0278cb818c448e2 collide2
pick 6bcda372b23d641debbf943e0b709349f72dcd92 collide3
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/collide.
fatal: No rebase in progress?
HEAD is now at fbe3cf5 collide3
Removing actual
Removing copy-edit-script.sh
Removing edit-script
Removing expect
Removing fake-editor.sh
Removing remove-all-but-first.sh
Switched to branch 'primary'
ok 92 - short commit ID collide

expecting success of 3404.93 'respect core.abbrev': 
	git config core.abbrev 12 &&
	(
		set_cat_todo_editor &&
		test_must_fail git rebase -i HEAD~4 >todo-list
	) &&
	test 4 = $(grep -c "pick [0-9a-f]\{12,\}" todo-list)

error: There was a problem with the editor '"$FAKE_EDITOR"'.
ok 93 - respect core.abbrev

expecting success of 3404.94 'todo count': 
	write_script dump-raw.sh <<-\EOF &&
		cat "$1"
	EOF
	(
		test_set_editor "$(pwd)/dump-raw.sh" &&
		git rebase -i HEAD~4 >actual
	) &&
	test_i18ngrep "^# Rebase ..* onto ..* ([0-9]" actual


                                                                                
Successfully rebased and updated refs/heads/primary.
# Rebase 6e62bf890e21..8f99a4f1fbbd onto 6e62bf890e21 (4 commands)
ok 94 - todo count

expecting success of 3404.95 'rebase -i commits that overwrite untracked files (pick)': 
	git checkout --force branch2 &&
	git clean -f &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1 2" git rebase -i A
	) &&
	test_cmp_rev HEAD F &&
	test_path_is_missing file6 &&
	>file6 &&
	test_must_fail git rebase --continue &&
	test_cmp_rev HEAD F &&
	rm file6 &&
	git rebase --continue &&
	test_cmp_rev HEAD I

Switched to branch 'branch2'
Removing actual
Removing dump-raw.sh
Removing fake-editor.sh
Removing todo-list
rebase -i script before editing:
pick cfefd94ba3b7 F
pick 615be62cadc1 I

rebase -i script after editing:
edit cfefd94ba3b7 F
pick 615be62cadc1 I
Rebasing (1/2)

                                                                                
Stopped at cfefd94ba3b7...  F
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
Rebasing (2/2)
error: The following untracked working tree files would be overwritten by merge:
	file6
Please move or remove them before you merge.
Aborting
hint: Could not execute the todo command
hint: 
hint:     pick 615be62cadc1c85c6ac7d6974210b1aa1721c98f I
hint: 
hint: It has been rescheduled; To edit the command before continuing, please
hint: edit the todo list first:
hint: 
hint:     git rebase --edit-todo
hint:     git rebase --continue
Could not apply 615be62cadc1... I
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/branch2.
ok 95 - rebase -i commits that overwrite untracked files (pick)

expecting success of 3404.96 'rebase -i commits that overwrite untracked files (squash)': 
	git checkout --force branch2 &&
	git clean -f &&
	git tag original-branch2 &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1 squash 2" git rebase -i A
	) &&
	test_cmp_rev HEAD F &&
	test_path_is_missing file6 &&
	>file6 &&
	test_must_fail git rebase --continue &&
	test_cmp_rev HEAD F &&
	rm file6 &&
	git rebase --continue &&
	test $(git cat-file commit HEAD | sed -ne \$p) = I &&
	git reset --hard original-branch2

Already on 'branch2'
Removing fake-editor.sh
rebase -i script before editing:
pick cfefd94ba3b7 F
pick 615be62cadc1 I

rebase -i script after editing:
edit cfefd94ba3b7 F
squash 615be62cadc1 I
Rebasing (1/2)

                                                                                
Stopped at cfefd94ba3b7...  F
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
Rebasing (2/2)
error: The following untracked working tree files would be overwritten by merge:
	file6
Please move or remove them before you merge.
Aborting
hint: Could not execute the todo command
hint: 
hint:     squash 615be62cadc1c85c6ac7d6974210b1aa1721c98f I
hint: 
hint: It has been rescheduled; To edit the command before continuing, please
hint: edit the todo list first:
hint: 
hint:     git rebase --edit-todo
hint:     git rebase --continue
Could not apply 615be62cadc1... I
error: merging of trees eb689cc8eed0e8a6ed5383618d1f03cc48bd9f81 and f9b09c5f252e2ce55ab159967e1595879f4525bd failed
Rebasing (3/3)
[detached HEAD 2c3fc3ea3b14] F
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 15:18:13 2005 -0700
 2 files changed, 2 insertions(+)
 create mode 100644 file4
 create mode 100644 file6

                                                                                
Successfully rebased and updated refs/heads/branch2.
HEAD is now at 615be62cadc1 I
ok 96 - rebase -i commits that overwrite untracked files (squash)

expecting success of 3404.97 'rebase -i commits that overwrite untracked files (no ff)': 
	git checkout --force branch2 &&
	git clean -f &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1 2" git rebase -i --no-ff A
	) &&
	test $(git cat-file commit HEAD | sed -ne \$p) = F &&
	test_path_is_missing file6 &&
	>file6 &&
	test_must_fail git rebase --continue &&
	test $(git cat-file commit HEAD | sed -ne \$p) = F &&
	rm file6 &&
	git rebase --continue &&
	test $(git cat-file commit HEAD | sed -ne \$p) = I

Already on 'branch2'
Removing fake-editor.sh
rebase -i script before editing:
pick cfefd94ba3b7 F
pick 615be62cadc1 I

rebase -i script after editing:
edit cfefd94ba3b7 F
pick 615be62cadc1 I
Rebasing (1/2)

                                                                                
Stopped at cfefd94ba3b7...  F
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
Rebasing (2/2)
error: The following untracked working tree files would be overwritten by merge:
	file6
Please move or remove them before you merge.
Aborting
hint: Could not execute the todo command
hint: 
hint:     pick 615be62cadc1c85c6ac7d6974210b1aa1721c98f I
hint: 
hint: It has been rescheduled; To edit the command before continuing, please
hint: edit the todo list first:
hint: 
hint:     git rebase --edit-todo
hint:     git rebase --continue
Could not apply 615be62cadc1... I
error: merging of trees eb689cc8eed0e8a6ed5383618d1f03cc48bd9f81 and f9b09c5f252e2ce55ab159967e1595879f4525bd failed
Rebasing (3/3)

                                                                                
Successfully rebased and updated refs/heads/branch2.
ok 97 - rebase -i commits that overwrite untracked files (no ff)

expecting success of 3404.98 'rebase --continue removes CHERRY_PICK_HEAD': 
	git checkout -b commit-to-skip &&
	for double in X 3 1
	do
		test_seq 5 | sed "s/$double/&&/" >seq &&
		git add seq &&
		test_tick &&
		git commit -m seq-$double
	done &&
	git tag seq-onto &&
	git reset --hard HEAD~2 &&
	git cherry-pick seq-onto &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES= git rebase -i seq-onto
	) &&
	test -d .git/rebase-merge &&
	git rebase --continue &&
	git diff --exit-code seq-onto &&
	test ! -d .git/rebase-merge &&
	test ! -f .git/CHERRY_PICK_HEAD

Switched to a new branch 'commit-to-skip'
[commit-to-skip 1362cfde30ab] seq-X
 Author: A U Thor <author@example.com>
 1 file changed, 5 insertions(+)
 create mode 100644 seq
[commit-to-skip 42b5cd59e45c] seq-3
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[commit-to-skip 83ee0e770a2c] seq-1
 Author: A U Thor <author@example.com>
 1 file changed, 2 insertions(+), 2 deletions(-)
HEAD is now at 1362cfde30ab seq-X
Auto-merging seq
[commit-to-skip 17b79b7d21d0] seq-1
 Author: A U Thor <author@example.com>
 Date: Thu Apr 7 16:18:13 2005 -0700
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (1/1)
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git rebase --skip'
interactive rebase in progress; onto 83ee0e770a2c
Last command done (1 command done):
   pick 17b79b7d21d0 seq-1
No commands remaining.
You are currently rebasing branch 'commit-to-skip' on '83ee0e770a2c'.
  (all conflicts fixed: run "git rebase --continue")

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	fake-editor.sh
	sub/

nothing added to commit but untracked files present (use "git add" to track)
Could not apply 17b79b7d21d0... seq-1

                                                                                
Successfully rebased and updated refs/heads/commit-to-skip.
ok 98 - rebase --continue removes CHERRY_PICK_HEAD

expecting success of 3404.99 'drop': 
	rebase_setup_and_clean drop-test &&
	(
		set_fake_editor &&
		FAKE_LINES="1 drop 2 3 d 4 5" git rebase -i --root
	) &&
	test E = $(git cat-file commit HEAD | sed -ne \$p) &&
	test C = $(git cat-file commit HEAD^ | sed -ne \$p) &&
	test A = $(git cat-file commit HEAD^^ | sed -ne \$p)

Switched to a new branch 'drop-test'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
pick 6e62bf890e21 A
drop 313fe965c048 B
pick d0f65f2f81ee C
d 0547e3f1350d D
pick 8f99a4f1fbbd E
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)

                                                                                
Successfully rebased and updated refs/heads/drop-test.
Switched to branch 'primary'
Deleted branch drop-test (was af37544025dd).
fatal: No rebase in progress?
ok 99 - drop

expecting success of 3404.100 'rebase -i respects rebase.missingCommitsCheck = ignore': 
	test_config rebase.missingCommitsCheck ignore &&
	rebase_setup_and_clean missing-commit &&
	(
		set_fake_editor &&
		FAKE_LINES="1 2 3 4" git rebase -i --root 2>actual
	) &&
	test D = $(git cat-file commit HEAD | sed -ne \$p) &&
	test_i18ngrep \
		"Successfully rebased and updated refs/heads/missing-commit" \
		actual

Switched to a new branch 'missing-commit'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/missing-commit.
Switched to branch 'primary'
Deleted branch missing-commit (was 0547e3f1350d).
fatal: No rebase in progress?
ok 100 - rebase -i respects rebase.missingCommitsCheck = ignore

expecting success of 3404.101 'rebase -i respects rebase.missingCommitsCheck = warn': 
	cat >expect <<-EOF &&
	Warning: some commits may have been dropped accidentally.
	Dropped commits (newer to older):
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
	To avoid this message, use "drop" to explicitly remove a commit.
	EOF
	test_config rebase.missingCommitsCheck warn &&
	rebase_setup_and_clean missing-commit &&
	(
		set_fake_editor &&
		FAKE_LINES="1 2 3 4" git rebase -i --root 2>actual.2
	) &&
	head -n4 actual.2 >actual &&
	test_i18ncmp expect actual &&
	test D = $(git cat-file commit HEAD | sed -ne \$p)

Switched to a new branch 'missing-commit'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
Switched to branch 'primary'
Deleted branch missing-commit (was 0547e3f1350d).
fatal: No rebase in progress?
ok 101 - rebase -i respects rebase.missingCommitsCheck = warn

expecting success of 3404.102 'rebase -i respects rebase.missingCommitsCheck = error': 
	cat >expect <<-EOF &&
	Warning: some commits may have been dropped accidentally.
	Dropped commits (newer to older):
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary~2)
	To avoid this message, use "drop" to explicitly remove a commit.

	Use 'git config rebase.missingCommitsCheck' to change the level of warnings.
	The possible behaviours are: ignore, warn, error.

	You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
	Or you can abort the rebase with 'git rebase --abort'.
	EOF
	test_config rebase.missingCommitsCheck error &&
	rebase_setup_and_clean missing-commit &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 2 4" \
			git rebase -i --root 2>actual &&
		test_i18ncmp expect actual &&
		cp .git/rebase-merge/git-rebase-todo.backup \
			.git/rebase-merge/git-rebase-todo &&
		FAKE_LINES="1 2 drop 3 4 drop 5" git rebase --edit-todo
	) &&
	git rebase --continue &&
	test D = $(git cat-file commit HEAD | sed -ne \$p) &&
	test B = $(git cat-file commit HEAD^ | sed -ne \$p)

Switched to a new branch 'missing-commit'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick 0547e3f1350d D
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
drop d0f65f2f81ee C
pick 0547e3f1350d D
drop 8f99a4f1fbbd E
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)

                                                                                
Successfully rebased and updated refs/heads/missing-commit.
Switched to branch 'primary'
Deleted branch missing-commit (was bee50f0fe527).
fatal: No rebase in progress?
ok 102 - rebase -i respects rebase.missingCommitsCheck = error

expecting success of 3404.103 'rebase --edit-todo respects rebase.missingCommitsCheck = ignore': 
	test_config rebase.missingCommitsCheck ignore &&
	rebase_setup_and_clean missing-commit &&
	(
		set_fake_editor &&
		FAKE_LINES="break 1 2 3 4 5" git rebase -i --root &&
		FAKE_LINES="1 2 3 4" git rebase --edit-todo &&
		git rebase --continue 2>actual
	) &&
	test D = $(git cat-file commit HEAD | sed -ne \$p) &&
	test_i18ngrep \
		"Successfully rebased and updated refs/heads/missing-commit" \
		actual

Switched to a new branch 'missing-commit'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
break
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
Rebasing (1/6)

                                                                                
Stopped at 3f7c590d78c4 ()
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)

                                                                                
Successfully rebased and updated refs/heads/missing-commit.
Switched to branch 'primary'
Deleted branch missing-commit (was 0547e3f1350d).
fatal: No rebase in progress?
ok 103 - rebase --edit-todo respects rebase.missingCommitsCheck = ignore

expecting success of 3404.104 'rebase --edit-todo respects rebase.missingCommitsCheck = warn': 
	cat >expect <<-EOF &&
	error: invalid line 1: badcmd $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
	Warning: some commits may have been dropped accidentally.
	Dropped commits (newer to older):
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
	To avoid this message, use "drop" to explicitly remove a commit.
	EOF
	head -n4 expect >expect.2 &&
	tail -n1 expect >>expect.2 &&
	tail -n4 expect.2 >expect.3 &&
	test_config rebase.missingCommitsCheck warn &&
	rebase_setup_and_clean missing-commit &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="bad 1 2 3 4 5" \
			git rebase -i --root &&
		cp .git/rebase-merge/git-rebase-todo.backup orig &&
		FAKE_LINES="2 3 4" git rebase --edit-todo 2>actual.2 &&
		head -n6 actual.2 >actual &&
		test_i18ncmp expect actual &&
		cp orig .git/rebase-merge/git-rebase-todo &&
		FAKE_LINES="1 2 3 4" git rebase --edit-todo 2>actual.2 &&
		head -n4 actual.2 >actual &&
		test_i18ncmp expect.3 actual &&
		git rebase --continue 2>actual
	) &&
	test D = $(git cat-file commit HEAD | sed -ne \$p) &&
	test_i18ngrep \
		"Successfully rebased and updated refs/heads/missing-commit" \
		actual

Switched to a new branch 'missing-commit'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
badcmd 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
error: invalid line 1: badcmd 6e62bf890e21 A
You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
Or you can abort the rebase with 'git rebase --abort'.
rebase -i script before editing:
badcmd 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated refs/heads/missing-commit.
Switched to branch 'primary'
Deleted branch missing-commit (was 0547e3f1350d).
fatal: No rebase in progress?
ok 104 - rebase --edit-todo respects rebase.missingCommitsCheck = warn

expecting success of 3404.105 'rebase --edit-todo respects rebase.missingCommitsCheck = error': 
	cat >expect <<-EOF &&
	error: invalid line 1: badcmd $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
	Warning: some commits may have been dropped accidentally.
	Dropped commits (newer to older):
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
	 - $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
	To avoid this message, use "drop" to explicitly remove a commit.

	Use 'git config rebase.missingCommitsCheck' to change the level of warnings.
	The possible behaviours are: ignore, warn, error.

	You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
	Or you can abort the rebase with 'git rebase --abort'.
	EOF
	tail -n11 expect >expect.2 &&
	head -n3 expect.2 >expect.3 &&
	tail -n7 expect.2 >>expect.3 &&
	test_config rebase.missingCommitsCheck error &&
	rebase_setup_and_clean missing-commit &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="bad 1 2 3 4 5" \
			git rebase -i --root &&
		cp .git/rebase-merge/git-rebase-todo.backup orig &&
		test_must_fail env FAKE_LINES="2 3 4" \
			git rebase --edit-todo 2>actual &&
		test_i18ncmp expect actual &&
		test_must_fail git rebase --continue 2>actual &&
		test_i18ncmp expect.2 actual &&
		test_must_fail git rebase --edit-todo &&
		cp orig .git/rebase-merge/git-rebase-todo &&
		test_must_fail env FAKE_LINES="1 2 3 4" \
			git rebase --edit-todo 2>actual &&
		test_i18ncmp expect.3 actual &&
		test_must_fail git rebase --continue 2>actual &&
		test_i18ncmp expect.3 actual &&
		cp orig .git/rebase-merge/git-rebase-todo &&
		FAKE_LINES="1 2 3 4 drop 5" git rebase --edit-todo &&
		git rebase --continue 2>actual
	) &&
	test D = $(git cat-file commit HEAD | sed -ne \$p) &&
	test_i18ngrep \
		"Successfully rebased and updated refs/heads/missing-commit" \
		actual

Switched to a new branch 'missing-commit'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
badcmd 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
error: invalid line 1: badcmd 6e62bf890e21 A
You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
Or you can abort the rebase with 'git rebase --abort'.
rebase -i script before editing:
badcmd 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
Warning: some commits may have been dropped accidentally.
Dropped commits (newer to older):
 - 8f99a4f1fbbd E
 - 6e62bf890e21 A
To avoid this message, use "drop" to explicitly remove a commit.

Use 'git config rebase.missingCommitsCheck' to change the level of warnings.
The possible behaviours are: ignore, warn, error.

You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
Or you can abort the rebase with 'git rebase --abort'.
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
drop 8f99a4f1fbbd E
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)

                                                                                
Successfully rebased and updated refs/heads/missing-commit.
Switched to branch 'primary'
Deleted branch missing-commit (was 0547e3f1350d).
fatal: No rebase in progress?
ok 105 - rebase --edit-todo respects rebase.missingCommitsCheck = error

expecting success of 3404.106 'rebase.missingCommitsCheck = error after resolving conflicts': 
	test_config rebase.missingCommitsCheck error &&
	(
		set_fake_editor &&
		FAKE_LINES="drop 1 break 2 3 4" git rebase -i A E
	) &&
	git rebase --edit-todo &&
	test_must_fail git rebase --continue &&
	echo x >file1 &&
	git add file1 &&
	git rebase --continue

rebase -i script before editing:
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
drop 313fe965c048 B
break
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
Rebasing (2/5)

                                                                                
Stopped at 6e62bf890e21 (A)
Rebasing (3/5)
Rebasing (4/5)
error: could not apply 0547e3f1350d... D
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".
Could not apply 0547e3f1350d... D
Auto-merging file1
CONFLICT (content): Merge conflict in file1
[detached HEAD d2869851e2cf] D
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (5/5)

                                                                                
Successfully rebased and updated detached HEAD.
ok 106 - rebase.missingCommitsCheck = error after resolving conflicts

expecting success of 3404.107 'rebase.missingCommitsCheck = error when editing for a second time': 
	test_config rebase.missingCommitsCheck error &&
	(
		set_fake_editor &&
		FAKE_LINES="1 break 2 3" git rebase -i A D &&
		cp .git/rebase-merge/git-rebase-todo todo &&
		test_must_fail env FAKE_LINES=2 git rebase --edit-todo &&
		GIT_SEQUENCE_EDITOR="cp todo" git rebase --edit-todo &&
		git rebase --continue
	)

rebase -i script before editing:
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D

rebase -i script after editing:
pick 313fe965c048 B
break
pick d0f65f2f81ee C
pick 0547e3f1350d D
Rebasing (2/4)

                                                                                
Stopped at 313fe965c048 (B)
rebase -i script before editing:
pick d0f65f2f81ee C
pick 0547e3f1350d D
rebase -i script after editing:
pick 0547e3f1350d D
Warning: some commits may have been dropped accidentally.
Dropped commits (newer to older):
 - d0f65f2f81ee C
To avoid this message, use "drop" to explicitly remove a commit.

Use 'git config rebase.missingCommitsCheck' to change the level of warnings.
The possible behaviours are: ignore, warn, error.

You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
Or you can abort the rebase with 'git rebase --abort'.
Rebasing (3/4)
Rebasing (4/4)

                                                                                
Successfully rebased and updated detached HEAD.
ok 107 - rebase.missingCommitsCheck = error when editing for a second time

expecting success of 3404.108 'respects rebase.abbreviateCommands with fixup, squash and exec': 
	rebase_setup_and_clean abbrevcmd &&
	test_commit "first" file1.txt "first line" first &&
	test_commit "second" file1.txt "another line" second &&
	test_commit "fixup! first" file2.txt "first line again" first_fixup &&
	test_commit "squash! second" file1.txt "another line here" second_squash &&
	cat >expected <<-EOF &&
	p $(git rev-list --abbrev-commit -1 first) first
	f $(git rev-list --abbrev-commit -1 first_fixup) fixup! first
	x git show HEAD
	p $(git rev-list --abbrev-commit -1 second) second
	s $(git rev-list --abbrev-commit -1 second_squash) squash! second
	x git show HEAD
	EOF
	git checkout abbrevcmd &&
	test_config rebase.abbreviateCommands true &&
	(
		set_cat_todo_editor &&
		test_must_fail git rebase -i --exec "git show HEAD" \
			--autosquash primary >actual
	) &&
	test_cmp expected actual

Previous HEAD position was 0547e3f1350d D
Switched to a new branch 'abbrevcmd'
[abbrevcmd d8672424c621] first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file1.txt
[abbrevcmd a6b958d5140d] second
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
[abbrevcmd 266fc255885e] fixup! first
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file2.txt
[abbrevcmd f20563340f31] squash! second
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
Already on 'abbrevcmd'
error: There was a problem with the editor '"$FAKE_EDITOR"'.
Switched to branch 'primary'
Deleted branch abbrevcmd (was f20563340f31).
fatal: No rebase in progress?
ok 108 - respects rebase.abbreviateCommands with fixup, squash and exec

expecting success of 3404.109 'static check of bad command': 
	rebase_setup_and_clean bad-cmd &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 2 3 bad 4 5" \
		git rebase -i --root 2>actual &&
		test_i18ngrep "badcmd $(git rev-list --oneline -1 primary~1)" \
				actual &&
		test_i18ngrep "You can fix this with .git rebase --edit-todo.." \
				actual &&
		FAKE_LINES="1 2 3 drop 4 5" git rebase --edit-todo
	) &&
	git rebase --continue &&
	test E = $(git cat-file commit HEAD | sed -ne \$p) &&
	test C = $(git cat-file commit HEAD^ | sed -ne \$p)

Switched to a new branch 'bad-cmd'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
badcmd 0547e3f1350d D
pick 8f99a4f1fbbd E
error: invalid line 4: badcmd 0547e3f1350d D
You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
error: invalid line 4: badcmd 0547e3f1350d D
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
badcmd 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
drop 0547e3f1350d D
pick 8f99a4f1fbbd E
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)

                                                                                
Successfully rebased and updated refs/heads/bad-cmd.
Switched to branch 'primary'
Deleted branch bad-cmd (was a59d297984d9).
fatal: No rebase in progress?
ok 109 - static check of bad command

expecting success of 3404.110 'tabs and spaces are accepted in the todolist': 
	rebase_setup_and_clean indented-comment &&
	write_script add-indent.sh <<-\EOF &&
	(
		# Turn single spaces into space/tab mix
		sed "1s/ /	/g; 2s/ /  /g; 3s/ / 	/g" "$1"
		printf "\n\t# comment\n #more\n\t # comment\n"
	) >"$1.new"
	mv "$1.new" "$1"
	EOF
	(
		test_set_editor "$(pwd)/add-indent.sh" &&
		git rebase -i HEAD^^^
	) &&
	test E = $(git cat-file commit HEAD | sed -ne \$p)

Switched to a new branch 'indented-comment'

                                                                                
Successfully rebased and updated refs/heads/indented-comment.
Switched to branch 'primary'
Deleted branch indented-comment (was 8f99a4f1fbbd).
fatal: No rebase in progress?
ok 110 - tabs and spaces are accepted in the todolist

expecting success of 3404.111 'static check of bad SHA-1': 
	rebase_setup_and_clean bad-sha &&
	(
		set_fake_editor &&
		test_must_fail env FAKE_LINES="1 2 edit fakesha 3 4 5 #" \
			git rebase -i --root 2>actual &&
			test_i18ngrep "edit XXXXXXX False commit" actual &&
			test_i18ngrep "You can fix this with .git rebase --edit-todo.." \
					actual &&
		FAKE_LINES="1 2 4 5 6" git rebase --edit-todo
	) &&
	git rebase --continue &&
	test E = $(git cat-file commit HEAD | sed -ne \$p)

Switched to a new branch 'bad-sha'
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E

rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
edit XXXXXXX False commit
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
# comment
error: invalid line 3: edit XXXXXXX False commit
You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
error: could not parse 'XXXXXXX'
error: invalid line 3: edit XXXXXXX False commit
rebase -i script before editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
edit XXXXXXX False commit
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
rebase -i script after editing:
pick 6e62bf890e21 A
pick 313fe965c048 B
pick d0f65f2f81ee C
pick 0547e3f1350d D
pick 8f99a4f1fbbd E
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)

                                                                                
Successfully rebased and updated refs/heads/bad-sha.
Switched to branch 'primary'
Deleted branch bad-sha (was 8f99a4f1fbbd).
fatal: No rebase in progress?
ok 111 - static check of bad SHA-1

expecting success of 3404.112 'editor saves as CR/LF': 
	git checkout -b with-crlf &&
	write_script add-crs.sh <<-\EOF &&
	sed -e "s/\$/Q/" <"$1" | tr Q "\\015" >"$1".new &&
	mv -f "$1".new "$1"
	EOF
	(
		test_set_editor "$(pwd)/add-crs.sh" &&
		git rebase -i HEAD^
	)

Switched to a new branch 'with-crlf'

                                                                                
Successfully rebased and updated refs/heads/with-crlf.
ok 112 - editor saves as CR/LF

expecting success of 3404.113 'rebase -i --gpg-sign=<key-id>': 
	test_when_finished "test_might_fail git rebase --abort" &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1" git rebase -i --gpg-sign="\"S I Gner\"" \
			HEAD^ >out 2>err
	) &&
	test_i18ngrep "$SQ-S\"S I Gner\"$SQ" err

  git commit --amend '-S"S I Gner"'
ok 113 - rebase -i --gpg-sign=<key-id>

expecting success of 3404.114 'rebase -i --gpg-sign=<key-id> overrides commit.gpgSign': 
	test_when_finished "test_might_fail git rebase --abort" &&
	test_config commit.gpgsign true &&
	(
		set_fake_editor &&
		FAKE_LINES="edit 1" git rebase -i --gpg-sign="\"S I Gner\"" \
			HEAD^ >out 2>err
	) &&
	test_i18ngrep "$SQ-S\"S I Gner\"$SQ" err

  git commit --amend '-S"S I Gner"'
ok 114 - rebase -i --gpg-sign=<key-id> overrides commit.gpgSign

expecting success of 3404.115 'valid author header after --root swap': 
	rebase_setup_and_clean author-header no-conflict-branch &&
	git commit --amend --author="Au ${SQ}thor <author@example.com>" --no-edit &&
	git cat-file commit HEAD | grep ^author >expected &&
	(
		set_fake_editor &&
		FAKE_LINES="5 1" git rebase -i --root
	) &&
	git cat-file commit HEAD^ | grep ^author >actual &&
	test_cmp expected actual

Switched to a new branch 'author-header'
[author-header d208fca915b7] M
 Author: Au 'thor <author@example.com>
 Date: Thu Apr 7 15:29:13 2005 -0700
 1 file changed, 1 insertion(+)
 create mode 100644 fileM
rebase -i script before editing:
pick 6e62bf890e21 A
pick 808874f7b187 J
pick 265b89e813d4 K
pick 6b0f5e6c3e83 L
pick d208fca915b7 M

rebase -i script after editing:
pick d208fca915b7 M
pick 6e62bf890e21 A
Rebasing (1/2)
Rebasing (2/2)

                                                                                
Successfully rebased and updated refs/heads/author-header.
Switched to branch 'primary'
Deleted branch author-header (was 12849c8e9973).
fatal: No rebase in progress?
ok 115 - valid author header after --root swap

expecting success of 3404.116 'valid author header when author contains single quote': 
	rebase_setup_and_clean author-header no-conflict-branch &&
	git commit --amend --author="Au ${SQ}thor <author@example.com>" --no-edit &&
	git cat-file commit HEAD | grep ^author >expected &&