git →
1:2.18.0-1 →
armhf → 2018-06-24 06:56:40
sbuild (Debian sbuild) 0.71.0 (24 Aug 2016) on bm-wb-02
+==============================================================================+
| git 1:2.18.0-1 (armhf) Sun, 24 Jun 2018 05:41:22 +0000 |
+==============================================================================+
Package: git
Version: 1:2.18.0-1
Source Version: 1:2.18.0-1
Distribution: buster-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf
I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/buster-staging-armhf-sbuild-3778fe8d-b662-41ff-9f37-745f52b206f6' with '<<CHROOT>>'
+------------------------------------------------------------------------------+
| Update chroot |
+------------------------------------------------------------------------------+
Get:1 http://172.17.0.1/private buster-staging InRelease [11.3 kB]
Get:2 http://172.17.0.1/private buster-staging/main Sources [10.8 MB]
Get:3 http://172.17.0.1/private buster-staging/main armhf Packages [12.6 MB]
Fetched 23.4 MB in 26s (910 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 5683 kB of source archives.
Get:1 http://172.17.0.1/private buster-staging/main git 1:2.18.0-1 (dsc) [2888 B]
Get:2 http://172.17.0.1/private buster-staging/main git 1:2.18.0-1 (tar) [5102 kB]
Get:3 http://172.17.0.1/private buster-staging/main git 1:2.18.0-1 (diff) [578 kB]
Fetched 5683 kB in 1s (10.2 MB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/git-76L6em/git-2.18.0' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/git-76L6em' 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-oMd6is/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-oMd6is/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-oMd6is/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-oMd6is/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Packages [433 B]
Fetched 2109 B in 1s (3026 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:
ca-certificates dbus dbus-user-session e2fsprogs-l10n libexpat1
libnss-systemd libpam-systemd libsasl2-modules libssl1.1 openssl
systemd-sysv
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 3 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-oMd6is/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 (0 B/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 15728 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, python, libhttp-date-perl | libtime-modules-perl, libcgi-pm-perl, liberror-perl, libmailtools-perl, cvs, cvsps, libdbd-sqlite3-perl, unzip, libio-pty-perl, debhelper (>= 9), 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, python, libhttp-date-perl, libcgi-pm-perl, liberror-perl, libmailtools-perl, cvs, cvsps, libdbd-sqlite3-perl, unzip, libio-pty-perl, debhelper (>= 9), dh-exec (>= 0.7), dh-apache2, dpkg-dev (>= 1.16.2~)
dpkg-deb: building package 'sbuild-build-depends-git-dummy' in '/<<BUILDDIR>>/resolver-oMd6is/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-oMd6is/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Sources [653 B]
Get:5 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ Packages [716 B]
Fetched 2702 B in 1s (4149 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:
ca-certificates dbus dbus-user-session e2fsprogs-l10n libnss-systemd
libpam-systemd libsasl2-modules systemd-sysv
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
apache2-dev autoconf automake autopoint autotools-dev bsdmainutils 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 libbsd0 libcgi-pm-perl libcroco3
libcurl3-gnutls libcurl4-gnutls-dev libdbd-sqlite3-perl libdbi-perl libelf1
liberror-perl libexpat1-dev libfile-stripnondeterminism-perl libfreetype6
libglib2.0-0 libgraphite2-3 libgssapi-krb5-2 libharfbuzz0b
libhtml-parser-perl libhtml-tagset-perl libhttp-date-perl libicu-le-hb0
libicu60 libio-pty-perl libio-socket-ssl-perl libk5crypto3 libkeyutils1
libkrb5-3 libkrb5support0 libldap2-dev libmagic-mgc libmagic1
libmailtools-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnghttp2-14
libpcre2-16-0 libpcre2-32-0 libpcre2-8-0 libpcre2-dev libpcre2-posix0
libpipeline1 libpsl5 libpython-stdlib libpython2-stdlib libpython2.7-minimal
libpython2.7-stdlib librtmp1 libsctp-dev libsctp1 libserf-1-1 libsigsegv2
libssh2-1 libsvn-perl libsvn1 libtcl8.6 libtimedate-perl libtool liburi-perl
libutf8proc2 libxml2 libyaml-perl m4 man-db mime-support
perl-openssl-defaults po-debconf python python-minimal python2
python2-minimal python2.7 python2.7-minimal subversion tcl tcl8.6 unzip
uuid-dev zlib1g-dev
Suggested packages:
autoconf-archive gnu-standards autoconf-doc wamerican | wordlist whois
vacation 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 krb5-doc krb5-user libdata-dump-perl lksctp-tools
libtool-doc gfortran | fortran95-compiler gcj-jdk libwww-perl
libyaml-shell-perl m4-doc apparmor less www-browser libmail-box-perl
python-doc python-tk python2-doc python2.7-doc binfmt-support db5.3-util
libapache2-mod-svn subversion-tools tcl-tclreadline zip
Recommended packages:
openssh-client curl | wget | lynx libcgi-fast-perl libarchive-cpio-perl
libglib2.0-data shared-mime-info xdg-user-dirs libhttp-message-perl
krb5-locales libauthen-sasl-perl publicsuffix libltdl-dev
libyaml-libyaml-perl | libyaml-syck-perl libmail-sendmail-perl
The following NEW packages will be installed:
apache2-dev autoconf automake autopoint autotools-dev bsdmainutils 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 libbsd0 libcgi-pm-perl libcroco3
libcurl3-gnutls libcurl4-gnutls-dev libdbd-sqlite3-perl libdbi-perl libelf1
liberror-perl libexpat1-dev libfile-stripnondeterminism-perl libfreetype6
libglib2.0-0 libgraphite2-3 libgssapi-krb5-2 libharfbuzz0b
libhtml-parser-perl libhtml-tagset-perl libhttp-date-perl libicu-le-hb0
libicu60 libio-pty-perl libio-socket-ssl-perl libk5crypto3 libkeyutils1
libkrb5-3 libkrb5support0 libldap2-dev libmagic-mgc libmagic1
libmailtools-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnghttp2-14
libpcre2-16-0 libpcre2-32-0 libpcre2-8-0 libpcre2-dev libpcre2-posix0
libpipeline1 libpsl5 libpython-stdlib libpython2-stdlib libpython2.7-minimal
libpython2.7-stdlib librtmp1 libsctp-dev libsctp1 libserf-1-1 libsigsegv2
libssh2-1 libsvn-perl libsvn1 libtcl8.6 libtimedate-perl libtool liburi-perl
libutf8proc2 libxml2 libyaml-perl m4 man-db mime-support
perl-openssl-defaults po-debconf python python-minimal python2
python2-minimal python2.7 python2.7-minimal sbuild-build-depends-git-dummy
subversion tcl tcl8.6 unzip uuid-dev zlib1g-dev
0 upgraded, 101 newly installed, 0 to remove and 3 not upgraded.
Need to get 36.1 MB/38.9 MB of archives.
After this operation, 138 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-oMd6is/apt_archive ./ sbuild-build-depends-git-dummy 0.invalid.0 [1004 B]
Get:2 http://172.17.0.1/private buster-staging/main armhf libbsd0 armhf 0.9.1-1 [104 kB]
Get:3 http://172.17.0.1/private buster-staging/main armhf bsdmainutils armhf 11.1.2 [182 kB]
Get:4 http://172.17.0.1/private buster-staging/main armhf groff-base armhf 1.22.3-10 [1005 kB]
Get:5 http://172.17.0.1/private buster-staging/main armhf libpipeline1 armhf 1.5.0-1 [24.6 kB]
Get:6 http://172.17.0.1/private buster-staging/main armhf man-db armhf 2.8.3-2 [1146 kB]
Get:7 http://172.17.0.1/private buster-staging/main armhf libpython2.7-minimal armhf 2.7.15-1 [393 kB]
Get:8 http://172.17.0.1/private buster-staging/main armhf python2.7-minimal armhf 2.7.15-1 [1077 kB]
Get:9 http://172.17.0.1/private buster-staging/main armhf python2-minimal armhf 2.7.15-3 [41.3 kB]
Get:10 http://172.17.0.1/private buster-staging/main armhf python-minimal armhf 2.7.15-3 [20.9 kB]
Get:11 http://172.17.0.1/private buster-staging/main armhf mime-support all 3.61 [37.1 kB]
Get:12 http://172.17.0.1/private buster-staging/main armhf libpython2.7-stdlib armhf 2.7.15-1 [1841 kB]
Get:13 http://172.17.0.1/private buster-staging/main armhf python2.7 armhf 2.7.15-1 [298 kB]
Get:14 http://172.17.0.1/private buster-staging/main armhf libpython2-stdlib armhf 2.7.15-3 [20.7 kB]
Get:15 http://172.17.0.1/private buster-staging/main armhf libpython-stdlib armhf 2.7.15-3 [20.7 kB]
Get:16 http://172.17.0.1/private buster-staging/main armhf python2 armhf 2.7.15-3 [41.5 kB]
Get:17 http://172.17.0.1/private buster-staging/main armhf python armhf 2.7.15-3 [22.7 kB]
Get:18 http://172.17.0.1/private buster-staging/main armhf libmagic-mgc armhf 1:5.33-3 [234 kB]
Get:19 http://172.17.0.1/private buster-staging/main armhf libmagic1 armhf 1:5.33-3 [106 kB]
Get:20 http://172.17.0.1/private buster-staging/main armhf file armhf 1:5.33-3 [64.7 kB]
Get:21 http://172.17.0.1/private buster-staging/main armhf gettext-base armhf 0.19.8.1-6 [117 kB]
Get:22 http://172.17.0.1/private buster-staging/main armhf autotools-dev all 20180224.1 [77.0 kB]
Get:23 http://172.17.0.1/private buster-staging/main armhf libsigsegv2 armhf 2.12-2 [32.3 kB]
Get:24 http://172.17.0.1/private buster-staging/main armhf m4 armhf 1.4.18-1 [185 kB]
Get:25 http://172.17.0.1/private buster-staging/main armhf autoconf all 2.69-11 [341 kB]
Get:26 http://172.17.0.1/private buster-staging/main armhf automake all 1:1.15.1-3.1 [736 kB]
Get:27 http://172.17.0.1/private buster-staging/main armhf autopoint all 0.19.8.1-6 [434 kB]
Get:28 http://172.17.0.1/private buster-staging/main armhf libtool all 2.4.6-2.1 [547 kB]
Get:29 http://172.17.0.1/private buster-staging/main armhf dh-autoreconf all 19 [16.9 kB]
Get:30 http://172.17.0.1/private buster-staging/main armhf libarchive-zip-perl all 1.60-1 [95.6 kB]
Get:31 http://172.17.0.1/private buster-staging/main armhf libfile-stripnondeterminism-perl all 0.042-1 [20.1 kB]
Get:32 http://172.17.0.1/private buster-staging/main armhf libtimedate-perl all 2.3000-2 [42.2 kB]
Get:33 http://172.17.0.1/private buster-staging/main armhf dh-strip-nondeterminism all 0.042-1 [12.1 kB]
Get:34 http://172.17.0.1/private buster-staging/main armhf libelf1 armhf 0.170-0.4 [160 kB]
Get:35 http://172.17.0.1/private buster-staging/main armhf dwz armhf 0.12-2 [67.4 kB]
Get:36 http://172.17.0.1/private buster-staging/main armhf libglib2.0-0 armhf 2.56.1-2 [2754 kB]
Get:37 http://172.17.0.1/private buster-staging/main armhf libharfbuzz0b armhf 1.7.6-1+b1 [799 kB]
Get:38 http://172.17.0.1/private buster-staging/main armhf libicu-le-hb0 armhf 1.0.3+git161113-5 [12.8 kB]
Get:39 http://172.17.0.1/private buster-staging/main armhf libicu60 armhf 60.2-6 [7789 kB]
Get:40 http://172.17.0.1/private buster-staging/main armhf libxml2 armhf 2.9.4+dfsg1-7 [602 kB]
Get:41 http://172.17.0.1/private buster-staging/main armhf gettext armhf 0.19.8.1-6 [1218 kB]
Get:42 http://172.17.0.1/private buster-staging/main armhf intltool-debian all 0.35.0+20060710.4 [26.3 kB]
Get:43 http://172.17.0.1/private buster-staging/main armhf po-debconf all 1.0.20 [247 kB]
Get:44 http://172.17.0.1/private buster-staging/main armhf debhelper all 11.3.2 [994 kB]
Get:45 http://172.17.0.1/private buster-staging/main armhf uuid-dev armhf 2.32-0.1 [91.3 kB]
Get:46 http://172.17.0.1/private buster-staging/main armhf libldap2-dev armhf 2.4.46+dfsg-5+rpi1 [298 kB]
Get:47 http://172.17.0.1/private buster-staging/main armhf apache2-dev armhf 2.4.33-3+b1 [324 kB]
Get:48 http://172.17.0.1/private buster-staging/main armhf cvs armhf 2:1.12.13+real-26 [2740 kB]
Get:49 http://172.17.0.1/private buster-staging/main armhf cvsps armhf 2.1-8 [43.3 kB]
Get:50 http://172.17.0.1/private buster-staging/main armhf libhtml-tagset-perl all 3.20-3 [12.7 kB]
Get:51 http://172.17.0.1/private buster-staging/main armhf liburi-perl all 1.74-1 [89.4 kB]
Get:52 http://172.17.0.1/private buster-staging/main armhf libhtml-parser-perl armhf 3.72-3+b1 [101 kB]
Get:53 http://172.17.0.1/private buster-staging/main armhf libcgi-pm-perl all 4.38-1 [222 kB]
Get:54 http://172.17.0.1/private buster-staging/main armhf libnghttp2-14 armhf 1.32.0-1 [71.7 kB]
Get:55 http://172.17.0.1/private buster-staging/main armhf libpsl5 armhf 0.20.2-1 [52.5 kB]
Get:56 http://172.17.0.1/private buster-staging/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-2 [54.0 kB]
Get:57 http://172.17.0.1/private buster-staging/main armhf libcurl3-gnutls armhf 7.60.0-2 [279 kB]
Get:58 http://172.17.0.1/private buster-staging/main armhf libcurl4-gnutls-dev armhf 7.60.0-2 [352 kB]
Get:59 http://172.17.0.1/private buster-staging/main armhf libdbi-perl armhf 1.641-1 [765 kB]
Get:60 http://172.17.0.1/private buster-staging/main armhf libdbd-sqlite3-perl armhf 1.58-1 [159 kB]
Get:61 http://172.17.0.1/private buster-staging/main armhf liberror-perl all 0.17026-1 [30.9 kB]
Get:62 http://172.17.0.1/private buster-staging/main armhf libhttp-date-perl all 6.02-1 [10.7 kB]
Get:63 http://172.17.0.1/private buster-staging/main armhf libio-pty-perl armhf 1:1.08-1.1+b3 [32.9 kB]
Get:64 http://172.17.0.1/private buster-staging/main armhf perl-openssl-defaults armhf 3 [6782 B]
Get:65 http://172.17.0.1/private buster-staging/main armhf libnet-ssleay-perl armhf 1.85-1 [284 kB]
Get:66 http://172.17.0.1/private buster-staging/main armhf libio-socket-ssl-perl all 2.056-1 [205 kB]
Get:67 http://172.17.0.1/private buster-staging/main armhf libnet-smtp-ssl-perl all 1.04-1 [6184 B]
Get:68 http://172.17.0.1/private buster-staging/main armhf libmailtools-perl all 2.18-1 [88.5 kB]
Get:69 http://172.17.0.1/private buster-staging/main armhf libpcre2-16-0 armhf 10.31-3 [169 kB]
Get:70 http://172.17.0.1/private buster-staging/main armhf libpcre2-32-0 armhf 10.31-3 [162 kB]
Get:71 http://172.17.0.1/private buster-staging/main armhf libpcre2-8-0 armhf 10.31-3 [177 kB]
Get:72 http://172.17.0.1/private buster-staging/main armhf libpcre2-posix0 armhf 10.31-3 [34.6 kB]
Get:73 http://172.17.0.1/private buster-staging/main armhf libpcre2-dev armhf 10.31-3 [558 kB]
Get:74 http://172.17.0.1/private buster-staging/main armhf libserf-1-1 armhf 1.3.9-6 [45.5 kB]
Get:75 http://172.17.0.1/private buster-staging/main armhf libutf8proc2 armhf 2.1.0-1 [51.7 kB]
Get:76 http://172.17.0.1/private buster-staging/main armhf libsvn1 armhf 1.10.0-2 [1170 kB]
Get:77 http://172.17.0.1/private buster-staging/main armhf libsvn-perl armhf 1.10.0-2 [947 kB]
Get:78 http://172.17.0.1/private buster-staging/main armhf libtcl8.6 armhf 8.6.8+dfsg-4 [863 kB]
Get:79 http://172.17.0.1/private buster-staging/main armhf libyaml-perl all 1.26-1 [65.7 kB]
Get:80 http://172.17.0.1/private buster-staging/main armhf subversion armhf 1.10.0-2 [982 kB]
Get:81 http://172.17.0.1/private buster-staging/main armhf tcl8.6 armhf 8.6.8+dfsg-4 [123 kB]
Get:82 http://172.17.0.1/private buster-staging/main armhf tcl armhf 8.6.0+9 [5502 B]
Get:83 http://172.17.0.1/private buster-staging/main armhf unzip armhf 6.0-21 [149 kB]
Get:84 http://172.17.0.1/private buster-staging/main armhf zlib1g-dev armhf 1:1.2.11.dfsg-1 [206 kB]
Get:85 http://172.17.0.1/private buster-staging/main armhf dh-exec armhf 0.23+b5 [25.3 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 36.1 MB in 4s (9985 kB/s)
Selecting previously unselected package libbsd0:armhf.
(Reading database ... 15728 files and directories currently installed.)
Preparing to unpack .../00-libbsd0_0.9.1-1_armhf.deb ...
Unpacking libbsd0:armhf (0.9.1-1) ...
Selecting previously unselected package bsdmainutils.
Preparing to unpack .../01-bsdmainutils_11.1.2_armhf.deb ...
Unpacking bsdmainutils (11.1.2) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../02-groff-base_1.22.3-10_armhf.deb ...
Unpacking groff-base (1.22.3-10) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../03-libpipeline1_1.5.0-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.0-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../04-man-db_2.8.3-2_armhf.deb ...
Unpacking man-db (2.8.3-2) ...
Selecting previously unselected package libpython2.7-minimal:armhf.
Preparing to unpack .../05-libpython2.7-minimal_2.7.15-1_armhf.deb ...
Unpacking libpython2.7-minimal:armhf (2.7.15-1) ...
Selecting previously unselected package python2.7-minimal.
Preparing to unpack .../06-python2.7-minimal_2.7.15-1_armhf.deb ...
Unpacking python2.7-minimal (2.7.15-1) ...
Selecting previously unselected package python2-minimal.
Preparing to unpack .../07-python2-minimal_2.7.15-3_armhf.deb ...
Unpacking python2-minimal (2.7.15-3) ...
Selecting previously unselected package python-minimal.
Preparing to unpack .../08-python-minimal_2.7.15-3_armhf.deb ...
Unpacking python-minimal (2.7.15-3) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../09-mime-support_3.61_all.deb ...
Unpacking mime-support (3.61) ...
Selecting previously unselected package libpython2.7-stdlib:armhf.
Preparing to unpack .../10-libpython2.7-stdlib_2.7.15-1_armhf.deb ...
Unpacking libpython2.7-stdlib:armhf (2.7.15-1) ...
Selecting previously unselected package python2.7.
Preparing to unpack .../11-python2.7_2.7.15-1_armhf.deb ...
Unpacking python2.7 (2.7.15-1) ...
Selecting previously unselected package libpython2-stdlib:armhf.
Preparing to unpack .../12-libpython2-stdlib_2.7.15-3_armhf.deb ...
Unpacking libpython2-stdlib:armhf (2.7.15-3) ...
Selecting previously unselected package libpython-stdlib:armhf.
Preparing to unpack .../13-libpython-stdlib_2.7.15-3_armhf.deb ...
Unpacking libpython-stdlib:armhf (2.7.15-3) ...
Setting up libpython2.7-minimal:armhf (2.7.15-1) ...
Setting up python2.7-minimal (2.7.15-1) ...
Setting up python2-minimal (2.7.15-3) ...
Selecting previously unselected package python2.
(Reading database ... 17120 files and directories currently installed.)
Preparing to unpack .../python2_2.7.15-3_armhf.deb ...
Unpacking python2 (2.7.15-3) ...
Setting up python-minimal (2.7.15-3) ...
Selecting previously unselected package python.
(Reading database ... 17153 files and directories currently installed.)
Preparing to unpack .../00-python_2.7.15-3_armhf.deb ...
Unpacking python (2.7.15-3) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../01-libmagic-mgc_1%3a5.33-3_armhf.deb ...
Unpacking libmagic-mgc (1:5.33-3) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../02-libmagic1_1%3a5.33-3_armhf.deb ...
Unpacking libmagic1:armhf (1:5.33-3) ...
Selecting previously unselected package file.
Preparing to unpack .../03-file_1%3a5.33-3_armhf.deb ...
Unpacking file (1:5.33-3) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../04-gettext-base_0.19.8.1-6_armhf.deb ...
Unpacking gettext-base (0.19.8.1-6) ...
Selecting previously unselected package libkeyutils1:armhf.
Preparing to unpack .../05-libkeyutils1_1.5.9-9.2_armhf.deb ...
Unpacking libkeyutils1:armhf (1.5.9-9.2) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../06-autotools-dev_20180224.1_all.deb ...
Unpacking autotools-dev (20180224.1) ...
Selecting previously unselected package libsigsegv2:armhf.
Preparing to unpack .../07-libsigsegv2_2.12-2_armhf.deb ...
Unpacking libsigsegv2:armhf (2.12-2) ...
Selecting previously unselected package m4.
Preparing to unpack .../08-m4_1.4.18-1_armhf.deb ...
Unpacking m4 (1.4.18-1) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../09-autoconf_2.69-11_all.deb ...
Unpacking autoconf (2.69-11) ...
Selecting previously unselected package automake.
Preparing to unpack .../10-automake_1%3a1.15.1-3.1_all.deb ...
Unpacking automake (1:1.15.1-3.1) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../11-autopoint_0.19.8.1-6_all.deb ...
Unpacking autopoint (0.19.8.1-6) ...
Selecting previously unselected package libtool.
Preparing to unpack .../12-libtool_2.4.6-2.1_all.deb ...
Unpacking libtool (2.4.6-2.1) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../13-dh-autoreconf_19_all.deb ...
Unpacking dh-autoreconf (19) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../14-libarchive-zip-perl_1.60-1_all.deb ...
Unpacking libarchive-zip-perl (1.60-1) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../15-libfile-stripnondeterminism-perl_0.042-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (0.042-1) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../16-libtimedate-perl_2.3000-2_all.deb ...
Unpacking libtimedate-perl (2.3000-2) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../17-dh-strip-nondeterminism_0.042-1_all.deb ...
Unpacking dh-strip-nondeterminism (0.042-1) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../18-libelf1_0.170-0.4_armhf.deb ...
Unpacking libelf1:armhf (0.170-0.4) ...
Selecting previously unselected package dwz.
Preparing to unpack .../19-dwz_0.12-2_armhf.deb ...
Unpacking dwz (0.12-2) ...
Selecting previously unselected package libglib2.0-0:armhf.
Preparing to unpack .../20-libglib2.0-0_2.56.1-2_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.56.1-2) ...
Selecting previously unselected package libfreetype6:armhf.
Preparing to unpack .../21-libfreetype6_2.8.1-2_armhf.deb ...
Unpacking libfreetype6:armhf (2.8.1-2) ...
Selecting previously unselected package libgraphite2-3:armhf.
Preparing to unpack .../22-libgraphite2-3_1.3.11-2_armhf.deb ...
Unpacking libgraphite2-3:armhf (1.3.11-2) ...
Selecting previously unselected package libharfbuzz0b:armhf.
Preparing to unpack .../23-libharfbuzz0b_1.7.6-1+b1_armhf.deb ...
Unpacking libharfbuzz0b:armhf (1.7.6-1+b1) ...
Selecting previously unselected package libicu-le-hb0:armhf.
Preparing to unpack .../24-libicu-le-hb0_1.0.3+git161113-5_armhf.deb ...
Unpacking libicu-le-hb0:armhf (1.0.3+git161113-5) ...
Selecting previously unselected package libicu60:armhf.
Preparing to unpack .../25-libicu60_60.2-6_armhf.deb ...
Unpacking libicu60:armhf (60.2-6) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../26-libxml2_2.9.4+dfsg1-7_armhf.deb ...
Unpacking libxml2:armhf (2.9.4+dfsg1-7) ...
Selecting previously unselected package libcroco3:armhf.
Preparing to unpack .../27-libcroco3_0.6.12-2_armhf.deb ...
Unpacking libcroco3:armhf (0.6.12-2) ...
Selecting previously unselected package gettext.
Preparing to unpack .../28-gettext_0.19.8.1-6_armhf.deb ...
Unpacking gettext (0.19.8.1-6) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../29-intltool-debian_0.35.0+20060710.4_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.4) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../30-po-debconf_1.0.20_all.deb ...
Unpacking po-debconf (1.0.20) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../31-debhelper_11.3.2_all.deb ...
Unpacking debhelper (11.3.2) ...
Selecting previously unselected package libapr1:armhf.
Preparing to unpack .../32-libapr1_1.6.3-2_armhf.deb ...
Unpacking libapr1:armhf (1.6.3-2) ...
Selecting previously unselected package uuid-dev:armhf.
Preparing to unpack .../33-uuid-dev_2.32-0.1_armhf.deb ...
Unpacking uuid-dev:armhf (2.32-0.1) ...
Selecting previously unselected package libsctp1:armhf.
Preparing to unpack .../34-libsctp1_1.0.17+dfsg-2_armhf.deb ...
Unpacking libsctp1:armhf (1.0.17+dfsg-2) ...
Selecting previously unselected package libsctp-dev:armhf.
Preparing to unpack .../35-libsctp-dev_1.0.17+dfsg-2_armhf.deb ...
Unpacking libsctp-dev:armhf (1.0.17+dfsg-2) ...
Selecting previously unselected package libapr1-dev.
Preparing to unpack .../36-libapr1-dev_1.6.3-2_armhf.deb ...
Unpacking libapr1-dev (1.6.3-2) ...
Selecting previously unselected package libaprutil1:armhf.
Preparing to unpack .../37-libaprutil1_1.6.1-2_armhf.deb ...
Unpacking libaprutil1:armhf (1.6.1-2) ...
Selecting previously unselected package libldap2-dev:armhf.
Preparing to unpack .../38-libldap2-dev_2.4.46+dfsg-5+rpi1_armhf.deb ...
Unpacking libldap2-dev:armhf (2.4.46+dfsg-5+rpi1) ...
Selecting previously unselected package libexpat1-dev:armhf.
Preparing to unpack .../39-libexpat1-dev_2.2.5-3_armhf.deb ...
Unpacking libexpat1-dev:armhf (2.2.5-3) ...
Selecting previously unselected package libaprutil1-dev.
Preparing to unpack .../40-libaprutil1-dev_1.6.1-2_armhf.deb ...
Unpacking libaprutil1-dev (1.6.1-2) ...
Selecting previously unselected package apache2-dev.
Preparing to unpack .../41-apache2-dev_2.4.33-3+b1_armhf.deb ...
Unpacking apache2-dev (2.4.33-3+b1) ...
Selecting previously unselected package libkrb5support0:armhf.
Preparing to unpack .../42-libkrb5support0_1.16-2_armhf.deb ...
Unpacking libkrb5support0:armhf (1.16-2) ...
Selecting previously unselected package libk5crypto3:armhf.
Preparing to unpack .../43-libk5crypto3_1.16-2_armhf.deb ...
Unpacking libk5crypto3:armhf (1.16-2) ...
Selecting previously unselected package libkrb5-3:armhf.
Preparing to unpack .../44-libkrb5-3_1.16-2_armhf.deb ...
Unpacking libkrb5-3:armhf (1.16-2) ...
Selecting previously unselected package libgssapi-krb5-2:armhf.
Preparing to unpack .../45-libgssapi-krb5-2_1.16-2_armhf.deb ...
Unpacking libgssapi-krb5-2:armhf (1.16-2) ...
Selecting previously unselected package cvs.
Preparing to unpack .../46-cvs_2%3a1.12.13+real-26_armhf.deb ...
Unpacking cvs (2:1.12.13+real-26) ...
Selecting previously unselected package cvsps.
Preparing to unpack .../47-cvsps_2.1-8_armhf.deb ...
Unpacking cvsps (2.1-8) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../48-libhtml-tagset-perl_3.20-3_all.deb ...
Unpacking libhtml-tagset-perl (3.20-3) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../49-liburi-perl_1.74-1_all.deb ...
Unpacking liburi-perl (1.74-1) ...
Selecting previously unselected package libhtml-parser-perl.
Preparing to unpack .../50-libhtml-parser-perl_3.72-3+b1_armhf.deb ...
Unpacking libhtml-parser-perl (3.72-3+b1) ...
Selecting previously unselected package libcgi-pm-perl.
Preparing to unpack .../51-libcgi-pm-perl_4.38-1_all.deb ...
Unpacking libcgi-pm-perl (4.38-1) ...
Selecting previously unselected package libnghttp2-14:armhf.
Preparing to unpack .../52-libnghttp2-14_1.32.0-1_armhf.deb ...
Unpacking libnghttp2-14:armhf (1.32.0-1) ...
Selecting previously unselected package libpsl5:armhf.
Preparing to unpack .../53-libpsl5_0.20.2-1_armhf.deb ...
Unpacking libpsl5:armhf (0.20.2-1) ...
Selecting previously unselected package librtmp1:armhf.
Preparing to unpack .../54-librtmp1_2.4+20151223.gitfa8646d.1-2_armhf.deb ...
Unpacking librtmp1:armhf (2.4+20151223.gitfa8646d.1-2) ...
Selecting previously unselected package libssh2-1:armhf.
Preparing to unpack .../55-libssh2-1_1.8.0-1_armhf.deb ...
Unpacking libssh2-1:armhf (1.8.0-1) ...
Selecting previously unselected package libcurl3-gnutls:armhf.
Preparing to unpack .../56-libcurl3-gnutls_7.60.0-2_armhf.deb ...
Unpacking libcurl3-gnutls:armhf (7.60.0-2) ...
Selecting previously unselected package libcurl4-gnutls-dev:armhf.
Preparing to unpack .../57-libcurl4-gnutls-dev_7.60.0-2_armhf.deb ...
Unpacking libcurl4-gnutls-dev:armhf (7.60.0-2) ...
Selecting previously unselected package libdbi-perl:armhf.
Preparing to unpack .../58-libdbi-perl_1.641-1_armhf.deb ...
Unpacking libdbi-perl:armhf (1.641-1) ...
Selecting previously unselected package libdbd-sqlite3-perl:armhf.
Preparing to unpack .../59-libdbd-sqlite3-perl_1.58-1_armhf.deb ...
Unpacking libdbd-sqlite3-perl:armhf (1.58-1) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../60-liberror-perl_0.17026-1_all.deb ...
Unpacking liberror-perl (0.17026-1) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../61-libhttp-date-perl_6.02-1_all.deb ...
Unpacking libhttp-date-perl (6.02-1) ...
Selecting previously unselected package libio-pty-perl.
Preparing to unpack .../62-libio-pty-perl_1%3a1.08-1.1+b3_armhf.deb ...
Unpacking libio-pty-perl (1:1.08-1.1+b3) ...
Selecting previously unselected package perl-openssl-defaults:armhf.
Preparing to unpack .../63-perl-openssl-defaults_3_armhf.deb ...
Unpacking perl-openssl-defaults:armhf (3) ...
Selecting previously unselected package libnet-ssleay-perl.
Preparing to unpack .../64-libnet-ssleay-perl_1.85-1_armhf.deb ...
Unpacking libnet-ssleay-perl (1.85-1) ...
Selecting previously unselected package libio-socket-ssl-perl.
Preparing to unpack .../65-libio-socket-ssl-perl_2.056-1_all.deb ...
Unpacking libio-socket-ssl-perl (2.056-1) ...
Selecting previously unselected package libnet-smtp-ssl-perl.
Preparing to unpack .../66-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 .../67-libmailtools-perl_2.18-1_all.deb ...
Unpacking libmailtools-perl (2.18-1) ...
Selecting previously unselected package libpcre2-16-0:armhf.
Preparing to unpack .../68-libpcre2-16-0_10.31-3_armhf.deb ...
Unpacking libpcre2-16-0:armhf (10.31-3) ...
Selecting previously unselected package libpcre2-32-0:armhf.
Preparing to unpack .../69-libpcre2-32-0_10.31-3_armhf.deb ...
Unpacking libpcre2-32-0:armhf (10.31-3) ...
Selecting previously unselected package libpcre2-8-0:armhf.
Preparing to unpack .../70-libpcre2-8-0_10.31-3_armhf.deb ...
Unpacking libpcre2-8-0:armhf (10.31-3) ...
Selecting previously unselected package libpcre2-posix0:armhf.
Preparing to unpack .../71-libpcre2-posix0_10.31-3_armhf.deb ...
Unpacking libpcre2-posix0:armhf (10.31-3) ...
Selecting previously unselected package libpcre2-dev:armhf.
Preparing to unpack .../72-libpcre2-dev_10.31-3_armhf.deb ...
Unpacking libpcre2-dev:armhf (10.31-3) ...
Selecting previously unselected package libserf-1-1:armhf.
Preparing to unpack .../73-libserf-1-1_1.3.9-6_armhf.deb ...
Unpacking libserf-1-1:armhf (1.3.9-6) ...
Selecting previously unselected package libutf8proc2:armhf.
Preparing to unpack .../74-libutf8proc2_2.1.0-1_armhf.deb ...
Unpacking libutf8proc2:armhf (2.1.0-1) ...
Selecting previously unselected package libsvn1:armhf.
Preparing to unpack .../75-libsvn1_1.10.0-2_armhf.deb ...
Unpacking libsvn1:armhf (1.10.0-2) ...
Selecting previously unselected package libsvn-perl:armhf.
Preparing to unpack .../76-libsvn-perl_1.10.0-2_armhf.deb ...
Unpacking libsvn-perl:armhf (1.10.0-2) ...
Selecting previously unselected package libtcl8.6:armhf.
Preparing to unpack .../77-libtcl8.6_8.6.8+dfsg-4_armhf.deb ...
Unpacking libtcl8.6:armhf (8.6.8+dfsg-4) ...
Selecting previously unselected package libyaml-perl.
Preparing to unpack .../78-libyaml-perl_1.26-1_all.deb ...
Unpacking libyaml-perl (1.26-1) ...
Selecting previously unselected package subversion.
Preparing to unpack .../79-subversion_1.10.0-2_armhf.deb ...
Unpacking subversion (1.10.0-2) ...
Selecting previously unselected package tcl8.6.
Preparing to unpack .../80-tcl8.6_8.6.8+dfsg-4_armhf.deb ...
Unpacking tcl8.6 (8.6.8+dfsg-4) ...
Selecting previously unselected package tcl.
Preparing to unpack .../81-tcl_8.6.0+9_armhf.deb ...
Unpacking tcl (8.6.0+9) ...
Selecting previously unselected package unzip.
Preparing to unpack .../82-unzip_6.0-21_armhf.deb ...
Unpacking unzip (6.0-21) ...
Selecting previously unselected package zlib1g-dev:armhf.
Preparing to unpack .../83-zlib1g-dev_1%3a1.2.11.dfsg-1_armhf.deb ...
Unpacking zlib1g-dev:armhf (1:1.2.11.dfsg-1) ...
Selecting previously unselected package dh-exec.
Preparing to unpack .../84-dh-exec_0.23+b5_armhf.deb ...
Unpacking dh-exec (0.23+b5) ...
Selecting previously unselected package sbuild-build-depends-git-dummy.
Preparing to unpack .../85-sbuild-build-depends-git-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-git-dummy (0.invalid.0) ...
Setting up libhtml-tagset-perl (3.20-3) ...
Setting up libldap2-dev:armhf (2.4.46+dfsg-5+rpi1) ...
Setting up libapr1:armhf (1.6.3-2) ...
Setting up libarchive-zip-perl (1.60-1) ...
Setting up libnghttp2-14:armhf (1.32.0-1) ...
Setting up mime-support (3.61) ...
Installing new version of config file /etc/mime.types ...
Setting up libsctp1:armhf (1.0.17+dfsg-2) ...
Setting up libio-pty-perl (1:1.08-1.1+b3) ...
Setting up liberror-perl (0.17026-1) ...
Setting up libtimedate-perl (2.3000-2) ...
Setting up libsigsegv2:armhf (2.12-2) ...
Setting up perl-openssl-defaults:armhf (3) ...
Setting up libpsl5:armhf (0.20.2-1) ...
Setting up libelf1:armhf (0.170-0.4) ...
Setting up groff-base (1.22.3-10) ...
Setting up libglib2.0-0:armhf (2.56.1-2) ...
No schema files found: removed existing output file.
Setting up unzip (6.0-21) ...
Setting up uuid-dev:armhf (2.32-0.1) ...
Setting up libyaml-perl (1.26-1) ...
Setting up gettext-base (0.19.8.1-6) ...
Setting up libpipeline1:armhf (1.5.0-1) ...
Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-2) ...
Setting up m4 (1.4.18-1) ...
Setting up libbsd0:armhf (0.9.1-1) ...
Setting up libfreetype6:armhf (2.8.1-2) ...
Setting up libmagic-mgc (1:5.33-3) ...
Setting up libmagic1:armhf (1:5.33-3) ...
Setting up libgraphite2-3:armhf (1.3.11-2) ...
Setting up libssh2-1:armhf (1.8.0-1) ...
Processing triggers for libc-bin (2.27-3+rpi1) ...
Setting up dwz (0.12-2) ...
Setting up autotools-dev (20180224.1) ...
Setting up liburi-perl (1.74-1) ...
Setting up libaprutil1:armhf (1.6.1-2) ...
Setting up libutf8proc2:armhf (2.1.0-1) ...
Setting up libhtml-parser-perl (3.72-3+b1) ...
Setting up libcgi-pm-perl (4.38-1) ...
Setting up libexpat1-dev:armhf (2.2.5-3) ...
Setting up libtcl8.6:armhf (8.6.8+dfsg-4) ...
Setting up libkeyutils1:armhf (1.5.9-9.2) ...
Setting up bsdmainutils (11.1.2) ...
update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode
update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode
Setting up libpcre2-8-0:armhf (10.31-3) ...
Setting up libpcre2-32-0:armhf (10.31-3) ...
Setting up libpcre2-16-0:armhf (10.31-3) ...
Setting up libdbi-perl:armhf (1.641-1) ...
Setting up libpython2.7-stdlib:armhf (2.7.15-1) ...
Setting up autopoint (0.19.8.1-6) ...
Setting up zlib1g-dev:armhf (1:1.2.11.dfsg-1) ...
Setting up libfile-stripnondeterminism-perl (0.042-1) ...
Setting up libsctp-dev:armhf (1.0.17+dfsg-2) ...
Setting up libhttp-date-perl (6.02-1) ...
Setting up libapr1-dev (1.6.3-2) ...
Setting up libdbd-sqlite3-perl:armhf (1.58-1) ...
Setting up libnet-ssleay-perl (1.85-1) ...
Setting up libaprutil1-dev (1.6.1-2) ...
Setting up python2.7 (2.7.15-1) ...
Setting up libharfbuzz0b:armhf (1.7.6-1+b1) ...
Setting up autoconf (2.69-11) ...
Setting up file (1:5.33-3) ...
Setting up libkrb5support0:armhf (1.16-2) ...
Setting up libio-socket-ssl-perl (2.056-1) ...
Setting up tcl8.6 (8.6.8+dfsg-4) ...
Setting up automake (1:1.15.1-3.1) ...
update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode
Setting up man-db (2.8.3-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up libpython2-stdlib:armhf (2.7.15-3) ...
Setting up libpcre2-posix0:armhf (10.31-3) ...
Setting up libtool (2.4.6-2.1) ...
Setting up libk5crypto3:armhf (1.16-2) ...
Setting up libnet-smtp-ssl-perl (1.04-1) ...
Setting up tcl (8.6.0+9) ...
Setting up python2 (2.7.15-3) ...
Setting up libpython-stdlib:armhf (2.7.15-3) ...
Setting up libpcre2-dev:armhf (10.31-3) ...
Setting up libkrb5-3:armhf (1.16-2) ...
Setting up python (2.7.15-3) ...
Setting up libmailtools-perl (2.18-1) ...
Setting up libgssapi-krb5-2:armhf (1.16-2) ...
Setting up libserf-1-1:armhf (1.3.9-6) ...
Setting up libsvn1:armhf (1.10.0-2) ...
Setting up libcurl3-gnutls:armhf (7.60.0-2) ...
Setting up libsvn-perl:armhf (1.10.0-2) ...
Setting up cvs (2:1.12.13+real-26) ...
Allowing use of questionable username.
Adding group `_cvsadmin' (GID 113) ...
Done.
Setting up subversion (1.10.0-2) ...
Setting up libcurl4-gnutls-dev:armhf (7.60.0-2) ...
Setting up cvsps (2.1-8) ...
Setting up libicu-le-hb0:armhf (1.0.3+git161113-5) ...
Setting up libicu60:armhf (60.2-6) ...
Setting up libxml2:armhf (2.9.4+dfsg1-7) ...
Setting up libcroco3:armhf (0.6.12-2) ...
Setting up gettext (0.19.8.1-6) ...
Setting up intltool-debian (0.35.0+20060710.4) ...
Setting up po-debconf (1.0.20) ...
Setting up debhelper (11.3.2) ...
Setting up dh-autoreconf (19) ...
Setting up dh-strip-nondeterminism (0.042-1) ...
Setting up dh-exec (0.23+b5) ...
Setting up apache2-dev (2.4.33-3+b1) ...
Setting up sbuild-build-depends-git-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.27-3+rpi1) ...
W: No sandbox user '_apt' on the system, can not drop privileges
+------------------------------------------------------------------------------+
| Build environment |
+------------------------------------------------------------------------------+
Kernel: Linux 4.9.0-0.bpo.6-armmp armhf (armv7l)
Toolchain package versions: binutils_2.30-21+rpi1 dpkg-dev_1.19.0.5 g++-7_7.3.0-19 gcc-7_7.3.0-19 libc6-dev_2.27-3+rpi1 libstdc++-7-dev_7.3.0-19 libstdc++6_8.1.0-8+rpi1 linux-libc-dev_4.16.12-1+rpi1
Package versions: adduser_3.117 apache2-dev_2.4.33-3+b1 apt_1.6.1 autoconf_2.69-11 automake_1:1.15.1-3.1 autopoint_0.19.8.1-6 autotools-dev_20180224.1 base-files_10.1+rpi1 base-passwd_3.5.45 bash_4.4.18-3 binutils_2.30-21+rpi1 binutils-arm-linux-gnueabihf_2.30-21+rpi1 binutils-common_2.30-21+rpi1 bsdmainutils_11.1.2 bsdutils_1:2.32-0.1 build-essential_12.5 bzip2_1.0.6-8.1 ca-certificates_20170717 coreutils_8.28-1 cpio_2.12+dfsg-6 cpp_4:7.3.0-3+rpi1 cpp-7_7.3.0-19 cvs_2:1.12.13+real-26 cvsps_2.1-8 dash_0.5.8-2.10 dbus_1.12.8-3 dbus-user-session_1.12.8-3 debconf_1.5.67 debhelper_11.3.2 debianutils_4.8.6 dh-autoreconf_19 dh-exec_0.23+b5 dh-strip-nondeterminism_0.042-1 diffutils_1:3.6-1 dirmngr_2.2.8-1 dmsetup_2:1.02.145-4.1+b4 dpkg_1.19.0.5 dpkg-dev_1.19.0.5 dwz_0.12-2 e2fslibs_1.44.2-1 e2fsprogs_1.44.2-1 e2fsprogs-l10n_1.44.2-1 fakeroot_1.22-2 fdisk_2.32-0.1 file_1:5.33-3 findutils_4.6.0+git+20171230-2 g++_4:7.3.0-3+rpi1 g++-7_7.3.0-19 gcc_4:7.3.0-3+rpi1 gcc-4.6-base_4.6.4-5+rpi1 gcc-4.7-base_4.7.3-11+rpi1 gcc-4.8-base_4.8.5-4 gcc-4.9-base_4.9.4-2+rpi1+b7 gcc-5-base_5.5.0-8 gcc-7_7.3.0-19 gcc-7-base_7.3.0-19 gcc-8-base_8.1.0-8+rpi1 gettext_0.19.8.1-6 gettext-base_0.19.8.1-6 gnupg_2.2.8-1 gnupg-agent_2.2.8-1 gnupg-l10n_2.2.8-1 gnupg-utils_2.2.8-1 gpg_2.2.8-1 gpg-agent_2.2.8-1 gpg-wks-client_2.2.8-1 gpg-wks-server_2.2.8-1 gpgconf_2.2.8-1 gpgsm_2.2.8-1 gpgv_2.2.8-1 grep_3.1-2 groff-base_1.22.3-10 gzip_1.6-5 hostname_3.20 inetutils-ping_2:1.9.4-3 init-system-helpers_1.51 initramfs-tools_0.130 initramfs-tools-core_0.130 intltool-debian_0.35.0+20060710.4 klibc-utils_2.0.4-11+rpi1 kmod_25-1 libacl1_2.2.52-3 libapparmor1_2.12-4 libapr1_1.6.3-2 libapr1-dev_1.6.3-2 libaprutil1_1.6.1-2 libaprutil1-dev_1.6.1-2 libapt-pkg5.0_1.6.1 libarchive-zip-perl_1.60-1 libargon2-0_0~20161029-2 libasan4_7.3.0-19 libassuan0_2.5.1-2 libatomic1_8.1.0-8+rpi1 libattr1_1:2.4.47-2 libaudit-common_1:2.8.3-1 libaudit1_1:2.8.3-1 libbinutils_2.30-21+rpi1 libblkid1_2.32-0.1 libbsd0_0.9.1-1 libbz2-1.0_1.0.6-8.1 libc-bin_2.27-3+rpi1 libc-dev-bin_2.27-3+rpi1 libc6_2.27-3+rpi1 libc6-dev_2.27-3+rpi1 libcap-ng0_0.7.9-1 libcap2_1:2.25-1.2 libcc1-0_8.1.0-8+rpi1 libcgi-pm-perl_4.38-1 libcilkrts5_7.3.0-19 libcom-err2_1.44.2-1 libcroco3_0.6.12-2 libcryptsetup12_2:2.0.2-1 libcryptsetup4_2:1.7.5-1 libcurl3-gnutls_7.60.0-2 libcurl4-gnutls-dev_7.60.0-2 libdb5.3_5.3.28-13.1 libdbd-sqlite3-perl_1.58-1 libdbi-perl_1.641-1 libdbus-1-3_1.12.8-3 libdebconfclient0_0.243 libdevmapper1.02.1_2:1.02.145-4.1+b4 libdpkg-perl_1.19.0.5 libdrm-common_2.4.92-1+rpi1 libdrm2_2.4.92-1+rpi1 libelf1_0.170-0.4 liberror-perl_0.17026-1 libexpat1_2.2.5-3 libexpat1-dev_2.2.5-3 libext2fs2_1.44.2-1 libfakeroot_1.22-2 libfdisk1_2.32-0.1 libffi6_3.2.1-8 libfile-stripnondeterminism-perl_0.042-1 libfreetype6_2.8.1-2 libgcc-7-dev_7.3.0-19 libgcc1_1:8.1.0-8+rpi1 libgcrypt20_1.8.3-1 libgdbm-compat4_1.14.1-6 libgdbm3_1.8.3-14 libgdbm5_1.14.1-6 libglib2.0-0_2.56.1-2 libgmp10_2:6.1.2+dfsg-3 libgnutls30_3.5.18-1 libgomp1_8.1.0-8+rpi1 libgpg-error0_1.31-1 libgraphite2-3_1.3.11-2 libgssapi-krb5-2_1.16-2 libharfbuzz0b_1.7.6-1+b1 libhogweed4_3.4-1 libhtml-parser-perl_3.72-3+b1 libhtml-tagset-perl_3.20-3 libhttp-date-perl_6.02-1 libicu-le-hb0_1.0.3+git161113-5 libicu60_60.2-6 libidn11_1.33-2.2 libidn2-0_2.0.4-1.1 libio-pty-perl_1:1.08-1.1+b3 libio-socket-ssl-perl_2.056-1 libip4tc0_1.6.2-1 libisl19_0.19-1 libjson-c3_0.12.1-1.3 libk5crypto3_1.16-2 libkeyutils1_1.5.9-9.2 libklibc_2.0.4-11+rpi1 libkmod2_25-1 libkrb5-3_1.16-2 libkrb5support0_1.16-2 libksba8_1.3.5-2 libldap-2.4-2_2.4.46+dfsg-5+rpi1 libldap-common_2.4.46+dfsg-5+rpi1 libldap2-dev_2.4.46+dfsg-5+rpi1 liblz4-1_1.8.2-1+rpi1 liblzma5_5.2.2-1.3 libmagic-mgc_1:5.33-3 libmagic1_1:5.33-3 libmailtools-perl_2.18-1 libmount1_2.32-0.1 libmpc3_1.1.0-1 libmpfr6_4.0.1-1 libncurses5_6.1+20180210-4 libncurses6_6.1+20180210-4 libncursesw5_6.1+20180210-4 libncursesw6_6.1+20180210-4 libnet-smtp-ssl-perl_1.04-1 libnet-ssleay-perl_1.85-1 libnettle6_3.4-1 libnghttp2-14_1.32.0-1 libnpth0_1.5-4 libnss-systemd_238-4 libp11-kit0_0.23.12-2 libpam-modules_1.1.8-3.7 libpam-modules-bin_1.1.8-3.7 libpam-runtime_1.1.8-3.7 libpam-systemd_238-4 libpam0g_1.1.8-3.7 libpcre2-16-0_10.31-3 libpcre2-32-0_10.31-3 libpcre2-8-0_10.31-3 libpcre2-dev_10.31-3 libpcre2-posix0_10.31-3 libpcre3_2:8.39-9 libperl5.24_5.24.1-7 libperl5.26_5.26.2-6 libpipeline1_1.5.0-1 libplymouth4_0.9.3-3 libpng16-16_1.6.34-1 libprocps7_2:3.3.15-2 libpsl5_0.20.2-1 libpython-stdlib_2.7.15-3 libpython2-stdlib_2.7.15-3 libpython2.7-minimal_2.7.15-1 libpython2.7-stdlib_2.7.15-1 libreadline7_7.0-5 librtmp1_2.4+20151223.gitfa8646d.1-2 libsasl2-2_2.1.27~101-g0780600+dfsg-3.1 libsasl2-modules_2.1.27~101-g0780600+dfsg-3.1 libsasl2-modules-db_2.1.27~101-g0780600+dfsg-3.1 libsctp-dev_1.0.17+dfsg-2 libsctp1_1.0.17+dfsg-2 libseccomp2_2.3.3-2 libselinux1_2.8-1 libsemanage-common_2.8-1 libsemanage1_2.8-1 libsepol1_2.8-1 libserf-1-1_1.3.9-6 libsigsegv2_2.12-2 libsmartcols1_2.32-0.1 libsqlite3-0_3.24.0-1 libss2_1.44.2-1 libssh2-1_1.8.0-1 libssl1.1_1.1.0h-4 libstdc++-7-dev_7.3.0-19 libstdc++6_8.1.0-8+rpi1 libsvn-perl_1.10.0-2 libsvn1_1.10.0-2 libsystemd0_238-4 libtasn1-6_4.13-3 libtcl8.6_8.6.8+dfsg-4 libtimedate-perl_2.3000-2 libtinfo5_6.1+20180210-4 libtinfo6_6.1+20180210-4 libtool_2.4.6-2.1 libubsan0_7.3.0-19 libudev1_238-4 libunistring2_0.9.8-1 liburi-perl_1.74-1 libustr-1.0-1_1.0.4-6 libutf8proc2_2.1.0-1 libuuid1_2.32-0.1 libxml2_2.9.4+dfsg1-7 libyaml-perl_1.26-1 libzstd1_1.3.4+dfsg-3+rpi1 linux-base_4.5 linux-libc-dev_4.16.12-1+rpi1 login_1:4.5-1 lsb-base_9.20170808+rpi1 m4_1.4.18-1 make_4.1-9.1 makedev_2.3.1-93 man-db_2.8.3-2 mawk_1.3.3-17 mime-support_3.61 mount_2.32-0.1 multiarch-support_2.27-3+rpi1 nano_2.9.8-1 ncurses-base_6.1+20180210-4 ncurses-bin_6.1+20180210-4 netbase_5.4 openssl_1.1.0h-4 passwd_1:4.5-1 patch_2.7.6-2 perl_5.26.2-6 perl-base_5.26.2-6 perl-modules-5.24_5.24.1-7 perl-modules-5.26_5.26.2-6 perl-openssl-defaults_3 pinentry-curses_1.1.0-1 plymouth_0.9.3-3 po-debconf_1.0.20 procps_2:3.3.15-2 python_2.7.15-3 python-minimal_2.7.15-3 python2_2.7.15-3 python2-minimal_2.7.15-3 python2.7_2.7.15-1 python2.7-minimal_2.7.15-1 raspbian-archive-keyring_20120528.2 readline-common_7.0-5 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-git-dummy_0.invalid.0 sed_4.4-2 sensible-utils_0.0.12 subversion_1.10.0-2 systemd_238-4 systemd-sysv_238-4 sysvinit-utils_2.88dsf-59.10 tar_1.30+dfsg-2 tcl_8.6.0+9 tcl8.6_8.6.8+dfsg-4 tzdata_2018e-1 udev_238-4 unzip_6.0-21 util-linux_2.32-0.1 uuid-dev_2.32-0.1 xz-utils_5.2.2-1.3 zlib1g_1:1.2.11.dfsg-1 zlib1g-dev_1:1.2.11.dfsg-1
+------------------------------------------------------------------------------+
| Build |
+------------------------------------------------------------------------------+
Unpack source
-------------
gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/sbuild-nonexistent/.gnupg/trustedkeys.kbx': General error
gpgv: Signature made Thu Jun 21 22:52:57 2018 UTC
gpgv: using RSA key 521E58F17E96D712AA0FF102DFC671EEB333FA25
gpgv: issuer "jrnieder@gmail.com"
gpgv: Can't check signature: No public key
dpkg-source: warning: failed to verify signature on ./git_2.18.0-1.dsc
dpkg-source: info: extracting git in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking git_2.18.0.orig.tar.xz
dpkg-source: info: unpacking git_2.18.0-1.debian.tar.xz
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=buster-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=buster-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=109
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=buster-staging-armhf-sbuild-3778fe8d-b662-41ff-9f37-745f52b206f6
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.18.0-1
dpkg-buildpackage: info: source distribution unstable
dpkg-source --before-build git-2.18.0
dpkg-buildpackage: info: host architecture armhf
fakeroot debian/rules clean
dh clean --with apache2
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 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor V=1 CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' 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.18.0
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 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor V=1 CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' 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 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor V=1 CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' USE_LIBPCRE2=1
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f /<<PKGBUILDDIR>>/./*.gcda /<<PKGBUILDDIR>>/builtin/*.gcda /<<PKGBUILDDIR>>/compat/*.gcda /<<PKGBUILDDIR>>/ewah/*.gcda /<<PKGBUILDDIR>>/refs/*.gcda /<<PKGBUILDDIR>>/sha1dc/*.gcda /<<PKGBUILDDIR>>/t/helper/*.gcda /<<PKGBUILDDIR>>/vcs-svn/*.gcda /<<PKGBUILDDIR>>/xdiff/*.gcda
rm -f /<<PKGBUILDDIR>>/./*.gcno /<<PKGBUILDDIR>>/builtin/*.gcno /<<PKGBUILDDIR>>/compat/*.gcno /<<PKGBUILDDIR>>/ewah/*.gcno /<<PKGBUILDDIR>>/refs/*.gcno /<<PKGBUILDDIR>>/sha1dc/*.gcno /<<PKGBUILDDIR>>/t/helper/*.gcno /<<PKGBUILDDIR>>/vcs-svn/*.gcno /<<PKGBUILDDIR>>/xdiff/*.gcno
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f ./*.gcov builtin/*.gcov compat/*.gcov ewah/*.gcov refs/*.gcov sha1dc/*.gcov t/helper/*.gcov vcs-svn/*.gcov xdiff/*.gcov
rm -f ./*.gcda builtin/*.gcda compat/*.gcda ewah/*.gcda refs/*.gcda sha1dc/*.gcda t/helper/*.gcda vcs-svn/*.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 refs/*.gcno sha1dc/*.gcno t/helper/*.gcno vcs-svn/*.gcno xdiff/*.gcno
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f *.res
rm -f abspath.o advice.o alias.o alloc.o apply.o archive.o archive-tar.o archive-zip.o argv-array.o attr.o base85.o bisect.o blame.o blob.o branch.o bulk-checkin.o bundle.o cache-tree.o chdir-notify.o checkout.o color.o column.o combine-diff.o commit.o commit-graph.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 diffcore-break.o diffcore-delta.o diffcore-order.o diffcore-pickaxe.o diffcore-rename.o diff-delta.o diff-lib.o diff-no-index.o diff.o dir.o dir-iterator.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-object.o fetch-pack.o fsck.o fsmonitor.o gettext.o gpg-interface.o graph.o grep.o hashmap.o help.o hex.o ident.o kwset.o levenshtein.o line-log.o line-range.o list-objects.o list-objects-filter.o list-objects-filter-options.o ll-merge.o lockfile.o log-tree.o ls-refs.o mailinfo.o mailmap.o match-trees.o mem-pool.o merge.o merge-blobs.o merge-recursive.o mergesort.o name-hash.o notes.o notes-cache.o notes-merge.o notes-utils.o object.o oidmap.o oidset.o packfile.o pack-bitmap.o pack-bitmap-write.o pack-check.o pack-objects.o pack-revindex.o pack-write.o pager.o parse-options.o parse-options-cb.o patch-delta.o patch-ids.o path.o pathspec.o pkt-line.o preload-index.o pretty.o prio-queue.o progress.o prompt.o protocol.o quote.o reachable.o read-cache.o reflog-walk.o refs.o refs/files-backend.o refs/iterator.o refs/packed-backend.o refs/ref-cache.o refspec.o ref-filter.o remote.o replace-object.o repository.o rerere.o resolve-undo.o revision.o run-command.o send-pack.o sequencer.o serve.o server-info.o setup.o sha1-array.o sha1-lookup.o sha1-file.o sha1-name.o shallow.o sideband.o sigchain.o split-index.o strbuf.o streaming.o string-list.o submodule.o submodule-config.o sub-process.o symlinks.o tag.o tempfile.o tmp-objdir.o trace.o trailer.o transport.o transport-helper.o tree-diff.o tree.o tree-walk.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 thread-utils.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/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-tree.o builtin/commit.o builtin/commit-graph.o builtin/config.o builtin/count-objects.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/fast-export.o builtin/fetch-pack.o builtin/fetch.o builtin/fmt-merge-msg.o builtin/for-each-ref.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.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/mktag.o builtin/mktree.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/read-tree.o builtin/rebase--helper.o builtin/receive-pack.o builtin/reflog.o builtin/remote.o builtin/remote-ext.o builtin/remote-fd.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/serve.o builtin/shortlog.o builtin/show-branch.o builtin/show-ref.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 credential-store.o daemon.o fast-import.o http-backend.o imap-send.o sh-i18n--envsubst.o shell.o show-index.o remote-testsvn.o http-fetch.o http-push.o credential-cache.o credential-cache--daemon.o t/helper/test-dump-fsmonitor.o t/helper/test-dump-untracked-cache.o t/helper/test-fake-ssh.o t/helper/test-line-buffer.o t/helper/test-parse-options.o t/helper/test-pkt-line.o t/helper/test-svn-fe.o t/helper/test-tool.o t/helper/test-chmtime.o t/helper/test-config.o t/helper/test-ctype.o t/helper/test-date.o t/helper/test-delta.o t/helper/test-drop-caches.o t/helper/test-dump-cache-tree.o t/helper/test-dump-split-index.o t/helper/test-example-decorate.o t/helper/test-genrandom.o t/helper/test-hashmap.o t/helper/test-index-version.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-online-cpus.o t/helper/test-path-utils.o t/helper/test-prio-queue.o t/helper/test-read-cache.o t/helper/test-ref-store.o t/helper/test-regex.o t/helper/test-revision-walking.o t/helper/test-run-command.o t/helper/test-scrap-cache-tree.o t/helper/test-sha1-array.o t/helper/test-sha1.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-subprocess.o t/helper/test-urlmatch-normalization.o t/helper/test-wildmatch.o t/helper/test-write-cache.o xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o xdiff/xmerge.o xdiff/xpatience.o xdiff/xhistogram.o vcs-svn/line_buffer.o vcs-svn/sliding_window.o vcs-svn/fast_export.o vcs-svn/svndiff.o vcs-svn/svndump.o common-main.o git.o http.o http-walker.o remote-curl.o
rm -f libgit.a xdiff/lib.a vcs-svn/lib.a
rm -f git-credential-store git-daemon git-fast-import git-http-backend git-imap-send git-sh-i18n--envsubst git-shell git-show-index git-remote-testsvn git-http-fetch git-http-push git-credential-cache git-credential-cache--daemon 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-rebase git-request-pull git-stash 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-parse-remote git-rebase--am git-rebase--interactive git-rebase--merge git-sh-setup git-sh-i18n git-add git-am git-annotate git-apply git-archive git-bisect--helper git-blame git-branch 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-tree git-commit git-commit-graph git-config git-count-objects git-credential git-describe git-diff-files git-diff-index git-diff-tree git-diff git-difftool git-fast-export git-fetch-pack git-fetch git-fmt-merge-msg git-for-each-ref 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 git-merge-base git-merge-file git-merge-index git-merge-ours git-merge-recursive git-merge-tree git-mktag git-mktree 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-read-tree git-rebase--helper git-receive-pack git-reflog git-remote git-remote-ext git-remote-fd git-repack git-replace git-rerere git-reset git-rev-list git-rev-parse git-revert git-rm git-send-pack git-serve git-shortlog git-show-branch git-show-ref 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-merge-subtree git-show git-stage git-status git-whatchanged git
rm -f t/helper/test-dump-fsmonitor t/helper/test-dump-untracked-cache t/helper/test-fake-ssh t/helper/test-line-buffer t/helper/test-parse-options t/helper/test-pkt-line t/helper/test-svn-fe t/helper/test-tool git-remote-testgit
rm -f -r bin-wrappers ./.depend builtin/.depend compat/.depend ewah/.depend refs/.depend sha1dc/.depend t/helper/.depend vcs-svn/.depend xdiff/.depend
rm -f -r po/build/
rm -f *.pyc *.pyo */*.pyc */*.pyo command-list.h TAGS tags cscope*
rm -f -r git-2.18.0 .doc-tmp-dir
rm -f git-2.18.0.tar.gz git-core_2.18.0-*.tar.gz
rm -f git-htmldocs-2.18.0.tar.gz git-manpages-2.18.0.tar.gz
rm -f contrib/coccinelle/*.cocci.patch*
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C Documentation/ clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/Documentation'
rm -f mergetools-list.made && \
/bin/sh -c 'MERGE_TOOLS_DIR=../mergetools && \
. ../git-mergetool--lib.sh && \
show_tool_names can_diff "* " || :' >mergetools-diff.txt && \
/bin/sh -c 'MERGE_TOOLS_DIR=../mergetools && \
. ../git-mergetool--lib.sh && \
show_tool_names can_merge "* " || :' >mergetools-merge.txt && \
date >mergetools-list.made
make[3]: Leaving directory '/<<PKGBUILDDIR>>/Documentation'
/usr/bin/make -C ../ GIT-VERSION-FILE
make[3]: Entering directory '/<<PKGBUILDDIR>>/Documentation'
rm -f cmd-list.made && \
/usr/bin/perl ./cmd-list.perl ../command-list.txt && \
date >cmd-list.made
cmds-ancillaryinterrogators.txt
cmds-ancillarymanipulators.txt
cmds-mainporcelain.txt
cmds-plumbinginterrogators.txt
cmds-plumbingmanipulators.txt
cmds-synchingrepositories.txt
cmds-foreignscminterface.txt
cmds-purehelpers.txt
cmds-synchelpers.txt
make[3]: Leaving directory '/<<PKGBUILDDIR>>/Documentation'
make[3]: Entering directory '/<<PKGBUILDDIR>>/Documentation'
rm -f doc.dep+ doc.dep && \
/usr/bin/perl ./build-docdep.perl >doc.dep+ && \
mv doc.dep+ doc.dep
make[3]: Leaving directory '/<<PKGBUILDDIR>>/Documentation'
make[4]: 'GIT-VERSION-FILE' is up to date.
/usr/bin/make -C ../ GIT-VERSION-FILE
make[4]: 'GIT-VERSION-FILE' is up to date.
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-purehelpers.txt cmds-foreignscminterface.txt mergetools-diff.txt mergetools-merge.txt *.made
rm -f manpage-base-url.xsl
make[3]: Leaving directory '/<<PKGBUILDDIR>>/Documentation'
/usr/bin/make -C gitweb clean
/usr/bin/make -C ../ GIT-VERSION-FILE
make[4]: 'GIT-VERSION-FILE' is up to date.
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 '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'
GITGUI_VERSION = 0.21.GITGUI
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
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>>'
dh_clean
debian/rules build-arch
dh build-arch --with apache2
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/7/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 7.3.0-19' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --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 --with-sysroot=/ --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 --with-target-system-zlib --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
gcc version 7.3.0 (Raspbian 7.3.0-19)
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 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor V=1 CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' USE_LIBPCRE2=1
make[2]: Entering directory '/<<PKGBUILDDIR>>'
GIT_VERSION = 2.18.0
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new build flags
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new link flags
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 hex.o -c -MF ./.depend/hex.o.d -MQ hex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
gcc -o levenshtein.o -c -MF ./.depend/levenshtein.o.d -MQ levenshtein.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 ident.o -c -MF ./.depend/ident.o.d -MQ ident.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 kwset.o -c -MF ./.depend/kwset.o.d -MQ kwset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 line-range.o -c -MF ./.depend/line-range.o.d -MQ line-range.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 list-objects.o -c -MF ./.depend/list-objects.o.d -MQ list-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
/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 list-objects-filter.o -c -MF ./.depend/list-objects-filter.o.d -MQ list-objects-filter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 list-objects-filter-options.o -c -MF ./.depend/list-objects-filter-options.o.d -MQ list-objects-filter-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 ll-merge.o -c -MF ./.depend/ll-merge.o.d -MQ ll-merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 line-log.o -c -MF ./.depend/line-log.o.d -MQ line-log.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 mailmap.o -c -MF ./.depend/mailmap.o.d -MQ mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 log-tree.o -c -MF ./.depend/log-tree.o.d -MQ log-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 mem-pool.o -c -MF ./.depend/mem-pool.o.d -MQ mem-pool.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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.o -c -MF ./.depend/merge.o.d -MQ merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 merge-blobs.o -c -MF ./.depend/merge-blobs.o.d -MQ merge-blobs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 mergesort.o -c -MF ./.depend/mergesort.o.d -MQ mergesort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 mailinfo.o -c -MF ./.depend/mailinfo.o.d -MQ mailinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 name-hash.o -c -MF ./.depend/name-hash.o.d -MQ name-hash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 notes-utils.o -c -MF ./.depend/notes-utils.o.d -MQ notes-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 notes.o -c -MF ./.depend/notes.o.d -MQ notes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 oidmap.o -c -MF ./.depend/oidmap.o.d -MQ oidmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-merge.o -c -MF ./.depend/notes-merge.o.d -MQ notes-merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 oidset.o -c -MF ./.depend/oidset.o.d -MQ oidset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-bitmap-write.o -c -MF ./.depend/pack-bitmap-write.o.d -MQ pack-bitmap-write.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 merge-recursive.o -c -MF ./.depend/merge-recursive.o.d -MQ merge-recursive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-check.o -c -MF ./.depend/pack-check.o.d -MQ pack-check.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-objects.o -c -MF ./.depend/pack-objects.o.d -MQ pack-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 packfile.o -c -MF ./.depend/packfile.o.d -MQ packfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 pack-revindex.o -c -MF ./.depend/pack-revindex.o.d -MQ pack-revindex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 pager.o -c -MF ./.depend/pager.o.d -MQ pager.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 pack-write.o -c -MF ./.depend/pack-write.o.d -MQ pack-write.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-cb.o -c -MF ./.depend/parse-options-cb.o.d -MQ parse-options-cb.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 parse-options.o -c -MF ./.depend/parse-options.o.d -MQ parse-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 preload-index.o -c -MF ./.depend/preload-index.o.d -MQ preload-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 pkt-line.o -c -MF ./.depend/pkt-line.o.d -MQ pkt-line.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 pathspec.o -c -MF ./.depend/pathspec.o.d -MQ pathspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 prio-queue.o -c -MF ./.depend/prio-queue.o.d -MQ prio-queue.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 prompt.o -c -MF ./.depend/prompt.o.d -MQ prompt.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 path.o -c -MF ./.depend/path.o.d -MQ path.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 reachable.o -c -MF ./.depend/reachable.o.d -MQ reachable.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 reflog-walk.o -c -MF ./.depend/reflog-walk.o.d -MQ reflog-walk.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 pretty.o -c -MF ./.depend/pretty.o.d -MQ pretty.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 refs/iterator.o -c -MF refs/.depend/iterator.o.d -MQ refs/iterator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 refs/packed-backend.o -c -MF refs/.depend/packed-backend.o.d -MQ refs/packed-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 refs.o -c -MF ./.depend/refs.o.d -MQ refs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 refspec.o -c -MF ./.depend/refspec.o.d -MQ refspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/files-backend.o -c -MF refs/.depend/files-backend.o.d -MQ refs/files-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/ref-cache.o -c -MF refs/.depend/ref-cache.o.d -MQ refs/ref-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 repository.o -c -MF ./.depend/repository.o.d -MQ repository.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 ref-filter.o -c -MF ./.depend/ref-filter.o.d -MQ ref-filter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 send-pack.o -c -MF ./.depend/send-pack.o.d -MQ send-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sha1-array.o -c -MF ./.depend/sha1-array.o.d -MQ sha1-array.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-array.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 setup.o -c -MF ./.depend/setup.o.d -MQ setup.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 shallow.o -c -MF ./.depend/shallow.o.d -MQ shallow.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sha1-name.o -c -MF ./.depend/sha1-name.o.d -MQ sha1-name.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sideband.o -c -MF ./.depend/sideband.o.d -MQ sideband.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sha1-file.o -c -MF ./.depend/sha1-file.o.d -MQ sha1-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sigchain.o -c -MF ./.depend/sigchain.o.d -MQ sigchain.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 strbuf.o -c -MF ./.depend/strbuf.o.d -MQ strbuf.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sub-process.o -c -MF ./.depend/sub-process.o.d -MQ sub-process.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 symlinks.o -c -MF ./.depend/symlinks.o.d -MQ symlinks.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 submodule.o -c -MF ./.depend/submodule.o.d -MQ submodule.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 tempfile.o -c -MF ./.depend/tempfile.o.d -MQ tempfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sequencer.o -c -MF ./.depend/sequencer.o.d -MQ sequencer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 trailer.o -c -MF ./.depend/trailer.o.d -MQ trailer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 tree-diff.o -c -MF ./.depend/tree-diff.o.d -MQ tree-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 transport.o -c -MF ./.depend/transport.o.d -MQ transport.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 url.o -c -MF ./.depend/url.o.d -MQ url.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 upload-pack.o -c -MF ./.depend/upload-pack.o.d -MQ upload-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 userdiff.o -c -MF ./.depend/userdiff.o.d -MQ userdiff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 unpack-trees.o -c -MF ./.depend/unpack-trees.o.d -MQ unpack-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 versioncmp.o -c -MF ./.depend/versioncmp.o.d -MQ versioncmp.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 walker.o -c -MF ./.depend/walker.o.d -MQ walker.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 wildmatch.o -c -MF ./.depend/wildmatch.o.d -MQ wildmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 write-or-die.o -c -MF ./.depend/write-or-die.o.d -MQ write-or-die.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 wrapper.o -c -MF ./.depend/wrapper.o.d -MQ wrapper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 worktree.o -c -MF ./.depend/worktree.o.d -MQ worktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 ws.o -c -MF ./.depend/ws.o.d -MQ ws.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 zlib.o -c -MF ./.depend/zlib.o.d -MQ zlib.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 xdiff-interface.o -c -MF ./.depend/xdiff-interface.o.d -MQ xdiff-interface.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sha1dc_git.o -c -MF ./.depend/sha1dc_git.o.d -MQ sha1dc_git.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 thread-utils.o -c -MF ./.depend/thread-utils.o.d -MQ thread-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 compat/fopen.o -c -MF compat/.depend/fopen.o.d -MQ compat/fopen.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sha1dc/ubc_check.o -c -MF sha1dc/.depend/ubc_check.o.d -MQ sha1dc/ubc_check.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/strlcpy.o -c -MF compat/.depend/strlcpy.o.d -MQ compat/strlcpy.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 compat/qsort_s.o -c -MF compat/.depend/qsort_s.o.d -MQ compat/qsort_s.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/xprepare.o -c -MF xdiff/.depend/xprepare.o.d -MQ xdiff/xprepare.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sha1dc/sha1.o -c -MF sha1dc/.depend/sha1.o.d -MQ sha1dc/sha1.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 wt-status.o -c -MF ./.depend/wt-status.o.d -MQ wt-status.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/xutils.o -c -MF xdiff/.depend/xutils.o.d -MQ xdiff/xutils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 xdiff/xemit.o -c -MF xdiff/.depend/xemit.o.d -MQ xdiff/xemit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 xdiff/xpatience.o -c -MF xdiff/.depend/xpatience.o.d -MQ xdiff/xpatience.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/xhistogram.o -c -MF xdiff/.depend/xhistogram.o.d -MQ xdiff/xhistogram.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 http-backend.o -c -MF ./.depend/http-backend.o.d -MQ http-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 daemon.o -c -MF ./.depend/daemon.o.d -MQ daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 sh-i18n--envsubst.o -c -MF ./.depend/sh-i18n--envsubst.o.d -MQ sh-i18n--envsubst.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 imap-send.o -c -MF ./.depend/imap-send.o.d -MQ imap-send.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 show-index.o -c -MF ./.depend/show-index.o.d -MQ show-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' show-index.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 vcs-svn/line_buffer.o -c -MF vcs-svn/.depend/line_buffer.o.d -MQ vcs-svn/line_buffer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' vcs-svn/line_buffer.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o remote-testsvn.o -c -MF ./.depend/remote-testsvn.o.d -MQ remote-testsvn.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-testsvn.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o vcs-svn/sliding_window.o -c -MF vcs-svn/.depend/sliding_window.o.d -MQ vcs-svn/sliding_window.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' vcs-svn/sliding_window.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o vcs-svn/svndiff.o -c -MF vcs-svn/.depend/svndiff.o.d -MQ vcs-svn/svndiff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' vcs-svn/svndiff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o vcs-svn/fast_export.o -c -MF vcs-svn/.depend/fast_export.o.d -MQ vcs-svn/fast_export.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' vcs-svn/fast_export.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o vcs-svn/svndump.o -c -MF vcs-svn/.depend/svndump.o.d -MQ vcs-svn/svndump.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' vcs-svn/svndump.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fast-import.o -c -MF ./.depend/fast-import.o.d -MQ fast-import.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fast-import.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
gcc -o http-fetch.o -c -MF ./.depend/http-fetch.o.d -MQ http-fetch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 credential-cache.o -c -MF ./.depend/credential-cache.o.d -MQ credential-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-cache.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
* 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>>'
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-parse-remote git-parse-remote+ && 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-parse-remote.sh >git-parse-remote+ && \
mv git-parse-remote+ git-parse-remote
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rebase--am git-rebase--am+ && 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--am.sh >git-rebase--am+ && \
mv git-rebase--am+ git-rebase--am
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rebase--interactive git-rebase--interactive+ && 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--interactive.sh >git-rebase--interactive+ && \
mv git-rebase--interactive+ git-rebase--interactive
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rebase--merge git-rebase--merge+ && 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--merge.sh >git-rebase--merge+ && \
mv git-rebase--merge+ git-rebase--merge
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>>'
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>>'
gcc -o credential-cache--daemon.o -c -MF ./.depend/credential-cache--daemon.o.d -MQ credential-cache--daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-cache--daemon.c
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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 builtin/add.o -c -MF builtin/.depend/add.o.d -MQ builtin/add.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 builtin/annotate.o -c -MF builtin/.depend/annotate.o.d -MQ builtin/annotate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 http-push.o -c -MF ./.depend/http-push.o.d -MQ http-push.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 builtin/apply.o -c -MF builtin/.depend/apply.o.d -MQ builtin/apply.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 remote-curl.o -c -MF ./.depend/remote-curl.o.d -MQ remote-curl.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/bisect--helper.o -c -MF builtin/.depend/bisect--helper.o.d -MQ builtin/bisect--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/bundle.o -c -MF builtin/.depend/bundle.o.d -MQ builtin/bundle.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/blame.o -c -MF builtin/.depend/blame.o.d -MQ builtin/blame.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/cat-file.o -c -MF builtin/.depend/cat-file.o.d -MQ builtin/cat-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/branch.o -c -MF builtin/.depend/branch.o.d -MQ builtin/branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/check-attr.o -c -MF builtin/.depend/check-attr.o.d -MQ builtin/check-attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/check-mailmap.o -c -MF builtin/.depend/check-mailmap.o.d -MQ builtin/check-mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/am.o -c -MF builtin/.depend/am.o.d -MQ builtin/am.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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-ref-format.o -c -MF builtin/.depend/check-ref-format.o.d -MQ builtin/check-ref-format.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/checkout-index.o -c -MF builtin/.depend/checkout-index.o.d -MQ builtin/checkout-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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-tree.o -c -MF builtin/.depend/commit-tree.o.d -MQ builtin/commit-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/clone.o -c -MF builtin/.depend/clone.o.d -MQ builtin/clone.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/clean.o -c -MF builtin/.depend/clean.o.d -MQ builtin/clean.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/checkout.o -c -MF builtin/.depend/checkout.o.d -MQ builtin/checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/commit-graph.o -c -MF builtin/.depend/commit-graph.o.d -MQ builtin/commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/count-objects.o -c -MF builtin/.depend/count-objects.o.d -MQ builtin/count-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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.o -c -MF builtin/.depend/credential.o.d -MQ builtin/credential.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/diff-files.o -c -MF builtin/.depend/diff-files.o.d -MQ builtin/diff-files.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/config.o -c -MF builtin/.depend/config.o.d -MQ builtin/config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/diff-index.o -c -MF builtin/.depend/diff-index.o.d -MQ builtin/diff-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/describe.o -c -MF builtin/.depend/describe.o.d -MQ builtin/describe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/commit.o -c -MF builtin/.depend/commit.o.d -MQ builtin/commit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/diff-tree.o -c -MF builtin/.depend/diff-tree.o.d -MQ builtin/diff-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/diff.o -c -MF builtin/.depend/diff.o.d -MQ builtin/diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/fast-export.o -c -MF builtin/.depend/fast-export.o.d -MQ builtin/fast-export.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/fmt-merge-msg.o -c -MF builtin/.depend/fmt-merge-msg.o.d -MQ builtin/fmt-merge-msg.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/gc.o -c -MF builtin/.depend/gc.o.d -MQ builtin/gc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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>>'
gcc -o builtin/fetch.o -c -MF builtin/.depend/fetch.o.d -MQ builtin/fetch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/fsck.o -c -MF builtin/.depend/fsck.o.d -MQ builtin/fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/get-tar-commit-id.o -c -MF builtin/.depend/get-tar-commit-id.o.d -MQ builtin/get-tar-commit-id.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/hash-object.o -c -MF builtin/.depend/hash-object.o.d -MQ builtin/hash-object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/help.o -c -MF builtin/.depend/help.o.d -MQ builtin/help.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 builtin/interpret-trailers.o -c -MF builtin/.depend/interpret-trailers.o.d -MQ builtin/interpret-trailers.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/init-db.o -c -MF builtin/.depend/init-db.o.d -MQ builtin/init-db.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/grep.o -c -MF builtin/.depend/grep.o.d -MQ builtin/grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/ls-files.o -c -MF builtin/.depend/ls-files.o.d -MQ builtin/ls-files.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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-remote.o -c -MF builtin/.depend/ls-remote.o.d -MQ builtin/ls-remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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-tree.o -c -MF builtin/.depend/ls-tree.o.d -MQ builtin/ls-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/index-pack.o -c -MF builtin/.depend/index-pack.o.d -MQ builtin/index-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/mailsplit.o -c -MF builtin/.depend/mailsplit.o.d -MQ builtin/mailsplit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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-base.o -c -MF builtin/.depend/merge-base.o.d -MQ builtin/merge-base.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/log.o -c -MF builtin/.depend/log.o.d -MQ builtin/log.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/merge-file.o -c -MF builtin/.depend/merge-file.o.d -MQ builtin/merge-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/merge-ours.o -c -MF builtin/.depend/merge-ours.o.d -MQ builtin/merge-ours.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/mktree.o -c -MF builtin/.depend/mktree.o.d -MQ builtin/mktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/merge.o -c -MF builtin/.depend/merge.o.d -MQ builtin/merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/pack-refs.o -c -MF builtin/.depend/pack-refs.o.d -MQ builtin/pack-refs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/notes.o -c -MF builtin/.depend/notes.o.d -MQ builtin/notes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/patch-id.o -c -MF builtin/.depend/patch-id.o.d -MQ builtin/patch-id.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/prune-packed.o -c -MF builtin/.depend/prune-packed.o.d -MQ builtin/prune-packed.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/pack-redundant.o -c -MF builtin/.depend/pack-redundant.o.d -MQ builtin/pack-redundant.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/pull.o -c -MF builtin/.depend/pull.o.d -MQ builtin/pull.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/push.o -c -MF builtin/.depend/push.o.d -MQ builtin/push.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/read-tree.o -c -MF builtin/.depend/read-tree.o.d -MQ builtin/read-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/rebase--helper.o -c -MF builtin/.depend/rebase--helper.o.d -MQ builtin/rebase--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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--helper.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/remote.o -c -MF builtin/.depend/remote.o.d -MQ builtin/remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/rerere.o -c -MF builtin/.depend/rerere.o.d -MQ builtin/rerere.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/replace.o -c -MF builtin/.depend/replace.o.d -MQ builtin/replace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/repack.o -c -MF builtin/.depend/repack.o.d -MQ builtin/repack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/reset.o -c -MF builtin/.depend/reset.o.d -MQ builtin/reset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/rev-list.o -c -MF builtin/.depend/rev-list.o.d -MQ builtin/rev-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/rm.o -c -MF builtin/.depend/rm.o.d -MQ builtin/rm.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/serve.o -c -MF builtin/.depend/serve.o.d -MQ builtin/serve.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/serve.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/rev-parse.o -c -MF builtin/.depend/rev-parse.o.d -MQ builtin/rev-parse.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/shortlog.o -c -MF builtin/.depend/shortlog.o.d -MQ builtin/shortlog.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/stripspace.o -c -MF builtin/.depend/stripspace.o.d -MQ builtin/stripspace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/symbolic-ref.o -c -MF builtin/.depend/symbolic-ref.o.d -MQ builtin/symbolic-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/show-branch.o -c -MF builtin/.depend/show-branch.o.d -MQ builtin/show-branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/tag.o -c -MF builtin/.depend/tag.o.d -MQ builtin/tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/update-server-info.o -c -MF builtin/.depend/update-server-info.o.d -MQ builtin/update-server-info.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/submodule--helper.o -c -MF builtin/.depend/submodule--helper.o.d -MQ builtin/submodule--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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/upload-pack.o -c -MF builtin/.depend/upload-pack.o.d -MQ builtin/upload-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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-tag.o -c -MF builtin/.depend/verify-tag.o.d -MQ builtin/verify-tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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>>'
gcc -o builtin/verify-pack.o -c -MF builtin/.depend/verify-pack.o.d -MQ builtin/verify-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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>>'
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
3198 translated 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
3376 translated messages.
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>>'
gcc -o builtin/write-tree.o -c -MF builtin/.depend/write-tree.o.d -MQ builtin/write-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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>>'
mkdir -p po/build/locale/ca/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/ca/LC_MESSAGES/git.mo po/ca.po
3328 translated messages, 18 fuzzy translations, 30 untranslated 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
3608 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/es/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/es/LC_MESSAGES/git.mo po/es.po
3608 translated 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
3608 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
716 translated messages, 350 untranslated 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
3608 translated 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
3288 translated messages.
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/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/SVN.pm > perl/build/lib/Git/SVN.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 po/build/locale/zh_CN/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/zh_CN/LC_MESSAGES/git.mo po/zh_CN.po
3608 translated messages.
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/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/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/Fetcher.pm > perl/build/lib/Git/SVN/Fetcher.pm
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
3608 translated messages.
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/Utils.pm > perl/build/lib/Git/SVN/Utils.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/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/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/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/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>>'
gcc -o t/helper/test-dump-fsmonitor.o -c -MF t/helper/.depend/test-dump-fsmonitor.o.d -MQ t/helper/test-dump-fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-fake-ssh.o -c -MF t/helper/.depend/test-fake-ssh.o.d -MQ t/helper/test-fake-ssh.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 builtin/worktree.o -c -MF builtin/.depend/worktree.o.d -MQ builtin/worktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/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>>'
gcc -o t/helper/test-dump-untracked-cache.o -c -MF t/helper/.depend/test-dump-untracked-cache.o.d -MQ t/helper/test-dump-untracked-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-line-buffer.o -c -MF t/helper/.depend/test-line-buffer.o.d -MQ t/helper/test-line-buffer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-line-buffer.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-svn-fe.o -c -MF t/helper/.depend/test-svn-fe.o.d -MQ t/helper/test-svn-fe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-svn-fe.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-chmtime.o -c -MF t/helper/.depend/test-chmtime.o.d -MQ t/helper/test-chmtime.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-parse-options.o -c -MF t/helper/.depend/test-parse-options.o.d -MQ t/helper/test-parse-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-config.o -c -MF t/helper/.depend/test-config.o.d -MQ t/helper/test-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-date.o -c -MF t/helper/.depend/test-date.o.d -MQ t/helper/test-date.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-delta.o -c -MF t/helper/.depend/test-delta.o.d -MQ t/helper/test-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-drop-caches.o -c -MF t/helper/.depend/test-drop-caches.o.d -MQ t/helper/test-drop-caches.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-dump-cache-tree.o -c -MF t/helper/.depend/test-dump-cache-tree.o.d -MQ t/helper/test-dump-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-example-decorate.o -c -MF t/helper/.depend/test-example-decorate.o.d -MQ t/helper/test-example-decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-genrandom.o -c -MF t/helper/.depend/test-genrandom.o.d -MQ t/helper/test-genrandom.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-match-trees.o -c -MF t/helper/.depend/test-match-trees.o.d -MQ t/helper/test-match-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-hashmap.o -c -MF t/helper/.depend/test-hashmap.o.d -MQ t/helper/test-hashmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-mergesort.o -c -MF t/helper/.depend/test-mergesort.o.d -MQ t/helper/test-mergesort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-lazy-init-name-hash.o -c -MF t/helper/.depend/test-lazy-init-name-hash.o.d -MQ t/helper/test-lazy-init-name-hash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-mktemp.o -c -MF t/helper/.depend/test-mktemp.o.d -MQ t/helper/test-mktemp.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-online-cpus.o -c -MF t/helper/.depend/test-online-cpus.o.d -MQ t/helper/test-online-cpus.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-prio-queue.o -c -MF t/helper/.depend/test-prio-queue.o.d -MQ t/helper/test-prio-queue.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-read-cache.o -c -MF t/helper/.depend/test-read-cache.o.d -MQ t/helper/test-read-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-path-utils.o -c -MF t/helper/.depend/test-path-utils.o.d -MQ t/helper/test-path-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-revision-walking.o -c -MF t/helper/.depend/test-revision-walking.o.d -MQ t/helper/test-revision-walking.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-ref-store.o -c -MF t/helper/.depend/test-ref-store.o.d -MQ t/helper/test-ref-store.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-scrap-cache-tree.o -c -MF t/helper/.depend/test-scrap-cache-tree.o.d -MQ t/helper/test-scrap-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-sha1-array.o -c -MF t/helper/.depend/test-sha1-array.o.d -MQ t/helper/test-sha1-array.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-array.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-sha1.o -c -MF t/helper/.depend/test-sha1.o.d -MQ t/helper/test-sha1.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-urlmatch-normalization.o -c -MF t/helper/.depend/test-urlmatch-normalization.o.d -MQ t/helper/test-urlmatch-normalization.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-subprocess.o -c -MF t/helper/.depend/test-subprocess.o.d -MQ t/helper/test-subprocess.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-submodule-config.o -c -MF t/helper/.depend/test-submodule-config.o.d -MQ t/helper/test-submodule-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
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-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-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-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-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>>'
gcc -o t/helper/test-string-list.o -c -MF t/helper/.depend/test-string-list.o.d -MQ t/helper/test-string-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
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-dump-fsmonitor|' < wrap-for-bin.sh > bin-wrappers/test-dump-fsmonitor && \
chmod +x bin-wrappers/test-dump-fsmonitor
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-dump-untracked-cache|' < wrap-for-bin.sh > bin-wrappers/test-dump-untracked-cache && \
chmod +x bin-wrappers/test-dump-untracked-cache
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-line-buffer|' < wrap-for-bin.sh > bin-wrappers/test-line-buffer && \
chmod +x bin-wrappers/test-line-buffer
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-parse-options|' < wrap-for-bin.sh > bin-wrappers/test-parse-options && \
chmod +x bin-wrappers/test-parse-options
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-pkt-line|' < wrap-for-bin.sh > bin-wrappers/test-pkt-line && \
chmod +x bin-wrappers/test-pkt-line
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-svn-fe|' < wrap-for-bin.sh > bin-wrappers/test-svn-fe && \
chmod +x bin-wrappers/test-svn-fe
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|t/helper/test-tool|' < wrap-for-bin.sh > bin-wrappers/test-tool && \
chmod +x bin-wrappers/test-tool
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-remote-testgit git-remote-testgit+ && 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-remote-testgit.sh >git-remote-testgit+ && \
chmod +x git-remote-testgit+ && \
mv git-remote-testgit+ git-remote-testgit
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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-wildmatch.o -c -MF t/helper/.depend/test-wildmatch.o.d -MQ t/helper/test-wildmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 credential-store.o -c -MF ./.depend/credential-store.o.d -MQ credential-store.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-store.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 abspath.o -c -MF ./.depend/abspath.o.d -MQ abspath.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 alloc.o -c -MF ./.depend/alloc.o.d -MQ alloc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 archive-tar.o -c -MF ./.depend/archive-tar.o.d -MQ archive-tar.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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.o -c -MF ./.depend/archive.o.d -MQ archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 argv-array.o -c -MF ./.depend/argv-array.o.d -MQ argv-array.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' argv-array.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o base85.o -c -MF ./.depend/base85.o.d -MQ base85.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-zip.o -c -MF ./.depend/archive-zip.o.d -MQ archive-zip.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
gcc -o attr.o -c -MF ./.depend/attr.o.d -MQ attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
gcc -o blob.o -c -MF ./.depend/blob.o.d -MQ blob.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 bisect.o -c -MF ./.depend/bisect.o.d -MQ bisect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 branch.o -c -MF ./.depend/branch.o.d -MQ branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 bulk-checkin.o -c -MF ./.depend/bulk-checkin.o.d -MQ bulk-checkin.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 cache-tree.o -c -MF ./.depend/cache-tree.o.d -MQ cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 chdir-notify.o -c -MF ./.depend/chdir-notify.o.d -MQ chdir-notify.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 blame.o -c -MF ./.depend/blame.o.d -MQ blame.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 checkout.o -c -MF ./.depend/checkout.o.d -MQ checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 color.o -c -MF ./.depend/color.o.d -MQ color.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 apply.o -c -MF ./.depend/apply.o.d -MQ apply.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 commit-graph.o -c -MF ./.depend/commit-graph.o.d -MQ commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 compat/obstack.o -c -MF compat/.depend/obstack.o.d -MQ compat/obstack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 compat/terminal.o -c -MF compat/.depend/terminal.o.d -MQ compat/terminal.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 combine-diff.o -c -MF ./.depend/combine-diff.o.d -MQ combine-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 commit.o -c -MF ./.depend/commit.o.d -MQ commit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 connected.o -c -MF ./.depend/connected.o.d -MQ connected.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 connect.o -c -MF ./.depend/connect.o.d -MQ connect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 credential.o -c -MF ./.depend/credential.o.d -MQ credential.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 csum-file.o -c -MF ./.depend/csum-file.o.d -MQ csum-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 convert.o -c -MF ./.depend/convert.o.d -MQ convert.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 decorate.o -c -MF ./.depend/decorate.o.d -MQ decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 diffcore-break.o -c -MF ./.depend/diffcore-break.o.d -MQ diffcore-break.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-pickaxe.o -c -MF ./.depend/diffcore-pickaxe.o.d -MQ diffcore-pickaxe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 config.o -c -MF ./.depend/config.o.d -MQ config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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
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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 diff-delta.o -c -MF ./.depend/diff-delta.o.d -MQ diff-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 diffcore-rename.o -c -MF ./.depend/diffcore-rename.o.d -MQ diffcore-rename.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 diff-no-index.o -c -MF ./.depend/diff-no-index.o.d -MQ diff-no-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 diff-lib.o -c -MF ./.depend/diff-lib.o.d -MQ diff-lib.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 editor.o -c -MF ./.depend/editor.o.d -MQ editor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 environment.o -c -MF ./.depend/environment.o.d -MQ environment.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 entry.o -c -MF ./.depend/entry.o.d -MQ entry.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 ewah/bitmap.o -c -MF ewah/.depend/bitmap.o.d -MQ ewah/bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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_rlw.o -c -MF ewah/.depend/ewah_rlw.o.d -MQ ewah/ewah_rlw.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 ewah/ewah_bitmap.o -c -MF ewah/.depend/ewah_bitmap.o.d -MQ ewah/ewah_bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-object.o -c -MF ./.depend/fetch-object.o.d -MQ fetch-object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-object.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 fsmonitor.o -c -MF ./.depend/fsmonitor.o.d -MQ fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 fsck.o -c -MF ./.depend/fsck.o.d -MQ fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 gpg-interface.o -c -MF ./.depend/gpg-interface.o.d -MQ gpg-interface.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 fetch-pack.o -c -MF ./.depend/fetch-pack.o.d -MQ fetch-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 hashmap.o -c -MF ./.depend/hashmap.o.d -MQ hashmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
/bin/sh: 1: git: not found
gcc -o version.o -c -MF ./.depend/version.o.d -MQ version.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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.18.0"' '-DGIT_USER_AGENT="git/2.18.0"' '-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/xprepare.o xdiff/xutils.o xdiff/xemit.o xdiff/xmerge.o xdiff/xpatience.o xdiff/xhistogram.o
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f vcs-svn/lib.a && ar rcs vcs-svn/lib.a vcs-svn/line_buffer.o vcs-svn/sliding_window.o vcs-svn/fast_export.o vcs-svn/svndiff.o vcs-svn/svndump.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-rebase git-rebase+ && 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.sh >git-rebase+ && \
chmod +x git-rebase+ && \
mv git-rebase+ git-rebase
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-stash git-stash+ && 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-stash.sh >git-stash+ && \
chmod +x git-stash+ && \
mv git-stash+ git-stash
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/python|' \
git-p4.py >git-p4+ && \
chmod +x git-p4+ && \
mv git-p4+ git-p4
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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 help.o -c -MF ./.depend/help.o.d -MQ help.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 grep.o -c -MF ./.depend/grep.o.d -MQ grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 diff.o -c -MF ./.depend/diff.o.d -MQ diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
rm -f libgit.a && ar rcs libgit.a abspath.o advice.o alias.o alloc.o apply.o archive.o archive-tar.o archive-zip.o argv-array.o attr.o base85.o bisect.o blame.o blob.o branch.o bulk-checkin.o bundle.o cache-tree.o chdir-notify.o checkout.o color.o column.o combine-diff.o commit.o commit-graph.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 diffcore-break.o diffcore-delta.o diffcore-order.o diffcore-pickaxe.o diffcore-rename.o diff-delta.o diff-lib.o diff-no-index.o diff.o dir.o dir-iterator.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-object.o fetch-pack.o fsck.o fsmonitor.o gettext.o gpg-interface.o graph.o grep.o hashmap.o help.o hex.o ident.o kwset.o levenshtein.o line-log.o line-range.o list-objects.o list-objects-filter.o list-objects-filter-options.o ll-merge.o lockfile.o log-tree.o ls-refs.o mailinfo.o mailmap.o match-trees.o mem-pool.o merge.o merge-blobs.o merge-recursive.o mergesort.o name-hash.o notes.o notes-cache.o notes-merge.o notes-utils.o object.o oidmap.o oidset.o packfile.o pack-bitmap.o pack-bitmap-write.o pack-check.o pack-objects.o pack-revindex.o pack-write.o pager.o parse-options.o parse-options-cb.o patch-delta.o patch-ids.o path.o pathspec.o pkt-line.o preload-index.o pretty.o prio-queue.o progress.o prompt.o protocol.o quote.o reachable.o read-cache.o reflog-walk.o refs.o refs/files-backend.o refs/iterator.o refs/packed-backend.o refs/ref-cache.o refspec.o ref-filter.o remote.o replace-object.o repository.o rerere.o resolve-undo.o revision.o run-command.o send-pack.o sequencer.o serve.o server-info.o setup.o sha1-array.o sha1-lookup.o sha1-file.o sha1-name.o shallow.o sideband.o sigchain.o split-index.o strbuf.o streaming.o string-list.o submodule.o submodule-config.o sub-process.o symlinks.o tag.o tempfile.o tmp-objdir.o trace.o trailer.o transport.o transport-helper.o tree-diff.o tree.o tree-walk.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 thread-utils.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-fast-import -Wl,-z,relro fast-import.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-credential-store -Wl,-z,relro credential-store.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-show-index -Wl,-z,relro show-index.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-testsvn -Wl,-z,relro remote-testsvn.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt \
vcs-svn/lib.a
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-credential-cache -Wl,-z,relro credential-cache.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-credential-cache--daemon -Wl,-z,relro credential-cache--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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-dump-fsmonitor -Wl,-z,relro t/helper/test-dump-fsmonitor.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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/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-tree.o builtin/commit.o builtin/commit-graph.o builtin/config.o builtin/count-objects.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/fast-export.o builtin/fetch-pack.o builtin/fetch.o builtin/fmt-merge-msg.o builtin/for-each-ref.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.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/mktag.o builtin/mktree.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/read-tree.o builtin/rebase--helper.o builtin/receive-pack.o builtin/reflog.o builtin/remote.o builtin/remote-ext.o builtin/remote-fd.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/serve.o builtin/shortlog.o builtin/show-branch.o builtin/show-ref.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>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-dump-untracked-cache -Wl,-z,relro t/helper/test-dump-untracked-cache.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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-line-buffer -Wl,-z,relro t/helper/test-line-buffer.o common-main.o libgit.a xdiff/lib.a vcs-svn/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 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-parse-options -Wl,-z,relro t/helper/test-parse-options.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>>'
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>>'
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-archive && \
ln git git-archive 2>/dev/null || \
ln -s git git-archive 2>/dev/null || \
cp git git-archive
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-bisect--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-blame && \
ln git git-blame 2>/dev/null || \
ln -s git git-blame 2>/dev/null || \
cp git git-blame
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-branch && \
ln git git-branch 2>/dev/null || \
ln -s git git-branch 2>/dev/null || \
cp git git-branch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-bundle && \
ln git git-bundle 2>/dev/null || \
ln -s git git-bundle 2>/dev/null || \
cp git git-bundle
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-pkt-line -Wl,-z,relro t/helper/test-pkt-line.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>>'
rm -f git-checkout-index && \
ln git git-checkout-index 2>/dev/null || \
ln -s git git-checkout-index 2>/dev/null || \
cp git git-checkout-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-checkout && \
ln git git-checkout 2>/dev/null || \
ln -s git git-checkout 2>/dev/null || \
cp git git-checkout
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-clean && \
ln git git-clean 2>/dev/null || \
ln -s git git-clean 2>/dev/null || \
cp git git-clean
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-clone && \
ln git git-clone 2>/dev/null || \
ln -s git git-clone 2>/dev/null || \
cp git git-clone
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-column && \
ln git git-column 2>/dev/null || \
ln -s git git-column 2>/dev/null || \
cp git git-column
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-commit-tree && \
ln git git-commit-tree 2>/dev/null || \
ln -s git git-commit-tree 2>/dev/null || \
cp git git-commit-tree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-commit && \
ln git git-commit 2>/dev/null || \
ln -s git git-commit 2>/dev/null || \
cp git git-commit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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-config && \
ln git git-config 2>/dev/null || \
ln -s git git-config 2>/dev/null || \
cp git git-config
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-count-objects && \
ln git git-count-objects 2>/dev/null || \
ln -s git git-count-objects 2>/dev/null || \
cp git git-count-objects
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-credential && \
ln git git-credential 2>/dev/null || \
ln -s git git-credential 2>/dev/null || \
cp git git-credential
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-describe && \
ln git git-describe 2>/dev/null || \
ln -s git git-describe 2>/dev/null || \
cp git git-describe
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diff-files && \
ln git git-diff-files 2>/dev/null || \
ln -s git git-diff-files 2>/dev/null || \
cp git git-diff-files
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diff-index && \
ln git git-diff-index 2>/dev/null || \
ln -s git git-diff-index 2>/dev/null || \
cp git git-diff-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diff-tree && \
ln git git-diff-tree 2>/dev/null || \
ln -s git git-diff-tree 2>/dev/null || \
cp git git-diff-tree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diff && \
ln git git-diff 2>/dev/null || \
ln -s git git-diff 2>/dev/null || \
cp git git-diff
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-difftool && \
ln git git-difftool 2>/dev/null || \
ln -s git git-difftool 2>/dev/null || \
cp git git-difftool
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fast-export && \
ln git git-fast-export 2>/dev/null || \
ln -s git git-fast-export 2>/dev/null || \
cp git git-fast-export
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fetch-pack && \
ln git git-fetch-pack 2>/dev/null || \
ln -s git git-fetch-pack 2>/dev/null || \
cp git git-fetch-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fetch && \
ln git git-fetch 2>/dev/null || \
ln -s git git-fetch 2>/dev/null || \
cp git git-fetch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fmt-merge-msg && \
ln git git-fmt-merge-msg 2>/dev/null || \
ln -s git git-fmt-merge-msg 2>/dev/null || \
cp git git-fmt-merge-msg
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-for-each-ref && \
ln git git-for-each-ref 2>/dev/null || \
ln -s git git-for-each-ref 2>/dev/null || \
cp git git-for-each-ref
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fsck && \
ln git git-fsck 2>/dev/null || \
ln -s git git-fsck 2>/dev/null || \
cp git git-fsck
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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-init-db && \
ln git git-init-db 2>/dev/null || \
ln -s git git-init-db 2>/dev/null || \
cp git git-init-db
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-interpret-trailers && \
ln git git-interpret-trailers 2>/dev/null || \
ln -s git git-interpret-trailers 2>/dev/null || \
cp git git-interpret-trailers
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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-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 && \
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-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>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-svn-fe -Wl,-z,relro t/helper/test-svn-fe.o common-main.o libgit.a xdiff/lib.a vcs-svn/lib.a libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt
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-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-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>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"armv7l\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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-chmtime.o t/helper/test-config.o t/helper/test-ctype.o t/helper/test-date.o t/helper/test-delta.o t/helper/test-drop-caches.o t/helper/test-dump-cache-tree.o t/helper/test-dump-split-index.o t/helper/test-example-decorate.o t/helper/test-genrandom.o t/helper/test-hashmap.o t/helper/test-index-version.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-online-cpus.o t/helper/test-path-utils.o t/helper/test-prio-queue.o t/helper/test-read-cache.o t/helper/test-ref-store.o t/helper/test-regex.o t/helper/test-revision-walking.o t/helper/test-run-command.o t/helper/test-scrap-cache-tree.o t/helper/test-sha1-array.o t/helper/test-sha1.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-subprocess.o t/helper/test-urlmatch-normalization.o t/helper/test-wildmatch.o t/helper/test-write-cache.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>>'
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-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-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 && \
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-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--helper && \
ln git git-rebase--helper 2>/dev/null || \
ln -s git git-rebase--helper 2>/dev/null || \
cp git git-rebase--helper
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-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 && \
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-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-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-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-revert && \
ln git git-revert 2>/dev/null || \
ln -s git git-revert 2>/dev/null || \
cp git git-revert
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rm && \
ln git git-rm 2>/dev/null || \
ln -s git git-rm 2>/dev/null || \
cp git git-rm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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-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-serve && \
ln git git-serve 2>/dev/null || \
ln -s git git-serve 2>/dev/null || \
cp git git-serve
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-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-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-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-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-unpack-file && \
ln git git-unpack-file 2>/dev/null || \
ln -s git git-unpack-file 2>/dev/null || \
cp git git-unpack-file
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-unpack-objects && \
ln git git-unpack-objects 2>/dev/null || \
ln -s git git-unpack-objects 2>/dev/null || \
cp git git-unpack-objects
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-update-index && \
ln git git-update-index 2>/dev/null || \
ln -s git git-update-index 2>/dev/null || \
cp git git-update-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-update-ref && \
ln git git-update-ref 2>/dev/null || \
ln -s git git-update-ref 2>/dev/null || \
cp git git-update-ref
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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-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-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-tag && \
ln git git-verify-tag 2>/dev/null || \
ln -s git git-verify-tag 2>/dev/null || \
cp git git-verify-tag
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-worktree && \
ln git git-worktree 2>/dev/null || \
ln -s git git-worktree 2>/dev/null || \
cp git git-worktree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-write-tree && \
ln git git-write-tree 2>/dev/null || \
ln -s git git-write-tree 2>/dev/null || \
cp git git-write-tree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cherry && \
ln git git-cherry 2>/dev/null || \
ln -s git git-cherry 2>/dev/null || \
cp git git-cherry
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cherry-pick && \
ln git git-cherry-pick 2>/dev/null || \
ln -s git git-cherry-pick 2>/dev/null || \
cp git git-cherry-pick
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-format-patch && \
ln git git-format-patch 2>/dev/null || \
ln -s git git-format-patch 2>/dev/null || \
cp git git-format-patch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fsck-objects && \
ln git git-fsck-objects 2>/dev/null || \
ln -s git git-fsck-objects 2>/dev/null || \
cp git git-fsck-objects
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-init && \
ln git git-init 2>/dev/null || \
ln -s git git-init 2>/dev/null || \
cp git git-init
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge-subtree && \
ln git git-merge-subtree 2>/dev/null || \
ln -s git git-merge-subtree 2>/dev/null || \
cp git git-merge-subtree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-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-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-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>>'
/usr/bin/make -C git-gui gitexecdir='/usr/lib/git-core' all
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
GITGUI_VERSION = 0.21.GITGUI
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
* new locations or Tcl/Tk interpreter
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l de -d po/ po/de.po
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 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 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 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 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 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 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 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 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 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 ru -d po/ po/ru.po
520 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'
rm -f git-gui git-gui+ && \
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@SHELL_PATH@@|/bin/sh|' \
-e '1,30s|^ argv0=$0| argv0=$0|' \
-e '1,30s|^ exec wish | exec '\''wish'\'' |' \
-e 's/@@GITGUI_VERSION@@/0.21.GITGUI/g' \
-e 's|@@GITGUI_RELATIVE@@||' \
-e 's|@@GITGUI_LIBDIR@@|/usr/share/git-gui/lib|' \
git-gui.sh >git-gui+ && \
chmod +x git-gui+ && \
mv git-gui+ git-gui
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
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'
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 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 '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/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/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/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/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/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/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/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/bg.msg
msgfmt --statistics --tcl po/bg.po -l bg -d po/
311 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'
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'
/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[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 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor V=1 CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' 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 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor V=1 CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' USE_LIBPCRE2=1
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-archimport git-archimport+ && \
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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-add--interactive git-add--interactive+ && \
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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-cvsexportcommit git-cvsexportcommit+ && \
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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-svn git-svn+ && \
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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 ' rGIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.18.0/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-p4 git-p4+ && \
sed -e '1s|#!.*python|#!/usr/bin/python|' \
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:
REAL="$(pwd)/.real" &&
mv .git "$REAL"
ok 1 - initial setup
expecting success:
echo "gitdir $REAL" >.git &&
test_must_fail git rev-parse 2>.err &&
test_i18ngrep "invalid gitfile format" .err
fatal: invalid gitfile format: /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/.git
ok 2 - bad setup: invalid .git file format
expecting success:
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:
echo "gitdir: $REAL" >.git &&
test "$REAL" = "$(git rev-parse --git-dir)"
ok 4 - final setup + check rev-parse --git-dir
expecting success:
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:
git cat-file blob $SHA >actual &&
test_cmp bar actual
ok 6 - check cat-file
expecting success:
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:
SHA=$(git write-tree) &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
ok 8 - check write-tree
expecting success:
SHA=$(echo "commit bar" | git commit-tree $SHA) &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
ok 9 - check commit-tree
expecting success:
echo $SHA >"$REAL/HEAD" &&
test "$SHA" = "$(git rev-list HEAD)"
ok 10 - check rev-list
expecting success:
git init sgd &&
(
cd sgd &&
git config alias.lsfi ls-files &&
mv .git .realgit &&
echo "gitdir: .realgit" >.git &&
mkdir subdir &&
cd subdir &&
>foo &&
git add foo &&
git lsfi >actual &&
echo foo >expected &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/sgd/.git/
ok 11 - setup_git_dir twice in subdir
expecting success:
test_create_repo enter_repo &&
(
cd enter_repo &&
test_tick &&
test_commit foo &&
mv .git .realgit &&
echo "gitdir: .realgit" >.git
) &&
git ls-remote enter_repo >actual &&
cat >expected <<-\EOF &&
946e985ab20de757ca5b872b16d64e92ff3803a9 HEAD
946e985ab20de757ca5b872b16d64e92ff3803a9 refs/heads/master
946e985ab20de757ca5b872b16d64e92ff3803a9 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:
(
cd enter_repo &&
git worktree add ../foo refs/tags/foo
) &&
git ls-remote foo >actual &&
cat >expected <<-\EOF &&
946e985ab20de757ca5b872b16d64e92ff3803a9 HEAD
946e985ab20de757ca5b872b16d64e92ff3803a9 refs/heads/master
946e985ab20de757ca5b872b16d64e92ff3803a9 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:
git ls-remote --upload-pack="git upload-pack --strict" foo/.git >actual &&
cat >expected <<-\EOF &&
946e985ab20de757ca5b872b16d64e92ff3803a9 HEAD
946e985ab20de757ca5b872b16d64e92ff3803a9 refs/heads/master
946e985ab20de757ca5b872b16d64e92ff3803a9 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:
>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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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:
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:
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:
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:
{ 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:
# 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:
test-tool genrandom foo 16384 >file &&
git add file
ok 3 - create blob
expecting success:
OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) &&
test_match_signal 13 "$OUT"
ok 4 - a constipated git dies with SIGPIPE
expecting success:
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:
echo "\"a test=a" >.gitattributes &&
test_must_fail attr_check a a
--- expect 2018-06-24 06:00:55.338074472 +0000
+++ actual 2018-06-24 06:00:55.338074472 +0000
@@ -1 +1 @@
-a: test: a
+a: test: unspecified
ok 1 - open-quoted pathname
expecting success:
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:
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:
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:
test_must_fail attr_check F f "-c core.ignorecase=0" &&
test_must_fail attr_check a/F f "-c core.ignorecase=0" &&
test_must_fail attr_check a/c/F f "-c core.ignorecase=0" &&
test_must_fail attr_check a/G a/g "-c core.ignorecase=0" &&
test_must_fail attr_check a/B/g a/b/g "-c core.ignorecase=0" &&
test_must_fail attr_check a/b/G a/b/g "-c core.ignorecase=0" &&
test_must_fail attr_check a/b/H a/b/h "-c core.ignorecase=0" &&
test_must_fail attr_check a/b/D/g "a/b/d/*" "-c core.ignorecase=0" &&
test_must_fail attr_check oNoFf unset "-c core.ignorecase=0" &&
test_must_fail attr_check oFfOn set "-c core.ignorecase=0" &&
attr_check NO unspecified "-c core.ignorecase=0" &&
test_must_fail attr_check a/b/D/NO "a/b/d/*" "-c core.ignorecase=0" &&
attr_check a/b/d/YES a/b/d/* "-c core.ignorecase=0" &&
test_must_fail attr_check a/E/f "A/e/F" "-c core.ignorecase=0"
--- expect 2018-06-24 06:00:56.308099224 +0000
+++ actual 2018-06-24 06:00:56.303099096 +0000
@@ -1 +1 @@
-F: test: f
+F: test: unspecified
--- expect 2018-06-24 06:00:56.338099989 +0000
+++ actual 2018-06-24 06:00:56.333099862 +0000
@@ -1 +1 @@
-a/F: test: f
+a/F: test: unspecified
--- expect 2018-06-24 06:00:56.373100882 +0000
+++ actual 2018-06-24 06:00:56.368100755 +0000
@@ -1 +1 @@
-a/c/F: test: f
+a/c/F: test: unspecified
--- expect 2018-06-24 06:00:56.408101776 +0000
+++ actual 2018-06-24 06:00:56.403101648 +0000
@@ -1 +1 @@
-a/G: test: a/g
+a/G: test: unspecified
--- expect 2018-06-24 06:00:56.438102541 +0000
+++ actual 2018-06-24 06:00:56.433102413 +0000
@@ -1 +1 @@
-a/B/g: test: a/b/g
+a/B/g: test: a/g
--- expect 2018-06-24 06:00:56.463103179 +0000
+++ actual 2018-06-24 06:00:56.463103179 +0000
@@ -1 +1 @@
-a/b/G: test: a/b/g
+a/b/G: test: unspecified
--- expect 2018-06-24 06:00:56.498104072 +0000
+++ actual 2018-06-24 06:00:56.493103944 +0000
@@ -1 +1 @@
-a/b/H: test: a/b/h
+a/b/H: test: unspecified
--- expect 2018-06-24 06:00:56.538105093 +0000
+++ actual 2018-06-24 06:00:56.533104965 +0000
@@ -1 +1 @@
-a/b/D/g: test: a/b/d/*
+a/b/D/g: test: a/g
--- expect 2018-06-24 06:00:56.568105858 +0000
+++ actual 2018-06-24 06:00:56.563105731 +0000
@@ -1 +1 @@
-oNoFf: test: unset
+oNoFf: test: unspecified
--- expect 2018-06-24 06:00:56.598106624 +0000
+++ actual 2018-06-24 06:00:56.593106496 +0000
@@ -1 +1 @@
-oFfOn: test: set
+oFfOn: test: unspecified
--- expect 2018-06-24 06:00:56.668108410 +0000
+++ actual 2018-06-24 06:00:56.668108410 +0000
@@ -1 +1 @@
-a/b/D/NO: test: a/b/d/*
+a/b/D/NO: test: unspecified
--- expect 2018-06-24 06:00:56.748110451 +0000
+++ actual 2018-06-24 06:00:56.748110451 +0000
@@ -1 +1 @@
-a/E/f: test: A/e/F
+a/E/f: test: f
ok 5 - attribute matching is case sensitive when core.ignorecase=0
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
echo good >CamelCase &&
echo bad >camelcase &&
test "$(cat CamelCase)" != good
)
prerequisite CASE_INSENSITIVE_FS not satisfied
skipping test: additional case insensitivity tests
test_must_fail attr_check a/B/D/g "a/b/d/*" "-c core.ignorecase=0" &&
test_must_fail attr_check A/B/D/NO "a/b/d/*" "-c core.ignorecase=0" &&
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 A/B/D/NO "a/b/d/*" "-c core.ignorecase=1"
ok 7 # skip additional case insensitivity tests (missing CASE_INSENSITIVE_FS)
expecting success:
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:
(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:
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:
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:
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:
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:
: >empty &&
git check-attr --cached --stdin --all <stdin-all | sort >actual &&
test_cmp 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:
attr_check a/i a/i &&
attr_check subdir/a/i unspecified
ok 15 - root subdir attribute test
expecting success:
echo "!f test=bar" >.gitattributes &&
git check-attr test -- '!f' 2>errors &&
test_i18ngrep "Negative patterns are ignored" errors
!f: test: unspecified
warning: Negative patterns are ignored in git attributes
ok 16 - negative patterns
expecting success:
echo "\!f test=foo" >.gitattributes &&
attr_check "!f" foo
ok 17 - patterns starting with exclamation
expecting success:
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_line_count = 0 err
ok 18 - "**" test
expecting success:
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_line_count = 0 err
ok 19 - "**" with no slashes test
expecting success:
mkdir unreal real &&
git init real &&
echo "file test=in-real" >real/.gitattributes &&
(
cd unreal &&
attr_check file in-real "--git-dir ../real/.git --work-tree ../real"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0003-attributes/real/.git/
ok 20 - using --git-dir and --work-tree
expecting success:
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:
(
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:
(
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:
(
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
# passed all 24 test(s)
1..24
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:
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:
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: AUTOIDENT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
sane_unset GIT_AUTHOR_NAME &&
sane_unset GIT_AUTHOR_EMAIL &&
git var GIT_AUTHOR_IDENT
)
*** 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-02.(none)')
prerequisite AUTOIDENT not satisfied
expecting success:
(
sane_unset GIT_COMMITTER_NAME &&
sane_unset GIT_COMMITTER_EMAIL &&
test_must_fail git var GIT_COMMITTER_IDENT
)
*** 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-02.(none)')
ok 3 - requested identites are strict
expecting success:
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:
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:
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:
git init plain &&
check_config plain/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain/.git/
ok 1 - plain
expecting success:
(
git init --bare bare-ancestor.git &&
cd bare-ancestor.git &&
mkdir plain-nested &&
cd plain-nested &&
git init
) &&
check_config bare-ancestor.git/plain-nested/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor.git/plain-nested/.git/
ok 2 - plain nested in bare
expecting success:
(
HOME=$(pwd)/alias-config &&
export HOME &&
mkdir alias-config &&
echo "[alias] aliasedinit = init" >alias-config/.gitconfig &&
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
mkdir plain-aliased &&
cd plain-aliased &&
git aliasedinit
) &&
check_config plain-aliased/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-aliased/.git/
ok 3 - plain through aliased command, outside any git repo
expecting success:
(
git init plain-ancestor-aliased &&
cd plain-ancestor-aliased &&
echo "[alias] aliasedinit = init" >>.git/config &&
mkdir plain-nested &&
cd plain-nested &&
git aliasedinit
) &&
check_config plain-ancestor-aliased/plain-nested/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-ancestor-aliased/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-ancestor-aliased/plain-nested/.git/
ok 4 - plain nested through aliased command
expecting success:
(
git init --bare bare-ancestor-aliased.git &&
cd bare-ancestor-aliased.git &&
echo "[alias] aliasedinit = init" >>config &&
mkdir plain-nested &&
cd plain-nested &&
git aliasedinit
) &&
check_config bare-ancestor-aliased.git/plain-nested/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor-aliased.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor-aliased.git/plain-nested/.git/
ok 5 - plain nested in bare through aliased command
expecting success:
write_script script <<-\EOF &&
env |
sed -n \
-e "/^GIT_PREFIX=/d" \
-e "/^GIT_TEXTDOMAINDIR=/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:
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:
git --bare init plain-bare-1 &&
check_config plain-bare-1 true unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-bare-1/
ok 8 - plain bare
expecting success:
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:
mkdir git-dir-bare.git &&
GIT_DIR=git-dir-bare.git git init &&
check_config git-dir-bare.git true unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/git-dir-bare.git/
ok 10 - GIT_DIR bare
expecting success:
git init --bare init-bare.git &&
check_config init-bare.git true unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/init-bare.git/
ok 11 - init --bare
expecting success:
(
mkdir non-bare &&
cd non-bare &&
GIT_DIR=.git git init
) &&
check_config non-bare/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/non-bare/.git/
ok 12 - GIT_DIR non-bare
expecting success:
(
mkdir git-dir-wt-1.git &&
GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-1.git git init
) &&
check_config git-dir-wt-1.git false "$(pwd)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/git-dir-wt-1.git/
ok 13 - GIT_DIR & GIT_WORK_TREE (1)
expecting success:
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:
(
mkdir again &&
cd again &&
git init >out1 2>err1 &&
git init >out2 2>err2
) &&
test_i18ngrep "Initialized empty" again/out1 &&
test_i18ngrep "Reinitialized existing" again/out2 &&
>again/empty &&
test_i18ncmp again/empty again/err1 &&
test_i18ncmp again/empty again/err2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/again/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/again/.git/
ok 15 - reinit
expecting success:
mkdir template-source &&
echo content >template-source/file &&
git init --template=../template-source template-custom &&
test_cmp template-source/file template-custom/.git/file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/template-custom/.git/
ok 16 - init with --template
expecting success:
git init template-plain &&
test_path_is_file template-plain/.git/info/exclude &&
git init --template= template-blank &&
test_path_is_missing template-blank/.git/info/exclude
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/template-plain/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/template-blank/.git/
ok 17 - init with --template (blank)
expecting success:
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/templatedir-set/.git/
ok 18 - init with init.templatedir set
expecting success:
test_config_global core.bare false &&
test_config_global core.sharedRepository 0640 &&
git init --bare --shared=0666 init-bare-shared-override &&
check_config init-bare-shared-override true unset &&
test x0666 = \
x$(git config -f init-bare-shared-override/config core.sharedRepository)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/init-bare-shared-override/
ok 19 - init --bare/--shared overrides system/global config
expecting success:
test_config_global core.sharedRepository 0666 &&
git init shared-honor-global &&
test x0666 = \
x$(git config -f shared-honor-global/.git/config core.sharedRepository)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/shared-honor-global/.git/
ok 20 - init honors global core.sharedRepository
expecting success:
git init --template=$(printf "x%09999dx" 1) test
warning: templates not found in x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/test/.git/
ok 21 - init allows insanely long --template
expecting success:
rm -fr newdir &&
git init newdir &&
test_path_is_dir newdir/.git/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
ok 22 - init creates a new directory
expecting success:
rm -fr newdir &&
git init --bare newdir &&
test_path_is_dir newdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 23 - init creates a new bare directory
expecting success:
rm -fr newdir &&
mkdir newdir &&
git init newdir &&
test_path_is_dir newdir/.git/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
ok 24 - init recreates a directory
expecting success:
rm -fr newdir &&
mkdir newdir &&
git init --bare newdir &&
test_path_is_dir newdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 25 - init recreates a new bare directory
expecting success:
rm -fr newdir &&
git init newdir/a/b/c &&
test_path_is_dir newdir/a/b/c/.git/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/a/b/c/.git/
ok 26 - init creates a new deep directory
expecting success:
rm -fr newdir &&
(
# Leading directories should honor umask while
# the repository itself should follow "shared"
mkdir newdir &&
# Remove a default ACL if possible.
(setfacl -k newdir 2>/dev/null || true) &&
umask 002 &&
git init --bare --shared=0660 newdir/a/b/c &&
test_path_is_dir newdir/a/b/c/refs &&
ls -ld newdir/a newdir/a/b > lsab.out &&
! grep -v "^drwxrw[sx]r-x" lsab.out &&
ls -ld newdir/a/b/c > lsc.out &&
! grep -v "^drwxrw[sx]---" lsc.out
)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/a/b/c/
ok 27 - init creates a new deep directory (umask vs. shared)
expecting success:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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:
rm -rf newdir &&
git --bare init newdir &&
test_path_is_dir newdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 31 - init creates a new bare directory with global --bare
expecting success:
rm -rf newdir &&
mkdir otherdir &&
GIT_DIR=otherdir git --bare init newdir &&
test_path_is_dir newdir/refs &&
test_path_is_missing otherdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 32 - init prefers command line to GIT_DIR
expecting success:
rm -rf newdir &&
git init --separate-git-dir realgitdir newdir &&
echo "gitdir: $(pwd)/realgitdir" >expected &&
test_cmp expected newdir/.git &&
test_path_is_dir realgitdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 33 - init with separate gitdir
expecting success:
check_long_base_path
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/newdir/.git/
ok 34 - init in long base path
checking prerequisite: GETCWD_IGNORES_PERMS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
base=GETCWD_TEST_BASE_DIR &&
mkdir -p $base/dir &&
chmod 100 $base ||
error "bug in test script: cannot prepare $base"
(cd $base/dir && /bin/pwd -P)
status=$?
chmod 700 $base &&
rm -rf $base ||
error "bug in test script: cannot clean $base"
return $status
)
/<<PKGBUILDDIR>>/t/trash directory.t0001-init/prereq-test-dir/GETCWD_TEST_BASE_DIR/dir
prerequisite GETCWD_IGNORES_PERMS ok
expecting success:
check_long_base_path 0111
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/newdir/.git/
ok 35 - init in long restricted base path
expecting success:
( cd newdir && git init )
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 36 - re-init on .git file
expecting success:
(
cd newdir &&
git init --separate-git-dir ../surrealgitdir
) &&
echo "gitdir: $(pwd)/surrealgitdir" >expected &&
test_cmp expected newdir/.git &&
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 37 - re-init to update git link
expecting success:
rm -rf newdir realgitdir surrealgitdir &&
git init newdir &&
(
cd newdir &&
git init --separate-git-dir ../realgitdir
) &&
echo "gitdir: $(pwd)/realgitdir" >expected &&
test_cmp expected newdir/.git &&
test_path_is_dir realgitdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 38 - re-init to move gitdir
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
rm -rf newdir realgitdir &&
git init newdir &&
(
cd newdir &&
mv .git here &&
ln -s here .git &&
git init --separate-git-dir ../realgitdir
) &&
echo "gitdir: $(pwd)/realgitdir" >expected &&
test_cmp expected newdir/.git &&
test_cmp expected newdir/here &&
test_path_is_dir realgitdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 39 - re-init to move gitdir symlink
skipping test: .git hidden
rm -rf newdir &&
(
unset GIT_DIR GIT_WORK_TREE
mkdir newdir &&
cd newdir &&
git init &&
is_hidden .git
) &&
check_config newdir/.git false unset
ok 40 # skip .git hidden (missing MINGW)
skipping test: bare git dir not hidden
rm -rf newdir &&
(
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG
mkdir newdir &&
cd newdir &&
git --bare init
) &&
! is_hidden newdir
ok 41 # skip bare git dir not hidden (missing MINGW)
expecting success:
rm -rf newdir &&
test_config core.logallrefupdates true &&
git init newdir &&
echo true >expect &&
git -C newdir config --bool core.logallrefupdates >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
ok 42 - remote init from does not use config from cwd
expecting success:
git init main-worktree &&
(
cd main-worktree &&
test_commit first &&
git worktree add ../linked-worktree &&
mv .git/info/exclude expected-exclude &&
cp .git/config expected-config &&
find .git/worktrees -print | sort >expected &&
git -C ../linked-worktree init &&
test_cmp expected-exclude .git/info/exclude &&
test_cmp expected-config .git/config &&
find .git/worktrees -print | sort >actual &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/main-worktree/.git/
[master (root-commit) 50e526b] 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 50e526b first
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/main-worktree/.git/worktrees/linked-worktree/
ok 43 - re-init from a linked worktree
skipping test: redirect std handles
GIT_REDIRECT_STDOUT=output.txt git rev-parse --git-dir &&
test .git = "$(cat output.txt)" &&
test -z "$(GIT_REDIRECT_STDOUT=off git rev-parse --git-dir)" &&
test_must_fail env \
GIT_REDIRECT_STDOUT=output.txt \
GIT_REDIRECT_STDERR="2>&1" \
git rev-parse --git-dir --verify refs/invalid &&
printf ".git\nfatal: Needed a single revision\n" >expect &&
test_cmp expect output.txt
ok 44 # skip redirect std handles (missing MINGW)
# passed all 44 test(s)
1..44
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:
test-tool date relative 1251659995 >actual &&
test_i18ncmp expect actual
ok 1 - relative date (5 seconds ago)
expecting success:
test-tool date relative 1251659700 >actual &&
test_i18ncmp expect actual
ok 2 - relative date (5 minutes ago)
expecting success:
test-tool date relative 1251642000 >actual &&
test_i18ncmp expect actual
ok 3 - relative date (5 hours ago)
expecting success:
test-tool date relative 1251228000 >actual &&
test_i18ncmp expect actual
ok 4 - relative date (5 days ago)
expecting success:
test-tool date relative 1249932000 >actual &&
test_i18ncmp expect actual
ok 5 - relative date (3 weeks ago)
expecting success:
test-tool date relative 1238660000 >actual &&
test_i18ncmp expect actual
ok 6 - relative date (5 months ago)
expecting success:
test-tool date relative 1214160000 >actual &&
test_i18ncmp expect actual
ok 7 - relative date (1 year, 2 months ago)
expecting success:
test-tool date relative 1196472000 >actual &&
test_i18ncmp expect actual
ok 8 - relative date (1 year, 9 months ago)
expecting success:
test-tool date relative 621660000 >actual &&
test_i18ncmp expect actual
ok 9 - relative date (20 years ago)
expecting success:
test-tool date relative 1220210400 >actual &&
test_i18ncmp expect actual
ok 10 - relative date (12 months ago)
expecting success:
test-tool date relative 1188674400 >actual &&
test_i18ncmp expect actual
ok 11 - relative date (2 years ago)
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&test-tool date is64bit
)
prerequisite TIME_IS_64BIT ok
checking prerequisite: TIME_T_IS_64BIT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&test-tool date time_t-is64bit
)
prerequisite TIME_T_IS_64BIT not satisfied
skipping test: show date (iso:5758122296 -0400)
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 30 # skip show date (iso:5758122296 -0400) (missing TIME_T_IS_64BIT of TIME_IS_64BIT,TIME_T_IS_64BIT)
skipping test: show date (iso-local:5758122296 -0400)
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 31 # skip show date (iso-local:5758122296 -0400) (missing TIME_T_IS_64BIT of TIME_IS_64BIT,TIME_T_IS_64BIT)
expecting success:
TZ=UTC test-tool date parse '2008' >actual &&
test_cmp expect actual
ok 32 - parse date (2008)
expecting success:
TZ=UTC test-tool date parse '2008-02' >actual &&
test_cmp expect actual
ok 33 - parse date (2008-02)
expecting success:
TZ=UTC test-tool date parse '2008-02-14' >actual &&
test_cmp expect actual
ok 34 - parse date (2008-02-14)
expecting success:
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:
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:
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -0015' >actual &&
test_cmp expect actual
ok 37 - parse date (2008-02-14 20:30:45 -0015)
expecting success:
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -5' >actual &&
test_cmp expect actual
ok 38 - parse date (2008-02-14 20:30:45 -5)
expecting success:
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -5:' >actual &&
test_cmp expect actual
ok 39 - parse date (2008-02-14 20:30:45 -5:)
expecting success:
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -05' >actual &&
test_cmp expect actual
ok 40 - parse date (2008-02-14 20:30:45 -05)
expecting success:
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -:30' >actual &&
test_cmp expect actual
ok 41 - parse date (2008-02-14 20:30:45 -:30)
expecting success:
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -05:00' >actual &&
test_cmp expect actual
ok 42 - parse date (2008-02-14 20:30:45 -05:00)
expecting success:
TZ=EST5 test-tool date parse '2008-02-14 20:30:45' >actual &&
test_cmp expect actual
ok 43 - parse date (2008-02-14 20:30:45 TZ=EST5)
expecting success:
test-tool date approxidate 'now' >actual &&
test_cmp expect actual
ok 44 - parse approxidate (now)
expecting success:
test-tool date approxidate '5 seconds ago' >actual &&
test_cmp expect actual
ok 45 - parse approxidate (5 seconds ago)
expecting success:
test-tool date approxidate '5.seconds.ago' >actual &&
test_cmp expect actual
ok 46 - parse approxidate (5.seconds.ago)
expecting success:
test-tool date approxidate '10.minutes.ago' >actual &&
test_cmp expect actual
ok 47 - parse approxidate (10.minutes.ago)
expecting success:
test-tool date approxidate 'yesterday' >actual &&
test_cmp expect actual
ok 48 - parse approxidate (yesterday)
expecting success:
test-tool date approxidate '3.days.ago' >actual &&
test_cmp expect actual
ok 49 - parse approxidate (3.days.ago)
expecting success:
test-tool date approxidate '3.weeks.ago' >actual &&
test_cmp expect actual
ok 50 - parse approxidate (3.weeks.ago)
expecting success:
test-tool date approxidate '3.months.ago' >actual &&
test_cmp expect actual
ok 51 - parse approxidate (3.months.ago)
expecting success:
test-tool date approxidate '2.years.3.months.ago' >actual &&
test_cmp expect actual
ok 52 - parse approxidate (2.years.3.months.ago)
expecting success:
test-tool date approxidate '6am yesterday' >actual &&
test_cmp expect actual
ok 53 - parse approxidate (6am yesterday)
expecting success:
test-tool date approxidate '6pm yesterday' >actual &&
test_cmp expect actual
ok 54 - parse approxidate (6pm yesterday)
expecting success:
test-tool date approxidate '3:00' >actual &&
test_cmp expect actual
ok 55 - parse approxidate (3:00)
expecting success:
test-tool date approxidate '15:00' >actual &&
test_cmp expect actual
ok 56 - parse approxidate (15:00)
expecting success:
test-tool date approxidate 'noon today' >actual &&
test_cmp expect actual
ok 57 - parse approxidate (noon today)
expecting success:
test-tool date approxidate 'noon yesterday' >actual &&
test_cmp expect actual
ok 58 - parse approxidate (noon yesterday)
expecting success:
test-tool date approxidate 'last tuesday' >actual &&
test_cmp expect actual
ok 59 - parse approxidate (last tuesday)
expecting success:
test-tool date approxidate 'July 5th' >actual &&
test_cmp expect actual
ok 60 - parse approxidate (July 5th)
expecting success:
test-tool date approxidate '06/05/2009' >actual &&
test_cmp expect actual
ok 61 - parse approxidate (06/05/2009)
expecting success:
test-tool date approxidate '06.05.2009' >actual &&
test_cmp expect actual
ok 62 - parse approxidate (06.05.2009)
expecting success:
test-tool date approxidate 'Jun 6, 5AM' >actual &&
test_cmp expect actual
ok 63 - parse approxidate (Jun 6, 5AM)
expecting success:
test-tool date approxidate '5AM Jun 6' >actual &&
test_cmp expect actual
ok 64 - parse approxidate (5AM Jun 6)
expecting success:
test-tool date approxidate '6AM, June 7, 2009' >actual &&
test_cmp expect actual
ok 65 - parse approxidate (6AM, June 7, 2009)
expecting success:
test-tool date approxidate '2008-12-01' >actual &&
test_cmp expect actual
ok 66 - parse approxidate (2008-12-01)
expecting success:
test-tool date approxidate '2009-12-01' >actual &&
test_cmp expect actual
ok 67 - parse approxidate (2009-12-01)
# passed all 67 test(s)
1..67
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:
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:
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:
test-tool prio-queue 1 2 get get get 1 2 get get get >actual &&
test_cmp expect actual
ok 3 - notice empty queue
# passed all 3 test(s)
1..3
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:
test_hashmap "hash key1" "2215982743 2215982743 116372151 116372151" &&
test_hashmap "hash key2" "2215982740 2215982740 116372148 116372148" &&
test_hashmap "hash fooBarFrotz" "1383912807 1383912807 3189766727 3189766727" &&
test_hashmap "hash foobarfrotz" "2862305959 2862305959 3189766727 3189766727"
ok 1 - hash functions
expecting success:
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
put foobarfrotz value4
size" "NULL
NULL
NULL
NULL
64 4"
ok 2 - put
expecting success:
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
size" "NULL
NULL
NULL
64 3" ignorecase
ok 3 - put (case insensitive)
expecting success:
test_hashmap "put key1 value1
put key1 value2
put fooBarFrotz value3
put fooBarFrotz value4
size" "NULL
value1
NULL
value3
64 2"
ok 4 - replace
expecting success:
test_hashmap "put key1 value1
put Key1 value2
put fooBarFrotz value3
put foobarfrotz value4
size" "NULL
value1
NULL
value3
64 2" ignorecase
ok 5 - replace (case insensitive)
expecting success:
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 6 - get
expecting success:
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 7 - get (case insensitive)
expecting success:
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 8 - add
expecting success:
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 9 - add (case insensitive)
expecting success:
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 10 - remove
expecting success:
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 11 - remove (case insensitive)
expecting success:
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
iterate" "NULL
NULL
NULL
key2 value2
key1 value1
fooBarFrotz value3"
ok 12 - iterate
expecting success:
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
iterate" "NULL
NULL
NULL
fooBarFrotz value3
key2 value2
key1 value1" ignorecase
ok 13 - iterate (case insensitive)
expecting success:
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 14 - grow / shrink
expecting success:
test_hashmap "intern value1
intern Value1
intern value2
intern value2
" "value1
Value1
value2
value2"
ok 15 - string interning
# passed all 15 test(s)
1..15
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: test "" != "$files"
ok 1 - Racy GIT trial #0 part A
expecting success: test "" != "$files"
ok 2 - Racy GIT trial #0 part B
expecting success: test "" != "$files"
ok 3 - Racy GIT trial #1 part A
expecting success: test "" != "$files"
ok 4 - Racy GIT trial #1 part B
expecting success: test "" != "$files"
ok 5 - Racy GIT trial #2 part A
expecting success: test "" != "$files"
ok 6 - Racy GIT trial #2 part B
expecting success: test "" != "$files"
ok 7 - Racy GIT trial #3 part A
expecting success: test "" != "$files"
ok 8 - Racy GIT trial #3 part B
expecting success: test "" != "$files"
ok 9 - Racy GIT trial #4 part A
expecting success: 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:
test_must_fail test-tool sha1 <"$TEST_DATA/shattered-1.pdf" 2>err &&
test_i18ngrep collision err &&
grep 38762cf7f55934b34d179ae6a4c80cadccbb7f0a err
fatal: SHA-1 appears to be part of a collision attack: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a
fatal: SHA-1 appears to be part of a collision attack: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a
ok 1 - test-sha1 detects shattered pdf
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0012-help.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0012-help/.git/
expecting success:
# Just write out which page gets requested
write_script test-browser <<-\EOF
echo "$*" >test-browser.log
EOF
ok 1 - setup
expecting success:
git help >/dev/null &&
git help -a >/dev/null &&
git help -g >/dev/null &&
git help -av >/dev/null
ok 2 - basic help commands
expecting success:
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:
>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:
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
ok 5 - --help does not work for guides
expecting success:
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:
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:
git --list-cmds=builtins >builtins
ok 8 - generate builtin list
expecting success:
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:
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:
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:
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:
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:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git bisect--helper --next-all [--no-checkout]
ok 14 - bisect--helper can handle -h
expecting success:
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:
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:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git bundle create <file> <git-rev-list args>
ok 17 - bundle can handle -h
expecting success:
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 18 - cat-file can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git check-attr [-a | --all | <attr>...] [--] <pathname>...
ok 19 - check-attr can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git check-ignore [<options>] <pathname>...
ok 20 - check-ignore can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git check-mailmap [<options>] <contact>...
ok 21 - check-mailmap can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git check-ref-format [--normalize] [<options>] <refname>
ok 22 - check-ref-format can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git checkout [<options>] <branch>
ok 23 - checkout can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git checkout-index [<options>] [--] [<file>...]
ok 24 - checkout-index can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git cherry [-v] [<upstream> [<head> [<limit>]]]
ok 25 - cherry can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git cherry-pick [<options>] <commit-ish>...
ok 26 - cherry-pick can handle -h
expecting success:
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 27 - clean can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git clone [<options>] [--] <repo> [<dir>]
ok 28 - clone can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git column [<options>]
ok 29 - column can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git commit [<options>] [--] <pathspec>...
ok 30 - commit can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git commit-graph [--object-dir <objdir>]
ok 31 - commit-graph can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git commit-tree [(-p <sha1>)...] [-S[<keyid>]] [-m <message>] [-F <file>] <sha1>
ok 32 - commit-tree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git config [<options>]
ok 33 - config can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git count-objects [-v] [-H | --human-readable]
ok 34 - count-objects can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git credential [fill|approve|reject]
ok 35 - credential can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git describe [<options>] [<commit-ish>...]
ok 36 - describe can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
ok 37 - diff can handle -h
expecting success:
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 38 - diff-files can handle -h
expecting success:
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 39 - diff-index can handle -h
expecting success:
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 40 - diff-tree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]
ok 41 - difftool can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git fast-export [rev-list-opts]
ok 42 - fast-export can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git fetch [<options>] [<repository> [<refspec>...]]
ok 43 - fetch can handle -h
expecting success:
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 44 - fetch-pack can handle -h
expecting success:
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 45 - fmt-merge-msg can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git for-each-ref [<options>] [<pattern>]
ok 46 - for-each-ref can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git format-patch [<options>] [<since> | <revision-range>]
ok 47 - format-patch can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git fsck [<options>] [<object>...]
ok 48 - fsck can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git fsck [<options>] [<object>...]
ok 49 - fsck-objects can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git gc [<options>]
ok 50 - gc can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git get-tar-commit-id
ok 51 - get-tar-commit-id can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]
ok 52 - grep can handle -h
expecting success:
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 53 - hash-object can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git help [--all] [--guides] [--man | --web | --info] [<command>]
ok 54 - help can handle -h
expecting success:
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 55 - index-pack can handle -h
expecting success:
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 56 - init can handle -h
expecting success:
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 57 - init-db can handle -h
expecting success:
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 58 - interpret-trailers can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 59 - log can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git ls-files [<options>] [<file>...]
ok 60 - ls-files can handle -h
expecting success:
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 61 - ls-remote can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git ls-tree [<options>] <tree-ish> [<path>...]
ok 62 - ls-tree can handle -h
expecting success:
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 63 - mailinfo can handle -h
expecting success:
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 64 - mailsplit can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge [<options>] [<commit>...]
ok 65 - merge can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-base [-a | --all] <commit> <commit>...
ok 66 - merge-base can handle -h
expecting success:
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 67 - merge-file can handle -h
expecting success:
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 68 - merge-index can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-ours <base>... -- HEAD <remote>...
ok 69 - merge-ours can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-recursive <base>... -- <head> <remote> ...
ok 70 - merge-recursive can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-recursive-ours <base>... -- <head> <remote> ...
ok 71 - merge-recursive-ours can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-recursive-theirs <base>... -- <head> <remote> ...
ok 72 - merge-recursive-theirs can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-subtree <base>... -- <head> <remote> ...
ok 73 - merge-subtree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git merge-tree <base-tree> <branch1> <branch2>
ok 74 - merge-tree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git mktag
ok 75 - mktag can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git mktree [-z] [--missing] [--batch]
ok 76 - mktree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git mv [<options>] <source>... <destination>
ok 77 - mv can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git name-rev [<options>] <commit>...
ok 78 - name-rev can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git notes [--ref <notes-ref>] [list [<object>]]
ok 79 - notes can handle -h
expecting success:
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 80 - pack-objects can handle -h
expecting success:
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 81 - pack-redundant can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git pack-refs [<options>]
ok 82 - pack-refs can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git patch-id [--stable | --unstable]
ok 83 - patch-id can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 84 - pickaxe can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]
ok 85 - prune can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git prune-packed [-n | --dry-run] [-q | --quiet]
ok 86 - prune-packed can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git pull [<options>] [<repository> [<refspec>...]]
ok 87 - pull can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git push [<options>] [<repository> [<refspec>...]]
ok 88 - push can handle -h
expecting success:
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 89 - read-tree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git rebase--helper [<options>]
ok 90 - rebase--helper can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git receive-pack <git-dir>
ok 91 - receive-pack can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git reflog [ show | expire | delete | exists ]
ok 92 - reflog can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git remote [-v | --verbose]
ok 93 - remote can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git remote-ext <remote> <url>
ok 94 - remote-ext can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git remote-fd <remote> <url>
ok 95 - remote-fd can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git repack [<options>]
ok 96 - repack can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git replace [-f] <object> <replacement>
ok 97 - replace can handle -h
expecting success:
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 98 - rerere can handle -h
expecting success:
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 99 - reset can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git rev-list [OPTION] <commit-id>... [ -- paths... ]
ok 100 - rev-list can handle -h
expecting success:
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 101 - rev-parse can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git revert [<options>] <commit-ish>...
ok 102 - revert can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git rm [<options>] [--] <file>...
ok 103 - rm can handle -h
expecting success:
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 104 - send-pack can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git serve [<options>]
ok 105 - serve can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git shortlog [<options>] [<revision-range>] [[--] <path>...]
ok 106 - shortlog can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 107 - show can handle -h
expecting success:
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 108 - show-branch can handle -h
expecting success:
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 109 - show-ref can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git add [<options>] [--] <pathspec>...
ok 110 - stage can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git status [<options>] [--] <pathspec>...
ok 111 - status can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git stripspace [-s | --strip-comments]
ok 112 - stripspace can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git submodule--helper <command>
ok 113 - submodule--helper can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git symbolic-ref [<options>] <name> [<ref>]
ok 114 - symbolic-ref can handle -h
expecting success:
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>] <tagname> [<head>]
ok 115 - tag can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git unpack-file <sha1>
ok 116 - unpack-file can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git unpack-objects [-n] [-q] [-r] [--strict]
ok 117 - unpack-objects can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git update-index [<options>] [--] [<file>...]
ok 118 - update-index can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git update-ref [<options>] -d <refname> [<old-val>]
ok 119 - update-ref can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git update-server-info [--force]
ok 120 - update-server-info can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git upload-archive <repo>
ok 121 - upload-archive can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git upload-archive <repo>
ok 122 - upload-archive--writer can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git upload-pack [<options>] <dir>
ok 123 - upload-pack can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git var (-l | <variable>)
ok 124 - var can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git verify-commit [-v | --verbose] <commit>...
ok 125 - verify-commit can handle -h
expecting success:
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 126 - verify-pack can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git verify-tag [-v | --verbose] [--format=<format>] <tag>...
ok 127 - verify-tag can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git version [<options>]
ok 128 - version can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 129 - whatchanged can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git worktree add [<options>] <path> [<commit-ish>]
ok 130 - worktree can handle -h
expecting success:
test_expect_code 129 git $builtin -h >output 2>&1 &&
test_i18ngrep usage output
usage: git write-tree [--missing-ok] [--prefix=<prefix>/]
ok 131 - write-tree can handle -h
# passed all 131 test(s)
1..131
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:
x="notlocal" &&
echo "local" >expected1 &&
try_local_x >actual1 &&
test_cmp expected1 actual1 &&
echo "notlocal" >expected2 &&
echo "$x" >actual2 &&
test_cmp expected2 actual2
ok 1 - verify that the running shell supports "local"
expecting success:
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:
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:
:
ok 4 - success is reported like this
expecting success:
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:
test_must_fail run_sub_test_lib_test 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:
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:
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:
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:
test_must_fail run_sub_test_lib_test 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:
test_must_fail run_sub_test_lib_test 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
expecting success:
test_must_fail run_sub_test_lib_test \
test-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 test-verbose/out test-verbose/out+ &&
grep -v "^Initialized empty" test-verbose/out+ >test-verbose/out &&
check_sub_test_lib_test test-verbose <<-\EOF
> expecting success: true
> ok 1 - passing test
> Z
> expecting success: echo foo
> foo
> ok 2 - test with output
> Z
> expecting success: false
> not ok 3 - failing test
> # false
> Z
> # failed 1 among 3 test(s)
> 1..3
EOF
ok 12 - test --verbose
expecting success:
test_must_fail run_sub_test_lib_test \
test-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 test-verbose-only-2 <<-\EOF
> ok 1 - passing test
> Z
> expecting success: 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:
(
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:
(
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:
(
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:
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 17 - --run basic
expecting success:
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 18 - --run with a range
expecting success:
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 19 - --run with two ranges
expecting success:
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 20 - --run with a left open range
expecting success:
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 21 - --run with a right open range
expecting success:
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 22 - --run with basic negation
expecting success:
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 23 - --run with two negations
expecting success:
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 24 - --run a range and negation
expecting success:
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 25 - --run range negation
expecting success:
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 26 - --run include, exclude and include
expecting success:
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 27 - --run include, exclude and include, comma separated
expecting success:
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 28 - --run exclude and include
expecting success:
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 29 - --run empty selectors
expecting success:
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 30 - --run invalid range start
expecting success:
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 31 - --run invalid range end
expecting success:
run_sub_test_lib_test_err run-inv-selector '--run invalid selector' --run='1?' <<-\EOF &&
test_expect_success "passing test #1" 'true'
test_done
EOF
check_sub_test_lib_test_err run-inv-selector <<-\EOF_OUT 3<<-\EOF_ERR
> FATAL: Unexpected exit with code 1
EOF_OUT
> error: --run: invalid non-numeric in test selector: '1?'
EOF_ERR
ok 32 - --run invalid selector
expecting success:
test_have_prereq HAVEIT &&
haveit=yes
ok 33 - test runs if prerequisite is satisfied
skipping test: unmet prerequisite causes test to be skipped
donthaveit=no
ok 34 # skip unmet prerequisite causes test to be skipped (missing DONTHAVEIT)
expecting success:
test_have_prereq HAVEIT &&
test_have_prereq HAVETHIS &&
haveit=yes
ok 35 - test runs if prerequisites are satisfied
skipping test: unmet prerequisites causes test to be skipped
donthaveit=no
ok 36 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of HAVEIT,DONTHAVEIT)
skipping test: unmet prerequisites causes test to be skipped
donthaveiteither=no
ok 37 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of DONTHAVEIT,HAVEIT)
checking prerequisite: LAZY_TRUE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&true
)
prerequisite LAZY_TRUE ok
expecting success:
havetrue=yes
ok 38 - test runs if lazy prereq is satisfied
skipping test: missing lazy prereqs skip tests
donthavetrue=no
ok 39 # skip missing lazy prereqs skip tests (missing !LAZY_TRUE)
checking prerequisite: LAZY_FALSE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&false
)
prerequisite LAZY_FALSE not satisfied
expecting success:
nothavefalse=yes
ok 40 - negative lazy prereqs checked
skipping test: missing negative lazy prereqs will skip
havefalse=no
ok 41 # skip missing negative lazy prereqs will skip (missing LAZY_FALSE)
expecting success:
test_when_finished clean=yes
ok 42 - tests clean up after themselves
expecting success:
test_must_fail run_sub_test_lib_test 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 43 - tests clean up even on failures
expecting success:
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 44 - git update-index without --add should fail adding
expecting success:
git update-index --add should-be-empty
ok 45 - git update-index with --add should succeed
expecting success:
tree=$(git write-tree)
ok 46 - writing tree out with git write-tree
checking prerequisite: SHA1
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
)
prerequisite SHA1 ok
expecting success:
test "$tree" = 7bb943559a305bdd6bdee2cef6e5df2413c3d30a
ok 47 - validate object ID of a known tree
expecting success:
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 48 - git update-index without --remove should fail removing
expecting success:
git update-index --remove should-be-empty
ok 49 - git update-index with --remove should be able to remove
expecting success:
tree=$(git write-tree)
ok 50 - git write-tree should be able to write an empty tree
expecting success:
test "$tree" = $EMPTY_TREE
ok 51 - validate object ID of a known tree
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
ok 52 - adding various types of objects with git update-index --add
expecting success:
git ls-files --stage >current
ok 53 - showing stage with git ls-files --stage
expecting success:
cat >expected <<-\EOF &&
100644 f87290f8eb2cbbea7857214459a0739927eab154 0 path0
120000 15a98433ae33114b085f3eb3bb03b832b3180a01 0 path0sym
100644 3feff949ed00a62d9f7af97c15cd8a30595e7ac7 0 path2/file2
120000 d8ce161addc5173867a3c3c730924388daedbc38 0 path2/file2sym
100644 0aa34cae68d0878578ad119c86ca2b5ed5b28376 0 path3/file3
120000 8599103969b43aff7e430efea79ca4636466794f 0 path3/file3sym
100644 00fb5908cb97c2564a9783c0c64087333b3b464f 0 path3/subp3/file3
120000 6649a1ebe9e9f1c553b66f5a6e74136a07ccc57c 0 path3/subp3/file3sym
EOF
test_cmp expected current
ok 54 - validate git ls-files output for a known tree
expecting success:
tree=$(git write-tree)
ok 55 - writing tree out with git write-tree
expecting success:
test "$tree" = 087704a96baf1c2d1c869a8b084481e121c88b5b
ok 56 - validate object ID for a known tree
expecting success:
git ls-tree $tree >current
ok 57 - showing tree with git ls-tree
expecting success:
cat >expected <<-\EOF &&
100644 blob f87290f8eb2cbbea7857214459a0739927eab154 path0
120000 blob 15a98433ae33114b085f3eb3bb03b832b3180a01 path0sym
040000 tree 58a09c23e2ca152193f2786e06986b7b6712bdbe path2
040000 tree 21ae8269cacbe57ae09138dcc3a2887f904d02b3 path3
EOF
test_cmp expected current
ok 58 - git ls-tree output for a known tree
expecting success:
git ls-tree -r $tree >current
ok 59 - showing tree with git ls-tree -r
expecting success:
cat >expected <<-\EOF &&
100644 blob f87290f8eb2cbbea7857214459a0739927eab154 path0
120000 blob 15a98433ae33114b085f3eb3bb03b832b3180a01 path0sym
100644 blob 3feff949ed00a62d9f7af97c15cd8a30595e7ac7 path2/file2
120000 blob d8ce161addc5173867a3c3c730924388daedbc38 path2/file2sym
100644 blob 0aa34cae68d0878578ad119c86ca2b5ed5b28376 path3/file3
120000 blob 8599103969b43aff7e430efea79ca4636466794f path3/file3sym
100644 blob 00fb5908cb97c2564a9783c0c64087333b3b464f path3/subp3/file3
120000 blob 6649a1ebe9e9f1c553b66f5a6e74136a07ccc57c path3/subp3/file3sym
EOF
test_cmp expected current
ok 60 - git ls-tree -r output for a known tree
expecting success:
git ls-tree -r -t $tree >current
ok 61 - showing tree with git ls-tree -r -t
expecting success:
cat >expected <<-\EOF &&
100644 blob f87290f8eb2cbbea7857214459a0739927eab154 path0
120000 blob 15a98433ae33114b085f3eb3bb03b832b3180a01 path0sym
040000 tree 58a09c23e2ca152193f2786e06986b7b6712bdbe path2
100644 blob 3feff949ed00a62d9f7af97c15cd8a30595e7ac7 path2/file2
120000 blob d8ce161addc5173867a3c3c730924388daedbc38 path2/file2sym
040000 tree 21ae8269cacbe57ae09138dcc3a2887f904d02b3 path3
100644 blob 0aa34cae68d0878578ad119c86ca2b5ed5b28376 path3/file3
120000 blob 8599103969b43aff7e430efea79ca4636466794f path3/file3sym
040000 tree 3c5e5399f3a333eddecce7a9b9465b63f65f51e2 path3/subp3
100644 blob 00fb5908cb97c2564a9783c0c64087333b3b464f path3/subp3/file3
120000 blob 6649a1ebe9e9f1c553b66f5a6e74136a07ccc57c path3/subp3/file3sym
EOF
test_cmp expected current
ok 62 - git ls-tree -r output for a known tree
expecting success:
ptree=$(git write-tree --prefix=path3)
ok 63 - writing partial tree out with git write-tree --prefix
expecting success:
test "$ptree" = 21ae8269cacbe57ae09138dcc3a2887f904d02b3
ok 64 - validate object ID for a known tree
expecting success:
ptree=$(git write-tree --prefix=path3/subp3)
ok 65 - writing partial tree out with git write-tree --prefix
expecting success:
test "$ptree" = 3c5e5399f3a333eddecce7a9b9465b63f65f51e2
ok 66 - validate object ID for a known tree
expecting success:
rm -f .git/index &&
cat >badobjects <<-\EOF &&
100644 blob 1000000000000000000000000000000000000000 dir/file1
100644 blob 2000000000000000000000000000000000000000 dir/file2
100644 blob 3000000000000000000000000000000000000000 dir/file3
100644 blob 4000000000000000000000000000000000000000 dir/file4
100644 blob 5000000000000000000000000000000000000000 dir/file5
EOF
git update-index --index-info <badobjects
ok 67 - put invalid objects into the index
expecting success:
test_must_fail git write-tree
error: invalid object 100644 1000000000000000000000000000000000000000 for 'dir/file1'
fatal: git-write-tree: error building trees
ok 68 - writing this tree without --missing-ok
expecting success:
git write-tree --missing-ok
851a367613bb6e1f0b2b518323eafed530b5b4c4
ok 69 - writing this tree with --missing-ok
expecting success:
rm -f .git/index &&
git read-tree $tree &&
test -f .git/index &&
newtree=$(git write-tree) &&
test "$newtree" = "$tree"
ok 70 - git read-tree followed by write-tree should be idempotent
expecting success:
cat >expected <<\EOF &&
:100644 100644 f87290f8eb2cbbea7857214459a0739927eab154 0000000000000000000000000000000000000000 M path0
:120000 120000 15a98433ae33114b085f3eb3bb03b832b3180a01 0000000000000000000000000000000000000000 M path0sym
:100644 100644 3feff949ed00a62d9f7af97c15cd8a30595e7ac7 0000000000000000000000000000000000000000 M path2/file2
:120000 120000 d8ce161addc5173867a3c3c730924388daedbc38 0000000000000000000000000000000000000000 M path2/file2sym
:100644 100644 0aa34cae68d0878578ad119c86ca2b5ed5b28376 0000000000000000000000000000000000000000 M path3/file3
:120000 120000 8599103969b43aff7e430efea79ca4636466794f 0000000000000000000000000000000000000000 M path3/file3sym
:100644 100644 00fb5908cb97c2564a9783c0c64087333b3b464f 0000000000000000000000000000000000000000 M path3/subp3/file3
:120000 120000 6649a1ebe9e9f1c553b66f5a6e74136a07ccc57c 0000000000000000000000000000000000000000 M path3/subp3/file3sym
EOF
git diff-files >current &&
test_cmp current expected
ok 71 - validate git diff-files output for a know cache/work tree state
expecting success:
git update-index --refresh
ok 72 - git update-index --refresh should succeed
expecting success:
git diff-files >current &&
cmp -s current /dev/null
ok 73 - no diff after checkout and git update-index --refresh
expecting success:
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 74 - git commit-tree records the correct tree in a commit
expecting success:
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 75 - git commit-tree records the correct parent in a commit
expecting success:
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 a75368c4c48233cd23cb4cadb8be562c99a2609f ignored
ok 76 - git commit-tree omits duplicated parent in a commit
expecting success:
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 77 - update-index D/F conflict
expecting success:
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 78 - very long name in the index handled sanely
# passed all 78 test(s)
1..78
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:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
"$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 6.2.1 20161124 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.6, 6-Sept-2010)
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:
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:
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) 8992a23] 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:
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
# passed all 2 test(s)
1..2
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:
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) a367fee] 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:
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:
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:
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:
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
skipping test: eol native is crlf
rm -rf native_eol && mkdir native_eol &&
(
cd native_eol &&
printf "*.txt text\n" >.gitattributes &&
printf "one\r\ntwo\r\nthree\r\n" >filedos.txt &&
printf "one\ntwo\nthree\n" >fileunix.txt &&
git init &&
git config core.autocrlf false &&
git config core.eol native &&
git add filedos.txt fileunix.txt &&
git commit -m "first" &&
rm file*.txt &&
git reset --hard HEAD &&
has_cr filedos.txt &&
has_cr fileunix.txt
)
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'
*** t0020-crlf.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0020-crlf/.git/
expecting success:
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) 806dd20] 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:
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:
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:
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:
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:
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 975bc4b] nowarn
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
create mode 100644 doublewarn
ok 6 - safecrlf: print warning only once
expecting success:
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:
git config core.autocrlf false &&
git config core.safecrlf false &&
git reset --hard HEAD^
HEAD is now at 806dd20 initial
ok 8 - switch off autocrlf, safecrlf, reset HEAD
expecting success:
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"
warning: CRLF will be replaced by LF in one.
The file will have its original line endings in your working directory.
warning: CRLF will be replaced by LF in dir/two.
The file will have its original line endings in your working directory.
ok 9 - update with autocrlf=input
expecting success:
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 10 - update with autocrlf=true
expecting success:
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"
warning: LF will be replaced by CRLF in one.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in dir/two.
The file will have its original line endings in your working directory.
ok 11 - checkout with autocrlf=true
expecting success:
rm -f tmp one dir/two three &&
git config core.autocrlf input &&
git read-tree --reset -u HEAD &&
test_must_fail has_cr one &&
test_must_fail has_cr 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"
t0020-crlf.sh: 8: eval: cannot open two: No such file
ok 12 - checkout with autocrlf=input
expecting success:
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 13 - apply patch (autocrlf=input)
expecting success:
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 14 - apply patch --cached (autocrlf=input)
expecting success:
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 15 - apply patch --index (autocrlf=input)
expecting success:
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 16 - apply patch (autocrlf=true)
expecting success:
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 17 - apply patch --cached (autocrlf=true)
expecting success:
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 18 - apply patch --index (autocrlf=true)
expecting success:
rm -f tmp one dir/two three &&
echo "two -crlf" >.gitattributes &&
git config core.autocrlf true &&
git read-tree --reset -u HEAD &&
test_must_fail has_cr dir/two &&
verbose has_cr one &&
test_must_fail has_cr three
ok 19 - .gitattributes says two is binary
expecting success:
rm -f tmp one dir/two three &&
echo "two crlf=input" >.gitattributes &&
git read-tree --reset -u HEAD &&
test_must_fail has_cr dir/two
ok 20 - .gitattributes says two is input
expecting success:
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 21 - .gitattributes says two and three are text
expecting success:
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 &&
test_must_fail has_cr one &&
verbose has_cr three
warning: LF will be replaced by CRLF in .gitattributes.
The file will have its original line endings in your working directory.
[master 294e696] Add .gitattributes
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 .gitattributes
ok 22 - in-tree .gitattributes (1)
expecting success:
rm -rf tmp one dir .gitattributes patch.file three &&
git read-tree --reset HEAD &&
git checkout-index -f -q -u -a &&
test_must_fail has_cr one &&
verbose has_cr three
ok 23 - in-tree .gitattributes (2)
expecting success:
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 &&
test_must_fail has_cr one &&
verbose has_cr three
ok 24 - in-tree .gitattributes (3)
expecting success:
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 &&
test_must_fail has_cr one &&
verbose has_cr three
ok 25 - in-tree .gitattributes (4)
expecting success:
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 1907b29] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master 9c19193] second
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 .file
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 1907b29 initial
Previous HEAD position was 1907b29 initial
Switched to branch 'master'
ok 26 - checkout with existing .gitattributes
expecting success:
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 4fdf498] third
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 4 deletions(-)
create mode 100644 .file2
delete mode 100644 .gitattributes
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 9c19193 second
M three
Previous HEAD position was 9c19193 second
Switched to branch 'master'
ok 27 - checkout when deleting .gitattributes
expecting success:
echo "three +crlf" >>.gitattributes &&
git diff
+crlf is not a valid attribute name: .gitattributes:1
+crlf is not a valid attribute name: .gitattributes:1
diff --git a/three b/three
index 98efc5e..c5c386a 100644
Binary files a/three and b/three differ
ok 28 - invalid .gitattributes (must not crash)
expecting success:
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 fe2326e] 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 29 - setting up for new autocrlf tests
expecting success:
git config core.autocrlf true &&
touch * &&
git diff --exit-code
ok 30 - report no change after setting autocrlf
expecting success:
rm * &&
git checkout -f &&
git diff --exit-code
ok 31 - files are clean after checkout
expecting success:
test "$(cr_to_Q_no_NL < alllf)" = "IQamQallQLFQ"
ok 32 - LF only file gets CRLF with autocrlf
expecting success:
test "$(cr_to_Q_no_NL < mixed)" = "OhhereisCRLFQintext"
ok 33 - Mixed file is still mixed with autocrlf
expecting success:
test "$(cr_to_Q_no_NL < allcrlf)" = "IQamQallQCRLFQ"
ok 34 - CRLF only file has CRLF with autocrlf
expecting success:
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 e1064c3] alllf2 added
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
create mode 100644 alllf2
ok 35 - New CRLF file gets LF in repo
# passed all 35 test(s)
1..35
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:
git config core.eol lf &&
text="hallo there!\ncan you read me?" &&
echo "*.utf16 text working-tree-encoding=utf-16" >.gitattributes &&
printf "$text" >test.utf8.raw &&
printf "$text" | iconv -f UTF-8 -t UTF-16 >test.utf16.raw &&
printf "$text" | iconv -f UTF-8 -t UTF-32 >test.utf32.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\777\0a\0b\0c" >bebom.utf16be.raw &&
printf "\777\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\777\0\0\0a\0\0\0b\0\0\0c" >bebom.utf32be.raw &&
printf "\777\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 &&
git add .gitattributes test.utf16 &&
git commit -m initial
source (test.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
[master (root-commit) 5d8fca7] initial
Author: A U Thor <author@example.com>
2 files changed, 3 insertions(+)
create mode 100644 .gitattributes
create mode 100644 test.utf16
ok 1 - setup test files
expecting success:
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:
test_when_finished "rm -f test.utf16.raw" &&
rm test.utf16 &&
git checkout test.utf16 &&
test_cmp_bin test.utf16.raw test.utf16
ok 3 - re-encode to UTF-16 on checkout
expecting success:
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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 0 [2m [0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 68 [2mh[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 0 [2m [0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 61 [2ma[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 0 [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 6c [2ml[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 0 [2m [0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 6c [2ml[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 0 [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 6f [2mo[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 0 [2m [0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 20 [2m [0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 0 [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 74 [2mt[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 0 [2m [0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 68 [2mh[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 0 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 65 [2me[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 0 [2m [0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 72 [2mr[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 0 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 65 [2me[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 0 [2m [0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 21 [2m![0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 0 [2m [0m | [2m51:[0m 0 [2m [0m | [2m52:[0m a [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 0 [2m [0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 63 [2mc[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 0 [2m [0m | [2m59:[0m 0 [2m [0m | [2m60:[0m 61 [2ma[0m | [2m61:[0m 0 [2m [0m | [2m62:[0m 0 [2m [0m | [2m63:[0m 0 [2m [0m
| [2m64:[0m 6e [2mn[0m | [2m65:[0m 0 [2m [0m | [2m66:[0m 0 [2m [0m | [2m67:[0m 0 [2m [0m | [2m68:[0m 20 [2m [0m | [2m69:[0m 0 [2m [0m | [2m70:[0m 0 [2m [0m | [2m71:[0m 0 [2m [0m
| [2m72:[0m 79 [2my[0m | [2m73:[0m 0 [2m [0m | [2m74:[0m 0 [2m [0m | [2m75:[0m 0 [2m [0m | [2m76:[0m 6f [2mo[0m | [2m77:[0m 0 [2m [0m | [2m78:[0m 0 [2m [0m | [2m79:[0m 0 [2m [0m
| [2m80:[0m 75 [2mu[0m | [2m81:[0m 0 [2m [0m | [2m82:[0m 0 [2m [0m | [2m83:[0m 0 [2m [0m | [2m84:[0m 20 [2m [0m | [2m85:[0m 0 [2m [0m | [2m86:[0m 0 [2m [0m | [2m87:[0m 0 [2m [0m
| [2m88:[0m 72 [2mr[0m | [2m89:[0m 0 [2m [0m | [2m90:[0m 0 [2m [0m | [2m91:[0m 0 [2m [0m | [2m92:[0m 65 [2me[0m | [2m93:[0m 0 [2m [0m | [2m94:[0m 0 [2m [0m | [2m95:[0m 0 [2m [0m
| [2m96:[0m 61 [2ma[0m | [2m97:[0m 0 [2m [0m | [2m98:[0m 0 [2m [0m | [2m99:[0m 0 [2m [0m | [2m100:[0m 64 [2md[0m | [2m101:[0m 0 [2m [0m | [2m102:[0m 0 [2m [0m | [2m103:[0m 0 [2m [0m
| [2m104:[0m 20 [2m [0m | [2m105:[0m 0 [2m [0m | [2m106:[0m 0 [2m [0m | [2m107:[0m 0 [2m [0m | [2m108:[0m 6d [2mm[0m | [2m109:[0m 0 [2m [0m | [2m110:[0m 0 [2m [0m | [2m111:[0m 0 [2m [0m
| [2m112:[0m 65 [2me[0m | [2m113:[0m 0 [2m [0m | [2m114:[0m 0 [2m [0m | [2m115:[0m 0 [2m [0m | [2m116:[0m 3f [2m?[0m | [2m117:[0m 0 [2m [0m | [2m118:[0m 0 [2m [0m | [2m119:[0m 0 [2m [0m
destination (test.utf32, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
HEAD is now at 5d8fca7 initial
ok 4 - check $GIT_DIR/info/attributes support
expecting success:
test_when_finished "git reset --hard HEAD" &&
echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes &&
echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes &&
# Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian)
# but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32).
# In these cases the BOM is prohibited.
cp bebom.utf${i}be.raw bebom.utf${i}be &&
test_must_fail git add bebom.utf${i}be 2>err.out &&
test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
cp lebom.utf${i}le.raw lebom.utf${i}be &&
test_must_fail git add lebom.utf${i}be 2>err.out &&
test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
cp bebom.utf${i}be.raw bebom.utf${i}le &&
test_must_fail git add bebom.utf${i}le 2>err.out &&
test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
cp lebom.utf${i}le.raw lebom.utf${i}le &&
test_must_fail git add lebom.utf${i}le 2>err.out &&
test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out
fatal: BOM is prohibited in 'bebom.utf16be' if encoded as utf-16be
hint: The file 'bebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
fatal: BOM is prohibited in 'lebom.utf16be' if encoded as utf-16be
hint: The file 'lebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
fatal: BOM is prohibited in 'bebom.utf16le' if encoded as utf-16LE
hint: The file 'bebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
fatal: BOM is prohibited in 'lebom.utf16le' if encoded as utf-16LE
hint: The file 'lebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding.
HEAD is now at 5d8fca7 initial
ok 5 - check prohibited UTF-16 BOM
expecting success:
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 5d8fca7 initial
ok 6 - check required UTF-16 BOM
expecting success:
test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" &&
test_when_finished "git reset --hard HEAD^" &&
cat lf.utf8.raw | iconv -f UTF-8 -t UTF-${i} >lf.utf${i}.raw &&
cat crlf.utf8.raw | iconv -f UTF-8 -t 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
source (eol.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 6f [2mo[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6e [2mn[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 65 [2me[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m a [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 74 [2mt[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 77 [2mw[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 6f [2mo[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m d [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 74 [2mt[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 68 [2mh[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 72 [2mr[0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 65 [2me[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 65 [2me[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m d [2m [0m | [2m33:[0m 0 [2m [0m | [2m34:[0m a [2m [0m | [2m35:[0m 0 [2m [0m
destination (eol.utf16, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
warning: 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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 6f [2mo[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6e [2mn[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 65 [2me[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m a [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 74 [2mt[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 77 [2mw[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 6f [2mo[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m d [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 74 [2mt[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 68 [2mh[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 72 [2mr[0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 65 [2me[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 65 [2me[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m d [2m [0m | [2m33:[0m 0 [2m [0m | [2m34:[0m a [2m [0m | [2m35:[0m 0 [2m [0m
destination (eol.utf16, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
[master 1281710] eol
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 eol.utf16
HEAD is now at 5d8fca7 initial
ok 7 - eol conversion for UTF-16 encoded files on checkout
expecting success:
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 5d8fca7 initial
ok 8 - check prohibited UTF-32 BOM
expecting success:
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 5d8fca7 initial
ok 9 - check required UTF-32 BOM
expecting success:
test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" &&
test_when_finished "git reset --hard HEAD^" &&
cat lf.utf8.raw | iconv -f UTF-8 -t UTF-${i} >lf.utf${i}.raw &&
cat crlf.utf8.raw | iconv -f UTF-8 -t 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
source (eol.utf32, considered utf-32):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 0 [2m [0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 0 [2m [0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6e [2mn[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 0 [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 65 [2me[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 0 [2m [0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m d [2m [0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 0 [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 0 [2m [0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 74 [2mt[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 0 [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 77 [2mw[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 0 [2m [0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6f [2mo[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 0 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m d [2m [0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 0 [2m [0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m a [2m [0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 0 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 74 [2mt[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 0 [2m [0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 68 [2mh[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 0 [2m [0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 72 [2mr[0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 0 [2m [0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 0 [2m [0m | [2m59:[0m 0 [2m [0m | [2m60:[0m 65 [2me[0m | [2m61:[0m 0 [2m [0m | [2m62:[0m 0 [2m [0m | [2m63:[0m 0 [2m [0m
| [2m64:[0m d [2m [0m | [2m65:[0m 0 [2m [0m | [2m66:[0m 0 [2m [0m | [2m67:[0m 0 [2m [0m | [2m68:[0m a [2m [0m | [2m69:[0m 0 [2m [0m | [2m70:[0m 0 [2m [0m | [2m71:[0m 0 [2m [0m
destination (eol.utf32, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
warning: 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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 0 [2m [0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 0 [2m [0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6e [2mn[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 0 [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 65 [2me[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 0 [2m [0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m d [2m [0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 0 [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 0 [2m [0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 74 [2mt[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 0 [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 77 [2mw[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 0 [2m [0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6f [2mo[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 0 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m d [2m [0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 0 [2m [0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m a [2m [0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 0 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 74 [2mt[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 0 [2m [0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 68 [2mh[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 0 [2m [0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 72 [2mr[0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 0 [2m [0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 0 [2m [0m | [2m59:[0m 0 [2m [0m | [2m60:[0m 65 [2me[0m | [2m61:[0m 0 [2m [0m | [2m62:[0m 0 [2m [0m | [2m63:[0m 0 [2m [0m
| [2m64:[0m d [2m [0m | [2m65:[0m 0 [2m [0m | [2m66:[0m 0 [2m [0m | [2m67:[0m 0 [2m [0m | [2m68:[0m a [2m [0m | [2m69:[0m 0 [2m [0m | [2m70:[0m 0 [2m [0m | [2m71:[0m 0 [2m [0m
destination (eol.utf32, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
[master 8ff7008] eol
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 eol.utf32
HEAD is now at 5d8fca7 initial
ok 10 - eol conversion for UTF-32 encoded files on checkout
expecting success:
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 5d8fca7 initial
ok 11 - check unsupported encodings
expecting success:
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 5d8fca7 initial
ok 12 - error if encoding round trip is not the same during refresh
expecting success:
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 5d8fca7 initial
ok 13 - error if encoding garbage is already in Git
expecting success:
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" | iconv -f UTF-8 -t UTF-16 >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 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 5d8fca7 initial
ok 14 - check roundtrip encoding
# passed all 14 test(s)
1..14
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:
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:
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:
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:
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:
> expect &&
printf "\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "\n\n\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "$sss\n$sss\n$sss\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "$sss$sss\n$sss\n\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "\n$sss\n$sss$sss\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "$sss$sss$sss$sss\n\n\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "\n$sss$sss$sss$sss\n\n" | git stripspace >actual &&
test_cmp expect actual &&
printf "\n\n$sss$sss$sss$sss\n" | git stripspace >actual &&
test_cmp expect actual
ok 5 - only consecutive blank lines should be completely removed
expecting success:
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:
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:
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:
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:
! (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:
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:
! (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:
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:
printf "" >expect &&
echo | git stripspace >actual &&
test_cmp expect actual &&
echo "$sss" | git stripspace >actual &&
test_cmp expect actual &&
echo "$sss$sss" | git stripspace >actual &&
test_cmp expect actual &&
echo "$sss$sss$sss" | git stripspace >actual &&
test_cmp expect actual &&
echo "$sss$sss$sss$sss" | git stripspace >actual &&
test_cmp expect actual
ok 14 - spaces with newline at end should be replaced with empty string
expecting success:
! (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:
printf "" >expect &&
printf "" | git stripspace >actual &&
test_cmp expect actual &&
printf "$sss$sss" | git stripspace >actual &&
test_cmp expect actual &&
printf "$sss$sss$sss" | git stripspace >actual &&
test_cmp expect actual &&
printf "$sss$sss$sss$sss" | git stripspace >actual &&
test_cmp expect actual
ok 16 - spaces without newline at end should be replaced with empty string
expecting success:
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:
test ! -z "$(echo "# comment" | git stripspace)" &&
test -z "$(echo "# comment" | git stripspace -s)"
ok 18 - strip comments, too
expecting success:
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:
printf "# foo\n" >expect &&
printf "foo" | git stripspace -c >actual &&
test_cmp expect actual
ok 20 - -c with single line
expecting success:
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:
printf "#\n" >expect &&
printf "\n" | git stripspace -c >actual &&
test_cmp expect actual
ok 22 - -c with newline only
expecting success:
printf "# foo\n" >expect &&
printf "foo" | git stripspace -c >actual &&
test_cmp expect actual
ok 23 - --comment-lines with single line
expecting success:
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:
test_config core.commentchar = &&
printf "= foo\n" >expect &&
printf "foo" | (
mkdir sub && cd sub && git stripspace -c
) >actual &&
test_cmp expect actual
ok 25 - -c with comment char defined in .git/config
expecting success:
printf "#\tone\n#\n# two\n" >expect &&
printf "\tone\n\ntwo\n" | git stripspace -c >actual &&
test_cmp expect actual
ok 26 - avoid SP-HT sequence in commented line
# passed all 26 test(s)
1..26
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:
test_must_fail test-parse-options -h >output 2>output.err &&
test_must_be_empty output.err &&
test_i18ncmp expect output
ok 1 - test help
expecting success: check boolean: 1 --yes
ok 2 - OPT_BOOL() #1
expecting success: check boolean: 1 --no-doubt
ok 3 - OPT_BOOL() #2
expecting success: check boolean: 1 -D
ok 4 - OPT_BOOL() #3
expecting success: check boolean: 1 --no-fear
ok 5 - OPT_BOOL() #4
expecting success: check boolean: 1 -B
ok 6 - OPT_BOOL() #5
expecting success: check boolean: 1 --yes --yes
ok 7 - OPT_BOOL() is idempotent #1
expecting success: check boolean: 1 -DB
ok 8 - OPT_BOOL() is idempotent #2
expecting success: check boolean: 0 -D --no-yes
ok 9 - OPT_BOOL() negation #1
expecting success: check boolean: 0 -D --no-no-doubt
ok 10 - OPT_BOOL() negation #2
expecting success: check_unknown_i18n --fear
ok 11 - OPT_BOOL() no negation #1
expecting success: check_unknown_i18n --no-no-fear
ok 12 - OPT_BOOL() no negation #2
expecting success: check boolean: 0 -D --doubt
ok 13 - OPT_BOOL() positivation
expecting success: check integer: -2345 -i -2345
ok 14 - OPT_INT() negative
expecting success:
check magnitude: 2345678 -m 2345678
ok 15 - OPT_MAGNITUDE() simple
expecting success:
check magnitude: 239616 -m 234k
ok 16 - OPT_MAGNITUDE() kilo
expecting success:
check magnitude: 104857600 -m 100m
ok 17 - OPT_MAGNITUDE() mega
expecting success:
check magnitude: 1073741824 -m 1g
ok 18 - OPT_MAGNITUDE() giga
expecting success:
check magnitude: 3221225472 -m 3g
ok 19 - OPT_MAGNITUDE() 3giga
expecting success:
test-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:
test-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:
test_expect_code 129 test-parse-options -s &&
test_expect_code 129 test-parse-options --string &&
test_expect_code 129 test-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:
test-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:
test-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:
test-parse-options --expect="integer: 2" --int=2
ok 25 - unambiguously abbreviated option with "="
expecting success:
test_expect_code 129 test-parse-options --strin 123
error: Ambiguous option: strin (could be --string or --string2)
usage: test-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
-t <time> get timestamp of <time>
-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 SHA-1s
-v, --verbose be verbose
-n, --dry-run dry run
-q, --quiet be quiet
--expect <string> expected output in the variable dump
ok 26 - ambiguously abbreviated option
expecting success:
test-parse-options --expect="string: 123" --st 123
ok 27 - non ambiguous option (after two options it abbreviates)
expecting success:
test_must_fail test-parse-options -boolean >output 2>output.err &&
test_must_be_empty output &&
test_cmp typo.err output.err
ok 28 - detect possible typos
expecting success:
test_must_fail test-parse-options -ambiguous >output 2>output.err &&
test_must_be_empty output &&
test_cmp typo.err output.err
ok 29 - detect possible typos
expecting success:
test-parse-options --expect="arg 00: --quux" --quux
ok 30 - keep some options as arguments
expecting success:
test-parse-options -t "1970-01-01 00:00:01 +0000" \
foo -q >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 31 - OPT_DATE() works
expecting success:
test-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:
test_must_fail test-parse-options --no-length >output 2>output.err &&
test_i18ncmp expect output &&
test_must_be_empty output.err
ok 33 - OPT_CALLBACK() and callback errors work
expecting success:
test-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:
test-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:
test-parse-options --expect="boolean: 6" -bb --or4
ok 36 - OPT_BIT() works
expecting success:
test-parse-options --expect="boolean: 6" -bb --no-neg-or4
ok 37 - OPT_NEGBIT() works
expecting success:
test-parse-options --expect="boolean: 6" + + + + + +
ok 38 - OPT_COUNTUP() with PARSE_OPT_NODASH works
expecting success:
test-parse-options --expect="integer: 12345" -12345
ok 39 - OPT_NUMBER_CALLBACK() works
expecting success:
test-parse-options --no-ambig >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 40 - negation of OPT_NONEG flags is not ambiguous
expecting success:
test-parse-options --list foo --list=bar --list=baz >output &&
test_cmp expect output
ok 41 - --list keeps list of strings
expecting success:
test-parse-options --list=other --list=irrelevant --list=options \
--no-list --list=foo --list=bar --list=baz >output &&
test_cmp expect output
ok 42 - --no-list resets list
expecting success:
test-parse-options --expect="quiet: 3" -q -q -q
ok 43 - multiple quiet levels
expecting success:
test-parse-options --expect="verbose: 3" -v -v -v
ok 44 - multiple verbose levels
expecting success:
test-parse-options --expect="quiet: 0" --no-quiet
ok 45 - --no-quiet sets --quiet to 0
expecting success:
test-parse-options --expect="quiet: 0" -q -q -q --no-quiet
ok 46 - --no-quiet resets multiple -q to 0
expecting success:
test-parse-options --expect="verbose: 0" --no-verbose
ok 47 - --no-verbose sets verbose to 0
expecting success:
test-parse-options --expect="verbose: 0" -v -v -v --no-verbose
ok 48 - --no-verbose resets multiple verbose to 0
# passed all 48 test(s)
1..48
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:
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:
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:
test_must_fail git tag --contains "notag" >actual 2>actual.err &&
test_line_count = 0 actual &&
test_i18ngrep "error" actual.err &&
test_i18ngrep ! "usage" actual.err
error: malformed object name notag
ok 3 - tag --contains <inexistent_tag>
expecting success:
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:
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:
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>] <tagname> [<head>]
ok 6 - tag usage error
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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'
*** 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
{
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:
{
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:
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) 7cfa76b] 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 d27a427] 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:
git mv camelcase CamelCase &&
git commit -m "rename"
[master d27a427] 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:
rm -f CamelCase &&
rm -f camelcase &&
git reset --hard initial &&
git merge topic
HEAD is now at 7cfa76b initial
Updating 7cfa76b..d27a427
Fast-forward
camelcase => CamelCase | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename camelcase => CamelCase (100%)
ok 5 - merge (case change)
skipping test: add directory (with different case)
git reset --hard initial &&
mkdir -p dir1/dir2 &&
echo >dir1/dir2/a &&
echo >dir1/dir2/b &&
git add dir1/dir2/a &&
git add dir1/DIR2/b &&
git ls-files >actual &&
cat >expected <<-\EOF &&
camelcase
dir1/dir2/a
dir1/dir2/b
EOF
test_cmp expected actual
ok 6 # skip add directory (with different case) (missing CASE_INSENSITIVE_FS)
skipping test: add (with different case)
git reset --hard initial &&
rm camelcase &&
echo 1 >CamelCase &&
git add CamelCase &&
camel=$(git ls-files | grep -i camelcase) &&
test $(echo "$camel" | wc -l) = 1 &&
test "z$(git cat-file blob :$camel)" = z1
ok 7 # skip add (with different case) (missing CASE_INSENSITIVE_FS)
expecting success:
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) 5da21c8] 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 916cab9] 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:
git mv "$aumlcdiar" "$auml" &&
git commit -m rename
[master 916cab9] 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:
git reset --hard initial &&
git merge topic
HEAD is now at 5da21c8 initial
Updating 5da21c8..916cab9
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)
# passed all 10 test(s)
1..10
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
>a &&
mkdir b &&
ln -s b c &&
>c/d &&
git update-index --add a b/d
ok 1 - setup
expecting success:
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:
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'
*** t0008-ignores.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0008-ignores/.git/
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0008-ignores/a/submodule/.git/
[master (root-commit) 2e3aec1] 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:
expect "$expect" &&
eval "$code"
ok 2 - . corner-case
expecting success:
expect '' &&
test_check_ignore . 1
ok 3 - . corner-case with -q
expecting success:
expect '' &&
test_check_ignore . 1
ok 4 - . corner-case with --quiet
expecting success:
expect '' &&
test_check_ignore . 1
ok 5 - . corner-case with -v
expecting success:
expect ':: .' &&
test_check_ignore . 1
ok 6 - . corner-case with -v -n
expecting success:
expect ':: .' &&
test_check_ignore . 1
ok 7 - . corner-case with -v --non-matching
expecting success:
expect '' &&
test_check_ignore . 1
ok 8 - . corner-case with --verbose
expecting success:
expect ':: .' &&
test_check_ignore . 1
ok 9 - . corner-case with --verbose -n
expecting success:
expect ':: .' &&
test_check_ignore . 1
ok 10 - . corner-case with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
fatal: no path specified
ok 11 - empty command line
expecting success:
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 12 - empty command line with -q
expecting success:
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 13 - empty command line with --quiet
expecting success:
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 14 - empty command line with -v
expecting success:
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:
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:
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 17 - empty command line with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 20 - --stdin with empty STDIN
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 21 - --stdin with empty STDIN with -q
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 22 - --stdin with empty STDIN with --quiet
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 23 - --stdin with empty STDIN with -v
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 24 - --stdin with empty STDIN with -v -n
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 25 - --stdin with empty STDIN with -v --non-matching
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 26 - --stdin with empty STDIN with --verbose
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 27 - --stdin with empty STDIN with --verbose -n
expecting success:
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 28 - --stdin with empty STDIN with --verbose --non-matching
expecting success:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
fatal: no path specified
ok 36 - erroneous use of --
expecting success:
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 37 - erroneous use of -- with -q
expecting success:
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 38 - erroneous use of -- with --quiet
expecting success:
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 39 - erroneous use of -- with -v
expecting success:
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:
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:
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 42 - erroneous use of -- with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
fatal: cannot specify pathnames with --stdin
ok 45 - --stdin with superfluous arg
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
fatal: cannot specify pathnames with --stdin
ok 54 - --stdin -z with superfluous arg
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
fatal: -z only makes sense with --stdin
ok 63 - -z without --stdin
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
fatal: -z only makes sense with --stdin
ok 72 - -z without --stdin and superfluous arg
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
fatal: this operation must be run in a work tree
ok 81 - needs work tree
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 90 - non-existent file at top-level not ignored
expecting success:
expect '' &&
test_check_ignore 'non-existent' 1
ok 91 - non-existent file at top-level not ignored with -q
expecting success:
expect '' &&
test_check_ignore 'non-existent' 1
ok 92 - non-existent file at top-level not ignored with --quiet
expecting success:
expect '' &&
test_check_ignore 'non-existent' 1
ok 93 - non-existent file at top-level not ignored with -v
expecting success:
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 94 - non-existent file at top-level not ignored with -v -n
expecting success:
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:
expect '' &&
test_check_ignore 'non-existent' 1
ok 96 - non-existent file at top-level not ignored with --verbose
expecting success:
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 97 - non-existent file at top-level not ignored with --verbose -n
expecting success:
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:
expect "$expect" &&
eval "$code"
ok 99 - non-existent file at top-level not ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'non-existent' 1
ok 100 - non-existent file at top-level not ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'non-existent' 1
ok 101 - non-existent file at top-level not ignored with --no-index --quiet
expecting success:
expect '' &&
test_check_ignore 'non-existent' 1
ok 102 - non-existent file at top-level not ignored with --no-index -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'non-existent' 1
ok 105 - non-existent file at top-level not ignored with --no-index --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 108 - non-existent file at top-level ignored
expecting success:
expect '' &&
test_check_ignore 'one'
ok 109 - non-existent file at top-level ignored with -q
expecting success:
expect '' &&
test_check_ignore 'one'
ok 110 - non-existent file at top-level ignored with --quiet
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 111 - non-existent file at top-level ignored with -v
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 112 - non-existent file at top-level ignored with -v -n
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 113 - non-existent file at top-level ignored with -v --non-matching
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 114 - non-existent file at top-level ignored with --verbose
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 115 - non-existent file at top-level ignored with --verbose -n
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 116 - non-existent file at top-level ignored with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
ok 117 - non-existent file at top-level ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'one'
ok 118 - non-existent file at top-level ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'one'
ok 119 - non-existent file at top-level ignored with --no-index --quiet
expecting success:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 120 - non-existent file at top-level ignored with --no-index -v
expecting success:
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:
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:
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 123 - non-existent file at top-level ignored with --no-index --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 126 - existing untracked file at top-level not ignored
expecting success:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 127 - existing untracked file at top-level not ignored with -q
expecting success:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 128 - existing untracked file at top-level not ignored with --quiet
expecting success:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 129 - existing untracked file at top-level not ignored with -v
expecting success:
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 130 - existing untracked file at top-level not ignored with -v -n
expecting success:
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:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 132 - existing untracked file at top-level not ignored with --verbose
expecting success:
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 133 - existing untracked file at top-level not ignored with --verbose -n
expecting success:
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:
expect "$expect" &&
eval "$code"
ok 135 - existing untracked file at top-level not ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 136 - existing untracked file at top-level not ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 137 - existing untracked file at top-level not ignored with --no-index --quiet
expecting success:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 138 - existing untracked file at top-level not ignored with --no-index -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'not-ignored' 1
ok 141 - existing untracked file at top-level not ignored with --no-index --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 144 - existing tracked file at top-level not ignored
expecting success:
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 145 - existing tracked file at top-level not ignored with -q
expecting success:
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 146 - existing tracked file at top-level not ignored with --quiet
expecting success:
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 147 - existing tracked file at top-level not ignored with -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 150 - existing tracked file at top-level not ignored with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 153 - existing tracked file at top-level shown as ignored with --no-index
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 162 - existing untracked file at top-level ignored
expecting success:
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 163 - existing untracked file at top-level ignored with -q
expecting success:
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 164 - existing untracked file at top-level ignored with --quiet
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 171 - existing untracked file at top-level ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 172 - existing untracked file at top-level ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 173 - existing untracked file at top-level ignored with --no-index --quiet
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 180 - mix of file types at top-level
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 187 - mix of file types at top-level with --no-index
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 194 - non-existent file in subdir a/ not ignored
expecting success:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 195 - non-existent file in subdir a/ not ignored with -q
expecting success:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 196 - non-existent file in subdir a/ not ignored with --quiet
expecting success:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 197 - non-existent file in subdir a/ not ignored with -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 200 - non-existent file in subdir a/ not ignored with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 203 - non-existent file in subdir a/ not ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 204 - non-existent file in subdir a/ not ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 205 - non-existent file in subdir a/ not ignored with --no-index --quiet
expecting success:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 206 - non-existent file in subdir a/ not ignored with --no-index -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 209 - non-existent file in subdir a/ not ignored with --no-index --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 212 - non-existent file in subdir a/ ignored
expecting success:
expect '' &&
test_check_ignore 'a/one'
ok 213 - non-existent file in subdir a/ ignored with -q
expecting success:
expect '' &&
test_check_ignore 'a/one'
ok 214 - non-existent file in subdir a/ ignored with --quiet
expecting success:
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 215 - non-existent file in subdir a/ ignored with -v
expecting success:
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:
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:
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 218 - non-existent file in subdir a/ ignored with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 221 - non-existent file in subdir a/ ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'a/one'
ok 222 - non-existent file in subdir a/ ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'a/one'
ok 223 - non-existent file in subdir a/ ignored with --no-index --quiet
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 230 - existing untracked file in subdir a/ not ignored
expecting success:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 231 - existing untracked file in subdir a/ not ignored with -q
expecting success:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 232 - existing untracked file in subdir a/ not ignored with --quiet
expecting success:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 233 - existing untracked file in subdir a/ not ignored with -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 236 - existing untracked file in subdir a/ not ignored with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 239 - existing untracked file in subdir a/ not ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 240 - existing untracked file in subdir a/ not ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 241 - existing untracked file in subdir a/ not ignored with --no-index --quiet
expecting success:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 242 - existing untracked file in subdir a/ not ignored with --no-index -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 245 - existing untracked file in subdir a/ not ignored with --no-index --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 248 - existing tracked file in subdir a/ not ignored
expecting success:
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 249 - existing tracked file in subdir a/ not ignored with -q
expecting success:
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 250 - existing tracked file in subdir a/ not ignored with --quiet
expecting success:
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 251 - existing tracked file in subdir a/ not ignored with -v
expecting success:
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:
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:
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 254 - existing tracked file in subdir a/ not ignored with --verbose
expecting success:
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:
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:
expect "$expect" &&
eval "$code"
ok 257 - existing tracked file in subdir a/ shown as ignored with --no-index
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 266 - existing untracked file in subdir a/ ignored
expecting success:
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 267 - existing untracked file in subdir a/ ignored with -q
expecting success:
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 268 - existing untracked file in subdir a/ ignored with --quiet
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 275 - existing untracked file in subdir a/ ignored with --no-index
expecting success:
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 276 - existing untracked file in subdir a/ ignored with --no-index -q
expecting success:
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 277 - existing untracked file in subdir a/ ignored with --no-index --quiet
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 284 - mix of file types in subdir a/
expecting success:
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:
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:
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:
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:
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:
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:
expect "$expect" &&
eval "$code"
ok 291 - mix of file types in subdir a/ with --no-index
expecting success:
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:
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:
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:
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:
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:
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:
expect "a/3-three" &&
test_check_ignore "a/3-three a/three-not-this-one"
ok 298 - sub-directory local ignore
expecting success:
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:
expect "3-three" &&
(
cd a &&
test_check_ignore "3-three three-not-this-one"
)
ok 300 - local ignore inside a sub-directory
expecting success:
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:
expect "$expect" &&
eval "$code"
ok 302 - nested include
expecting success:
expect '' &&
test_check_ignore "a/b/one"
ok 303 - nested include with -q
expecting success:
expect '' &&
test_check_ignore "a/b/one"
ok 304 - nested include with --quiet
expecting success:
expect 'a/b/.gitignore:8:!on* a/b/one' &&
test_check_ignore "a/b/one"
ok 305 - nested include with -v
expecting success:
expect 'a/b/.gitignore:8:!on* a/b/one' &&
test_check_ignore "a/b/one"
ok 306 - nested include with -v -n
expecting success:
expect 'a/b/.gitignore:8:!on* a/b/one' &&
test_check_ignore "a/b/one"
ok 307 - nested include with -v --non-matching
expecting success:
expect 'a/b/.gitignore:8:!on* a/b/one' &&
test_check_ignore "a/b/one"
ok 308 - nested include with --verbose
expecting success:
expect 'a/b/.gitignore:8:!on* a/b/one' &&
test_check_ignore "a/b/one"
ok 309 - nested include with --verbose -n
expecting success:
expect 'a/b/.gitignore:8:!on* a/b/one' &&
test_check_ignore "a/b/one"
ok 310 - nested include with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
ok 311 - ignored sub-directory
expecting success:
expect '' &&
test_check_ignore "a/b/ignored-dir"
ok 312 - ignored sub-directory with -q
expecting success:
expect '' &&
test_check_ignore "a/b/ignored-dir"
ok 313 - ignored sub-directory with --quiet
expecting success:
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 314 - ignored sub-directory with -v
expecting success:
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 315 - ignored sub-directory with -v -n
expecting success:
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 316 - ignored sub-directory with -v --non-matching
expecting success:
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 317 - ignored sub-directory with --verbose
expecting success:
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 318 - ignored sub-directory with --verbose -n
expecting success:
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 319 - ignored sub-directory with --verbose --non-matching
expecting success:
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 320 - multiple files inside ignored sub-directory
expecting success:
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 321 - multiple files inside ignored sub-directory with -v
expecting success:
expect_from_stdin <<-\EOF &&
foo
twoooo
../one
seven
../../one
EOF
(
cd a/b/ignored-dir &&
test_check_ignore "foo twoooo ../one seven ../../one"
)
ok 322 - cd to ignored sub-directory
expecting success:
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 323 - cd to ignored sub-directory with -v
expecting success:
expect "$expect" &&
eval "$code"
ok 324 - symlink
expecting success:
expect '' &&
test_check_ignore "a/symlink" 1
ok 325 - symlink with -q
expecting success:
expect '' &&
test_check_ignore "a/symlink" 1
ok 326 - symlink with --quiet
expecting success:
expect '' &&
test_check_ignore "a/symlink" 1
ok 327 - symlink with -v
expecting success:
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 328 - symlink with -v -n
expecting success:
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 329 - symlink with -v --non-matching
expecting success:
expect '' &&
test_check_ignore "a/symlink" 1
ok 330 - symlink with --verbose
expecting success:
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 331 - symlink with --verbose -n
expecting success:
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 332 - symlink with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
ok 333 - beyond a symlink
expecting success:
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 -q
expecting success:
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 --quiet
expecting success:
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 -v
expecting success:
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 337 - beyond a symlink with -v -n
expecting success:
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 338 - beyond a symlink with -v --non-matching
expecting success:
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 339 - beyond a symlink with --verbose
expecting success:
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 340 - beyond a symlink with --verbose -n
expecting success:
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 341 - beyond a symlink with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
ok 342 - beyond a symlink from subdirectory
expecting success:
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 -q
expecting success:
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 --quiet
expecting success:
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 -v
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 346 - beyond a symlink from subdirectory with -v -n
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 347 - beyond a symlink from subdirectory with -v --non-matching
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 348 - beyond a symlink from subdirectory with --verbose
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 349 - beyond a symlink from subdirectory with --verbose -n
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 350 - beyond a symlink from subdirectory with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
ok 351 - submodule
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 352 - submodule with -q
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 353 - submodule with --quiet
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 354 - submodule with -v
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 355 - submodule with -v -n
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 356 - submodule with -v --non-matching
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 357 - submodule with --verbose
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 358 - submodule with --verbose -n
expecting success:
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 359 - submodule with --verbose --non-matching
expecting success:
expect "$expect" &&
eval "$code"
ok 360 - submodule from subdirectory
expecting success:
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 -q
expecting success:
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 --quiet
expecting success:
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 -v
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 364 - submodule from subdirectory with -v -n
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 365 - submodule from subdirectory with -v --non-matching
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 366 - submodule from subdirectory with --verbose
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 367 - submodule from subdirectory with --verbose -n
expecting success:
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 368 - submodule from subdirectory with --verbose --non-matching
expecting success:
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 369 - global ignore not yet enabled
expecting success:
enable_global_excludes &&
expect_from_stdin <<-\EOF &&
globalone
per-repo
globalthree
a/globalthree
a/per-repo
globaltwo
EOF
test_check_ignore "globalone per-repo globalthree a/globalthree a/per-repo not-ignored globaltwo"
ok 370 - global ignore
expecting success:
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 371 - global ignore with -v
expecting success:
expect_from_stdin <expected-default &&
test_check_ignore "--stdin" <stdin
ok 372 - --stdin
expecting success:
expect "" &&
test_check_ignore "-q --stdin" <stdin
ok 373 - --stdin -q
expecting success:
expect_from_stdin <expected-verbose &&
test_check_ignore "-v --stdin" <stdin
ok 374 - --stdin -v
expecting success:
expect_from_stdin <expected-default0 &&
test_check_ignore '--stdin -z' <stdin0
ok 375 - --stdin -z
expecting success:
expect &&
test_check_ignore '-q --stdin -z' <stdin0
ok 376 - --stdin -z -q
expecting success:
expect_from_stdin <expected-verbose0 &&
test_check_ignore '-v --stdin -z' <stdin0
ok 377 - --stdin -z -v
expecting success:
expect_from_stdin <expected-default0 &&
test_check_ignore '-z --stdin' <stdin0
ok 378 - -z --stdin
expecting success:
expect &&
test_check_ignore '-q -z --stdin' <stdin0
ok 379 - -z --stdin -q
expecting success:
expect_from_stdin <expected-verbose0 &&
test_check_ignore '-v -z --stdin' <stdin0
ok 380 - -z --stdin -v
expecting success:
expect_from_stdin <expected-default &&
(
cd a &&
test_check_ignore "--stdin" <../stdin
)
ok 381 - --stdin from subdirectory
expecting success:
expect_from_stdin <expected-verbose &&
(
cd a &&
test_check_ignore "--stdin -v" <../stdin
)
ok 382 - --stdin from subdirectory with -v
expecting success:
expect_from_stdin <expected-all &&
(
cd a &&
test_check_ignore "--stdin -v -n" <../stdin
)
ok 383 - --stdin from subdirectory with -v -n
expecting success:
expect_from_stdin <expected-default0 &&
(
cd a &&
test_check_ignore "--stdin -z" <../stdin0
)
ok 384 - --stdin -z from subdirectory
expecting success:
expect_from_stdin <expected-verbose0 &&
(
cd a &&
test_check_ignore "--stdin -z -v" <../stdin0
)
ok 385 - --stdin -z from subdirectory with -v
expecting success:
expect_from_stdin <expected-default0 &&
(
cd a &&
test_check_ignore "-z --stdin" <../stdin0
)
ok 386 - -z --stdin from subdirectory
expecting success:
expect_from_stdin <expected-verbose0 &&
(
cd a &&
test_check_ignore "-z --stdin -v" <../stdin0
)
ok 387 - -z --stdin from subdirectory with -v
checking prerequisite: PIPE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports FIFOs
test_have_prereq !MINGW,!CYGWIN &&
rm -f testfifo && mkfifo testfifo
)
prerequisite PIPE ok
expecting success:
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 388 - streaming support for --stdin
expecting success:
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 389 - existing file and directory
expecting success:
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 390 - existing directory and file
expecting success:
mkdir whitespace &&
>whitespace/trailing &&
>whitespace/untracked &&
echo "whitespace/trailing " >ignore &&
cat >expect <<EOF &&
whitespace/untracked
EOF
: >err.expect &&
git ls-files -o -X ignore whitespace >actual 2>err &&
test_cmp expect actual &&
test_cmp err.expect err
ok 391 - trailing whitespace is ignored
expecting success:
rm -rf whitespace &&
mkdir whitespace &&
>"whitespace/trailing " &&
>whitespace/untracked &&
echo "whitespace/trailing\\ \\ " >ignore &&
echo whitespace/untracked >expect &&
: >err.expect &&
git ls-files -o -X ignore whitespace >actual 2>err &&
test_cmp expect actual &&
test_cmp err.expect err
ok 392 - quoting allows trailing whitespace
expecting success:
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 &&
>err.expect &&
git ls-files -o -X ignore whitespace >actual 2>err &&
test_cmp expect actual &&
test_cmp err.expect err
ok 393 - correct handling of backslashes
expecting success:
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 394 - info/exclude trumps core.excludesfile
# passed all 394 test(s)
1..394
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:
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) 4903be1] 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:
(
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:
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) 627cc45] 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:
mkdir c &&
mkdir c/a &&
mkdir c/a.git &&
(cd c/a.git && git init --bare) &&
echo 1 >c/a/a.txt &&
git --git-dir c/a.git --work-tree=c/a add a.txt &&
git --git-dir c/a.git --work-tree=c/a commit -m "initial" &&
git --git-dir=c/a.git log -1 --format=%s >expected &&
git -C c --git-dir=a.git log -1 --format=%s >actual &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0056-git-C/c/a.git/
[master (root-commit) 0dec060] 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:
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:
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:
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:
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:
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:
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:
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/
expecting success:
test-tool run-command start-command-ENOENT ./does-not-exist
fatal: cannot run ./does-not-exist: No such file or directory
ok 1 - start_command reports ENOENT
expecting success:
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_cmp empty err
ok 2 - run_command can run a command
expecting success:
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_cmp empty err
ok 3 - run_command can run a script without a #! line
expecting success:
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_cmp empty err
ok 4 - run_command does not try to execute a directory
expecting success:
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_cmp empty err
ok 5 - run_command passes over non-executable file
expecting success:
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 6 - run_command reports EACCES
checking prerequisite: SANITY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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 7 - unreadable directory in PATH
expecting success:
test-tool run-command run-command-parallel 5 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
test_cmp expect actual
ok 8 - run_command runs in parallel with more jobs available than tasks
expecting success:
test-tool run-command run-command-parallel 4 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
test_cmp expect actual
ok 9 - run_command runs in parallel with as many jobs as tasks
expecting success:
test-tool run-command run-command-parallel 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
test_cmp expect actual
ok 10 - run_command runs in parallel with more tasks than jobs available
expecting success:
test-tool run-command run-command-abort 3 false 2>actual &&
test_cmp expect actual
ok 11 - run_command is asked to abort gracefully
expecting success:
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 12 - run_command outputs
expecting success:
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 13 - GIT_TRACE with environment variables
# passed all 13 test(s)
1..13
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:
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) 7bb83ca] add a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[master c910089] add b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b
ok 1 - setup
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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-sha1-array.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0064-sha1-array/.git/
expecting success:
echo20 "" 44 55 88 aa >expect &&
{
echo20 append 88 44 aa 55 &&
echo for_each_unique
} | test-tool sha1-array >actual &&
test_cmp expect actual
ok 1 - ordered enumeration
expecting success:
echo20 "" 44 55 88 aa >expect &&
{
echo20 append 88 44 aa 55 &&
echo20 append 88 44 aa 55 &&
echo for_each_unique
} | test-tool sha1-array >actual &&
test_cmp expect actual
ok 2 - ordered enumeration with duplicate suppression
expecting success:
{
echo20 append 88 44 aa 55 &&
echo20 lookup 55
} | test-tool sha1-array >actual &&
n=$(cat actual) &&
test "$n" -eq 1
ok 3 - lookup
expecting success:
{
echo20 append 88 44 aa 55 &&
echo20 lookup 33
} | test-tool sha1-array >actual &&
n=$(cat actual) &&
test "$n" -lt 0
ok 4 - lookup non-existing entry
expecting success:
{
echo20 append 88 44 aa 55 &&
echo20 append 88 44 aa 55 &&
echo20 lookup 55
} | test-tool sha1-array >actual &&
n=$(cat actual) &&
test "$n" -ge 2 &&
test "$n" -le 3
ok 5 - lookup with duplicates
expecting success:
{
echo20 append 88 44 aa 55 &&
echo20 append 88 44 aa 55 &&
echo20 lookup 66
} | test-tool sha1-array >actual &&
n=$(cat actual) &&
test "$n" -lt 0
ok 6 - lookup non-existing entry with duplicates
expecting success:
{
echo "append 5555555555555555555555555555555555555555" &&
echo "append 555555555555555555555555555555555555555f" &&
echo20 lookup 55
} | test-tool sha1-array >actual &&
n=$(cat actual) &&
test "$n" -eq 0
ok 7 - lookup with almost duplicate values
expecting success:
{
echo20 append 55 55 &&
echo20 lookup 55
} | test-tool sha1-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:
echo "$expect" >expect &&
test-tool strcmp-offset "$s1" "$s2" >actual &&
test_cmp expect actual
ok 1 - strcmp_offset(abc, abc)
expecting success:
echo "$expect" >expect &&
test-tool strcmp-offset "$s1" "$s2" >actual &&
test_cmp expect actual
ok 2 - strcmp_offset(abc, def)
expecting success:
echo "$expect" >expect &&
test-tool strcmp-offset "$s1" "$s2" >actual &&
test_cmp expect actual
ok 3 - strcmp_offset(abc, abz)
expecting success:
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'
*** t0070-fundamental.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0070-fundamental/.git/
expecting success:
test-tool ctype
ok 1 - character classes (isspace, isalpha etc.)
expecting success:
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/testYKFrFD': No such file or directory
ok 2 - mktemp to nonexistent directory prints filename
checking prerequisite: SANITY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
mkdir cannotwrite &&
chmod -w cannotwrite &&
test_when_finished "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/testppdpQN': Permission denied
ok 3 - mktemp to unwritable directory prints filename
expecting success:
git commit --allow-empty -m message <&-
[master (root-commit) 96a96ab] message
Author: A U Thor <author@example.com>
ok 4 - git_mkstemps_mode does not fail if fd 0 is not open
expecting success:
# 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
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0081-line-buffer.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0081-line-buffer/.git/
expecting success:
echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual &&
binary 6
HELLO
EOF
test_cmp expect actual
ok 1 - hello world
expecting success:
echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual &&
binary 0
copy 6
HELLO
EOF
test_cmp expect actual
ok 2 - 0-length read, send along greeting
expecting success:
rm -f input &&
echo hello >expect &&
echo hello >input &&
echo copy 6 |
test-line-buffer "&4" 4<input >actual &&
test_cmp expect actual
ok 3 - read from file descriptor
expecting success:
echo Q | q_to_nul >expect &&
q_to_nul <<-\EOF | test-line-buffer >actual &&
skip 2
Q
copy 2
Q
EOF
test_cmp expect actual
ok 4 - skip, copy null byte
expecting success:
echo ">QhelloQ" | q_to_nul >expect &&
q_to_nul <<-\EOF | test-line-buffer >actual &&
binary 8
QhelloQ
EOF
test_cmp expect actual
ok 5 - read null byte
expecting success:
echo ">foo" >expect &&
test-line-buffer <<-\EOF >actual &&
binary 5
foo
EOF
test_cmp expect actual
ok 6 - long reads are truncated
expecting success:
printf "%s\n" ">" foo >expect &&
test-line-buffer <<-\EOF >actual &&
binary 1
copy 5
foo
EOF
test_cmp expect actual
ok 7 - long copies are truncated
expecting success:
echo ">foo" >expect &&
test-line-buffer <<-\EOF >actual &&
binary 5
foo
EOF
test_cmp expect actual
ok 8 - long binary reads are truncated
# 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: test-tool path-utils basename
ok 1 - basename
expecting success: test-tool path-utils dirname
ok 2 - dirname
expecting success: test "$(test-tool path-utils normalize_path_copy '')" = ''
ok 3 - normalize path: =>
expecting success: test "$(test-tool path-utils normalize_path_copy '.')" = ''
ok 4 - normalize path: . =>
expecting success: test "$(test-tool path-utils normalize_path_copy './')" = ''
ok 5 - normalize path: ./ =>
expecting success: test "$(test-tool path-utils normalize_path_copy './.')" = ''
ok 6 - normalize path: ./. =>
expecting success: test "$(test-tool path-utils normalize_path_copy './..')" = '++failed++'
ok 7 - normalize path: ./.. => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy '../.')" = '++failed++'
ok 8 - normalize path: ../. => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy './.././/')" = '++failed++'
ok 9 - normalize path: ./../.// => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/..')" = ''
ok 10 - normalize path: dir/.. =>
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/sub/../..')" = ''
ok 11 - normalize path: dir/sub/../.. =>
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/sub/../../..')" = '++failed++'
ok 12 - normalize path: dir/sub/../../.. => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir')" = 'dir'
ok 13 - normalize path: dir => dir
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir//')" = 'dir/'
ok 14 - normalize path: dir// => dir/
expecting success: test "$(test-tool path-utils normalize_path_copy './dir')" = 'dir'
ok 15 - normalize path: ./dir => dir
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/.')" = 'dir/'
ok 16 - normalize path: dir/. => dir/
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir///./')" = 'dir/'
ok 17 - normalize path: dir///./ => dir/
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir//sub/..')" = 'dir/'
ok 18 - normalize path: dir//sub/.. => dir/
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/sub/../')" = 'dir/'
ok 19 - normalize path: dir/sub/../ => dir/
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/sub/../.')" = 'dir/'
ok 20 - normalize path: dir/sub/../. => dir/
expecting success: test "$(test-tool path-utils normalize_path_copy 'dir/s1/../s2/')" = 'dir/s2/'
ok 21 - normalize path: dir/s1/../s2/ => dir/s2/
expecting success: 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: test "$(test-tool path-utils normalize_path_copy 'd1/s1//../s2/../../d2')" = 'd2'
ok 23 - normalize path: d1/s1//../s2/../../d2 => d2
expecting success: test "$(test-tool path-utils normalize_path_copy 'd1/.../d2')" = 'd1/.../d2'
ok 24 - normalize path: d1/.../d2 => d1/.../d2
expecting success: test "$(test-tool path-utils normalize_path_copy 'd1/..././../d2')" = 'd1/d2'
ok 25 - normalize path: d1/..././../d2 => d1/d2
expecting success: test "$(test-tool path-utils normalize_path_copy '/')" = '/'
ok 26 - normalize path: / => /
expecting success: test "$(test-tool path-utils normalize_path_copy '//')" = '/'
ok 27 - normalize path: // => /
expecting success: test "$(test-tool path-utils normalize_path_copy '///')" = '/'
ok 28 - normalize path: /// => /
expecting success: test "$(test-tool path-utils normalize_path_copy '/.')" = '/'
ok 29 - normalize path: /. => /
expecting success: test "$(test-tool path-utils normalize_path_copy '/./')" = '/'
ok 30 - normalize path: /./ => /
expecting success: test "$(test-tool path-utils normalize_path_copy '/./..')" = '++failed++'
ok 31 - normalize path: /./.. => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy '/../.')" = '++failed++'
ok 32 - normalize path: /../. => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy '/./.././/')" = '++failed++'
ok 33 - normalize path: /./../.// => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir/..')" = '/'
ok 34 - normalize path: /dir/.. => /
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir/sub/../..')" = '/'
ok 35 - normalize path: /dir/sub/../.. => /
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir/sub/../../..')" = '++failed++'
ok 36 - normalize path: /dir/sub/../../.. => ++failed++
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir')" = '/dir'
ok 37 - normalize path: /dir => /dir
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir//')" = '/dir/'
ok 38 - normalize path: /dir// => /dir/
expecting success: test "$(test-tool path-utils normalize_path_copy '/./dir')" = '/dir'
ok 39 - normalize path: /./dir => /dir
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir/.')" = '/dir/'
ok 40 - normalize path: /dir/. => /dir/
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir///./')" = '/dir/'
ok 41 - normalize path: /dir///./ => /dir/
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir//sub/..')" = '/dir/'
ok 42 - normalize path: /dir//sub/.. => /dir/
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir/sub/../')" = '/dir/'
ok 43 - normalize path: /dir/sub/../ => /dir/
expecting success: test "$(test-tool path-utils normalize_path_copy '//dir/sub/../.')" = '/dir/'
ok 44 - normalize path: //dir/sub/../. => /dir/
expecting success: test "$(test-tool path-utils normalize_path_copy '/dir/s1/../s2/')" = '/dir/s2/'
ok 45 - normalize path: /dir/s1/../s2/ => /dir/s2/
expecting success: 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: test "$(test-tool path-utils normalize_path_copy '/d1/s1//../s2/../../d2')" = '/d2'
ok 47 - normalize path: /d1/s1//../s2/../../d2 => /d2
expecting success: test "$(test-tool path-utils normalize_path_copy '/d1/.../d2')" = '/d1/.../d2'
ok 48 - normalize path: /d1/.../d2 => /d1/.../d2
expecting success: test "$(test-tool path-utils normalize_path_copy '/d1/..././../d2')" = '/d1/d2'
ok 49 - normalize path: /d1/..././../d2 => /d1/d2
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/' '/') &&
test "$actual" = '-1'
ok 50 - longest ancestor: / / => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/') &&
test "$actual" = '0'
ok 51 - longest ancestor: /foo / => 0
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/fo') &&
test "$actual" = '-1'
ok 52 - longest ancestor: /foo /fo => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo') &&
test "$actual" = '-1'
ok 53 - longest ancestor: /foo /foo => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/bar') &&
test "$actual" = '-1'
ok 54 - longest ancestor: /foo /bar => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo/bar') &&
test "$actual" = '-1'
ok 55 - longest ancestor: /foo /foo/bar => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo:/bar') &&
test "$actual" = '-1'
ok 56 - longest ancestor: /foo /foo:/bar => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/:/foo:/bar') &&
test "$actual" = '0'
ok 57 - longest ancestor: /foo /:/foo:/bar => 0
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo:/:/bar') &&
test "$actual" = '0'
ok 58 - longest ancestor: /foo /foo:/:/bar => 0
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo' '/:/bar:/foo') &&
test "$actual" = '0'
ok 59 - longest ancestor: /foo /:/bar:/foo => 0
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/') &&
test "$actual" = '0'
ok 60 - longest ancestor: /foo/bar / => 0
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/fo') &&
test "$actual" = '-1'
ok 61 - longest ancestor: /foo/bar /fo => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo') &&
test "$actual" = '4'
ok 62 - longest ancestor: /foo/bar /foo => 4
expecting success: 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: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/fo') &&
test "$actual" = '0'
ok 64 - longest ancestor: /foo/bar /:/fo => 0
expecting success: 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: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/bar') &&
test "$actual" = '-1'
ok 66 - longest ancestor: /foo/bar /bar => -1
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/fo') &&
test "$actual" = '-1'
ok 67 - longest ancestor: /foo/bar /fo => -1
expecting success: 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: 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: 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: 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: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/bar') &&
test "$actual" = '0'
ok 72 - longest ancestor: /foo/bar /:/bar => 0
expecting success: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo') &&
test "$actual" = '4'
ok 73 - longest ancestor: /foo/bar /foo => 4
expecting success: 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: actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/bar') &&
test "$actual" = '-1'
ok 75 - longest ancestor: /foo/bar /bar => -1
expecting success:
test c:/msysgit = $(test-tool path-utils strip_path_suffix \
c:/msysgit/libexec//git-core libexec/git-core)
ok 76 - strip_path_suffix
expecting success:
test_must_fail test-tool path-utils absolute_path ""
fatal: The empty string is not a valid path
ok 77 - absolute path rejects the empty string
expecting success:
test_must_fail test-tool path-utils real_path ""
fatal: The empty string is not a valid path
ok 78 - real path rejects the empty string
expecting success:
nopath="hopefully-absent-path" &&
test "/" = "$(test-tool path-utils real_path "/")" &&
test "/$nopath" = "$(test-tool path-utils real_path "/$nopath")"
ok 79 - real path works on absolute paths 1
expecting success:
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 80 - real path works on absolute paths 2
expecting success:
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 81 - real path removes extra leading slashes
expecting success:
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 82 - real path removes other extra slashes
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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 83 - real path works on symlinks
expecting success:
ln -s target symlink &&
test "$(test-tool path-utils prefix_path prefix "$(pwd)/symlink")" = "symlink"
ok 84 - prefix_path works with absolute paths to work tree symlinks
expecting success:
echo "" >expected &&
test-tool path-utils prefix_path prefix "$(pwd)" >actual &&
test_cmp expected actual
ok 85 - prefix_path works with only absolute path to work tree
expecting success:
test_must_fail test-tool path-utils prefix_path prefix "$(pwd)a"
fatal: '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utilsa' is outside repository
ok 86 - prefix_path rejects absolute path to dir with same beginning as work tree
expecting success:
git init repo &&
ln -s repo repolink &&
test "a" = "$(cd repo && test-tool path-utils prefix_path prefix "$(pwd)/../repolink/a")"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo/.git/
ok 87 - prefix_path works with absolute path to a symlink to work tree having same beginning as work tree
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b/c/' '/foo/a/b/')" = 'c/'
ok 88 - relative path: /foo/a/b/c/ /foo/a/b/ => c/
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b/c/' '/foo/a/b')" = 'c/'
ok 89 - relative path: /foo/a/b/c/ /foo/a/b => c/
expecting success: test "$(test-tool path-utils relative_path '/foo/a//b//c/' '///foo/a/b//')" = 'c/'
ok 90 - relative path: /foo/a//b//c/ ///foo/a/b// => c/
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b' '/foo/a/b')" = './'
ok 91 - relative path: /foo/a/b /foo/a/b => ./
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b/' '/foo/a/b')" = './'
ok 92 - relative path: /foo/a/b/ /foo/a/b => ./
expecting success: test "$(test-tool path-utils relative_path '/foo/a' '/foo/a/b')" = '../'
ok 93 - relative path: /foo/a /foo/a/b => ../
expecting success: test "$(test-tool path-utils relative_path '/' '/foo/a/b/')" = '../../../'
ok 94 - relative path: / /foo/a/b/ => ../../../
expecting success: test "$(test-tool path-utils relative_path '/foo/a/c' '/foo/a/b/')" = '../c'
ok 95 - relative path: /foo/a/c /foo/a/b/ => ../c
expecting success: test "$(test-tool path-utils relative_path '/foo/a/c' '/foo/a/b')" = '../c'
ok 96 - relative path: /foo/a/c /foo/a/b => ../c
expecting success: test "$(test-tool path-utils relative_path '/foo/x/y' '/foo/a/b/')" = '../../x/y'
ok 97 - relative path: /foo/x/y /foo/a/b/ => ../../x/y
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b' '<empty>')" = '/foo/a/b'
ok 98 - relative path: /foo/a/b <empty> => /foo/a/b
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b' '<null>')" = '/foo/a/b'
ok 99 - relative path: /foo/a/b <null> => /foo/a/b
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b/c/' 'foo/a/b/')" = 'c/'
ok 100 - relative path: foo/a/b/c/ foo/a/b/ => c/
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b/c/' 'foo/a/b')" = 'c/'
ok 101 - relative path: foo/a/b/c/ foo/a/b => c/
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b//c' 'foo/a//b')" = 'c'
ok 102 - relative path: foo/a/b//c foo/a//b => c
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b/' 'foo/a/b/')" = './'
ok 103 - relative path: foo/a/b/ foo/a/b/ => ./
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b/' 'foo/a/b')" = './'
ok 104 - relative path: foo/a/b/ foo/a/b => ./
expecting success: test "$(test-tool path-utils relative_path 'foo/a' 'foo/a/b')" = '../'
ok 105 - relative path: foo/a foo/a/b => ../
expecting success: test "$(test-tool path-utils relative_path 'foo/x/y' 'foo/a/b')" = '../../x/y'
ok 106 - relative path: foo/x/y foo/a/b => ../../x/y
expecting success: test "$(test-tool path-utils relative_path 'foo/a/c' 'foo/a/b')" = '../c'
ok 107 - relative path: foo/a/c foo/a/b => ../c
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b' '/foo/x/y')" = 'foo/a/b'
ok 108 - relative path: foo/a/b /foo/x/y => foo/a/b
expecting success: test "$(test-tool path-utils relative_path '/foo/a/b' 'foo/x/y')" = '/foo/a/b'
ok 109 - relative path: /foo/a/b foo/x/y => /foo/a/b
skipping test: relative path: d:/a/b D:/a/c => ../b test "$(test-tool path-utils relative_path 'd:/a/b' 'D:/a/c')" = '../b'
ok 110 # skip relative path: d:/a/b D:/a/c => ../b (missing MINGW)
skipping test: relative path: C:/a/b D:/a/c => C:/a/b test "$(test-tool path-utils relative_path 'C:/a/b' 'D:/a/c')" = 'C:/a/b'
ok 111 # skip relative path: C:/a/b D:/a/c => C:/a/b (missing MINGW)
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b' '<empty>')" = 'foo/a/b'
ok 112 - relative path: foo/a/b <empty> => foo/a/b
expecting success: test "$(test-tool path-utils relative_path 'foo/a/b' '<null>')" = 'foo/a/b'
ok 113 - relative path: foo/a/b <null> => foo/a/b
expecting success: test "$(test-tool path-utils relative_path '<empty>' '/foo/a/b')" = './'
ok 114 - relative path: <empty> /foo/a/b => ./
expecting success: test "$(test-tool path-utils relative_path '<empty>' '<empty>')" = './'
ok 115 - relative path: <empty> <empty> => ./
expecting success: test "$(test-tool path-utils relative_path '<empty>' '<null>')" = './'
ok 116 - relative path: <empty> <null> => ./
expecting success: test "$(test-tool path-utils relative_path '<null>' '<empty>')" = './'
ok 117 - relative path: <null> <empty> => ./
expecting success: test "$(test-tool path-utils relative_path '<null>' '<null>')" = './'
ok 118 - relative path: <null> <null> => ./
expecting success: test "$(test-tool path-utils relative_path '<null>' '/foo/a/b')" = './'
ok 119 - relative path: <null> /foo/a/b => ./
expecting success:
A=B git rev-parse --git-path info/grafts >actual &&
echo .git/info/grafts >expect &&
test_cmp expect actual
ok 120 - git-path A=B info/grafts => .git/info/grafts
expecting success:
GIT_GRAFT_FILE=foo git rev-parse --git-path info/grafts >actual &&
echo foo >expect &&
test_cmp expect actual
ok 121 - git-path GIT_GRAFT_FILE=foo info/grafts => foo
expecting success:
GIT_GRAFT_FILE=foo git rev-parse --git-path info/////grafts >actual &&
echo foo >expect &&
test_cmp expect actual
ok 122 - git-path GIT_GRAFT_FILE=foo info/////grafts => foo
expecting success:
GIT_INDEX_FILE=foo git rev-parse --git-path index >actual &&
echo foo >expect &&
test_cmp expect actual
ok 123 - git-path GIT_INDEX_FILE=foo index => foo
expecting success:
GIT_INDEX_FILE=foo git rev-parse --git-path index/foo >actual &&
echo .git/index/foo >expect &&
test_cmp expect actual
ok 124 - git-path GIT_INDEX_FILE=foo index/foo => .git/index/foo
expecting success:
GIT_INDEX_FILE=foo git rev-parse --git-path index2 >actual &&
echo .git/index2 >expect &&
test_cmp expect actual
ok 125 - git-path GIT_INDEX_FILE=foo index2 => .git/index2
expecting success: mkdir foo
ok 126 - setup fake objects directory foo
expecting success:
GIT_OBJECT_DIRECTORY=foo git rev-parse --git-path objects >actual &&
echo foo >expect &&
test_cmp expect actual
ok 127 - git-path GIT_OBJECT_DIRECTORY=foo objects => foo
expecting success:
GIT_OBJECT_DIRECTORY=foo git rev-parse --git-path objects/foo >actual &&
echo foo/foo >expect &&
test_cmp expect actual
ok 128 - git-path GIT_OBJECT_DIRECTORY=foo objects/foo => foo/foo
expecting success:
GIT_OBJECT_DIRECTORY=foo git rev-parse --git-path objects2 >actual &&
echo .git/objects2 >expect &&
test_cmp expect actual
ok 129 - git-path GIT_OBJECT_DIRECTORY=foo objects2 => .git/objects2
expecting success: git --git-dir=bar init
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/bar/
ok 130 - setup common repository
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path index >actual &&
echo .git/index >expect &&
test_cmp expect actual
ok 131 - git-path GIT_COMMON_DIR=bar index => .git/index
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path HEAD >actual &&
echo .git/HEAD >expect &&
test_cmp expect actual
ok 132 - git-path GIT_COMMON_DIR=bar HEAD => .git/HEAD
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path logs/HEAD >actual &&
echo .git/logs/HEAD >expect &&
test_cmp expect actual
ok 133 - git-path GIT_COMMON_DIR=bar logs/HEAD => .git/logs/HEAD
expecting success:
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 134 - git-path GIT_COMMON_DIR=bar logs/refs/bisect/foo => .git/logs/refs/bisect/foo
expecting success:
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 135 - git-path GIT_COMMON_DIR=bar logs/refs/bisec/foo => bar/logs/refs/bisec/foo
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/bisec >actual &&
echo bar/logs/refs/bisec >expect &&
test_cmp expect actual
ok 136 - git-path GIT_COMMON_DIR=bar logs/refs/bisec => bar/logs/refs/bisec
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/bisectfoo >actual &&
echo bar/logs/refs/bisectfoo >expect &&
test_cmp expect actual
ok 137 - git-path GIT_COMMON_DIR=bar logs/refs/bisectfoo => bar/logs/refs/bisectfoo
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path objects >actual &&
echo bar/objects >expect &&
test_cmp expect actual
ok 138 - git-path GIT_COMMON_DIR=bar objects => bar/objects
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path objects/bar >actual &&
echo bar/objects/bar >expect &&
test_cmp expect actual
ok 139 - git-path GIT_COMMON_DIR=bar objects/bar => bar/objects/bar
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path info/exclude >actual &&
echo bar/info/exclude >expect &&
test_cmp expect actual
ok 140 - git-path GIT_COMMON_DIR=bar info/exclude => bar/info/exclude
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path info/grafts >actual &&
echo bar/info/grafts >expect &&
test_cmp expect actual
ok 141 - git-path GIT_COMMON_DIR=bar info/grafts => bar/info/grafts
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path info/sparse-checkout >actual &&
echo .git/info/sparse-checkout >expect &&
test_cmp expect actual
ok 142 - git-path GIT_COMMON_DIR=bar info/sparse-checkout => .git/info/sparse-checkout
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path info//sparse-checkout >actual &&
echo .git/info//sparse-checkout >expect &&
test_cmp expect actual
ok 143 - git-path GIT_COMMON_DIR=bar info//sparse-checkout => .git/info//sparse-checkout
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path remotes/bar >actual &&
echo bar/remotes/bar >expect &&
test_cmp expect actual
ok 144 - git-path GIT_COMMON_DIR=bar remotes/bar => bar/remotes/bar
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path branches/bar >actual &&
echo bar/branches/bar >expect &&
test_cmp expect actual
ok 145 - git-path GIT_COMMON_DIR=bar branches/bar => bar/branches/bar
expecting success:
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 146 - git-path GIT_COMMON_DIR=bar logs/refs/heads/master => bar/logs/refs/heads/master
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path refs/heads/master >actual &&
echo bar/refs/heads/master >expect &&
test_cmp expect actual
ok 147 - git-path GIT_COMMON_DIR=bar refs/heads/master => bar/refs/heads/master
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path refs/bisect/foo >actual &&
echo .git/refs/bisect/foo >expect &&
test_cmp expect actual
ok 148 - git-path GIT_COMMON_DIR=bar refs/bisect/foo => .git/refs/bisect/foo
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path hooks/me >actual &&
echo bar/hooks/me >expect &&
test_cmp expect actual
ok 149 - git-path GIT_COMMON_DIR=bar hooks/me => bar/hooks/me
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path config >actual &&
echo bar/config >expect &&
test_cmp expect actual
ok 150 - git-path GIT_COMMON_DIR=bar config => bar/config
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path packed-refs >actual &&
echo bar/packed-refs >expect &&
test_cmp expect actual
ok 151 - git-path GIT_COMMON_DIR=bar packed-refs => bar/packed-refs
expecting success:
GIT_COMMON_DIR=bar git rev-parse --git-path shallow >actual &&
echo bar/shallow >expect &&
test_cmp expect actual
ok 152 - git-path GIT_COMMON_DIR=bar shallow => bar/shallow
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' '../foo' '../submodule') &&
test "$actual" = '../../submodule'
ok 153 - test_submodule_relative_url: ../ ../foo ../submodule => ../../submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' '../foo/bar' '../submodule') &&
test "$actual" = '../../foo/submodule'
ok 154 - test_submodule_relative_url: ../ ../foo/bar ../submodule => ../../foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' '../foo/submodule' '../submodule') &&
test "$actual" = '../../foo/submodule'
ok 155 - test_submodule_relative_url: ../ ../foo/submodule ../submodule => ../../foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' './foo' '../submodule') &&
test "$actual" = '../submodule'
ok 156 - test_submodule_relative_url: ../ ./foo ../submodule => ../submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' './foo/bar' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 157 - test_submodule_relative_url: ../ ./foo/bar ../submodule => ../foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../../../' '../foo/bar' '../sub/a/b/c') &&
test "$actual" = '../../../../foo/sub/a/b/c'
ok 158 - test_submodule_relative_url: ../../../ ../foo/bar ../sub/a/b/c => ../../../../foo/sub/a/b/c
expecting success:
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 159 - test_submodule_relative_url: ../ /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest ../repo => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' 'foo/bar' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 160 - test_submodule_relative_url: ../ foo/bar ../submodule => ../foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '../' 'foo' '../submodule') &&
test "$actual" = '../submodule'
ok 161 - test_submodule_relative_url: ../ foo ../submodule => ../submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '../foo/bar' '../sub/a/b/c') &&
test "$actual" = '../foo/sub/a/b/c'
ok 162 - test_submodule_relative_url: (null) ../foo/bar ../sub/a/b/c => ../foo/sub/a/b/c
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '../foo/bar' '../sub/a/b/c/') &&
test "$actual" = '../foo/sub/a/b/c'
ok 163 - test_submodule_relative_url: (null) ../foo/bar ../sub/a/b/c/ => ../foo/sub/a/b/c
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '../foo/bar/' '../sub/a/b/c') &&
test "$actual" = '../foo/sub/a/b/c'
ok 164 - test_submodule_relative_url: (null) ../foo/bar/ ../sub/a/b/c => ../foo/sub/a/b/c
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '../foo/bar' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 165 - test_submodule_relative_url: (null) ../foo/bar ../submodule => ../foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '../foo/submodule' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 166 - test_submodule_relative_url: (null) ../foo/submodule ../submodule => ../foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '../foo' '../submodule') &&
test "$actual" = '../submodule'
ok 167 - test_submodule_relative_url: (null) ../foo ../submodule => ../submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' './foo/bar' '../submodule') &&
test "$actual" = 'foo/submodule'
ok 168 - test_submodule_relative_url: (null) ./foo/bar ../submodule => foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' './foo' '../submodule') &&
test "$actual" = 'submodule'
ok 169 - test_submodule_relative_url: (null) ./foo ../submodule => submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' '//somewhere else/repo' '../subrepo') &&
test "$actual" = '//somewhere else/subrepo'
ok 170 - test_submodule_relative_url: (null) //somewhere else/repo ../subrepo => //somewhere else/subrepo
expecting success:
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 171 - 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:
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 172 - 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:
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 173 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/. ../. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.
expecting success:
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 174 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils ./. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.
expecting success:
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 175 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest ../repo => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo
expecting success:
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 176 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils ./å äö => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/å äö
expecting success:
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 177 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/. ../submodule => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule
expecting success:
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 178 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule ../submodule => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule
expecting success:
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 179 - 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:
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 180 - 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:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'file:///tmp/repo' '../subrepo') &&
test "$actual" = 'file:///tmp/subrepo'
ok 181 - test_submodule_relative_url: (null) file:///tmp/repo ../subrepo => file:///tmp/subrepo
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'foo/bar' '../submodule') &&
test "$actual" = 'foo/submodule'
ok 182 - test_submodule_relative_url: (null) foo/bar ../submodule => foo/submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'foo' '../submodule') &&
test "$actual" = 'submodule'
ok 183 - test_submodule_relative_url: (null) foo ../submodule => submodule
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'helper:://hostname/repo' '../subrepo') &&
test "$actual" = 'helper:://hostname/subrepo'
ok 184 - test_submodule_relative_url: (null) helper:://hostname/repo ../subrepo => helper:://hostname/subrepo
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'ssh://hostname/repo' '../subrepo') &&
test "$actual" = 'ssh://hostname/subrepo'
ok 185 - test_submodule_relative_url: (null) ssh://hostname/repo ../subrepo => ssh://hostname/subrepo
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'ssh://hostname:22/repo' '../subrepo') &&
test "$actual" = 'ssh://hostname:22/subrepo'
ok 186 - test_submodule_relative_url: (null) ssh://hostname:22/repo ../subrepo => ssh://hostname:22/subrepo
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'user@host:path/to/repo' '../subrepo') &&
test "$actual" = 'user@host:path/to/subrepo'
ok 187 - test_submodule_relative_url: (null) user@host:path/to/repo ../subrepo => user@host:path/to/subrepo
expecting success:
actual=$(git submodule--helper resolve-relative-url-test '(null)' 'user@host:repo' '../subrepo') &&
test "$actual" = 'user@host:subrepo'
ok 188 - test_submodule_relative_url: (null) user@host:repo ../subrepo => user@host:subrepo
expecting success:
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 \
\
--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
ok: '.gitmodules' is .gitmodules
ok: '.gitmodules' is .gitmodules
ok: '.Gitmodules' is .gitmodules
ok: '.gitmoduleS' is .gitmodules
ok: '.gitmodules ' is .gitmodules
ok: '.gitmodules.' is .gitmodules
ok: '.gitmodules ' is .gitmodules
ok: '.gitmodules. ' is .gitmodules
ok: '.gitmodules .' is .gitmodules
ok: '.gitmodules..' is .gitmodules
ok: '.gitmodules ' is .gitmodules
ok: '.gitmodules. ' is .gitmodules
ok: '.gitmodules . ' is .gitmodules
ok: '.gitmodules .' is .gitmodules
ok: '.Gitmodules ' is .gitmodules
ok: '.Gitmodules.' is .gitmodules
ok: '.Gitmodules ' is .gitmodules
ok: '.Gitmodules. ' is .gitmodules
ok: '.Gitmodules .' is .gitmodules
ok: '.Gitmodules..' is .gitmodules
ok: '.Gitmodules ' is .gitmodules
ok: '.Gitmodules. ' is .gitmodules
ok: '.Gitmodules . ' is .gitmodules
ok: '.Gitmodules .' is .gitmodules
ok: 'GITMOD~1' is .gitmodules
ok: 'gitmod~1' is .gitmodules
ok: 'GITMOD~2' is .gitmodules
ok: 'gitmod~3' is .gitmodules
ok: 'GITMOD~4' is .gitmodules
ok: 'GITMOD~1 ' is .gitmodules
ok: 'gitmod~2.' is .gitmodules
ok: 'GITMOD~3 ' is .gitmodules
ok: 'gitmod~4. ' is .gitmodules
ok: 'GITMOD~1 .' is .gitmodules
ok: 'gitmod~2 ' is .gitmodules
ok: 'GITMOD~3. ' is .gitmodules
ok: 'gitmod~4 . ' is .gitmodules
ok: 'GI7EBA~1' is .gitmodules
ok: 'gi7eba~9' is .gitmodules
ok: 'GI7EB~10' is .gitmodules
ok: 'GI7EB~11' is .gitmodules
ok: 'GI7EB~99' is .gitmodules
ok: 'GI7EB~10' is .gitmodules
ok: 'GI7E~100' is .gitmodules
ok: 'GI7E~101' is .gitmodules
ok: 'GI7E~999' is .gitmodules
ok: '~1000000' is .gitmodules
ok: '~9999999' is .gitmodules
ok: '.gitmodules 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 189 - match .gitmodules
# passed all 189 test(s)
1..189
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:
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:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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:
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:
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'
*** t0021-conversion.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/.git/
expecting success:
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:
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:
{
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 expanded-keywords expected-output &&
git checkout -- expanded-keywords-crlf &&
test_cmp expanded-keywords-crlf expected-output-crlf
[master (root-commit) 705faf1] 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:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test -n "$GIT_TEST_LONG"
)
prerequisite EXPENSIVE not satisfied
skipping test: filter large file
test_config filter.largefile.smudge cat &&
test_config filter.largefile.clean cat &&
for i in $(test_seq 1 2048); do printf "%1048576d" 1; done >2GB &&
echo "2GB filter=largefile" >.gitattributes &&
git add 2GB 2>err &&
test_must_be_empty err &&
rm -f 2GB &&
git checkout -- 2GB 2>err &&
test_must_be_empty err
ok 10 # skip filter large file (missing EXPENSIVE)
expecting success:
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:
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:
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:
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 3202a77] 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 d2659fc] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
d2659fc0662252a3be714127bc3c7a0ba01ef0e4
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:
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=$(file_size test.r) &&
S2=$(file_size test2.r) &&
S3=$(file_size "testsubdir/test3 'sq',\$x=.r") &&
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" &&
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 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
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 $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r 0 [OK] -- OUT: 0 [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test3 'sq',\$x=.o" "testsubdir/test3 'sq',\$x=.r"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[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:
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=$(file_size test.r) &&
# Check that the process filter is invoked here
filter_git add . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean test.r $S [OK] -- OUT: $S . [OK]
STOP
EOF
test_cmp_count expected.log debug.log
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 16 - required process filter takes precedence
expecting success:
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=$(file_size test.r) &&
filter_git add . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean test.r $S [OK] -- OUT: $S . [OK]
STOP
EOF
test_cmp_count expected.log debug.log &&
rm test.r &&
filter_git checkout --quiet --no-progress . &&
# If the filter would be used for "smudge", too, we would see
# "IN: smudge test.r 57 [OK] -- OUT: 57 . [OK]" here
cat >expected.log <<-EOF &&
START
init handshake complete
STOP
EOF
test_cmp_exclude_clean expected.log debug.log
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 17 - required process filter should be used only for "clean" operation only
expecting success:
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 &&
rm -f *.file &&
filter_git checkout --quiet --no-progress -- *.file &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge 1pkt_1__.file $(($S )) [OK] -- OUT: $(($S )) . [OK]
IN: smudge 2pkt_1+1.file $(($S +1)) [OK] -- OUT: $(($S +1)) .. [OK]
IN: smudge 2pkt_2-1.file $(($S*2-1)) [OK] -- OUT: $(($S*2-1)) .. [OK]
IN: smudge 2pkt_2__.file $(($S*2 )) [OK] -- OUT: $(($S*2 )) .. [OK]
IN: smudge 3pkt_2+1.file $(($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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 18 - required process filter should process multiple packets
expecting success:
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 .
)
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 204.
error: external filter 'rot13-filter.pl debug.log clean smudge' failed
fatal: clean-write-fail.r: clean filter 'protocol' failed
ok 19 - required process filter with clean error should fail
expecting success:
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=$(file_size test.r) &&
S2=$(file_size test2.r) &&
SF=$(file_size smudge-write-fail.r) &&
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 &&
grep "error: external filter" git-stderr.log &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge smudge-write-fail.r $SF [OK] -- [WRITE FAIL]
START
init handshake complete
IN: smudge test.r $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $S2 [OK] -- OUT: $S2 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
# Smudge failed
! test_cmp smudge-write-fail.o smudge-write-fail.r &&
rot13.sh <smudge-write-fail.o >expected &&
git cat-file blob :smudge-write-fail.r >actual &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
smudge write error at /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/rot13-filter.pl line 204.
error: external filter 'rot13-filter.pl debug.log clean smudge' failed
--- smudge-write-fail.o 2018-06-24 06:01:27.328890810 +0000
+++ smudge-write-fail.r 2018-06-24 06:01:28.098910460 +0000
@@ -1 +1 @@
-this is going to fail
+guvf vf tbvat gb snvy
ok 20 - process filter should restart after unexpected write failure
expecting success:
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=$(file_size test.r) &&
S2=$(file_size test2.r) &&
SE=$(file_size error.r) &&
git add . &&
rm -f *.r &&
filter_git checkout --quiet --no-progress . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge error.r $SE [OK] -- [ERROR]
IN: smudge test.r $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $S2 [OK] -- OUT: $S2 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
test_cmp error.o error.r
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 21 - process filter should not be restarted if it signals an error
expecting success:
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 &&
SA=$(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 $SA [OK] -- [ABORT]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp "$TEST_ROOT/test.o" test.r &&
test_cmp "$TEST_ROOT/test2.o" test2.r &&
test_cmp abort.o abort.r
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 22 - process filter abort stops processing of all further files
expecting success:
test_config_global filter.protocol.process cat &&
test_config_global filter.protocol.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
test_must_fail git add . 2>git-stderr.log &&
grep "expected git-filter-server" git-stderr.log
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
error: Unexpected line 'git-filter-client', expected git-filter-server
ok 23 - invalid process filter must fail (and not hang!)
expecting success:
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=$(file_size "$TEST_ROOT/test.o") &&
cat >a.exp <<-EOF &&
START
init handshake complete
IN: smudge test.a $S [OK] -- OUT: $S . [OK]
IN: smudge test-delay10.a $S [OK] -- [DELAYED]
IN: smudge test-delay11.a $S [OK] -- [DELAYED]
IN: smudge test-delay20.a $S [OK] -- [DELAYED]
IN: list_available_blobs test-delay10.a test-delay11.a [OK]
IN: smudge test-delay10.a 0 [OK] -- OUT: $S . [OK]
IN: smudge test-delay11.a 0 [OK] -- OUT: $S . [OK]
IN: list_available_blobs test-delay20.a [OK]
IN: smudge test-delay20.a 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 $S [OK] -- [DELAYED]
IN: list_available_blobs test-delay10.b [OK]
IN: smudge test-delay10.b 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 . &&
test_cmp_count ../a.exp a.log &&
test_cmp_count ../b.exp b.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay10.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay11.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay20.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay10.b
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[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.
ok 24 - delayed checkout in process filter
expecting success:
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 &&
cat git-stderr.log &&
grep "error: .missing-delay\.a. was not filtered properly" git-stderr.log
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[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
Cloning into 'repo-cloned'...
done.
error: 'missing-delay.a' was not filtered properly
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
error: 'missing-delay.a' was not filtered properly
ok 25 - missing file in delayed checkout
expecting success:
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
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 26 - invalid file in delayed checkout
# passed all 26 test(s)
1..26
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:
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:
check_at @{0} two
ok 2 - @{0} shows current
expecting success:
check_at @{1} one
ok 3 - @{1} shows old
expecting success:
check_at @{now} two
ok 4 - @{now} shows current
expecting success:
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:
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:
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:
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/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
expecting success:
test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME"
ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu)
expecting success:
test $TEXTDOMAIN = "git"
ok 2 - sanity: $TEXTDOMAIN is git
expecting success:
! grep "A Perl string xgettext will not get" "$GIT_PO_PATH"/is.po
ok 3 - xgettext sanity: Perl _() strings are not extracted
expecting success:
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:
! 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:
test -d "$TEXTDOMAINDIR" &&
test "$TEXTDOMAINDIR" = "$GIT_TEXTDOMAINDIR"
ok 6 - sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease
expecting success:
test -f "$TEXTDOMAINDIR/is/LC_MESSAGES/git.mo"
ok 7 - sanity: Icelandic locale was compiled
skipping test: sanity: gettext("") metadata is OK
# Return value may be non-zero
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >zero-expect &&
grep "Project-Id-Version: Git" zero-expect &&
grep "Git Mailing List <git@vger.kernel.org>" zero-expect &&
grep "Content-Type: text/plain; charset=UTF-8" zero-expect &&
grep "Content-Transfer-Encoding: 8bit" zero-expect
ok 8 # skip sanity: gettext("") metadata is OK (missing GETTEXT_LOCALE)
skipping test: sanity: gettext(unknown) is passed through
printf "This is not a translation string" >expect &&
gettext "This is not a translation string" >actual &&
eval_gettext "This is not a translation string" >actual &&
test_cmp expect actual
ok 9 # skip sanity: gettext(unknown) is passed through (missing GETTEXT_LOCALE)
skipping test: xgettext: C extraction of _() and N_() strings
printf "TILRAUN: C tilraunastrengur" >expect &&
printf "\n" >>expect &&
printf "Sjá 'git help SKIPUN' til að sjá hjálp fyrir tiltekna skipun." >>expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string" >actual &&
printf "\n" >>actual &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "See 'git help COMMAND' for more information on a specific command." >>actual &&
test_cmp expect actual
ok 10 # skip xgettext: C extraction of _() and N_() strings (missing GETTEXT_LOCALE)
skipping test: xgettext: C extraction with %s
printf "TILRAUN: C tilraunastrengur %%s" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string %s" >actual &&
test_cmp expect actual
ok 11 # skip xgettext: C extraction with %s (missing GETTEXT_LOCALE)
skipping test: xgettext: Shell extraction
printf "TILRAUN: Skeljartilraunastrengur" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Shell test string" >actual &&
test_cmp expect actual
ok 12 # skip xgettext: Shell extraction (missing GETTEXT_LOCALE)
skipping test: xgettext: Shell extraction with $variable
printf "TILRAUN: Skeljartilraunastrengur með breytunni a var i able" >x-expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" variable="a var i able" eval_gettext "TEST: A Shell test \$variable" >x-actual &&
test_cmp x-expect x-actual
ok 13 # skip xgettext: Shell extraction with $variable (missing GETTEXT_LOCALE)
skipping test: xgettext: Perl extraction
printf "TILRAUN: Perl tilraunastrengur" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test string" >actual &&
test_cmp expect actual
ok 14 # skip xgettext: Perl extraction (missing GETTEXT_LOCALE)
skipping test: xgettext: Perl extraction with %s
printf "TILRAUN: Perl tilraunastrengur með breytunni %%s" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test variable %s" >actual &&
test_cmp expect actual
ok 15 # skip xgettext: Perl extraction with %s (missing GETTEXT_LOCALE)
skipping test: sanity: Some gettext("") data for real locale
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >real-locale &&
test -s real-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/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
expecting success:
test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME"
ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)
expecting success:
test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set
expecting success:
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:
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:
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:
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:
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:
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:
! 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:
! 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:
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:
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:
! 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:
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:
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:
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:
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:
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:
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/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
expecting success:
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
test_commit "iso-c-commit" iso-under-c &&
git show >out 2>err &&
! test -s 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
skipping test: git show a ISO-8859-1 commit under a UTF-8 locale
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
test_commit "iso-utf8-commit" iso-under-utf8 &&
LANGUAGE=is LC_ALL="$is_IS_locale" git show >out 2>err &&
! test -s err &&
grep -q "iso-utf8-commit" out
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'
*** t0090-cache-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0090-cache-tree/.git/
expecting success:
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:
git read-tree HEAD &&
test_cache_tree
ok 2 - read-tree HEAD establishes cache-tree
expecting success:
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:
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:
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:
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:
test-tool scrap-cache-tree &&
git write-tree &&
test_cache_tree
64fd3796c57084e7b8cbae358ce37970b8e954f6
ok 7 - write-tree establishes cache-tree
expecting success:
git read-tree HEAD &&
test-tool scrap-cache-tree &&
test_no_cache_tree
ok 8 - test-tool scrap-cache-tree works
expecting success:
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:
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
(echo p; echo 1; echo; echo s; echo n; echo y; echo 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;
}
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()
{
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -4,5 +4,5 @@
}
int bar()
{
-return 42;
+return 44;
}
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:
mkdir dir &&
>dir/child.t &&
git add dir/child.t &&
git commit -m dir/child.t &&
test_cache_tree
[master 0cd4af7] dir/child.t
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dir/child.t
ok 11 - commit in child dir has cache-tree
expecting success:
test-tool scrap-cache-tree &&
git reset --hard &&
test_cache_tree
HEAD is now at 0cd4af7 dir/child.t
ok 12 - reset --hard gives cache-tree
expecting success:
rm -f .git/index &&
git reset --hard &&
test_cache_tree
HEAD is now at 0cd4af7 dir/child.t
ok 13 - reset --hard without index gives cache-tree
expecting success:
git tag current &&
git checkout HEAD^ &&
test_cache_tree
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 65d7dde foo
ok 14 - checkout gives cache-tree
expecting success:
git checkout current &&
git checkout -b prev HEAD^ &&
test_cache_tree
Previous HEAD position was 65d7dde foo
HEAD is now at 0cd4af7 dir/child.t
Previous HEAD position was 0cd4af7 dir/child.t
Switched to a new branch 'prev'
ok 15 - checkout -b gives cache-tree
expecting success:
git checkout current &&
git checkout -B prev HEAD^ &&
test_cache_tree
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0cd4af7 dir/child.t
Previous HEAD position was 0cd4af7 dir/child.t
Switched to and reset branch 'prev'
ok 16 - checkout -B gives cache-tree
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0cd4af7 dir/child.t
Switched to a new branch 'changes'
[changes 7bafa16] llamas
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 llamas.t
[changes 94f8364] pachyderm
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 pachyderm.t
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0cd4af7 dir/child.t
Updating 0cd4af7..94f8364
Fast-forward
llamas.t | 1 +
pachyderm.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 llamas.t
create mode 100644 pachyderm.t
ok 17 - merge --ff-only maintains cache-tree
expecting success:
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 94f8364 pachyderm
HEAD is now at 0cd4af7 dir/child.t
Switched to a new branch 'changes2'
[changes2 d94e838] alpacas
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 alpacas.t
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0cd4af7 dir/child.t
[detached HEAD 8c0a55f] struthio
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 struthio.t
Merging:
8c0a55f struthio
virtual changes2
found 1 common ancestor:
0cd4af7 dir/child.t
Merge made by the 'recursive' strategy.
alpacas.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 alpacas.t
ok 18 - merge maintains cache-tree
expecting success:
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:
83846e7 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> 83846e7
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 19 - partial commit gives cache-tree
expecting success:
mkdir newdir &&
>newdir/one &&
git add newdir/one &&
git checkout 2>errors &&
! test -s errors
A newdir/one
M one.t
ok 20 - no phantom error when switching trees
expecting success:
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 21 - switching trees does not invalidate shared index
# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0204-gettext-reencode-sanity.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0204-gettext-reencode-sanity/.git/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
skipping test: gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic
printf "TILRAUN: Halló Heimur!" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: Hello World!" >actual &&
test_cmp expect actual
ok 1 # skip gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic (missing GETTEXT_LOCALE)
skipping test: gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes
printf "%s" "$RUNES" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "$MSGKEY" >actual &&
test_cmp expect actual
ok 2 # skip gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes (missing GETTEXT_LOCALE)
skipping test: gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Icelandic
printf "TILRAUN: Halló Heimur!" | iconv -f UTF-8 -t ISO8859-1 >expect &&
LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "TEST: Hello World!" >actual &&
test_cmp expect actual
ok 3 # skip gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Icelandic (missing GETTEXT_ISO_LOCALE)
skipping test: gettext: impossible ISO-8859-1 output
LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "$MSGKEY" >runes &&
case "$(cat runes)" in
"$MSGKEY")
say "Your system gives back the key to message catalog"
;;
"$PUNTS")
say "Your system replaces an impossible character with ?"
;;
"$RUNES")
say "Your system gives back the raw message for an impossible request"
;;
*)
say "We never saw the error behaviour your system exhibits"
false
;;
esac
ok 4 # skip gettext: impossible ISO-8859-1 output (missing GETTEXT_ISO_LOCALE)
skipping test: gettext: Fetching a UTF-8 msgid -> UTF-8
printf "TILRAUN: ‚einfaldar‘ og „tvöfaldar“ gæsalappir" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: ‘single’ and “double” quotes" >actual &&
test_cmp expect actual
ok 5 # skip gettext: Fetching a UTF-8 msgid -> UTF-8 (missing GETTEXT_LOCALE)
skipping test: gettext: Fetching a UTF-8 msgid -> ISO-8859-1
LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "TEST: ‘single’ and “double” quotes" >actual &&
grep "einfaldar" actual &&
grep "$(echo tvöfaldar | iconv -f UTF-8 -t ISO8859-1)" actual
ok 6 # skip gettext: Fetching a UTF-8 msgid -> ISO-8859-1 (missing GETTEXT_ISO_LOCALE)
skipping test: gettext.c: git init UTF-8 -> UTF-8
printf "Bjó til tóma Git lind" >expect &&
LANGUAGE=is LC_ALL="$is_IS_locale" git init repo >actual &&
test_when_finished "rm -rf repo" &&
grep "^$(cat expect) " actual
ok 7 # skip gettext.c: git init UTF-8 -> UTF-8 (missing GETTEXT_LOCALE)
skipping test: gettext.c: git init UTF-8 -> ISO-8859-1
printf "Bjó til tóma Git lind" >expect &&
LANGUAGE=is LC_ALL="$is_IS_iso_locale" git init repo >actual &&
test_when_finished "rm -rf repo" &&
grep "^$(cat expect | iconv -f UTF-8 -t ISO8859-1) " actual
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'
*** t0205-gettext-poison.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0205-gettext-poison/.git/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
skipping test: sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison
test "$GIT_INTERNAL_GETTEXT_SH_SCHEME" = "poison"
ok 1 # skip sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison (missing GETTEXT_POISON)
skipping test: 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 # skip gettext: our gettext() fallback has poison semantics (missing GETTEXT_POISON)
skipping test: 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 # skip eval_gettext: our eval_gettext() fallback has poison semantics (missing GETTEXT_POISON)
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0202-gettext-perl.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0202-gettext-perl/.git/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
# 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: __ has a $ prototype
ok 6 - sanity: N__ has a $ prototype
ok 7 - sanity: __n has a $$$ prototype
ok 8 - Passing a string through __() in the C locale works
ok 9 - Get singular string through __n() in C locale
ok 10 - Get plural string through __n() in C locale
ok 11 - Passing a string through N__() in the C locale works
ok 12 # skip GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests
ok 13 # skip GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests
# 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'
*** t0300-credentials.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0300-credentials/.git/
expecting success:
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-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:
check fill "verbatim foo bar" <<-\EOF
--
username=foo
password=bar
--
verbatim: get
EOF
ok 2 - credential_fill invokes helper
expecting success:
check fill useless "verbatim foo bar" <<-\EOF
--
username=foo
password=bar
--
useless: get
verbatim: get
EOF
ok 3 - credential_fill invokes multiple helpers
expecting success:
check fill "verbatim one two" "verbatim three four" <<-\EOF
--
username=one
password=two
--
verbatim: get
EOF
ok 4 - credential_fill stops when we get a full response
expecting success:
check fill "verbatim one \"\"" "verbatim two three" <<-\EOF
--
username=two
password=three
--
verbatim: get
verbatim: get
verbatim: username=one
EOF
ok 5 - credential_fill continues through partial response
expecting success:
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:
check approve useless "verbatim one two" <<-\EOF
username=foo
password=bar
--
--
useless: store
useless: username=foo
useless: password=bar
verbatim: store
verbatim: username=foo
verbatim: password=bar
EOF
ok 7 - credential_approve calls all helpers
expecting success:
check approve useless <<-\EOF
username=foo
--
--
EOF
ok 8 - do not bother storing password-less credential
expecting success:
check reject useless "verbatim one two" <<-\EOF
username=foo
password=bar
--
--
useless: erase
useless: username=foo
useless: password=bar
verbatim: erase
verbatim: username=foo
verbatim: password=bar
EOF
ok 9 - credential_reject calls all helpers
expecting success:
check fill "verbatim \"\" three" <<-\EOF
username=one
--
username=one
password=three
--
verbatim: get
verbatim: username=one
EOF
ok 10 - usernames can be preserved
expecting success:
check fill "verbatim two three" <<-\EOF
username=one
--
username=two
password=three
--
verbatim: get
verbatim: username=one
EOF
ok 11 - usernames can be overridden
expecting success:
check fill "verbatim three four" <<-\EOF
username=one
password=two
--
username=one
password=two
--
EOF
ok 12 - do not bother completing already-full credential
expecting success:
check fill <<-\EOF
--
username=askpass-username
password=askpass-password
--
askpass: Username:
askpass: Password:
EOF
ok 13 - empty helper list falls back to internal getpass
expecting success:
check fill <<-\EOF
username=foo
--
username=foo
password=askpass-password
--
askpass: Password:
EOF
ok 14 - internal getpass does not ask for known username
expecting success:
test_config credential.helper "$HELPER" &&
check fill <<-\EOF
--
username=foo
password=bar
--
EOF
ok 15 - respect configured credentials
expecting success:
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 16 - match configured credential
expecting success:
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 17 - do not match configured credential
expecting success:
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 18 - pull username from config
expecting success:
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 19 - http paths can be part of context
expecting success:
test_must_fail git \
-c credential.helper="!f() { echo quit=1; }; f" \
-c credential.helper="verbatim foo bar" \
credential fill >stdout &&
>expect &&
test_cmp expect stdout
fatal: credential helper '!f() { echo quit=1; }; f' told us to quit
ok 20 - helpers can abort the process
expecting success:
test_config credential.helper "verbatim file file" &&
check fill "" "verbatim cmdline cmdline" <<-\EOF
--
username=cmdline
password=cmdline
--
verbatim: get
EOF
ok 21 - empty helper spec resets helper list
# passed all 21 test(s)
1..21
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'
*** t0302-credential-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0302-credential-store/.git/
expecting success:
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 1 - helper (store) has no existing data
expecting success:
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 2 - helper (store) stores password
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
rm -f "$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
>"$HOME/.config/git/credentials"
ok 14 - setup xdg file
expecting success:
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:
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 16 - helper (store) stores password
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 30 - helper (store) stores password
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
>"$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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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:
>"$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:
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
# passed all 46 test(s)
1..46
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:
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 1 - helper (cache) has no existing data
expecting success:
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 2 - helper (cache) stores password
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 15 - helper (cache) stores password
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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:
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'
*** t1001-read-tree-m-2way.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1001-read-tree-m-2way/.git/
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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) bf4f714] 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 753fb4d] 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'
*** t0410-partial-clone.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/.git/
expecting success:
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) f875b73] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
738adde9f5fe99553a2e3813bb92cbbbdef79ef1
error: refs/heads/my_branch: invalid reflog entry 31566d0be6253fd37a1ef5087a6d3933a45883a0
error: refs/heads/my_branch: invalid reflog entry 31566d0be6253fd37a1ef5087a6d3933a45883a0
dangling commit 4a7ce5332e0d121c1ab9428e15a83f4bb770acd7
dangling commit 4a7ce5332e0d121c1ab9428e15a83f4bb770acd7
ok 1 - missing reflog object, but promised by a commit, passes fsck
expecting success:
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) 4ce2b9b] 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 7a32993)
7fd8925735cc15e2e2034644b64afda491571ff8
dangling tag 7a329936d66f427bedc89d9ab903f38b07d44de7
ok 2 - missing reflog object, but promised by a tag, passes fsck
expecting success:
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) 2f3d175] 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 c51de19226c13fa1daecab9e08d2f0b99a29784c
error: refs/heads/my_branch: invalid reflog entry c51de19226c13fa1daecab9e08d2f0b99a29784c
dangling commit e376c76e48cd8763bb0961aa8f03e5b8642908a8
ok 3 - missing reflog object alone fails fsck, even with extension set
expecting success:
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) 9df77b9] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
a391e3e0447189aa0050c8f206462a1b0530a34a
dangling tag e5f4cb9fd329c512b08fb81a8e6b1f5e27658263
ok 4 - missing ref object, but promised, passes fsck
expecting success:
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) 6591d03] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1.t
[master 5355e57] 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2.t
[master a3007a6] 3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3.t
fa10eb4e855a356f0abe9c352b62b71d481918b1
error: refs/tags/1 does not point to a valid object!
7f935f1293a005998d684b122686a1125dc47996
error: refs/tags/1 does not point to a valid object!
43db30889c483ee89571157f1466e2809e137c7d
error: refs/tags/1 does not point to a valid object!
544d2af112f571c9dceb598e755c68cb22911767
dangling tag 8e5058c0196ed6a9b285609a259f40e05437cfad
dangling tag 4ff31e389c270b26919d9e89e743f1bc4e9d1907
dangling tree dcf3d5d7c6d10fb961287ca9bc59a5bf8a4b2afc
dangling tag 5d1357650c0c7fa7890a88ef5f3b44637843a883
dangling tag be645be2ea79274538b1d7a002db7f261d7dc509
ok 5 - missing object, but promised, passes fsck
expecting success:
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) da2e7de] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
4337bf55380117d69ad62e8b0aa5d048dce2f274
dangling tag 802319328bf3f4f53ce55aecd93e94ecf6f26c32
dangling commit da2e7de93032e847edfceb74ec173302d3f32ceb
ok 6 - missing CLI object, but promised, passes fsck
expecting success:
rm -rf 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 &&
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" &&
# 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=$(cat promisorlist | sed "s/promisor$/idx/") &&
git verify-pack --verbose "$IDX" | grep "$HASH"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master (root-commit) 92a62de] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Cloning into 'repo'...
error: refs/heads/master does not point to a valid object!
error: refs/remotes/origin/HEAD does not point to a valid object!
error: refs/remotes/origin/master does not point to a valid object!
error: refs/tags/foo does not point to a valid object!
tree 64fd3796c57084e7b8cbae358ce37970b8e954f6
author A U Thor <author@example.com> 1112912473 -0700
committer C O Mitter <committer@example.com> 1112912473 -0700
foo
92a62decadb5642314a1fd56b51afd125b27f208 commit 167 126 12
ok 7 - fetching of missing objects
expecting success:
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo foo &&
test_commit -C repo bar &&
FOO=$(git -C repo rev-parse foo) &&
promise_and_delete "$FOO" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
grep $(git -C repo rev-parse bar) out &&
! grep $FOO out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 1463a05] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master 1f724c8] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
a03848acce677a1e93649600ad3902c252bf03bc
1f724c80a8e9b8eb0d3f14785425e20a55c5da7e
ok 8 - rev-list stops traversal at missing and promised commit
expecting success:
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) 7745948] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master ee1aaaa] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a_dir/something
5daf2b25fac0f200bcbc3d5c5a49d9f8e682f267
87cb3d5b2da30f79e779607832afede49a44278c
77459484b8bd1a32402dacb7343ca1696c2c4c52
ee1aaaaa5133c460ff9de8192dd47eb0544b5163
ok 9 - rev-list stops traversal at missing and promised tree
expecting success:
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) 3f55c86] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 something
3f6e93e99528b5bd946316f01e85bcc3ad59d824
3f55c86dd40ad0f8f7b6b8f4b32ae3225df31001
ok 10 - rev-list stops traversal at missing and promised blob
expecting success:
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) 6ca612c] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master 17b45d2] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
[master 3e93879] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
20b330598ff10d8637760e042d3f5289d6eaf23b
17b45d2071e3bf0fd271bfe38c48b0dd5b4fe426
ok 11 - rev-list stops traversal at promisor commit, tree, and blob
expecting success:
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" &&
git -C repo rev-list --exclude-promisor-objects --objects "$COMMIT" "$TREE" "$BLOB"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 179b371] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master a50e76f] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
[master 25c7865] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
5d898116c0f9271f9c1c4eaef2ffd556a4555cf4
error: refs/tags/foo does not point to a valid object!
ba3fa1bb3a89a0c612092b751dec9976fdae6c42
error: refs/tags/foo does not point to a valid object!
98daf017d2b054179093709b356ff006510c9b4d
ok 12 - rev-list accepts missing and promised objects on command line
expecting success:
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
TREE_HASH=$(git -C repo rev-parse HEAD^{tree}) &&
HASH=$(printf "$TREE_HASH\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 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) 6a2b069] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
6a2b069a4b7860c8a2cd9846b2bb05f2c9d40f3a commit 173 129 12
ok 13 - gc does not repack promisor objects
expecting success:
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) 954bfe7] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
954bfe740c3cbd95633dc8e75175ccfaa38dacbd commit 173 129 12
ok 14 - gc stops traversal when a missing but promised object is reached
checking prerequisite: NOT_ROOT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
uid=$(id -u) &&
test "$uid" != 0
)
prerequisite NOT_ROOT ok
# passed all 14 test(s)
# SKIP no web server found at '/usr/sbin/apache2'
1..14
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:
echo hello >one &&
git update-index --add one &&
tree=$(git write-tree) &&
echo tree is $tree
tree is 700196ec4e5b1c75e9f5481e5b545d78533ff917
ok 1 - setup
expecting success:
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'
*** t1000-read-tree-m-3way.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1000-read-tree-m-3way/.git/
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 1 - adding test file NN and Z/NN
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 2 - adding test file ND and Z/ND
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 3 - adding test file NM and Z/NM
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 4 - adding test file DN and Z/DN
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 5 - adding test file DD and Z/DD
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 6 - adding test file DM and Z/DM
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 7 - adding test file MN and Z/MN
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 8 - adding test file MD and Z/MD
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 9 - adding test file MM and Z/MM
expecting success: git update-index --add SS
ok 10 - adding test file SS
expecting success: git update-index --add TT
ok 11 - adding test file TT
expecting success: tree_O=$(git write-tree)
ok 12 - prepare initial tree
expecting success: git update-index --remove $to_remove
ok 13 - change in branch A (removal)
expecting success: git update-index MD
ok 14 - change in branch A (modification)
expecting success: git update-index MM
ok 15 - change in branch A (modification)
expecting success: git update-index MN
ok 16 - change in branch A (modification)
expecting success: git update-index Z/MD
ok 17 - change in branch A (modification)
expecting success: git update-index Z/MM
ok 18 - change in branch A (modification)
expecting success: git update-index Z/MN
ok 19 - change in branch A (modification)
expecting success: git update-index --add AN
ok 20 - change in branch A (addition)
expecting success: git update-index --add AA
ok 21 - change in branch A (addition)
expecting success: git update-index --add Z/AN
ok 22 - change in branch A (addition)
expecting success: git update-index --add Z/AA
ok 23 - change in branch A (addition)
expecting success: git update-index --add LL &&
git update-index SS
ok 24 - change in branch A (addition)
expecting success: git update-index TT
ok 25 - change in branch A (edit)
expecting success: git update-index --add DF/DF
ok 26 - change in branch A (change file to directory)
expecting success: tree_A=$(git write-tree)
ok 27 - recording branch A tree
expecting success: git read-tree $tree_O &&
git checkout-index -a
ok 28 - reading original tree and checking out
expecting success: git update-index --remove DD MD ND Z/DD Z/MD Z/ND
ok 29 - change in branch B (removal)
expecting success: git update-index DM
ok 30 - change in branch B (modification)
expecting success: git update-index MM
ok 31 - change in branch B (modification)
expecting success: git update-index NM
ok 32 - change in branch B (modification)
expecting success: git update-index Z/DM
ok 33 - change in branch B (modification)
expecting success: git update-index Z/MM
ok 34 - change in branch B (modification)
expecting success: git update-index Z/NM
ok 35 - change in branch B (modification)
expecting success: git update-index --add NA
ok 36 - change in branch B (addition)
expecting success: git update-index --add AA
ok 37 - change in branch B (addition)
expecting success: git update-index --add Z/NA
ok 38 - change in branch B (addition)
expecting success: git update-index --add Z/AA
ok 39 - change in branch B (addition)
expecting success: git update-index --add LL &&
git update-index SS
ok 40 - change in branch B (addition and modification)
expecting success: git update-index TT
ok 41 - change in branch B (modification)
expecting success: git update-index --add DF
ok 42 - change in branch B (addition of a file to conflict with directory)
expecting success: tree_B=$(git write-tree)
ok 43 - recording branch B tree
expecting success: 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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'
*** t1005-read-tree-reset.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1005-read-tree-reset/.git/
expecting success:
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) c15f3bd] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 df/file
[master 272f98b] 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:
read_tree_u_must_succeed -u --reset HEAD^ &&
git ls-files >actual &&
test_cmp expect actual
ok 2 - reset should work
expecting success:
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:
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:
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 272f98b two
ok 5 - Porcelain reset should remove remnants too
expecting success:
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:
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'
*** 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:
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 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) 9b3370b] 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 anymore
[master d7ed109] 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:
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:
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:
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:
read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore master side
ok 5 - two-way clobbering a ignored file
expecting success:
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 3a03773] 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:
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 d7ed109 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:
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 d7ed109 master removes file2 and subdir/file2
Already on 'master'
ok 8 - three-way not complaining on an untracked file
expecting success:
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 d7ed109 master removes file2 and subdir/file2
Switched to a new branch 'side-a'
[side-a 4372e4a] 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 58f03bf] 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:
# 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 4372e4a 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:
# 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 4372e4a 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:
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 4372e4a side-a changes file1
Switched to a new branch 'sym-b'
[sym-b b2a9812] 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[sym-a f92cdb1] 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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 f92cdb1 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:
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 f92cdb1 we add a/b
Switched to branch 'side-a'
[side-a a336ec8] 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:
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:
git reset --hard &&
git checkout side-b &&
git merge-resolve branch-point -- side-b side-a
error: 'subdir/file2/another' appears as both a file and as a directory
error: subdir/file2/another: cannot drop to stage #0
HEAD is now at 58f03bf 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:
git reset --hard &&
git checkout side-b &&
git merge-recursive branch-point -- side-b side-a
HEAD is now at 58f03bf side-b changes file2
Already on 'side-b'
Merging side-b with side-a
Merging:
58f03bf side-b changes file2
a336ec8 side-a changes file2 to directory
found 1 common ancestor:
9b3370b 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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'
*** t1008-read-tree-overlay.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1008-read-tree-overlay/.git/
expecting success:
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) ef69f33] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[master e306b19] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b
Switched to a new branch 'side'
[side 569e1f6] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b/c
ok 1 - setup
expecting success:
read_tree_must_succeed initial master side &&
(echo a; echo 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'
*** t1007-hash-object.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/.git/
expecting success:
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 1 - multiple '--stdin's are rejected
expecting success:
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 2 - Can't use --stdin and --stdin-paths together
expecting success:
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 3 - Can't pass filenames as arguments with --stdin-paths
expecting success:
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 4 - Can't use --path with --stdin-paths
expecting success:
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 5 - Can't use --path with --no-filters
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
checking prerequisite: SHA1
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
)
prerequisite SHA1 ok
expecting success:
test $hello_sha1 = $(git hash-object hello)
ok 6 - hash a file
expecting success:
test_must_fail git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
fatal: git cat-file 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689: bad file
ok 7 - blob does not exist in database
expecting success:
test $example_sha1 = $(git hash-object --stdin < example)
ok 8 - hash from stdin
expecting success:
test_must_fail git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
fatal: git cat-file ddd3f836d3e3fbb7ae289aa9ae83536f76956399: bad file
ok 9 - blob does not exist in database
expecting success:
test $hello_sha1 = $(git hash-object -w hello)
ok 10 - hash a file and write to database
expecting success:
git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
Hello Worldok 11 - blob exists in database
expecting success:
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 12 - git hash-object --stdin file1 <file0 first operates on file0, then file1
expecting success:
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 13 - set up crlf tests
expecting success:
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 14 - check that appropriate filter is invoke when --path is used
expecting success:
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 15 - gitattributes also work in a subdirectory
expecting success:
(
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 16 - --path works in a subdirectory
expecting success:
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 17 - check that --no-filters option works
expecting success:
nofilters_file1=$(echo "file1" | git hash-object --stdin-paths --no-filters) &&
test "$file0_sha" = "$nofilters_file1"
ok 18 - 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:
test $example_sha1 = $(git hash-object $args < example)
ok 19 - hash from stdin and write to database (-w --stdin)
expecting success:
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 20 - blob exists in database
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success:
test $example_sha1 = $(git hash-object $args < example)
ok 21 - hash from stdin and write to database (--stdin -w)
expecting success:
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 22 - blob exists in database
expecting success:
test "$sha1s" = "$(echo_without_newline "$filenames" | git hash-object --stdin-paths)"
ok 23 - hash two files with names on stdin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success:
test "$sha1s" = "$(echo_without_newline "$filenames" | git hash-object $args)"
ok 24 - hash two files with names on stdin and write to database (-w --stdin-paths)
expecting success:
git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
Hello Worldok 25 - blob exists in database
expecting success:
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 26 - blob exists in database
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success:
test "$sha1s" = "$(echo_without_newline "$filenames" | git hash-object $args)"
ok 27 - hash two files with names on stdin and write to database (--stdin-paths -w)
expecting success:
git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
Hello Worldok 28 - blob exists in database
expecting success:
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 29 - blob exists in database
expecting success:
echo abc >malformed-tree &&
test_must_fail git hash-object -t tree malformed-tree 2>err &&
test_i18ngrep "too-short tree object" err
fatal: too-short tree object
ok 30 - too-short tree
expecting success:
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 31 - malformed mode in tree
expecting success:
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 32 - empty filename in tree
expecting success:
test_must_fail git hash-object -t commit --stdin </dev/null
error: bogus commit object 0000000000000000000000000000000000000000
fatal: corrupt commit
ok 33 - corrupt commit
expecting success:
test_must_fail git hash-object -t tag --stdin </dev/null
fatal: corrupt tag
ok 34 - corrupt tag
expecting success:
test_must_fail git hash-object -t bogus --stdin </dev/null
fatal: invalid object type "bogus"
ok 35 - hash-object complains about bogus type name
expecting success:
test_must_fail git hash-object -t bl --stdin </dev/null
fatal: invalid object type "bl"
ok 36 - hash-object complains about truncated type name
expecting success:
t=1234567890 &&
echo example | git hash-object -t $t --literally --stdin
f78b23c3f872d473c764d5fcf4fb39af8bbf2123
ok 37 - --literally
expecting success:
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 38 - --literally with extra-long type
# passed all 38 test(s)
1..38
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:
echo one >a &&
git add a &&
git commit -m initial
[master (root-commit) ef69f33] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
ok 1 - setup
expecting success:
rm -f new-index &&
GIT_INDEX_FILE=new-index git read-tree master
ok 2 - non-existent index file
expecting success:
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'
*** t1010-mktree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1010-mktree/.git/
expecting success:
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:
git mktree <top >actual &&
test_cmp tree actual
ok 2 - ls-tree piped to mktree (1)
expecting success:
git mktree <top.withsub >actual &&
test_cmp tree.withsub actual
ok 3 - ls-tree piped to mktree (2)
expecting success:
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:
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:
git mktree --missing <top.missing >actual &&
test_cmp tree.missing actual
ok 6 - allow missing object with --missing
expecting success:
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:
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:
echo_without_newline "$hello_content" > hello &&
git update-index --add hello
ok 1 - setup
expecting success:
git cat-file -e $sha1
ok 2 - blob exists
expecting success:
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 3 - Type of blob is correct
expecting success:
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 4 - Size of blob is correct
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
{
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:
{
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:
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:
git cat-file -e $sha1
ok 16 - tree exists
expecting success:
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 17 - Type of tree is correct
expecting success:
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 18 - Size of tree is correct
expecting success:
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:
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:
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:
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:
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:
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:
git cat-file -e $sha1
ok 25 - commit exists
expecting success:
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 26 - Type of commit is correct
expecting success:
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 27 - Size of commit is correct
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
{
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:
{
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:
git cat-file -e $sha1
ok 38 - tag exists
expecting success:
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 39 - Type of tag is correct
expecting success:
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 40 - Size of tag is correct
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
{
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:
{
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: test 'Hello World' = "$(git cat-file blob bb50ec8a71343279c59ba488a3445888e3fb624b)"
ok 51 - Reach a blob from a tag pointing to it
expecting success:
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 | --batch-check) [--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
ok 52 - Passing -t with --batch fails
expecting success:
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 | --batch-check) [--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
ok 53 - Passing --batch with -t fails
expecting success:
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 | --batch-check) [--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
ok 54 - Passing -s with --batch fails
expecting success:
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 | --batch-check) [--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
ok 55 - Passing --batch with -s fails
expecting success:
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 | --batch-check) [--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
ok 56 - Passing -e with --batch fails
expecting success:
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 | --batch-check) [--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
ok 57 - Passing --batch with -e fails
expecting success:
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 | --batch-check) [--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
ok 58 - Passing -p with --batch fails
expecting success:
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 | --batch-check) [--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
ok 59 - Passing --batch with -p fails
expecting success:
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 | --batch-check) [--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
ok 60 - Passing <type> with --batch fails
expecting success:
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 | --batch-check) [--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
ok 61 - Passing --batch with <type> fails
expecting success:
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 | --batch-check) [--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
ok 62 - Passing sha1 with --batch fails
expecting success:
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 | --batch-check) [--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
ok 63 - Passing -t with --batch-check fails
expecting success:
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 | --batch-check) [--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
ok 64 - Passing --batch-check with -t fails
expecting success:
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 | --batch-check) [--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
ok 65 - Passing -s with --batch-check fails
expecting success:
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 | --batch-check) [--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
ok 66 - Passing --batch-check with -s fails
expecting success:
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 | --batch-check) [--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
ok 67 - Passing -e with --batch-check fails
expecting success:
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 | --batch-check) [--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
ok 68 - Passing --batch-check with -e fails
expecting success:
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 | --batch-check) [--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
ok 69 - Passing -p with --batch-check fails
expecting success:
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 | --batch-check) [--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
ok 70 - Passing --batch-check with -p fails
expecting success:
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 | --batch-check) [--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
ok 71 - Passing <type> with --batch-check fails
expecting success:
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 | --batch-check) [--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
ok 72 - Passing --batch-check with <type> fails
expecting success:
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 | --batch-check) [--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
ok 73 - Passing sha1 with --batch-check fails
expecting success:
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 | --batch-check) [--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
ok 74 - Passing -t with --follow-symlinks fails
expecting success:
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 | --batch-check) [--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
ok 75 - Passing -s with --follow-symlinks fails
expecting success:
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 | --batch-check) [--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
ok 76 - Passing -e with --follow-symlinks fails
expecting success:
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 | --batch-check) [--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
ok 77 - Passing -p with --follow-symlinks fails
expecting success:
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:
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:
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:
test " missing" = "$(echo | git cat-file --batch-check)"
ok 81 - --batch-check for an empty line
expecting success:
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:
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:
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:
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) 0b6b23f] 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:
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:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[master cea51d5] 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
# 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, 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 &&
sort <expect.unsorted >expect &&
git -C all-two cat-file --batch-all-objects \
--batch-check="%(objectname)" >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1006-cat-file/all-one/.git/
Cloning into 'all-two'...
done.
ok 110 - cat-file --batch-all-objects shows all objects
# passed all 110 test(s)
1..110
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 9598e22 modified and added
ok 1 - setup
expecting success:
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:
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:
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:
git config core.sparsecheckout true &&
echo >.git/info/sparse-checkout &&
read_tree_u_must_fail -m -u HEAD &&
git ls-files --stage >result &&
test_cmp expected result &&
git ls-files -t >result &&
test_cmp expected.swt result &&
test -f init.t &&
test -f sub/added
error: Sparse checkout leaves no entry on working directory
error: Sparse checkout leaves no entry on working directory
ok 5 - read-tree with empty .git/info/sparse-checkout
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
>empty &&
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_cmp 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:
>empty &&
echo init.t >.git/info/sparse-checkout &&
git checkout -f top &&
git reset --hard removed &&
git ls-files sub/added >result &&
test_cmp 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:
echo sub >.git/info/sparse-checkout &&
git checkout -f init &&
mkdir sub &&
touch sub/added sub/addedtoo &&
test_must_fail git checkout top 2>actual &&
cat >expected <<\EOF &&
error: The following untracked working tree files would be overwritten by checkout:
sub/added
sub/addedtoo
Please move or remove them before you switch branches.
Aborting
EOF
test_i18ncmp expected actual
Previous HEAD position was de70956 removed
HEAD is now at 2519212 init
ok 19 - print errors when failed to update worktree
expecting success:
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
Previous HEAD position was 2519212 init
HEAD is now at 9598e22 modified and added
ok 20 - checkout without --ignore-skip-worktree-bits
expecting success:
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
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'
*** t1012-read-tree-df.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1012-read-tree-df/.git/
expecting success:
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:
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:
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:
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:
settree O-020 &&
read_tree_u_must_succeed -m -u O-020 A-020 &&
checkindex <<-EOF
0 ds/dma/ioat/Makefile
0 ds/dma/ioat/registers.h
EOF
ok 5 - 2-way (1)
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1014-read-tree-confusing.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1014-read-tree-confusing/.git/
expecting success:
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) 1b93d60] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
ok 1 - create base tree
expecting success:
git config core.protectHFS true
ok 2 - enable core.protectHFS for rejection tests
expecting success:
git config core.protectNTFS true
ok 3 - enable core.protectNTFS for rejection tests
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: Invalid path '.gIT'
ok 14 - reject .gI{u200c}T at end of path
expecting success:
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: Invalid path '.gIT/file'
ok 15 - reject .gI{u200c}T as subtree
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 26 - utf-8 paths allowed with core.protectHFS off
# passed all 26 test(s)
1..26
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:
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:
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:
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:
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:
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:
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:
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:
(
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:
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:
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:
# 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:
git commit -a -m 1 &&
(
cd .git &&
git show -s HEAD
)
[master (root-commit) cd9fc77] 1
Author: A U Thor <author@example.com>
2 files changed, 58 insertions(+)
create mode 100644 dir/two
create mode 100644 one
commit cd9fc7761ba157eacf0a72a50f80b787498070dc
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:12 2018 +0000
1
ok 12 - no file/rev ambiguity check inside .git
expecting success:
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 cd9fc7761ba157eacf0a72a50f80b787498070dc
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:12 2018 +0000
1
ok 13 - no file/rev ambiguity check inside a bare repo (explicit GIT_DIR)
expecting success:
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 cd9fc7761ba157eacf0a72a50f80b787498070dc
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:12 2018 +0000
1
ok 14 - no file/rev ambiguity check inside a bare repo
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
git clone -s .git another &&
ln -s another yetanother &&
(
cd yetanother/.git &&
git show -s HEAD
)
Cloning into 'another'...
done.
commit cd9fc7761ba157eacf0a72a50f80b787498070dc
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:12 2018 +0000
1
ok 15 - detection should not be fooled by a symlink
# passed all 15 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1021-rerere-in-workdir.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1021-rerere-in-workdir/.git/
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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:
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:
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'
*** t1051-large-conversion.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1051-large-conversion/.git/
expecting success:
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:
test_config core.autocrlf true &&
check_input
ok 2 - autocrlf=true converts on input
expecting success:
set_attr eol=crlf &&
check_input
ok 3 - eol=crlf converts on input
expecting success:
set_attr ident &&
check_input
ok 4 - ident converts on input
expecting success:
set_attr filter=test &&
check_input
ok 5 - user-defined filters convert on input
expecting success:
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:
test_config core.autocrlf true &&
check_output
ok 7 - autocrlf=true converts on output
expecting success:
set_attr eol=crlf &&
check_output
ok 8 - eol=crlf converts on output
expecting success:
set_attr filter=test &&
check_output
ok 9 - user-defined filters convert on output
expecting success:
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
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:
git init bit-error &&
(
cd bit-error &&
test_commit content &&
corrupt_byte HEAD:content.t 10
) &&
git init no-bit-error &&
(
# distinct commit from bit-error, but containing a
# non-corrupted version of the same blob
cd no-bit-error &&
test_tick &&
test_commit content
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/bit-error/.git/
[master (root-commit) 0df6d69] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
1+0 records in
1+0 records out
1 byte copied, 0.000406677 s, 2.5 kB/s
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/no-bit-error/.git/
[master (root-commit) f374eba] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
ok 1 - setup corrupt repo
expecting success:
git init missing &&
(
cd missing &&
test_commit content &&
rm -f "$(obj_to_file HEAD:content.t)"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/missing/.git/
[master (root-commit) 0df6d69] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
ok 2 - setup repo with missing object
expecting success:
git init misnamed &&
(
cd misnamed &&
test_commit content &&
good=$(obj_to_file HEAD:content.t) &&
blob=$(echo corrupt | git hash-object -w --stdin) &&
bad=$(obj_to_file $blob) &&
rm -f "$good" &&
mv "$bad" "$good"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/misnamed/.git/
[master (root-commit) 0df6d69] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
ok 3 - setup repo with misnamed object
expecting success:
(
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:
(
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:
(
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:
(
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:
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:
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:
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:
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 the checkout with 'git checkout -f HEAD'
ok 11 - clone --local detects corruption
expecting success:
test_path_is_dir corrupt-checkout/.git
ok 12 - error detected during checkout leaves repo intact
expecting success:
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 the checkout with 'git checkout -f HEAD'
ok 13 - clone --local detects missing objects
checking known breakage:
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:
(
cd bit-error &&
test_must_fail git -c transfer.unpackLimit=1 \
fetch ../no-bit-error 2>stderr &&
test_i18ngrep ! -i collision stderr
)
ok 15 - fetch into corrupted repo with index-pack
# still have 1 known breakage(s)
# passed all remaining 14 test(s)
1..15
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:
echo "initial" >a &&
echo "initial" >b &&
echo "initial" >c &&
git add a b c &&
git commit -m "initial commit"
[master (root-commit) a44a922] 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:
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 3ad4b64] modification
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
ok 2 - create feature branch
expecting success:
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:
git merge feature &&
test_path_is_file a &&
test_path_is_missing b &&
test_path_is_file c &&
test "$(cat c)" = "modified"
Updating a44a922..3ad4b64
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:
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
# passed all 5 test(s)
1..5
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: git write-tree >treeid
ok 1 - test preparation: write empty tree
expecting success: 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: git cat-file commit $(cat commitid) >commit
ok 3 - read commit
expecting success: test_cmp expected commit
ok 4 - compare commit
expecting success:
test_tick &&
echo comment text |
git commit-tree $(cat treeid) >commitid &&
echo comment text |
git commit-tree $(cat treeid) -p $(cat commitid) >childid-1 &&
echo comment text |
git commit-tree -p $(cat commitid) $(cat treeid) >childid-2 &&
test_cmp childid-1 childid-2 &&
git commit-tree $(cat treeid) -m foo >childid-3 &&
git commit-tree -m foo $(cat treeid) >childid-4 &&
test_cmp childid-3 childid-4
ok 5 - flags and then non flags
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1300-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1300-config/.git/
expecting success:
rm -f .git/config
ok 1 - clear default config
expecting success:
git config core.penguin "little blue" &&
test_cmp expect .git/config
ok 2 - initial
expecting success:
git config Core.Movie BadPhysics &&
test_cmp expect .git/config
ok 3 - mixed case
expecting success:
git config Cores.WhatEver Second &&
test_cmp expect .git/config
ok 4 - similar section
expecting success:
git config CORE.UPPERCASE true &&
test_cmp expect .git/config
ok 5 - uppercase section
expecting success:
git config core.penguin kingpin !blue
ok 6 - replace with non-match
expecting success:
git config core.penguin "very blue" !kingpin
ok 7 - replace with non-match (actually matching)
expecting success: test_cmp expect .git/config
ok 8 - non-match result
expecting success:
echo Second >expect &&
git config cores.whatever >actual &&
test_cmp expect actual
ok 9 - find mixed-case key by canonical name
expecting success:
echo Second >expect &&
git config CoReS.WhAtEvEr >actual &&
test_cmp expect actual
ok 10 - find mixed-case key by non-canonical name
expecting success:
cat >>.git/config <<-\EOF &&
[section.SubSection]
key = one
[section "SubSection"]
key = two
EOF
echo one >expect &&
git config section.subsection.key >actual &&
test_cmp expect actual &&
echo two >expect &&
git config section.SubSection.key >actual &&
test_cmp expect actual
ok 11 - subsections are not canonicalized by git-config
expecting success:
git config --unset beta.baz
ok 12 - unset with cont. lines
expecting success: test_cmp expect .git/config
ok 13 - unset with cont. lines is correct
expecting success:
git config --unset-all beta.haha
ok 14 - multiple unset
expecting success:
test_cmp expect .git/config
ok 15 - multiple unset is correct
expecting success:
test_must_fail git config --replace-all beta.haha &&
test_cmp .git/config2 .git/config
error: wrong number of arguments
usage: git config [<options>]
Config file location
--global use global config file
--system use system config file
--local use repository config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value_regex]
--add add a new variable: name value
--unset remove a variable: name [value-regex]
--unset-all remove all matches: name [value-regex]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
-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
--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)
--default <value> with --get, use default value when missing entry
ok 16 - --replace-all missing value
expecting success:
git config --replace-all beta.haha gamma
ok 17 - --replace-all
expecting success:
test_cmp expect .git/config
ok 18 - all replaced
expecting success:
git config beta.haha alpha &&
test_cmp expect .git/config
ok 19 - really mean test
expecting success:
git config nextsection.nonewline wow &&
test_cmp expect .git/config
ok 20 - really really mean test
expecting success:
echo alpha >expect &&
git config beta.haha >actual &&
test_cmp expect actual
ok 21 - get value
expecting success:
git config --unset beta.haha &&
test_cmp expect .git/config
ok 22 - unset
expecting success:
git config nextsection.NoNewLine "wow2 for me" "for me$" &&
test_cmp expect .git/config
ok 23 - multivar
expecting success:
git config --get nextsection.nonewline !for
wow
ok 24 - non-match
expecting success:
echo wow >expect &&
git config --get nextsection.nonewline !for >actual &&
test_cmp expect actual
ok 25 - non-match value
expecting success:
echo "wow2 for me" >expect &&
git config --get nextsection.nonewline >actual &&
test_cmp expect actual
ok 26 - multi-valued get returns final one
expecting success:
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:
git config nextsection.nonewline "wow3" "wow$" &&
test_cmp expect .git/config
ok 28 - multivar replace
expecting success:
test_must_fail git config --unset nextsection.nonewline
warning: nextsection.nonewline has multiple values
ok 29 - ambiguous unset
expecting success:
test_must_fail git config --unset somesection.nonewline
ok 30 - invalid unset
expecting success:
git config --unset nextsection.nonewline "wow3$" &&
test_cmp expect .git/config
ok 31 - multivar unset
expecting success: test_must_fail git config inval.2key blabla
error: invalid key: inval.2key
ok 32 - invalid key
expecting success: git config 123456.a123 987
ok 33 - correct key
expecting success:
git config Version.1.2.3eX.Alpha beta
ok 34 - hierarchical section
expecting success:
test_cmp expect .git/config
ok 35 - hierarchical section value
expecting success:
git config --list > output &&
test_cmp expect output
ok 36 - working --list
expecting success:
git --git-dir=nonexistent config --list >output &&
test_cmp expect output
ok 37 - --list without repo produces empty output
expecting success:
git config --name-only --list >output &&
test_cmp expect output
ok 38 - --name-only --list
expecting success:
git config --get-regexp in >output &&
test_cmp expect output
ok 39 - --get-regexp
expecting success:
git config --name-only --get-regexp in >output &&
test_cmp expect output
ok 40 - --name-only --get-regexp
expecting success:
git config --add nextsection.nonewline "wow4 for you" &&
git config --get-all nextsection.nonewline > output &&
test_cmp expect output
ok 41 - --add
expecting success:
git config --get novalue.variable ^$
ok 42 - get variable with no value
expecting success:
git config --get emptyvalue.variable ^$
ok 43 - get variable with empty value
expecting success:
git config --get-regexp novalue > output &&
test_cmp expect output
ok 44 - get-regexp variable with no value
expecting success:
git config --bool --get-regexp novalue > output &&
test_cmp expect output
ok 45 - get-regexp --bool variable with no value
expecting success:
git config --get-regexp emptyvalue > output &&
test_cmp expect output
ok 46 - get-regexp variable with empty value
expecting success:
git config --bool novalue.variable > output &&
test_cmp expect output
ok 47 - get bool variable with no value
expecting success:
git config --bool emptyvalue.variable > output &&
test_cmp expect output
ok 48 - get bool variable with empty value
expecting success:
test_must_fail git config >output 2>&1 &&
test_i18ngrep usage output
usage: git config [<options>]
ok 49 - no arguments, but no crash
expecting success:
git config a.x y &&
test_cmp expect .git/config
ok 50 - new section is partial match of another
expecting success:
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:
test_must_fail git config --file non-existing-config -l
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:
GIT_CONFIG=other-config git config --list >output &&
test_cmp expect output
ok 53 - alternative GIT_CONFIG
expecting success:
git config --file other-config --list >output &&
test_cmp expect output
ok 54 - alternative GIT_CONFIG (--file)
expecting success:
git config --file - --list <other-config >output &&
test_cmp expect output
ok 55 - alternative GIT_CONFIG (--file=-)
expecting success:
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:
test_must_fail git config --file - --edit
fatal: editing stdin is not supported
ok 57 - editing stdin is an error
expecting success:
mkdir x &&
(
cd x &&
echo strasse >expect &&
git config --get --file ../other-config ein.bahn >actual &&
test_cmp expect actual
)
ok 58 - refer config from subdirectory
expecting success:
(
cd x &&
git config --file=../other-config --get ein.bahn >actual &&
test_cmp expect actual
)
ok 59 - refer config from subdirectory via --file
expecting success:
git config --file=other-config anwohner.park ausweis &&
test_cmp expect other-config
ok 60 - --set in alternative file
expecting success:
git config --rename-section branch.eins branch.zwei
ok 61 - rename section
expecting success:
test_cmp expect .git/config
ok 62 - rename succeeded
expecting success:
test_must_fail git config --rename-section \
branch."world domination" branch.drei
fatal: No such section!
ok 63 - rename non-existing section
expecting success:
test_cmp expect .git/config
ok 64 - rename succeeded
expecting success:
git config --rename-section branch."1 234 blabl/a" branch.drei
ok 65 - rename another section
expecting success:
test_cmp expect .git/config
ok 66 - rename succeeded
expecting success:
git config --rename-section branch.vier branch.zwei
ok 67 - rename a section with a var on the same line
expecting success:
test_cmp expect .git/config
ok 68 - rename succeeded
expecting success:
test_must_fail git config --rename-section branch.zwei ""
error: invalid section name:
ok 69 - renaming empty section name is rejected
expecting success:
test_must_fail git config --rename-section branch.zwei "bogus name"
error: invalid section name: bogus name
ok 70 - renaming to bogus section is rejected
expecting success:
git config --remove-section branch.zwei
ok 71 - remove section
expecting success:
test_cmp expect .git/config
ok 72 - section was removed properly
expecting success:
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 73 - section ending
expecting success:
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 74 - numbers
expecting success:
git config giga.watts 121g &&
echo 129922760704 >expect &&
git config --int --get giga.watts >actual &&
test_cmp expect actual
ok 75 - --int is at least 64 bits
expecting success:
git config aninvalid.unit "1auto" &&
echo 1auto >expect &&
git config aninvalid.unit >actual &&
test_cmp expect actual &&
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 76 - invalid unit
expecting success:
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 77 - line number is reported correctly
expecting success:
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 78 - invalid stdin config
expecting success:
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 79 - bool
expecting success:
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 80 - invalid bool (--get)
expecting success:
test_must_fail git config --bool bool.nobool foobar
fatal: bad numeric config value 'foobar' for 'bool.nobool': invalid unit
ok 81 - invalid bool (set)
expecting success:
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 82 - set --bool
expecting success:
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 83 - set --int
expecting success:
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 84 - get --bool-or-int
expecting success:
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 85 - set --bool-or-int
expecting success:
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 86 - set --path
expecting success:
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 87 - get --path
expecting success:
(
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 88 - get --path copes with unset $HOME
expecting success:
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 89 - get --path barfs on boolean variable
expecting success:
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
{
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 90 - get --expiry-date
expecting success:
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 91 - get --type=color
expecting success:
rm .git/config &&
git config --type=color foo.color "red" &&
test_cmp expect .git/config
ok 92 - set --type=color
expecting success:
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 93 - get --type=color barfs on non-color
expecting success:
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 94 - set --type=color barfs on non-color
expecting success:
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 95 - quoting
expecting success:
test_must_fail git config "key.with
newline" 123
error: invalid key: key.with
newline
ok 96 - key with newline
expecting success: git config key.sub value.with\\\
newline
ok 97 - value with newline
expecting success:
git config --list > result &&
test_cmp result expect
ok 98 - value continued on next line
expecting success:
git config --null --list >result.raw &&
nul_to_q <result.raw >result &&
echo >>result &&
test_cmp expect result
ok 99 - --null --list
expecting success:
git config --null --get-regexp "val[0-9]" >result.raw &&
nul_to_q <result.raw >result &&
echo >>result &&
test_cmp expect result
ok 100 - --null --get-regexp
expecting success:
git config section.val "foo bar" &&
echo "foo bar" >expect &&
git config section.val >actual &&
test_cmp expect actual
ok 101 - inner whitespace kept verbatim
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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 102 - symlinked configuration
expecting success:
test_must_fail git config --file=doesnotexist --list &&
test_must_fail git config --file=doesnotexist test.xyzzy
fatal: unable to read config file 'doesnotexist': No such file or directory
ok 103 - nonexistent configuration
expecting success:
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 104 - symlink to nonexistent configuration
expecting success:
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) 56fde9d] 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 105 - check split_cmdline return
expecting success:
cat >expect <<-\EOF &&
value
value
true
EOF
{
git -c core.name=value config core.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 core.name
error: key does not contain a section: name
fatal: unable to parse command-line config
ok 106 - git -c "key=value" support
expecting success:
echo >expect &&
git -c foo.empty= config --path foo.empty >actual &&
test_cmp expect actual
ok 107 - git -c can represent empty string
expecting success:
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 108 - key sanity-checking
expecting success:
git config alias.checkconfig "-c foo.check=bar config foo.check" &&
echo bar >expect &&
git checkconfig >actual &&
test_cmp expect actual
ok 109 - git -c works with aliases of builtins
expecting success:
test_config alias.CamelCased "rev-parse HEAD" &&
git CamelCased >out &&
git rev-parse HEAD >expect &&
test_cmp expect out
ok 110 - aliases can be CamelCased
expecting success:
echo "value with = in it" >expect &&
git -c core.foo="value with = in it" config core.foo >actual &&
test_cmp expect actual
ok 111 - git -c does not split values on equals
expecting success:
test_must_fail git -c core.bare=foo rev-parse
fatal: bad numeric config value 'foo' for 'core.bare': invalid unit
ok 112 - git -c dies on bogus config
expecting success:
test_must_fail git -c "=foo" rev-parse
error: bogus config parameter: =foo
fatal: unable to parse command-line config
ok 113 - git -c complains about empty key
expecting success:
test_must_fail git -c "" rev-parse
error: bogus config parameter:
fatal: unable to parse command-line config
ok 114 - git -c complains about empty key and value
expecting success:
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 115 - multiple git -c appends config
expecting success:
# 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 116 - last one wins: two level vars
expecting success:
# 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 117 - last one wins: three level vars
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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://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
ok 134 - urlmatch favors more specific URLs
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
CUSTOM_CONFIG_FILE="file\" (dq) and spaces.conf" &&
cat >"$CUSTOM_CONFIG_FILE" <<-\EOF
[user]
custom = true
EOF
ok 146 - set up custom config file
expecting success:
cat >expect <<-\EOF &&
file:"file\" (dq) and spaces.conf" user.custom=true
EOF
git config --file "$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
test_cmp expect output
ok 147 - --show-origin escape special file name characters
expecting success:
cat >expect <<-\EOF &&
standard input: user.custom=true
EOF
git config --file - --show-origin --list <"$CUSTOM_CONFIG_FILE" >output &&
test_cmp expect output
ok 148 - --show-origin stdin
expecting success:
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 149 - --show-origin stdin with file include
expecting success:
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 150 - --show-origin blob
expecting success:
cat >expect <<-\EOF &&
blob:"master:file\" (dq) and spaces.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 fe1ed2b] new config file
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 "file\" (dq) and spaces.conf"
ok 151 - --show-origin blob ref
expecting success:
# 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 --local foo.bar
fatal: --local can only be used inside a git repository
ok 152 - --local requires a repo
expecting success:
git config --type=int --type=int core.big >actual &&
echo 1048576 >expect &&
test_cmp expect actual
ok 153 - identical modern --type specifiers are allowed
expecting success:
git config --int --int core.big >actual &&
echo 1048576 >expect &&
test_cmp expect actual
ok 154 - identical legacy --type specifiers are allowed
expecting success:
git config --int --type=int core.big >actual &&
echo 1048576 >expect &&
test_cmp expect actual
ok 155 - identical mixed --type specifiers are allowed
expecting success:
test_must_fail git config --type=int --type=bool core.big 2>error &&
test_i18ngrep "only one type at a time" error
error: only one type at a time.
ok 156 - non-identical modern --type specifiers are not allowed
expecting success:
test_must_fail git config --int --bool core.big 2>error &&
test_i18ngrep "only one type at a time" error
error: only one type at a time.
ok 157 - non-identical legacy --type specifiers are not allowed
expecting success:
test_must_fail git config --type=int --bool core.big 2>error &&
test_i18ngrep "only one type at a time" error
error: only one type at a time.
ok 158 - non-identical mixed --type specifiers are not allowed
expecting success:
echo "true" >expect &&
git config --type=bool core.foo >actual &&
test_cmp expect actual
ok 159 - --type allows valid type specifiers
expecting success:
echo "10" >expect &&
git config --type=bool --no-type core.number >actual &&
test_cmp expect actual
ok 160 - --no-type unsets type specifiers
expecting success:
echo 1048576 >expect &&
git config --type=bool --no-type --type=int core.big >actual &&
test_cmp expect actual
ok 161 - unset type specifiers may be reset to conflicting ones
expecting success:
test_must_fail git config --type=nonsense core.foo 2>error &&
test_i18ngrep "unrecognized --type argument" error
fatal: unrecognized --type argument, nonsense
ok 162 - --type rejects unknown specifiers
expecting success:
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 .git/config expect
ok 163 - --replace-all does not invent newlines
# passed all 163 test(s)
1..163
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:
# 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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" &&
git $config add large1 &&
sz=$(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:
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 -f "$p" && idx=${p%.pack}.idx && test -f "$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/??/??????????????????????????????????????
do
test -f "$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 -f "$p" && idx=${p%.pack}.idx && test -f "$idx"
then
continue
fi
bad=t
done &&
test -z "$bad" &&
test $count = 1
ok 10 - add a large file or two
expecting success:
large1=$(git rev-parse :large1) &&
git update-index --add --cacheinfo 100644 $large1 another &&
git checkout another &&
test_cmp large1 another
ok 11 - checkout a large file
expecting success:
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 -f "$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:
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:
git diff --stat HEAD^ HEAD
large1 | Bin 2000000 -> 2000009 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
ok 14 - diff --stat
expecting success:
git diff HEAD^ HEAD >actual &&
grep "Binary files.*differ" actual
Binary files a/large1 and b/large1 differ
ok 15 - diff
expecting success:
git diff --cached HEAD^ >actual &&
grep "Binary files.*differ" actual
Binary files a/large1 and b/large1 differ
ok 16 - diff --cached
expecting success:
git hash-object large1
171a2cf5cd75bd8d405266c986591716925e9712
ok 17 - hash-object
expecting success:
git cat-file blob :large1 >/dev/null
ok 18 - cat-file a large file
expecting success:
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:
git show :large1 >/dev/null
ok 20 - git-show a large file
expecting success:
git clone file://"$(pwd)"/.git foo &&
GIT_DIR=non-existent git index-pack --strict --verify foo/.git/objects/pack/*.pack
Cloning into 'foo'...
ok 21 - index-pack
expecting success:
git repack -ad
ok 22 - repack
expecting success:
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:
git archive --format=tar HEAD >/dev/null
ok 24 - tar achiving
expecting success:
git archive --format=zip -0 HEAD >/dev/null
ok 25 - zip achiving, store only
expecting success:
git archive --format=zip HEAD >/dev/null
ok 26 - zip achiving, deflate
expecting success:
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'
*** t1302-repo-version.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1302-repo-version/.git/
expecting success:
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:
echo 0 >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:
# 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:
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:
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:
mkconfig 0 >.git/config &&
check_allow
ok 6 - allow version=0
expecting success:
mkconfig 1 >.git/config &&
check_allow
ok 7 - allow version=1
expecting success:
mkconfig 1 noop >.git/config &&
check_allow
ok 8 - allow version=1 noop
expecting success:
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:
mkconfig 0 no-such-extension >.git/config &&
check_allow
ok 10 - allow version=0 no-such-extension
expecting success:
mkconfig 1 preciousObjects >.git/config &&
check_allow
ok 11 - precious-objects allowed
expecting success:
test_must_fail git repack -ad
fatal: cannot delete packs in a precious-objects repo
ok 12 - precious-objects blocks destructive repack
expecting success:
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 13 - other repacks are OK
expecting success:
test_must_fail git prune
fatal: cannot prune in a precious-objects repo
ok 14 - precious-objects blocks prune
expecting success:
git gc
ok 15 - gc runs without complaint
# passed all 15 test(s)
1..15
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:
setup &&
git config section.key bar &&
check section.key bar
ok 1 - modify same key
expecting success:
setup &&
git config section.other bar &&
check section.key foo &&
check section.other bar
ok 2 - add key in same section
expecting success:
setup &&
git config section2.key bar &&
check section.key foo &&
check section2.key bar
ok 3 - add key in different section
expecting success:
git config "$SECTION" bar &&
check "$SECTION" bar
ok 4 - make sure git config escapes section names properly
expecting success:
setup &&
git config section.key "$LONG_VALUE" &&
check section.key "$LONG_VALUE"
ok 5 - do not crash on special long config line
expecting success:
setup_many &&
git config --get-all section.key >actual &&
test_line_count = 3126 actual
ok 6 - get many entries
expecting success:
setup_many &&
git config --get-regexp "sec.*ke." >actual &&
test_line_count = 3126 actual
ok 7 - get many entries by regex
expecting success:
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:
setup_many &&
git config --replace-all section.key bar &&
check section.key bar
ok 9 - replace many entries
expecting success:
setup_many &&
git config --unset-all section.key &&
test_must_fail git config section.key
ok 10 - unset many entries
expecting success:
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'
*** t1301-shared-repo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/.git/
expecting success:
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:
mkdir sub && (
cd sub &&
umask $u &&
git init --shared=1 &&
test 1 = "$(git config core.sharedrepository)"
) &&
actual=$(ls -l sub/.git/HEAD) &&
case "$actual" in
-rw-rw-r--*)
: happy
;;
*)
echo Oops, .git/HEAD is not 0664 but $actual
false
;;
esac
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 2 - shared=1 does not clear bits preset by umask 002
expecting success:
mkdir sub && (
cd sub &&
umask $u &&
git init --shared=1 &&
test 1 = "$(git config core.sharedrepository)"
) &&
actual=$(ls -l sub/.git/HEAD) &&
case "$actual" in
-rw-rw-r--*)
: happy
;;
*)
echo Oops, .git/HEAD is not 0664 but $actual
false
;;
esac
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 3 - shared=1 does not clear bits preset by umask 022
expecting success:
mkdir sub &&
cd sub &&
git init --shared=all &&
test 2 = $(git config core.sharedrepository)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 4 - shared=all
expecting success:
: > 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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)"
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:
git config core.sharedrepository 0666 &&
umask 0022 &&
git init --bare child.git &&
echo "-rw-r--r--" >expect &&
test_modebits child.git/config >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/child.git/
ok 19 - remote init does not use config from cwd
expecting success:
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:
rm -rf child.git &&
umask 0022 &&
git init --bare --shared=0666 child.git &&
test_path_is_missing child.git/foo &&
git init --bare --template=../templates child.git &&
echo "-rw-rw-rw-" >expect &&
test_modebits child.git/foo >actual &&
test_cmp expect actual
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/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:
rm -rf child.git &&
umask 0022 &&
git config core.sharedrepository 0666 &&
cp .git/config templates/config &&
git init --bare --template=../templates child.git &&
echo "-rw-rw-rw-" >expect &&
test_modebits child.git/HEAD >actual &&
test_cmp expect actual
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/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'
*** t1304-default-acl.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1304-default-acl/.git/
expecting success:
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
skipping test: Setup test repo
setfacl -m d:u::rwx,d:g::---,d:o:---,d:m:rwx $dirs_to_set &&
setfacl -m m:rwx $dirs_to_set &&
setfacl -m u:root:rwx $dirs_to_set &&
setfacl -m d:u:"$LOGNAME":rwx $dirs_to_set &&
setfacl -m d:u:root:rwx $dirs_to_set &&
touch file.txt &&
git add file.txt &&
git commit -m "init"
ok 2 # skip Setup test repo (missing SETFACL)
skipping test: Objects creation does not break ACLs with restrictive umask
# SHA1 for empty blob
check_perms_and_acl .git/objects/$(echo $EMPTY_BLOB | sed -e "s,^\(..\),\1/,")
ok 3 # skip Objects creation does not break ACLs with restrictive umask (missing SETFACL)
skipping test: git gc does not break ACLs with restrictive umask
git gc &&
check_perms_and_acl .git/objects/pack/*.pack
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'
*** t1306-xdg-files.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1306-xdg-files/.git/
expecting success:
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:
>.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:
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:
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:
>.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:
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:
>.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:
git init git &&
cd git &&
echo foo >to_be_excluded
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1306-xdg-files/git/.git/
ok 8 - Setup
expecting success:
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
Use -f if you really want to add them.
ok 9 - Exclusion of a file in the XDG ignore file
expecting success:
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
Use -f if you really want to add them.
ok 10 - $XDG_CONFIG_HOME overrides $HOME/.config/git/ignore
expecting success:
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
Use -f if you really want to add them.
ok 11 - Exclusion in both XDG and local ignore files
expecting success:
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
Use -f if you really want to add them.
ok 12 - Exclusion in a non-XDG global ignore file
expecting success:
>expected &&
(sane_unset HOME &&
git config --unset core.excludesfile &&
git ls-files --exclude-standard --ignored >actual) &&
test_cmp expected actual
ok 13 - Checking XDG ignore file when HOME is unset
expecting success:
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:
>expected &&
(sane_unset HOME &&
git check-attr -a f >actual) &&
test_cmp expected actual
ok 15 - Checking XDG attributes when HOME is unset
expecting success:
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:
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:
test_might_fail rm .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:
mkdir -p "$HOME"/.config/git &&
>"$HOME"/.config/git/config &&
test_might_fail rm "$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:
>"$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:
test_might_fail rm "$HOME"/.gitconfig &&
test_might_fail rm "$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'
*** t1305-config-include.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1305-config-include/.git/
expecting success:
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:
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:
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:
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:
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:
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 ^core actual.full >actual &&
test_cmp expect actual
ok 6 - listing includes option and expansion
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
git init foo &&
(
cd foo &&
echo "[includeIf \"gitdir:foo/\"]path=bar" >>.git/config &&
echo "[test]one=1" >.git/bar &&
echo 1 >expect &&
git config test.one >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1305-config-include/foo/.git/
ok 18 - conditional include, both unanchored
expecting success:
(
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:
(
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:
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:
(
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:
(
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
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
mkdir real-home &&
ln -s real-home home &&
(
HOME="$TRASH_DIRECTORY/home" &&
export HOME &&
cd "$HOME" &&
git init foo &&
cd foo &&
mkdir sub
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1305-config-include/real-home/foo/.git/
ok 24 - conditional include, set up symlinked $HOME
expecting success:
(
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 25 - conditional include, $HOME expansion with symlinks
expecting success:
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 26 - conditional include, relative path with symlinks
expecting success:
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 27 - conditional include, gitdir matching symlink
expecting success:
(
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 28 - conditional include, gitdir matching symlink, icase
expecting success:
cat >.gitconfig <<-\EOF &&
[test]value = gitconfig
[include]path = cycle
EOF
cat >cycle <<-\EOF &&
[test]value = cycle
[include]path = .gitconfig
EOF
cat >expect <<-\EOF &&
gitconfig
cycle
EOF
test_must_fail git config --get-all test.value 2>stderr &&
grep "exceeded maximum include depth" stderr
fatal: exceeded maximum include depth (10) while including
ok 29 - include cycles are detected
# passed all 29 test(s)
1..29
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:
cat >config <<-\EOF &&
[some]
value = 1
EOF
git add config &&
git commit -m foo
[master (root-commit) ef672c1] foo
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 config
ok 1 - create config blob
expecting success:
echo some.value=1 >expect &&
git config --blob=HEAD:config --list >actual &&
test_cmp expect actual
ok 2 - list config blob contents
expecting success:
echo true >expect &&
git config --blob=HEAD:config --bool some.value >actual &&
test_cmp expect actual
ok 3 - fetch value from blob
expecting success:
test_must_fail git config --blob=HEAD:config non.existing
ok 4 - reading non-existing value from blob is an error
expecting success:
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
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value_regex]
--add add a new variable: name value
--unset remove a variable: name [value-regex]
--unset-all remove all matches: name [value-regex]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
-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
--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)
--default <value> with --get, use default value when missing entry
ok 5 - reading from blob and file is an error
expecting success:
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:
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:
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:
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:
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:
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 b1336cb] broken
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
error: bad config line 2 in blob HEAD:config
ok 11 - parse errors in blobs are properly attributed
expecting success:
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 736e648] 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:
test_must_fail nongit 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:
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:
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:
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 -z "$(cat output)"
ok 3 - ceiling
expecting success:
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:
echo "[test]source = home" >>.gitconfig &&
git init foo &&
(
cd foo &&
echo "[test]source = repo" >>.git/config &&
GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config \
read_early_config test.source >actual &&
cat >expected <<-\EOF &&
home
repo
cmdline
EOF
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1309-early-config/foo/.git/
ok 5 - read config file in right order
expecting success:
test_with_config "[core]repositoryformatversion = 999999" 2>err &&
test_i18ngrep "warning:.* Expected git repo version <= [1-9]" err
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1309-early-config/throwaway/.git/
warning: ignoring git dir '.git': Expected git repo version <= 1, found 999999
ok 6 - ignore .git/ with incompatible repository version
checking known breakage:
test_with_config "[core]repositoryformatversion = invalid"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1309-early-config/throwaway/.git/
fatal: bad numeric config value 'invalid' for 'core.repositoryformatversion' in file .git/config: invalid unit
not ok 7 - ignore .git/ with invalid repository version # TODO known breakage
checking known breakage:
test_with_config "["
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1309-early-config/throwaway/.git/
fatal: bad config line 1 in file .git/config
not ok 8 - ignore .git/ with invalid config # TODO known breakage
# still have 2 known breakage(s)
# passed all remaining 6 test(s)
1..8
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:
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:
check_config get_value case.penguin "very blue"
ok 2 - get value for a simple key
expecting success:
check_config get_value case.my ""
ok 3 - get value for a key with value as an empty string
expecting success:
check_config get_value case.foo "(NULL)"
ok 4 - get value for a key with value as NULL
expecting success:
check_config get_value case.UPPERCASE "true" &&
check_config get_value case.uppercase "true"
ok 5 - upper case key
expecting success:
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:
check_config get_value case.Movie "BadPhysics"
ok 7 - key and value with mixed case
expecting success:
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:
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:
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:
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:
check_config get_value case.baz "hask"
ok 12 - find value with the highest priority
expecting success:
check_config get_int lamb.chop 65
ok 13 - find integer value for a key
expecting success:
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:
test_expect_code 128 test-tool config get_string case.foo 2>result &&
test_i18ngrep "fatal: .*case\.foo.*\.git/config.*line 7" result
fatal: bad config variable 'case.foo' in file '.git/config' at line 7
ok 15 - check line error when NULL string is queried
expecting success:
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:
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:
check_config get_value_multi case.baz sam bat hask
ok 18 - find multiple values
expecting success:
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:
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:
cat >except <<-\EOF &&
sam
bat
hask
lama
ball
EOF
test-tool config configset_get_value case.baz config2 .git/config >actual &&
test_cmp expect actual
ok 21 - find value_list for a key from a configset
expecting success:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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:
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:
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:
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:
nongit test_must_fail git config a.b c 2>err &&
grep "not in a git directory" err
fatal: not in a git directory
ok 28 - error on modifying repo config without repo
expecting success:
echo "[foo]bar = from-repo" >.git/config &&
echo "[foo]bar = from-home" >.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
scope=global
key=foo.bar
value=from-repo
origin=file
name=.git/config
scope=repo
key=foo.bar
value=from-cmdline
origin=command line
name=
scope=cmdline
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:
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:
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:
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:
test_must_fail git config -f config --type=expiry-date --default=x --get \
not.a.section 2>error &&
test_i18ngrep "failed to format default config value" error
fatal: failed to format default config value: x
ok 4 - dies when --default cannot be parsed
expecting success:
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:
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:
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:
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:
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:
echo refs/heads/foo >expect &&
git symbolic-ref HEAD >actual &&
test_cmp expect actual
ok 2 - symbolic-ref reads HEAD
expecting success:
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:
echo content >file && git add file && git commit -m one &&
test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD)
[foo (root-commit) 48eaa0b] 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:
test_must_fail git symbolic-ref -d HEAD
fatal: deleting 'HEAD' is not allowed
ok 5 - HEAD cannot be removed
expecting success:
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:
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:
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:
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
48eaa0bc65b6a634277c15dd8ef397f10e2f03bc
ok 9 - symbolic-ref fails to delete real ref
expecting success:
# 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:
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:
echo $commit >expect &&
git rev-parse --verify HEAD >actual &&
test_cmp expect actual
ok 12 - we can parse long symbolic ref
expecting success:
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:
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 52184d5] 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 1d83802] 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:
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 cd3469a] 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:
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:
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:
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:
test_must_fail git check-ref-format ''
ok 1 - ref name '' is invalid
expecting success:
test_must_fail git check-ref-format '/'
ok 2 - ref name '/' is invalid
expecting success:
test_must_fail git check-ref-format --allow-onelevel '/'
ok 3 - ref name '/' is invalid with options --allow-onelevel
expecting success:
test_must_fail git check-ref-format --normalize '/'
ok 4 - ref name '/' is invalid with options --normalize
expecting success:
test_must_fail git check-ref-format --allow-onelevel --normalize '/'
ok 5 - ref name '/' is invalid with options --allow-onelevel --normalize
expecting success:
git check-ref-format 'foo/bar/baz'
ok 6 - ref name 'foo/bar/baz' is valid
expecting success:
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:
test_must_fail git check-ref-format 'refs///heads/foo'
ok 8 - ref name 'refs///heads/foo' is invalid
expecting success:
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:
test_must_fail git check-ref-format 'heads/foo/'
ok 10 - ref name 'heads/foo/' is invalid
expecting success:
test_must_fail git check-ref-format '/heads/foo'
ok 11 - ref name '/heads/foo' is invalid
expecting success:
git check-ref-format --normalize '/heads/foo'
heads/foo
ok 12 - ref name '/heads/foo' is valid with options --normalize
expecting success:
test_must_fail git check-ref-format '///heads/foo'
ok 13 - ref name '///heads/foo' is invalid
expecting success:
git check-ref-format --normalize '///heads/foo'
heads/foo
ok 14 - ref name '///heads/foo' is valid with options --normalize
expecting success:
test_must_fail git check-ref-format './foo'
ok 15 - ref name './foo' is invalid
expecting success:
test_must_fail git check-ref-format './foo/bar'
ok 16 - ref name './foo/bar' is invalid
expecting success:
test_must_fail git check-ref-format 'foo/./bar'
ok 17 - ref name 'foo/./bar' is invalid
expecting success:
test_must_fail git check-ref-format 'foo/bar/.'
ok 18 - ref name 'foo/bar/.' is invalid
expecting success:
test_must_fail git check-ref-format '.refs/foo'
ok 19 - ref name '.refs/foo' is invalid
expecting success:
test_must_fail git check-ref-format 'refs/heads/foo.'
ok 20 - ref name 'refs/heads/foo.' is invalid
expecting success:
test_must_fail git check-ref-format 'heads/foo..bar'
ok 21 - ref name 'heads/foo..bar' is invalid
expecting success:
test_must_fail git check-ref-format 'heads/foo?bar'
ok 22 - ref name 'heads/foo?bar' is invalid
expecting success:
git check-ref-format 'foo./bar'
ok 23 - ref name 'foo./bar' is valid
expecting success:
test_must_fail git check-ref-format 'heads/foo.lock'
ok 24 - ref name 'heads/foo.lock' is invalid
expecting success:
test_must_fail git check-ref-format 'heads///foo.lock'
ok 25 - ref name 'heads///foo.lock' is invalid
expecting success:
test_must_fail git check-ref-format 'foo.lock/bar'
ok 26 - ref name 'foo.lock/bar' is invalid
expecting success:
test_must_fail git check-ref-format 'foo.lock///bar'
ok 27 - ref name 'foo.lock///bar' is invalid
expecting success:
git check-ref-format 'heads/foo@bar'
ok 28 - ref name 'heads/foo@bar' is valid
expecting success:
test_must_fail git check-ref-format 'heads/v@{ation'
ok 29 - ref name 'heads/v@{ation' is invalid
expecting success:
test_must_fail git check-ref-format 'heads/foo\bar'
ok 30 - ref name 'heads/foo\bar' is invalid
expecting success:
test_must_fail git check-ref-format 'heads/foo '
ok 31 - ref name 'heads/foo ' is invalid
expecting success:
test_must_fail git check-ref-format 'heads/foo'
ok 32 - ref name 'heads/foo' is invalid
expecting success:
git check-ref-format 'heads/fuß'
ok 33 - ref name 'heads/fuß' is valid
expecting success:
git check-ref-format --refspec-pattern 'heads/*foo/bar'
ok 34 - ref name 'heads/*foo/bar' is valid with options --refspec-pattern
expecting success:
git check-ref-format --refspec-pattern 'heads/foo*/bar'
ok 35 - ref name 'heads/foo*/bar' is valid with options --refspec-pattern
expecting success:
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:
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:
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:
test_must_fail git check-ref-format 'foo'
ok 39 - ref name 'foo' is invalid
expecting success:
git check-ref-format --allow-onelevel 'foo'
ok 40 - ref name 'foo' is valid with options --allow-onelevel
expecting success:
test_must_fail git check-ref-format --refspec-pattern 'foo'
ok 41 - ref name 'foo' is invalid with options --refspec-pattern
expecting success:
git check-ref-format --refspec-pattern --allow-onelevel 'foo'
ok 42 - ref name 'foo' is valid with options --refspec-pattern --allow-onelevel
expecting success:
test_must_fail git check-ref-format --normalize 'foo'
ok 43 - ref name 'foo' is invalid with options --normalize
expecting success:
git check-ref-format --allow-onelevel --normalize 'foo'
foo
ok 44 - ref name 'foo' is valid with options --allow-onelevel --normalize
expecting success:
git check-ref-format 'foo/bar'
ok 45 - ref name 'foo/bar' is valid
expecting success:
git check-ref-format --allow-onelevel 'foo/bar'
ok 46 - ref name 'foo/bar' is valid with options --allow-onelevel
expecting success:
git check-ref-format --refspec-pattern 'foo/bar'
ok 47 - ref name 'foo/bar' is valid with options --refspec-pattern
expecting success:
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:
git check-ref-format --normalize 'foo/bar'
foo/bar
ok 49 - ref name 'foo/bar' is valid with options --normalize
expecting success:
test_must_fail git check-ref-format 'foo/*'
ok 50 - ref name 'foo/*' is invalid
expecting success:
test_must_fail git check-ref-format --allow-onelevel 'foo/*'
ok 51 - ref name 'foo/*' is invalid with options --allow-onelevel
expecting success:
git check-ref-format --refspec-pattern 'foo/*'
ok 52 - ref name 'foo/*' is valid with options --refspec-pattern
expecting success:
git check-ref-format --refspec-pattern --allow-onelevel 'foo/*'
ok 53 - ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel
expecting success:
test_must_fail git check-ref-format '*/foo'
ok 54 - ref name '*/foo' is invalid
expecting success:
test_must_fail git check-ref-format --allow-onelevel '*/foo'
ok 55 - ref name '*/foo' is invalid with options --allow-onelevel
expecting success:
git check-ref-format --refspec-pattern '*/foo'
ok 56 - ref name '*/foo' is valid with options --refspec-pattern
expecting success:
git check-ref-format --refspec-pattern --allow-onelevel '*/foo'
ok 57 - ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel
expecting success:
test_must_fail git check-ref-format --normalize '*/foo'
ok 58 - ref name '*/foo' is invalid with options --normalize
expecting success:
git check-ref-format --refspec-pattern --normalize '*/foo'
*/foo
ok 59 - ref name '*/foo' is valid with options --refspec-pattern --normalize
expecting success:
test_must_fail git check-ref-format 'foo/*/bar'
ok 60 - ref name 'foo/*/bar' is invalid
expecting success:
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:
git check-ref-format --refspec-pattern 'foo/*/bar'
ok 62 - ref name 'foo/*/bar' is valid with options --refspec-pattern
expecting success:
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:
test_must_fail git check-ref-format '*'
ok 64 - ref name '*' is invalid
expecting success:
test_must_fail git check-ref-format --allow-onelevel '*'
ok 65 - ref name '*' is invalid with options --allow-onelevel
expecting success:
test_must_fail git check-ref-format --refspec-pattern '*'
ok 66 - ref name '*' is invalid with options --refspec-pattern
expecting success:
git check-ref-format --refspec-pattern --allow-onelevel '*'
ok 67 - ref name '*' is valid with options --refspec-pattern --allow-onelevel
expecting success:
test_must_fail git check-ref-format --refspec-pattern 'foo/*/*'
ok 68 - ref name 'foo/*/*' is invalid with options --refspec-pattern
expecting success:
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:
test_must_fail git check-ref-format --refspec-pattern '*/foo/*'
ok 70 - ref name '*/foo/*' is invalid with options --refspec-pattern
expecting success:
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:
test_must_fail git check-ref-format --refspec-pattern '*/*/foo'
ok 72 - ref name '*/*/foo' is invalid with options --refspec-pattern
expecting success:
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:
test_must_fail git check-ref-format '/foo'
ok 74 - ref name '/foo' is invalid
expecting success:
test_must_fail git check-ref-format --allow-onelevel '/foo'
ok 75 - ref name '/foo' is invalid with options --allow-onelevel
expecting success:
test_must_fail git check-ref-format --refspec-pattern '/foo'
ok 76 - ref name '/foo' is invalid with options --refspec-pattern
expecting success:
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:
test_must_fail git check-ref-format --normalize '/foo'
ok 78 - ref name '/foo' is invalid with options --normalize
expecting success:
git check-ref-format --allow-onelevel --normalize '/foo'
foo
ok 79 - ref name '/foo' is valid with options --allow-onelevel --normalize
expecting success:
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:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at f0ba45b A
Switched to branch 'master'
ok 82 - check-ref-format --branch @{-1}
expecting success:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at f0ba45b A
Switched to branch 'master'
ok 84 - check-ref-format --branch from subdir
expecting success:
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:
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:
refname=$(git check-ref-format --normalize 'heads/foo') &&
test "$refname" = 'heads/foo'
ok 87 - ref name 'heads/foo' simplifies to 'heads/foo'
expecting success:
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:
refname=$(git check-ref-format --normalize '/heads/foo') &&
test "$refname" = 'heads/foo'
ok 89 - ref name '/heads/foo' simplifies to 'heads/foo'
expecting success:
refname=$(git check-ref-format --normalize '///heads/foo') &&
test "$refname" = 'heads/foo'
ok 90 - ref name '///heads/foo' simplifies to 'heads/foo'
expecting success:
test_must_fail git check-ref-format --normalize 'foo'
ok 91 - check-ref-format --normalize rejects 'foo'
expecting success:
test_must_fail git check-ref-format --normalize '/foo'
ok 92 - check-ref-format --normalize rejects '/foo'
expecting success:
test_must_fail git check-ref-format --normalize 'heads/foo/../bar'
ok 93 - check-ref-format --normalize rejects 'heads/foo/../bar'
expecting success:
test_must_fail git check-ref-format --normalize 'heads/./foo'
ok 94 - check-ref-format --normalize rejects 'heads/./foo'
expecting success:
test_must_fail git check-ref-format --normalize 'heads\foo'
ok 95 - check-ref-format --normalize rejects 'heads\foo'
expecting success:
test_must_fail git check-ref-format --normalize 'heads/foo.lock'
ok 96 - check-ref-format --normalize rejects 'heads/foo.lock'
expecting success:
test_must_fail git check-ref-format --normalize 'heads///foo.lock'
ok 97 - check-ref-format --normalize rejects 'heads///foo.lock'
expecting success:
test_must_fail git check-ref-format --normalize 'foo.lock/bar'
ok 98 - check-ref-format --normalize rejects 'foo.lock/bar'
expecting success:
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:
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:
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 &&
>expect &&
test_must_fail git show-ref D >actual &&
test_cmp expect actual
ok 2 - show-ref
expecting success:
>expect &&
git show-ref -q A >actual &&
test_cmp expect actual &&
git show-ref -q tags/A >actual &&
test_cmp expect actual &&
git show-ref -q refs/tags/A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref -q D >actual &&
test_cmp expect actual
ok 3 - show-ref -q
expecting success:
echo $(git rev-parse refs/tags/A) refs/tags/A >expect &&
git show-ref --verify refs/tags/A >actual &&
test_cmp expect actual &&
>expect &&
test_must_fail git show-ref --verify A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify tags/A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify D >actual &&
test_cmp expect 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:
>expect &&
git show-ref --verify -q refs/tags/A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -q A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -q tags/A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -q D >actual &&
test_cmp expect actual
ok 5 - show-ref --verify -q
expecting success:
{
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 &&
>expect &&
test_must_fail git show-ref -d --verify master >actual &&
test_cmp expect actual &&
test_must_fail git show-ref -d --verify heads/master >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -d A C >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -d tags/A tags/C >actual &&
test_cmp expect actual
fatal: 'master' - not a valid ref
fatal: 'heads/master' - not a valid ref
fatal: 'A' - not a valid ref
fatal: 'tags/A' - not a valid ref
ok 6 - show-ref -d
expecting success:
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:
echo $(git rev-parse HEAD) HEAD >expect &&
git show-ref --verify HEAD >actual &&
test_cmp expect actual &&
>expect &&
git show-ref --verify -q HEAD >actual &&
test_cmp expect actual
ok 8 - show-ref --verify HEAD
expecting success:
sha1_file() {
echo "$*" | sed "s#..#.git/objects/&/#"
} &&
remove_object() {
file=$(sha1_file "$*") &&
test -e "$file" &&
rm -f "$file"
} &&
test_when_finished "rm -rf dangling" &&
(
git init dangling &&
cd dangling &&
test_commit dangling &&
sha=$(git rev-parse refs/tags/dangling) &&
remove_object $sha &&
test_must_fail git show-ref --verify refs/tags/dangling
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1403-show-ref/dangling/.git/
[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:
create_test_commits "" &&
mkdir $bare &&
cd $bare &&
git init --bare &&
create_test_commits "bare" &&
cd -
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:
git update-ref $m $A &&
test $A = $(cat .git/$m)
ok 2 - create refs/heads/master
expecting success:
git update-ref $m $B $A &&
test $B = $(cat .git/$m)
ok 3 - create refs/heads/master with oldvalue verification
expecting success:
test_must_fail git update-ref -d $m $A &&
test $B = "$(cat .git/$m)"
error: cannot lock ref 'refs/heads/master': is at 56d5c1374e8028a1e122ab046ab7b98165342dc4 but expected 102939797ab91a4f201d131418d2c9d919dcdd2c
ok 4 - fail to delete refs/heads/master with stale ref
expecting success:
test_when_finished "rm -f .git/$m" &&
git update-ref -d $m $B &&
test_path_is_missing .git/$m
ok 5 - delete refs/heads/master
expecting success:
test_when_finished "rm -f .git/$m" &&
git update-ref $m $A &&
test $A = $(cat .git/$m) &&
git update-ref -d $m &&
test_path_is_missing .git/$m
ok 6 - delete refs/heads/master without oldvalue verification
expecting success:
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:
git update-ref HEAD $A &&
test $A = $(cat .git/$m)
ok 8 - create refs/heads/master (by HEAD)
expecting success:
git update-ref HEAD $B $A &&
test $B = $(cat .git/$m)
ok 9 - create refs/heads/master (by HEAD) with oldvalue verification
expecting success:
test_must_fail git update-ref -d HEAD $A &&
test $B = $(cat .git/$m)
error: cannot lock ref 'HEAD': is at 56d5c1374e8028a1e122ab046ab7b98165342dc4 but expected 102939797ab91a4f201d131418d2c9d919dcdd2c
ok 10 - fail to delete refs/heads/master (by HEAD) with stale ref
expecting success:
test_when_finished "rm -f .git/$m" &&
git update-ref -d HEAD $B &&
test_path_is_missing .git/$m
ok 11 - delete refs/heads/master (by HEAD)
expecting success:
test_when_finished "rm -f .git/$m" &&
git update-ref $m $A &&
git symbolic-ref HEAD $m &&
git update-ref -m delete-$m -d $m &&
test_path_is_missing .git/$m &&
grep "delete-$m$" .git/logs/HEAD
102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter <committer@example.com> 1112912653 -0700 delete-refs/heads/master
ok 12 - deleting current branch adds message to HEAD's log
expecting success:
test_when_finished "rm -f .git/$m" &&
git update-ref $m $A &&
git symbolic-ref HEAD $m &&
git update-ref -m delete-by-head -d HEAD &&
test_path_is_missing .git/$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:
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:
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:
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:
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:
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:
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:
test_config core.logAllRefUpdates always &&
git update-ref ORIG_HEAD $A &&
test_must_fail git reflog exists ORIG_HEAD
ok 20 - core.logAllRefUpdates=always creates no reflog for ORIG_HEAD
expecting success:
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:
git update-ref HEAD $A &&
test $A = $(cat .git/$m)
ok 22 - create refs/heads/master (by HEAD)
expecting success:
git pack-refs --all
ok 23 - pack refs
expecting success:
git update-ref HEAD $B $A &&
test $B = $(cat .git/$m)
ok 24 - move refs/heads/master (by HEAD)
expecting success:
test_when_finished "rm -f .git/$m" &&
git update-ref -d HEAD $B &&
! grep "$m" .git/packed-refs &&
test_path_is_missing .git/$m
ok 25 - delete refs/heads/master (by HEAD) should remove both packed and loose refs/heads/master
expecting success:
test_when_finished "cp -f .git/HEAD.orig .git/HEAD" &&
git update-ref --no-deref -d HEAD &&
test_path_is_missing .git/HEAD
ok 26 - delete symref without dereference
expecting success:
test_when_finished "cp -f .git/HEAD.orig .git/HEAD" &&
echo foo >foo.c &&
git add foo.c &&
git commit -m foo &&
git pack-refs --all &&
git update-ref --no-deref -d HEAD &&
test_path_is_missing .git/HEAD
[master (root-commit) fc83d41] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.c
ok 27 - delete symref without dereference when the referred ref is packed
expecting success:
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:
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_path_is_missing .git/refs/heads/self
ok 29 - update-ref --no-deref -d can delete self-reference
expecting success:
>.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 "rm -f .git/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_path_is_missing .git/refs/heads/ref-to-bad
ok 30 - update-ref --no-deref -d can delete reference to bad ref
expecting success:
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/master'
ok 31 - (not) create HEAD with old sha1
expecting success:
test_when_finished "rm -f .git/$m" &&
test_path_is_missing .git/$m
ok 32 - (not) prior created .git/refs/heads/master
expecting success:
git update-ref HEAD $A
ok 33 - create HEAD
expecting success:
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:
test_when_finished "rm -f .git/$m" &&
! test $B = $(cat .git/$m)
ok 35 - (not) changed .git/refs/heads/master
expecting success:
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 = $(cat .git/$m)
ok 36 - create refs/heads/master (logged by touch)
expecting success:
test_config core.logAllRefUpdates false &&
GIT_COMMITTER_DATE="2005-05-26 23:31" \
git update-ref HEAD $B $A -m "Switch" &&
test $B = $(cat .git/$m)
ok 37 - update refs/heads/master (logged by touch)
expecting success:
test_config core.logAllRefUpdates false &&
GIT_COMMITTER_DATE="2005-05-26 23:41" \
git update-ref HEAD $A &&
test $A = $(cat .git/$m)
ok 38 - set refs/heads/master (logged by touch)
expecting success:
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_path_is_missing .git/refs/heads/d1/d2 &&
test_path_is_missing .git/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:
git branch e1/e2/r1 HEAD &&
git branch e1/r2 HEAD &&
git checkout e1/e2/r1 &&
test_when_finished "git checkout master" &&
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_path_is_missing .git/refs/heads/e1/e2 &&
test_path_is_missing .git/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 'master'
A foo.c
ok 40 - symref empty directory removal
expecting success:
test_when_finished "rm -rf .git/$m .git/logs expect" &&
test_cmp expect .git/logs/$m
ok 41 - verifying refs/heads/master's log (logged by touch)
expecting success:
test_config core.logAllRefUpdates true &&
GIT_COMMITTER_DATE="2005-05-26 23:32" \
git update-ref HEAD $A -m "Initial Creation" &&
test $A = $(cat .git/$m)
ok 42 - create refs/heads/master (logged by config)
expecting success:
test_config core.logAllRefUpdates true &&
GIT_COMMITTER_DATE="2005-05-26 23:33" \
git update-ref HEAD 56d5c1374e8028a1e122ab046ab7b98165342dc4 102939797ab91a4f201d131418d2c9d919dcdd2c -m "Switch" &&
test $B = $(cat .git/$m)
ok 43 - update refs/heads/master (logged by config)
expecting success:
test_config core.logAllRefUpdates true &&
GIT_COMMITTER_DATE="2005-05-26 23:43" \
git update-ref HEAD $A &&
test $A = $(cat .git/$m)
ok 44 - set refs/heads/master (logged by config)
expecting success:
test_when_finished "rm -f .git/$m .git/logs/$m expect" &&
test_cmp expect .git/logs/$m
ok 45 - verifying refs/heads/master's log (logged by config)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{May 25 2005}" >o 2>e &&
test $C = $(cat o) &&
test "warning: Log for 'master' only goes back to $ed." = "$(cat e)"
ok 46 - Query "master@{May 25 2005}" (before history)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify master@{2005-05-25} >o 2>e &&
test $C = $(cat o) &&
echo test "warning: Log for 'master' only goes back to $ed." = "$(cat e)"
test warning: Log for 'master' only goes back to Thu, 26 May 2005 18:32:00 -0500. = warning: Log for 'master' only goes back to Thu, 26 May 2005 18:32:00 -0500.
ok 47 - Query master@{2005-05-25} (before history)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{May 26 2005 23:31:59}" >o 2>e &&
test $C = $(cat o) &&
test "warning: Log for 'master' only goes back to $ed." = "$(cat e)"
ok 48 - Query "master@{May 26 2005 23:31:59}" (1 second before history)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{May 26 2005 23:32:00}" >o 2>e &&
test $C = $(cat o) &&
test "" = "$(cat e)"
ok 49 - Query "master@{May 26 2005 23:32:00}" (exactly history start)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{May 26 2005 23:32:30}" >o 2>e &&
test $A = $(cat o) &&
test "" = "$(cat e)"
ok 50 - Query "master@{May 26 2005 23:32:30}" (first non-creation change)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{2005-05-26 23:33:01}" >o 2>e &&
test $B = $(cat o) &&
test "warning: Log for ref $m has gap after $gd." = "$(cat e)"
ok 51 - Query "master@{2005-05-26 23:33:01}" (middle of history with gap)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{2005-05-26 23:38:00}" >o 2>e &&
test $Z = $(cat o) &&
test "" = "$(cat e)"
ok 52 - Query "master@{2005-05-26 23:38:00}" (middle of history)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{2005-05-26 23:43:00}" >o 2>e &&
test $E = $(cat o) &&
test "" = "$(cat e)"
ok 53 - Query "master@{2005-05-26 23:43:00}" (exact end of history)
expecting success:
test_when_finished "rm -f o e" &&
git rev-parse --verify "master@{2005-05-28}" >o 2>e &&
test $D = $(cat o) &&
test "warning: Log for ref $m unexpectedly ended on $ld." = "$(cat e)"
ok 54 - Query "master@{2005-05-28}" (past end of history)
expecting success:
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)
[master (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
[master 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(-)
[master 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(-)
[master 29d1ccd] Merged initial commit and a later commit.
Author: A U Thor <author@example.com>
ok 55 - creating initial files
expecting success:
test_cmp expect .git/logs/$m
ok 56 - git commit logged updates
expecting success:
test OTHER = $(git cat-file blob master:F)
ok 57 - git cat-file blob master:F (expect OTHER)
expecting success:
test TEST = $(git cat-file blob "master@{2005-05-26 23:30}:F")
ok 58 - git cat-file blob master@{2005-05-26 23:30}:F (expect TEST)
expecting success:
test OTHER = $(git cat-file blob "master@{2005-05-26 23:42}:F")
ok 59 - git cat-file blob master@{2005-05-26 23:42}:F (expect OTHER)
expecting success:
test_must_fail git update-ref PSEUDOREF $A $B 2>err &&
test_path_is_missing .git/PSEUDOREF &&
grep "could not read ref" err
fatal: update_ref failed for ref 'PSEUDOREF': could not read ref 'PSEUDOREF'
ok 60 - given old value for missing pseudoref, do not create
expecting success:
git update-ref PSEUDOREF $A &&
test $A = $(cat .git/PSEUDOREF)
ok 61 - create pseudoref
expecting success:
git update-ref PSEUDOREF $B &&
test $B = $(cat .git/PSEUDOREF)
ok 62 - overwrite pseudoref with no old value given
expecting success:
git update-ref PSEUDOREF $C $B &&
test $C = $(cat .git/PSEUDOREF)
ok 63 - overwrite pseudoref with correct old value
expecting success:
test_must_fail git update-ref PSEUDOREF $D $E 2>err &&
test $C = $(cat .git/PSEUDOREF) &&
grep "unexpected object ID" err
fatal: update_ref failed for ref 'PSEUDOREF': unexpected object ID when writing 'PSEUDOREF'
ok 64 - do not overwrite pseudoref with wrong old value
expecting success:
git update-ref -d PSEUDOREF &&
test_path_is_missing .git/PSEUDOREF
ok 65 - delete pseudoref
expecting success:
git update-ref PSEUDOREF $A &&
test_must_fail git update-ref -d PSEUDOREF $B 2>err &&
test $A = $(cat .git/PSEUDOREF) &&
grep "unexpected object ID" err
error: unexpected object ID when deleting 'PSEUDOREF'
ok 66 - do not delete pseudoref with wrong old value
expecting success:
git update-ref -d PSEUDOREF $A &&
test_path_is_missing .git/PSEUDOREF
ok 67 - delete pseudoref with correct old value
expecting success:
git update-ref PSEUDOREF $A $Z &&
test $A = $(cat .git/PSEUDOREF)
ok 68 - create pseudoref with old OID zero
expecting success:
test_when_finished git update-ref -d PSEUDOREF &&
test_must_fail git update-ref PSEUDOREF $B $Z 2>err &&
test $A = $(cat .git/PSEUDOREF) &&
grep "already exists" err
fatal: update_ref failed for ref 'PSEUDOREF': ref 'PSEUDOREF' already exists
ok 69 - do not overwrite pseudoref with old OID zero
expecting success:
echo "$pws" >"$pws" &&
git add -- "$pws" &&
git commit -m "$pws"
[master 536da9b] path with space
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 path with space
ok 70 - stdin test setup
expecting success:
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 71 - -z fails without --stdin
expecting success:
>stdin &&
git update-ref --stdin <stdin &&
git rev-parse --verify -q $m
536da9bc9e8e6d0baf01b41cf3cc49bb819559e6
ok 72 - stdin works with no input
expecting success:
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 73 - stdin fails on empty line
expecting success:
echo " " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: whitespace before command: " err
fatal: whitespace before command:
ok 74 - stdin fails on only whitespace
expecting success:
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/master
ok 75 - stdin fails on leading whitespace
expecting success:
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 76 - stdin fails on unknown command
expecting success:
echo "create $a \"master" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: badly quoted argument: \\\"master" err
fatal: badly quoted argument: "master
ok 77 - stdin fails on unbalanced quotes
expecting success:
echo "create $a \"ma\zter\"" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: badly quoted argument: \\\"ma\\\\zter\\\"" err
fatal: badly quoted argument: "ma\zter"
ok 78 - stdin fails on invalid escape
expecting success:
echo "create \"$a\"master" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: unexpected character after quoted argument: \\\"$a\\\"master" err
fatal: unexpected character after quoted argument: "refs/heads/a"master
ok 79 - stdin fails on junk after quoted argument
expecting success:
echo "create " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: create: missing <ref>" err
fatal: create: missing <ref>
ok 80 - stdin fails create with no ref
expecting success:
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 81 - stdin fails create with no new value
expecting success:
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/master
ok 82 - stdin fails create with too many arguments
expecting success:
echo "update " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: update: missing <ref>" err
fatal: update: missing <ref>
ok 83 - stdin fails update with no ref
expecting success:
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 84 - stdin fails update with no new value
expecting success:
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/master
ok 85 - stdin fails update with too many arguments
expecting success:
echo "delete " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: delete: missing <ref>" err
fatal: delete: missing <ref>
ok 86 - stdin fails delete with no ref
expecting success:
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/master
ok 87 - stdin fails delete with too many arguments
expecting success:
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/master
ok 88 - stdin fails verify with too many arguments
expecting success:
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 89 - stdin fails option with unknown name
expecting success:
cat >stdin <<-EOF &&
create $a $m
create $b $m
create $a $m
EOF
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: multiple updates for ref '$a' not allowed." err
fatal: multiple updates for ref 'refs/heads/a' not allowed.
ok 90 - stdin fails with duplicate refs
expecting success:
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 91 - stdin create ref works
expecting success:
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 92 - stdin does not create reflogs by default
expecting success:
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 93 - stdin creates reflogs with --create-reflog
expecting success:
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 94 - stdin succeeds with quoted argument
expecting success:
git update-ref -d $a &&
echo "create $a \"ma\\163ter\"" >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 escaped character
expecting success:
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 96 - stdin update ref creates with zero old value
expecting success:
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 97 - stdin update ref creates with empty old value
expecting success:
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 98 - stdin create ref works with path with space to blob
expecting success:
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 99 - stdin update ref fails with wrong old value
expecting success:
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 100 - stdin update ref fails with bad old value
expecting success:
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 101 - stdin create ref fails with bad new value
expecting success:
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 102 - stdin create ref fails with zero new value
expecting success:
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 103 - stdin update ref works with right old value
expecting success:
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 104 - stdin delete ref fails with wrong old value
expecting success:
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 105 - stdin delete ref fails with zero old value
expecting success:
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 106 - stdin update symref works option no-deref
expecting success:
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 107 - stdin delete symref works option no-deref
expecting success:
echo "delete $b $m~1" >stdin &&
git update-ref --stdin <stdin &&
test_must_fail git rev-parse --verify -q $b
ok 108 - stdin delete ref works with right old value
expecting success:
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 109 - stdin update/create/verify combination works
expecting success:
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 110 - stdin verify succeeds for correct value
expecting success:
echo "verify refs/heads/missing $Z" >stdin &&
git update-ref --stdin <stdin &&
test_must_fail git rev-parse --verify -q refs/heads/missing
ok 111 - stdin verify succeeds for missing reference
expecting success:
echo "verify refs/heads/missing" >stdin &&
git update-ref --stdin <stdin &&
test_must_fail git rev-parse --verify -q refs/heads/missing
ok 112 - stdin verify treats no value as missing
expecting success:
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/master': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c
ok 113 - stdin verify fails for wrong value
expecting success:
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/master': reference already exists
ok 114 - stdin verify fails for mistaken null value
expecting success:
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/master': reference already exists
ok 115 - stdin verify fails for mistaken empty value
expecting success:
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 116 - stdin update refs works with identity updates
expecting success:
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 117 - stdin update refs fails with wrong old value
expecting success:
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 118 - stdin delete refs works with packed and loose refs
expecting success:
>stdin &&
git update-ref -z --stdin <stdin &&
git rev-parse --verify -q $m
536da9bc9e8e6d0baf01b41cf3cc49bb819559e6
ok 119 - stdin -z works on empty input
expecting success:
echo "" >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: whitespace before command: " err
fatal: whitespace before command:
ok 120 - stdin -z fails on empty line
expecting success:
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 121 - stdin -z fails on empty command
expecting success:
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 122 - stdin -z fails on only whitespace
expecting success:
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 123 - stdin -z fails on leading whitespace
expecting success:
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 124 - stdin -z fails on unknown command
expecting success:
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 125 - stdin -z fails create with no ref
expecting success:
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 126 - stdin -z fails create with no new value
expecting success:
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/master
ok 127 - stdin -z fails create with too many arguments
expecting success:
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 128 - stdin -z fails update with no ref
expecting success:
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 129 - stdin -z fails update with too few args
expecting success:
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 130 - stdin -z emits warning with empty new value
expecting success:
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 131 - stdin -z fails update with no new value
expecting success:
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 no old value
expecting success:
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/master
ok 133 - stdin -z fails update with too many arguments
expecting success:
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 134 - stdin -z fails delete with no ref
expecting success:
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 135 - stdin -z fails delete with no old value
expecting success:
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/master
ok 136 - stdin -z fails delete with too many arguments
expecting success:
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/master
ok 137 - stdin -z fails verify with too many arguments
expecting success:
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 138 - stdin -z fails verify with no old value
expecting success:
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 139 - stdin -z fails option with unknown name
expecting success:
printf $F "create $a" "$m" "create $b" "$m" "create $a" "$m" >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: multiple updates for ref '$a' not allowed." err
fatal: multiple updates for ref 'refs/heads/a' not allowed.
ok 140 - stdin -z fails with duplicate refs
expecting success:
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 141 - stdin -z create ref works
expecting success:
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 142 - stdin -z update ref creates with zero old value
expecting success:
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 143 - stdin -z update ref creates with empty old value
expecting success:
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 144 - stdin -z create ref works with path with space to blob
expecting success:
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 145 - stdin -z update ref fails with wrong old value
expecting success:
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 146 - stdin -z update ref fails with bad old value
expecting success:
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 147 - stdin -z create ref fails when ref exists
expecting success:
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 148 - stdin -z create ref fails with bad new value
expecting success:
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 149 - stdin -z create ref fails with empty new value
expecting success:
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 150 - stdin -z update ref works with right old value
expecting success:
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 151 - stdin -z delete ref fails with wrong old value
expecting success:
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 152 - stdin -z delete ref fails with zero old value
expecting success:
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 153 - stdin -z update symref works option no-deref
expecting success:
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 154 - stdin -z delete symref works option no-deref
expecting success:
printf $F "delete $b" "$m~1" >stdin &&
git update-ref -z --stdin <stdin &&
test_must_fail git rev-parse --verify -q $b
ok 155 - stdin -z delete ref works with right old value
expecting success:
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 156 - stdin -z update/create/verify combination works
expecting success:
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 157 - stdin -z verify succeeds for correct value
expecting success:
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 158 - stdin -z verify succeeds for missing reference
expecting success:
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 159 - stdin -z verify treats no value as missing
expecting success:
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/master': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c
ok 160 - stdin -z verify fails for wrong value
expecting success:
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/master': reference already exists
ok 161 - stdin -z verify fails for mistaken null value
expecting success:
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/master': reference already exists
ok 162 - stdin -z verify fails for mistaken empty value
expecting success:
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 163 - stdin -z update refs works with identity updates
expecting success:
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 164 - stdin -z update refs fails with wrong old value
expecting success:
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 165 - stdin -z delete refs works with packed and loose refs
expecting success:
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 &&
grep "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 166 - fails with duplicate HEAD update
expecting success:
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 &&
grep "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 167 - fails with duplicate ref update via symref
checking prerequisite: ULIMIT_FILE_DESCRIPTORS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test_have_prereq !MINGW,!CYGWIN &&
run_with_limited_open_files true
)
prerequisite ULIMIT_FILE_DESCRIPTORS ok
expecting success:
(
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 168 - large transaction creating branches does not burst open file limit
expecting success:
(
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 169 - large transaction deleting branches does not burst open file limit
expecting success:
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
) &&
test_path_is_missing .git/refs/bisect &&
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 2018-06-24 06:02:53.016077527 +0000
+++ worktree-head 2018-06-24 06:02:52.906074723 +0000
@@ -1 +1 @@
-58a052250c09f010b95ad9bfe32f35d704eda1a0
+b62e0cb4990da3244885da90fe7d493334cca9f5
ok 170 - handle per-worktree refs in refs/bisect
# passed all 170 test(s)
1..170
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:
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:
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:
$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:
git rev-parse FOO -- &&
git rev-parse refs/tags/new-tag -- &&
$RUN delete-refs 0 nothing FOO refs/tags/new-tag &&
test_must_fail git rev-parse FOO -- &&
test_must_fail git rev-parse refs/tags/new-tag --
d79ce1670bdcb76e6d1da2ae095e890ccb326ae9
--
407ffbd56c168afa4e9302a7cdfe469155f84482
--
fatal: bad revision 'FOO'
fatal: bad revision 'refs/tags/new-tag'
ok 4 - delete_refs(FOO, refs/tags/new-tag)
expecting success:
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:
$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:
$RUN for-each-ref refs/heads/ | cut -c 42- >actual &&
sort actual > expected &&
test_cmp expected actual
ok 7 - for_each_ref() is sorted
expecting success:
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:
$RUN verify-ref refs/heads/new-master
ok 9 - verify_ref(new-master)
expecting success:
$RUN for-each-reflog | sort -k2 | cut -c 42- >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:
$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:
$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:
$RUN reflog-exists HEAD
ok 13 - reflog_exists(HEAD)
expecting success:
$RUN delete-reflog HEAD &&
! test -f .git/logs/HEAD
ok 14 - delete_reflog(HEAD)
expecting success:
$RUN create-reflog HEAD 1 &&
test -f .git/logs/HEAD
ok 15 - create-reflog(HEAD)
expecting success:
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:
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'
*** t1406-submodule-ref-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1406-submodule-ref-store/.git/
expecting success:
git init sub &&
(
cd sub &&
test_commit first &&
git checkout -b new-master
)
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:
test_must_fail $RUN pack-refs 3
BUG: refs/files-backend.c:147: operation pack_refs requires abilities 0x6, but only have 0x5
ok 2 - pack_refs() not allowed
expecting success:
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:
test_must_fail $RUN create-symref FOO refs/heads/master nothing
BUG: refs/files-backend.c:147: operation create_symref requires abilities 0x2, but only have 0x5
ok 4 - create_symref() not allowed
expecting success:
test_must_fail $RUN delete-refs 0 nothing FOO refs/tags/new-tag
BUG: refs/files-backend.c:147: operation delete_refs requires abilities 0x2, but only have 0x5
ok 5 - delete_refs() not allowed
expecting success:
test_must_fail $RUN rename-ref refs/heads/master refs/heads/new-master
BUG: refs/files-backend.c:147: operation rename_ref requires abilities 0x2, but only have 0x5
ok 6 - rename_refs() not allowed
expecting success:
$RUN for-each-ref refs/heads/ | cut -c 42- >actual &&
cat >expected <<-\EOF &&
master 0x0
new-master 0x0
EOF
test_cmp expected actual
ok 7 - for_each_ref(refs/heads/)
expecting success:
$RUN for-each-ref refs/heads/ | cut -c 42- >actual &&
sort actual > expected &&
test_cmp expected actual
ok 8 - for_each_ref() is sorted
expecting success:
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:
$RUN verify-ref refs/heads/new-master
ok 10 - verify_ref(new-master)
expecting success:
$RUN for-each-reflog | sort | cut -c 42- >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:
$RUN for-each-reflog-ent HEAD >actual && cat 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
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:
$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:
$RUN reflog-exists HEAD
ok 14 - reflog_exists(HEAD)
expecting success:
test_must_fail $RUN delete-reflog HEAD
BUG: refs/files-backend.c:147: operation delete_reflog requires abilities 0x2, but only have 0x5
ok 15 - delete_reflog() not allowed
expecting success:
test_must_fail $RUN create-reflog HEAD 1
BUG: refs/files-backend.c:147: 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'
*** t1407-worktree-ref-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1407-worktree-ref-store/.git/
expecting success:
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:
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:
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:
$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:
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 -c 42- | 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 -c 42- | 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'
*** t1408-packed-refs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1408-packed-refs/.git/
expecting success:
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:
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'
*** t1404-update-ref-errors.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1404-update-ref-errors/.git/
expecting success:
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) a5b22da] Initial
Author: A U Thor <author@example.com>
[master eeb71db] Second
Author: A U Thor <author@example.com>
[master 029beb7] Third
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success:
prefix=refs/1l &&
test_update_rejected "a c e" false "b c/x d" \
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x$Q"
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:
prefix=refs/1p &&
test_update_rejected "a c e" true "b c/x d" \
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x$Q"
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:
prefix=refs/2l &&
test_update_rejected "a c e" false "b c/x/y d" \
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x/y$Q"
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:
prefix=refs/2p &&
test_update_rejected "a c e" true "b c/x/y d" \
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x/y$Q"
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:
prefix=refs/3l &&
test_update_rejected "a c/x e" false "b c d" \
"$Q$prefix/c/x$Q exists; cannot create $Q$prefix/c$Q"
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:
prefix=refs/3p &&
test_update_rejected "a c/x e" true "b c d" \
"$Q$prefix/c/x$Q exists; cannot create $Q$prefix/c$Q"
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:
prefix=refs/4l &&
test_update_rejected "a c/x/y e" false "b c d" \
"$Q$prefix/c/x/y$Q exists; cannot create $Q$prefix/c$Q"
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:
prefix=refs/4p &&
test_update_rejected "a c/x/y e" true "b c d" \
"$Q$prefix/c/x/y$Q exists; cannot create $Q$prefix/c$Q"
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:
prefix=refs/5 &&
test_update_rejected "a e" false "b c c/x d" \
"cannot process $Q$prefix/c$Q and $Q$prefix/c/x$Q 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:
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:
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:
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:
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:
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:
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:
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:
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:
df_test refs/df-al-ds --add-del foo/bar foo
ok 19 - D/F conflict prevents add long + delete short
expecting success:
df_test refs/df-as-dl --add-del foo foo/bar
ok 20 - D/F conflict prevents add short + delete long
expecting success:
df_test refs/df-dl-as --del-add foo/bar foo
ok 21 - D/F conflict prevents delete long + add short
expecting success:
df_test refs/df-ds-al --del-add foo foo/bar
ok 22 - D/F conflict prevents delete short + add long
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
prefix=refs/missing-update &&
cat >expected <<-EOF &&
fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q
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:
prefix=refs/incorrect-update &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
fatal: cannot lock ref $Q$prefix/foo$Q: 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:
prefix=refs/existing-create &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
fatal: cannot lock ref $Q$prefix/foo$Q: 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:
prefix=refs/incorrect-delete &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
fatal: cannot lock ref $Q$prefix/foo$Q: 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:
prefix=refs/missing-indirect-update &&
git symbolic-ref $prefix/symref $prefix/foo &&
cat >expected <<-EOF &&
fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q
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:
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 $Q$prefix/symref$Q: 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:
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 $Q$prefix/symref$Q: 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:
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 $Q$prefix/symref$Q: 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:
prefix=refs/missing-noderef-update &&
git symbolic-ref $prefix/symref $prefix/foo &&
cat >expected <<-EOF &&
fatal: cannot lock ref $Q$prefix/symref$Q: 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:
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 $Q$prefix/symref$Q: 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:
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 $Q$prefix/symref$Q: 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:
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 $Q$prefix/symref$Q: 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:
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 $Q$prefix/foo$Q: there is a non-empty directory $Q.git/$prefix/foo$Q blocking reference $Q$prefix/foo$Q
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 $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q
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:
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 $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q: 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 $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q: 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:
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 $Q$prefix/symref$Q: there is a non-empty directory $Q.git/$prefix/foo$Q blocking reference $Q$prefix/foo$Q
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 $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q
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:
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 $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q: 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 $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q: 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:
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 longer than
# it takes for us to do the check then delete it:
git -c core.packedrefstimeout=3000 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:
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 $Q.*packed-refs.lock$Q: File exists" 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
# passed all 52 test(s)
1..52
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:
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) 77e412a] Commit A
Author: A U Thor <author@example.com>
[master 2720ad3] Commit B
Author: A U Thor <author@example.com>
[master b283d61] Commit C
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success:
test_must_fail test -f .git/packed-refs &&
git update-ref refs/heads/foo $A &&
test_must_fail test -f .git/packed-refs &&
git update-ref refs/heads/foo $B &&
test_must_fail test -f .git/packed-refs &&
git update-ref refs/heads/foo $C $B &&
test_must_fail test -f .git/packed-refs &&
git update-ref -d refs/heads/foo &&
test_must_fail test -f .git/packed-refs
ok 2 - do not create packed-refs file gratuitously
expecting success:
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 &&
test_must_fail 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:
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:
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:
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:
git update-ref refs/heads/packed-delete $A &&
git pack-refs --all &&
mark_packed_refs &&
git update-ref -d refs/heads/packed-delete &&
test_must_fail check_packed_refs_marked
ok 7 - touch packed-refs on delete of packed
expecting success:
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:
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:
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:
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:
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:
git log -g -1 >tmp &&
grep ^Reflog <tmp >actual &&
test_cmp expect actual
ok 2 - log -g shows reflog headers
expecting success:
git log -g -1 --oneline >actual &&
test_cmp expect actual
ok 3 - oneline reflog format
expecting success:
git reflog -1 >actual &&
test_cmp expect actual
ok 4 - reflog default format
expecting success:
git reflog --format=short -1 >actual &&
test_cmp expect actual
ok 5 - override reflog default format
expecting success:
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:
git log -g -1 --oneline HEAD@{now} >actual &&
test_cmp expect actual
ok 7 - using @{now} syntax shows reflog date (oneline)
expecting success:
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:
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:
git log -g -1 --oneline --date=default >actual &&
test_cmp expect actual
ok 10 - using --date= shows reflog date (oneline)
expecting success:
git log -g -1 --format=%gd --date=raw >actual &&
test_cmp expect actual
ok 11 - using --date= shows reflog date (format=%gd)
expecting success:
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:
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:
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:
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:
git branch empty &&
git reflog expire --expire=all refs/heads/empty &&
git log -g empty >actual &&
test_cmp expect actual
ok 16 - empty reflog file
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5ce2b00 second
ok 4 - detach to other
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5ce2b00 second
ok 5 - detach to self
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5ce2b00 second
Switched to branch 'master'
ok 6 - attach to self
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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:
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:
corrupt $F &&
check_fsck "missing blob $F"
missing blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 3 - corrupt and check
expecting success:
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:
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:
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:
recover $F &&
check_fsck "dangling blob $F"
dangling blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 7 - recover and check
expecting success:
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 $(($master_entry_count - 1)) = $(wc -l < 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 $(($master_entry_count - 1)) = $(wc -l < 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:
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:
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:
git config gc.reflogexpire never &&
git config gc.reflogexpireunreachable never &&
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 11 - gc.reflogexpire=never
expecting success:
git config gc.reflogexpire false &&
git config gc.reflogexpireunreachable false &&
git reflog expire --verbose --all &&
git reflog refs/heads/master >output &&
test_line_count = 4 output &&
git config --unset gc.reflogexpire &&
git config --unset gc.reflogexpireunreachable
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:
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 13 - checkout should not delete log for packed ref
expecting success:
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 14 - stale dirs do not cause d/f conflicts (reflogs on)
expecting success:
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 &&
: >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 off)
expecting success:
git checkout -b reflogskip &&
z38=00000000000000000000000000000000000000 &&
ident="abc <xyz> 0000000001 +0000" &&
for i in $(test_seq 1 75); do
printf "$z38%02d $z38%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 ${z38}03 >expect &&
test_cmp expect actual
Switched to a new branch 'reflogskip'
ok 16 - parsing reverse reflogs at BUFSIZ boundaries
expecting success:
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 17 - no segfaults for reflog containing non-commit sha1s
checking known breakage:
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 18 - reflog with non-commit entries displays all entries # TODO known breakage
expecting success:
git branch -l the_symref &&
git branch -l 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 19 - reflog expire operates on symref not referrent
expecting success:
git init orphanage &&
(
cd orphanage &&
cat >expect <<-\EOF &&
HEAD@{0} commit (initial): orphan2-1
HEAD@{1} commit: orphan1-2
HEAD@{2} commit (initial): orphan1-1
HEAD@{3} commit (initial): initial
EOF
test_commit initial &&
git checkout --orphan orphan1 &&
test_commit orphan1-1 &&
test_commit orphan1-2 &&
git checkout --orphan orphan2 &&
test_commit orphan2-1 &&
git log -g --format="%gd %gs" >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1410-reflog/orphanage/.git/
[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 20 - continue walking past root commits
# still have 1 known breakage(s)
# passed all remaining 19 test(s)
1..20
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:
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:
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'
*** t1414-reflog-walk.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1414-reflog-walk/.git/
expecting success:
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:
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:
do_walk >actual &&
test_cmp expect.all actual
ok 3 - reflog walk shows expected logs
expecting success:
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:
grep two expect.all >expect &&
do_walk -- two.t >actual &&
test_cmp expect actual
ok 5 - reflog can limit with pathspecs
expecting success:
# 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:
# 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:
# 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:
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:
# 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:
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:
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
--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'
*** t1430-bad-ref-name.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/.git/
expecting success:
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:
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_11905
ok 2 - fast-import: fail on invalid branch name ".badbranchname"
expecting success:
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_11929
ok 3 - fast-import: fail on invalid branch name "bad[branch]name"
expecting success:
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
warning: ignoring ref with broken name refs/heads/broken...ref
ok 4 - git branch shows badly named ref as warning
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/src/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/dest/.git/
[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
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
mkdir -p sub/dir work &&
cp -R .git repo.git
ok 1 - setup
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
echo .git >expect &&
git rev-parse --git-common-dir >actual &&
test_cmp expect actual
ok 60 - git-common-dir from worktree root
expecting success:
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:
echo .git/objects >expect &&
git rev-parse --git-path objects >actual &&
test_cmp expect actual
ok 62 - git-path from worktree root
expecting success:
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:
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:
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:
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 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
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.
ok 66 - showing the superproject correctly
# passed all 66 test(s)
1..66
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:
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:
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 -s actual.prefix ||
test_cmp expected.prefix actual.prefix
fi
}
ok 2 - setup: helper for testing rev-parse
expecting success:
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:
test_rev_parse false false false
ok 4 - outside
expecting success:
(
cd work &&
GIT_DIR=../repo.git &&
GIT_CONFIG="$(pwd)"/$GIT_DIR/config &&
test_rev_parse false false true ""
)
ok 5 - inside work tree
expecting success:
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:
(
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:
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:
test_rev_parse false false false &&
(
cd work2 &&
test_rev_parse false false false
)
ok 9 - outside
expecting success:
(
cd work &&
test_rev_parse false false true ""
)
ok 10 - inside work tree
expecting success:
(
cd work/sub/dir &&
test_rev_parse false false true sub/dir/
)
ok 11 - subdir of work tree
expecting success:
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:
test_rev_parse false false false &&
(
cd work2 &&
test_rev_parse false false false
)
ok 13 - outside
expecting success:
(
cd work &&
GIT_WORK_TREE=. &&
test_rev_parse false false true ""
)
ok 14 - inside work tree
expecting success:
(
cd work/sub/dir &&
GIT_WORK_TREE=../.. &&
test_rev_parse false false true sub/dir/
)
ok 15 - subdir of work tree
expecting success:
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:
echo outside &&
test_rev_parse false false false
outside
ok 17 - outside
expecting success:
(
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:
(
cd repo.git/work &&
test_rev_parse false true true ""
)
ok 19 - inside work tree
expecting success:
(
cd repo.git/work/sub/dir &&
test_rev_parse false true true sub/dir/
)
ok 20 - subdir of work tree
expecting success:
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:
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:
(
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:
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:
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:
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:
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:
(
cd repo.git &&
GIT_DIR=. GIT_WORK_TREE=work git commit -a -m done
)
[master (root-commit) fca55b6] 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:
(
cd repo.git &&
test_might_fail git config --unset core.worktree &&
test_must_fail git log HEAD -- /home
)
fatal: /home: '/home' is outside repository
ok 29 - absolute pathspec should fail gracefully
expecting success:
>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:
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:
mkdir work &&
mkdir -p repo.git/repos/foo &&
cp repo.git/HEAD repo.git/index repo.git/repos/foo &&
test_might_fail 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:
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:
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:
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:
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:
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:
(
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:
git init relative &&
git -C relative commit --allow-empty -m one &&
git -C relative commit --allow-empty -m two &&
GIT_DIR=relative/.git GIT_WORK_TREE=relative git reset HEAD^ &&
git -C relative log -1 --format=%s >actual &&
echo one >expect &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1501-work-tree/relative/.git/
[master (root-commit) ab80fc1] one
Author: A U Thor <author@example.com>
[master 3451b6e] 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:
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:
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:
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:
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
ok 4 - test --parseopt help output
expecting success:
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:
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:
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:
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:
cat > expect <<EOF
set -- --foo --bar 'ham' -b --aswitch -- 'arg'
EOF
ok 9 - setup expect.1
expecting success:
git rev-parse --parseopt -- --foo --bar=ham --baz --aswitch arg < optionspec > output &&
test_cmp expect output
ok 10 - test --parseopt
expecting success:
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:
cat > expect <<EOF
set -- --foo -- 'arg' '--bar=ham'
EOF
ok 12 - setup expect.2
expecting success:
git rev-parse --parseopt -- --foo -- arg --bar=ham < optionspec > output &&
test_cmp expect output
ok 13 - test --parseopt with --
expecting success:
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:
cat > expect <<EOF
set -- --foo -- '--' 'arg' '--bar=ham'
EOF
ok 15 - setup expect.3
expecting success:
git rev-parse --parseopt --keep-dashdash -- --foo -- arg --bar=ham < optionspec > output &&
test_cmp expect output
ok 16 - test --parseopt --keep-dashdash
expecting success:
cat >expect <<EOF
set -- --foo -- '--' 'arg' '--spam=ham'
EOF
ok 17 - setup expect.4
expecting success:
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:
cat > expect <<EOF
set -- --foo -- 'arg' '--spam=ham'
EOF
ok 19 - setup expect.5
expecting success:
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:
cat > expect <<EOF
set -- --foo --bar='z' --baz -C'Z' --data='A' -- 'arg'
EOF
ok 21 - setup expect.6
expecting success:
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:
cat > expect <<EOF
set -- --data='' -C --baz -- 'arg'
EOF
ok 23 - setup expect.7
expecting success:
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:
cat > expect <<EOF
set -- --data --baz -- 'arg'
EOF
ok 25 - setup expect.8
expecting success:
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:
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'
*** t1503-rev-parse-verify.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1503-rev-parse-verify/.git/
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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
# passed all 11 test(s)
1..11
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: test '' = "$(git rev-parse --show-prefix)"
ok 1 - no_ceil
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 2 - ceil_empty
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 3 - ceil_at_parent
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 4 - ceil_at_parent_slash
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 5 - ceil_at_trash
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 6 - ceil_at_trash_slash
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 7 - ceil_at_sub
expecting success: test '' = "$(git rev-parse --show-prefix)"
ok 8 - ceil_at_sub_slash
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 9 - subdir_no_ceil
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 10 - subdir_ceil_empty
expecting success:
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:
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:
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:
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:
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:
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: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 17 - subdir_ceil_at_top_no_resolve
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 18 - subdir_ceil_at_top_slash_no_resolve
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 19 - subdir_ceil_at_subdir
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 20 - subdir_ceil_at_subdir_slash
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 21 - subdir_ceil_at_su
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 22 - subdir_ceil_at_su_slash
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 23 - subdir_ceil_at_sub_di
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 24 - subdir_ceil_at_sub_di_slash
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 25 - subdir_ceil_at_subdi
expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 26 - subdir_ceil_at_subdi_slash
expecting success:
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:
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:
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: test '' = "$(git rev-parse --show-prefix)"
ok 30 - git_dir_specified
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 31 - sd_no_ceil
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 32 - sd_ceil_empty
expecting success:
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:
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:
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:
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: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 37 - sd_ceil_at_sd
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 38 - sd_ceil_at_sd_slash
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 39 - sd_ceil_at_su
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 40 - sd_ceil_at_su_slash
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 41 - sd_ceil_at_s_di
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 42 - sd_ceil_at_s_di_slash
expecting success: test 's/d/' = "$(git rev-parse --show-prefix)"
ok 43 - sd_ceil_at_sdi
expecting success: 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'
*** t1450-fsck.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/.git/
expecting success:
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 &&
>empty
[master (root-commit) 1347563] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 fileA
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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_cmp empty actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/another/.git/
[master (root-commit) 1aac250] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 fileC
ok 2 - loose objects borrowed from alternate are not missing
expecting success:
git fsck >actual 2>&1 &&
test_cmp empty actual
ok 3 - HEAD is part of refs, valid objects appear valid
expecting success:
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:
sha=$(echo blob | git hash-object -w --stdin) &&
old=$(echo $sha | sed "s+^..+&/+") &&
new=$(dirname $old)/ffffffffffffffffffffffffffffffffffffff &&
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 &&
cat out &&
grep "$sha.*corrupt" out
missing blob 63ffffffffffffffffffffffffffffffffffffff
error: sha1 mismatch for .git/objects/63/ffffffffffffffffffffffffffffffffffffff (expected 63ffffffffffffffffffffffffffffffffffffff)
error: 63ffffffffffffffffffffffffffffffffffffff: object corrupt or missing: .git/objects/63/ffffffffffffffffffffffffffffffffffffff
error: 63ffffffffffffffffffffffffffffffffffffff: object corrupt or missing: .git/objects/63/ffffffffffffffffffffffffffffffffffffff
ok 5 - object with bad sha1
expecting success:
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 &&
cat out &&
grep "not a commit" out
error: refs/heads/invalid: not a commit
error: refs/heads/invalid: not a commit
ok 6 - branch pointing to non-commit
expecting success:
test_when_finished "mv .git/SAVED_HEAD .git/HEAD" &&
mv .git/HEAD .git/SAVED_HEAD &&
echo 0000000000000000000000000000000000000000 >.git/HEAD &&
# avoid corrupt/broken HEAD from interfering with repo discovery
test_must_fail env GIT_DIR=.git git fsck 2>out &&
cat out &&
grep "detached HEAD points" out
dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: HEAD: detached HEAD points at nothing
error: HEAD: detached HEAD points at nothing
ok 7 - HEAD link pointing at a funny object
expecting success:
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 &&
cat out &&
grep "HEAD points to something strange" out
dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: HEAD points to something strange (refs/funny/place)
error: HEAD points to something strange (refs/funny/place)
ok 8 - HEAD link pointing at a funny place
expecting success:
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 &&
cat out &&
! grep "commit $new" out
ok 9 - email without @ is okay
expecting success:
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 &&
cat out &&
grep "error in commit $new" out
error in commit af421232fcba11d582d625f9041afbe3fccc01d9: missingSpaceBeforeDate: invalid author/committer line - missing space before date
error in commit af421232fcba11d582d625f9041afbe3fccc01d9: missingSpaceBeforeDate: invalid author/committer line - missing space before date
ok 10 - email with embedded > is not okay
expecting success:
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 &&
cat out &&
grep "error in commit $new.* - bad name" out
error in commit c4b6d356e934be1cc10cb58c734fbcc5fa3a5285: badName: invalid author/committer line - bad name
error in commit c4b6d356e934be1cc10cb58c734fbcc5fa3a5285: badName: invalid author/committer line - bad name
ok 11 - missing < email delimiter is reported nicely
expecting success:
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 &&
cat out &&
grep "error in commit $new.* - missing email" out
error in commit 35319efb0a67194811f8583362d460866d58b499: missingEmail: invalid author/committer line - missing email
error in commit 35319efb0a67194811f8583362d460866d58b499: missingEmail: invalid author/committer line - missing email
ok 12 - missing email is reported nicely
expecting success:
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 &&
cat out &&
grep "error in commit $new" out
error in commit 301380051321b3e224015eea93b0ebc550c88198: badName: invalid author/committer line - bad name
error in commit 301380051321b3e224015eea93b0ebc550c88198: badName: invalid author/committer line - bad name
ok 13 - > in name is reported
expecting success:
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 &&
cat out &&
grep "error in commit $new.*integer overflow" out
error in commit c8453435c3587d0404f88f925c28a5944b73be1a: badDateOverflow: invalid author/committer line - date causes integer overflow
error in commit c8453435c3587d0404f88f925c28a5944b73be1a: badDateOverflow: invalid author/committer line - date causes integer overflow
ok 14 - integer overflow in timestamps is reported
expecting success:
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 &&
cat out &&
grep "error in commit $new.*unterminated header: NUL at offset" out
error in commit b70520fa0e6346c648b4013350096f65f49946eb: nulInHeader: unterminated header: NUL at offset 101
error in commit b70520fa0e6346c648b4013350096f65f49946eb: nulInHeader: unterminated header: NUL at offset 101
ok 15 - commit with NUL in header
expecting success:
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 &&
grep "error in tree .*contains duplicate file entries" out
dangling tree 5805b676e247eb9a8046ad0c4d249cd2fb2513df
dangling tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580
error in tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580: duplicateEntries: contains duplicate file entries
ok 16 - tree object with duplicate entries
expecting success:
test_when_finished "git update-ref -d refs/heads/wrong" &&
test_when_finished "remove_object \$tree_sha1" &&
test_when_finished "remove_object \$commit_sha1" &&
tree_sha1=$(printf "100644 \0twenty-bytes-of-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 17 - unparseable tree object
expecting success:
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 18 - tree entry with type mismatch
expecting success:
cat >invalid-tag <<-\EOF &&
object ffffffffffffffffffffffffffffffffffffffff
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 &&
cat out &&
grep "broken link" out
tagged commit ffffffffffffffffffffffffffffffffffffffff (invalid) in 1b6f5c03992c29264810d290b006c47651933356
broken link from tag 1b6f5c03992c29264810d290b006c47651933356
to commit ffffffffffffffffffffffffffffffffffffffff
missing commit ffffffffffffffffffffffffffffffffffffffff
broken link from tag 1b6f5c03992c29264810d290b006c47651933356
ok 19 - tag pointing to nonexistent
expecting success:
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 in tag 66f6581d549f70e05ca586bc2df5c15a95662c36: broken links
error in tag 66f6581d549f70e05ca586bc2df5c15a95662c36: badTagObject: could not load tagged object
broken link from tag 66f6581d549f70e05ca586bc2df5c15a95662c36
broken link from unknown unknown
dangling blob 63499e4ea8e096b831515ceb1d5a7593e4d87ae5
ok 20 - tag pointing to something else than its type
expecting success:
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_cmp expect out
tagged commit c9145d6720f85544cc4bb6009a2e541660aa156b (wrong name format) in 6d73f1b4d41e4fdac4ba717a11e7409876bb75c3
ok 21 - tag with incorrect tag name & missing tagger
expecting success:
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 &&
grep "error in tag .*: invalid author/committer" out
error in tag d037dcc834669cc0c5d3416130c899572cb1aedd: missingEmail: invalid author/committer line - missing email
ok 22 - tag with bad tagger
expecting success:
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 &&
cat out &&
grep "error in tag $tag.*unterminated header: NUL at offset" out
error in tag 6251166df5b0f4b7f840db1a9af555089418c925: nulInHeader: unterminated header: NUL at offset 73
error in tag 6251166df5b0f4b7f840db1a9af555089418c925: nulInHeader: unterminated header: NUL at offset 73
ok 23 - tag with NUL in header
expecting success:
git fsck >actual 2>&1 &&
test_cmp empty actual
ok 24 - cleaned up
expecting success:
git rev-list --verify-objects --all >/dev/null 2>out &&
test_cmp empty out
ok 25 - rev-list --verify-objects
expecting success:
sha=$(echo blob | git hash-object -w --stdin) &&
old=$(echo $sha | sed "s+^..+&/+") &&
new=$(dirname $old)/ffffffffffffffffffffffffffffffffffffff &&
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 &&
cat out &&
grep -q "error: sha1 mismatch 63ffffffffffffffffffffffffffffffffffffff" out
error: sha1 mismatch 63ffffffffffffffffffffffffffffffffffffff
ok 26 - rev-list --verify-objects with bad sha1
expecting success:
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 27 - force fsck to ignore double author
expecting success:
(git init null-blob &&
cd null-blob &&
sha=$(printf "100644 file$_bz$_bz20" |
git hash-object -w --stdin -t tree) &&
git fsck 2>out &&
cat out &&
grep "warning.*null sha1" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/null-blob/.git/
dangling tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8
notice: HEAD points to an unborn branch (master)
warning in tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8: nullSha1: contains entries pointing to null sha1
notice: No default references
warning in tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8: nullSha1: contains entries pointing to null sha1
ok 28 - fsck notices blob entry pointing to null sha1
expecting success:
(git init null-commit &&
cd null-commit &&
sha=$(printf "160000 submodule$_bz$_bz20" |
git hash-object -w --stdin -t tree) &&
git fsck 2>out &&
cat out &&
grep "warning.*null sha1" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/null-commit/.git/
dangling tree f87f3eabd15018382578c00e3a71a46c842e17e6
notice: HEAD points to an unborn branch (master)
warning in tree f87f3eabd15018382578c00e3a71a46c842e17e6: nullSha1: contains entries pointing to null sha1
notice: No default references
warning in tree f87f3eabd15018382578c00e3a71a46c842e17e6: nullSha1: contains entries pointing to null sha1
ok 29 - fsck notices submodule entry pointing to null sha1
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185
warning in tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185: hasDot: contains '.'
warning in tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185: hasDot: contains '.'
ok 30 - fsck notices . as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 8984d55df404e56c99a9c5a2e5a168084a913e8f
warning in tree 8984d55df404e56c99a9c5a2e5a168084a913e8f: hasDot: contains '.'
warning in tree 8984d55df404e56c99a9c5a2e5a168084a913e8f: hasDot: contains '.'
ok 31 - fsck notices . as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotdot-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 879560d9e3297f45ca9c25d4eea563f8dd179a32
warning in tree 879560d9e3297f45ca9c25d4eea563f8dd179a32: hasDotdot: contains '..'
warning in tree 879560d9e3297f45ca9c25d4eea563f8dd179a32: hasDotdot: contains '..'
ok 32 - fsck notices .. as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotdot-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree e704ff9811f799e752c8894dbc145bc74e4561fa
warning in tree e704ff9811f799e752c8894dbc145bc74e4561fa: hasDotdot: contains '..'
warning in tree e704ff9811f799e752c8894dbc145bc74e4561fa: hasDotdot: contains '..'
ok 33 - fsck notices .. as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 8ac5f64528d35de17a03755d2f3387af1de58b5a
warning in tree 8ac5f64528d35de17a03755d2f3387af1de58b5a: hasDotgit: contains '.git'
warning in tree 8ac5f64528d35de17a03755d2f3387af1de58b5a: hasDotgit: contains '.git'
ok 34 - fsck notices .git as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 69237360529ca48e6b6c1af14e753faabe339fb7
warning in tree 69237360529ca48e6b6c1af14e753faabe339fb7: hasDotgit: contains '.git'
warning in tree 69237360529ca48e6b6c1af14e753faabe339fb7: hasDotgit: contains '.git'
ok 35 - fsck notices .git as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e
warning in tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e: hasDotgit: contains '.git'
warning in tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e: hasDotgit: contains '.git'
ok 36 - fsck notices .GIT as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 968a2dfde1e164e0513456c00ef656b2497434a3
warning in tree 968a2dfde1e164e0513456c00ef656b2497434a3: hasDotgit: contains '.git'
warning in tree 968a2dfde1e164e0513456c00ef656b2497434a3: hasDotgit: contains '.git'
ok 37 - fsck notices .GIT as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-unicode-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb
warning in tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb: hasDotgit: contains '.git'
warning in tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb: hasDotgit: contains '.git'
ok 38 - fsck notices .gI{u200c}T as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-unicode-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 6a547d921721f1cf91601a53fcc7aae232947d23
warning in tree 6a547d921721f1cf91601a53fcc7aae232947d23: hasDotgit: contains '.git'
warning in tree 6a547d921721f1cf91601a53fcc7aae232947d23: hasDotgit: contains '.git'
ok 39 - fsck notices .gI{u200c}T as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case2-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 3e29dd65f814deffead951c60da749fdf8a668c8
warning in tree 3e29dd65f814deffead951c60da749fdf8a668c8: hasDotgit: contains '.git'
warning in tree 3e29dd65f814deffead951c60da749fdf8a668c8: hasDotgit: contains '.git'
ok 40 - fsck notices .Git as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case2-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4
warning in tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4: hasDotgit: contains '.git'
warning in tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4: hasDotgit: contains '.git'
ok 41 - fsck notices .Git as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/git-tilde1-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20
warning in tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20: hasDotgit: contains '.git'
warning in tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20: hasDotgit: contains '.git'
ok 42 - fsck notices git~1 as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/git-tilde1-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 06f99accfb778f3318c72f3ae1c809cca146d27c
warning in tree 06f99accfb778f3318c72f3ae1c809cca146d27c: hasDotgit: contains '.git'
warning in tree 06f99accfb778f3318c72f3ae1c809cca146d27c: hasDotgit: contains '.git'
ok 43 - fsck notices git~1 as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgitdot-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 08554698725ae2bc2c2ae0172779111c62bda7a2
warning in tree 08554698725ae2bc2c2ae0172779111c62bda7a2: hasDotgit: contains '.git'
warning in tree 08554698725ae2bc2c2ae0172779111c62bda7a2: hasDotgit: contains '.git'
ok 44 - fsck notices .git. as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgitdot-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266
warning in tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266: hasDotgit: contains '.git'
warning in tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266: hasDotgit: contains '.git'
ok 45 - fsck notices .git. as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-backslash-case-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 4447c608c557aa9e2d0d226c7af1f06937133ea1
warning in tree 4447c608c557aa9e2d0d226c7af1f06937133ea1: hasDotgit: contains '.git'
warning in tree 4447c608c557aa9e2d0d226c7af1f06937133ea1: hasDotgit: contains '.git'
ok 46 - fsck notices .\.GIT\foobar as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-backslash-case-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4
warning in tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4: hasDotgit: contains '.git'
warning in tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4: hasDotgit: contains '.git'
ok 47 - fsck notices .\.GIT\foobar as tree
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-backslash-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652
warning in tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652: hasDotgit: contains '.git'
warning in tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652: hasDotgit: contains '.git'
ok 48 - fsck notices .git\foobar as blob
expecting success:
(
git init $name-$type &&
cd $name-$type &&
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 &&
cat out &&
grep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-backslash-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff
warning in tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff: hasDotgit: contains '.git'
warning in tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff: hasDotgit: contains '.git'
ok 49 - fsck notices .git\foobar as tree
expecting success:
(
git init not-dotgit &&
cd not-dotgit &&
echo content >file &&
git add file &&
git commit -m base &&
blob=$(git rev-parse :file) &&
printf "100644 blob $blob\t.\\305\\207it" >tree &&
tree=$(git mktree <tree) &&
git fsck 2>err &&
test_line_count = 0 err
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/not-dotgit/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree b6cf3d0dca284724c6c6a7005056d573f86157d7
ok 50 - fsck allows .Ňit
expecting success:
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 &&
grep nulInCommit warn.1 &&
git fsck 2>warn.2 &&
grep nulInCommit warn.2
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/nul-in-commit/.git/
[master (root-commit) c31a7f2] initial commitQNUL after message
Author: A U Thor <author@example.com>
error in commit f2f2305a657f7e4cfa7cd358e43c37ab0394720d: nulInCommit: NUL byte in the commit object body
warning in commit f2f2305a657f7e4cfa7cd358e43c37ab0394720d: nulInCommit: NUL byte in the commit object body
ok 51 - NUL in commit
expecting success:
create_repo_missing HEAD:subdir/file &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
missing blob d95f3ad14dee633a758d2e331151e950dd13e4ed
ok 52 - fsck notices missing blob
expecting success:
create_repo_missing HEAD:subdir &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
error: 07753f428765ac1afe2020b24e40785869bd4a85: invalid sha1 pointer in cache-tree
broken link from tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304
to tree 07753f428765ac1afe2020b24e40785869bd4a85
missing tree 07753f428765ac1afe2020b24e40785869bd4a85
ok 53 - fsck notices missing subtree
expecting success:
create_repo_missing HEAD^{tree} &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
error: 5f9d5fe4279246e5b2ddcd446efc2aed53a52304: invalid sha1 pointer in cache-tree
broken link from commit ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3
to tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304
dangling tree 07753f428765ac1afe2020b24e40785869bd4a85
missing tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304
ok 54 - fsck notices missing root tree
expecting success:
create_repo_missing HEAD^ &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
error: HEAD: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0
error: HEAD: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0
error: refs/heads/master: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0
error: refs/heads/master: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0
broken link from commit ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3
to commit d38f542f2d868bcbbb09173528a3bb403f53a0f0
dangling tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
missing commit d38f542f2d868bcbbb09173528a3bb403f53a0f0
ok 55 - fsck notices missing parent
expecting success:
create_repo_missing tag^{blob} &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
broken link from tag 7c115056e13b1f41142fe9e6f6cb98a1c077facd
to blob c21c9352f7526e9576892a6631e0e8cf1fccd34d
missing blob c21c9352f7526e9576892a6631e0e8cf1fccd34d
ok 56 - fsck notices missing tagged object
expecting success:
create_repo_missing HEAD &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
error: HEAD: invalid sha1 pointer ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3
error: refs/heads/master: invalid sha1 pointer ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3
error: HEAD: invalid reflog entry ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3
error: refs/heads/master: invalid reflog entry ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3
ok 57 - fsck notices ref pointing to missing commit
expecting success:
create_repo_missing tag &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
error: refs/tags/tag: invalid sha1 pointer 7c115056e13b1f41142fe9e6f6cb98a1c077facd
dangling blob c21c9352f7526e9576892a6631e0e8cf1fccd34d
ok 58 - fsck notices ref pointing to missing tag
expecting success:
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/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 &&
blob=$(echo unrelated | git hash-object -w --stdin) &&
mv -f $(sha1_file $blob) $empty &&
test_must_fail git fsck --strict &&
git fsck --strict --connectivity-only &&
tree=$(git rev-parse HEAD:) &&
suffix=${tree#??} &&
tree=.git/objects/${tree%$suffix}/$suffix &&
rm -f $tree &&
echo invalid >$tree &&
test_must_fail git fsck --strict --connectivity-only
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/connectivity-only/.git/
[master (root-commit) 86520b7] empty
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 empty
create mode 100644 empty.t
error: sha1 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 59 - fsck --connectivity-only
expecting success:
rm -rf connectivity-only &&
git init connectivity-only &&
(
cd connectivity-only &&
test_commit foo &&
rm -f .git/index &&
tree=$(git rev-parse HEAD^{tree}) &&
remove_object $(git rev-parse HEAD:foo.t) &&
test_must_fail git fsck --connectivity-only $tree
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/connectivity-only/.git/
[master (root-commit) 31f3b95] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
broken link from tree 64fd3796c57084e7b8cbae358ce37970b8e954f6
to blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99
missing blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99
dangling commit 31f3b953b325df75c7b6fbf854b59ac67382ac3b
ok 60 - fsck --connectivity-only with explicit head
expecting success:
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:) &&
egrep "$tree \((refs/heads/master|HEAD)@\{[0-9]*\}:" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/name-objects/.git/
[master (root-commit) 6ab43a8] julius
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 caesar.t
[master 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/heads/master@{1112912113}:)
ok 61 - fsck --name-objects
expecting success:
test_when_finished "rm -rf alt.git .git/objects/info/alternates" &&
git init --bare alt.git &&
echo "../../alt.git/objects" >.git/objects/info/alternates &&
mkdir alt.git/objects/12 &&
>alt.git/objects/12/34567890123456789012345678901234567890 &&
test_must_fail git fsck >out 2>&1 &&
grep alt.git out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/
error: object file /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/objects/12/34567890123456789012345678901234567890 is empty
error: unable to mmap /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/objects/12/34567890123456789012345678901234567890: No such file or directory
error: 1234567890123456789012345678901234567890: object corrupt or missing: /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/objects/12/34567890123456789012345678901234567890
ok 62 - alternate objects are correctly blamed
expecting success:
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 &&
grep "error in commit $one.* - bad name" out &&
grep "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 63 - fsck errors in packed objects
expecting success:
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.000424677 s, 2.4 kB/s
error: .git/objects/pack/pack-8be9f6a4139bcddd74c3d2ed343bb71e87863c4b.pack pack checksum mismatch
ok 64 - fsck fails on corrupt packfile
expecting success:
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
)
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 65 - fsck finds problems in duplicate loose objects
expecting success:
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 66 - fsck detects trailing loose garbage (commit)
expecting success:
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 fsck 2>out &&
test_i18ngrep "garbage.*$blob" out
error: garbage at end of loose object '1e285548b47be8577f0549b6ebcecb242e692df3'
ok 67 - fsck detects trailing loose garbage (blob)
expecting success:
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
git fsck >actual &&
# the output order is non-deterministic, as it comes from a hash
sort <actual >actual.sorted &&
test_cmp expect actual.sorted
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dangling/.git/
notice: HEAD points to an unborn branch (master)
notice: No default references
ok 68 - fsck notices dangling objects
expecting success:
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 69 - fsck $name notices bogus $name
expecting success:
# 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 70 - bogus head does not fallback to all heads
expecting success:
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 &&
grep "bad index file" errors
error: bad index file sha1 signature
ok 71 - detect corrupt index file in fsck
# passed all 71 test(s)
1..71
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:
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) 5fc553b] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1
[master e044c14] 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2
[master 9a87d1a] 3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3
Switched to branch 'side'
[side c2cbb5a] 4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4
Merging:
c2cbb5a 4
virtual master
found 1 common ancestor:
5fc553b 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:
test_cmp_rev side @{-1}
ok 2 - @{-1} works
expecting success:
test_cmp_rev side~2 @{-1}~2
ok 3 - @{-1}~2 works
expecting success:
test_cmp_rev side^2 @{-1}^2
ok 4 - @{-1}^2 works
expecting success:
test_cmp_rev side@{1} @{-1}@{1}
ok 5 - @{-1}@{1} works
expecting success:
test_cmp_rev master @{-2}
ok 6 - @{-2} works
expecting success:
test_must_fail git rev-parse @{-3}
fatal: ambiguous argument '@{-3}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
@{-3}
ok 7 - @{-3} fails
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1506-rev-parse-diagnosis.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1506-rev-parse-diagnosis/.git/
expecting success:
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) b11a36f] 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:
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:
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:
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:
(
cd subdir &&
git rev-parse HEAD:../file.txt >result &&
test_cmp ../expected result
)
ok 5 - correct relative file objects (2)
expecting success:
(
cd subdir &&
git rev-parse HEAD:../subdir/../file.txt >result &&
test_cmp ../expected result
)
ok 6 - correct relative file objects (3)
expecting success:
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:
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:
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:
test_must_fail git rev-parse foobar:file.txt 2>error &&
grep "Invalid object name 'foobar'." error &&
test_must_fail git rev-parse foobar 2> error &&
test_i18ngrep "unknown revision or path not in the working tree." error
foobar:file.txt
fatal: Invalid object name 'foobar'.
foobar
fatal: ambiguous argument 'foobar': unknown revision or path not in the working tree.
ok 10 - incorrect revision id
expecting success:
test_must_fail git rev-parse HEAD:nothing.txt 2> error &&
grep "fatal: Path 'nothing.txt' does not exist in 'HEAD'" error &&
test_must_fail git rev-parse HEAD:index-only.txt 2> error &&
grep "fatal: 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:
test_must_fail git rev-parse :nothing.txt 2> error &&
grep "fatal: 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 &&
grep "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 &&
grep "fatal: 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:
test_must_fail git rev-parse master@{99999} >output 2>error &&
test -z "$(cat output)" &&
grep "fatal: Log for [^ ]* only has [0-9][0-9]* entries." error &&
test_must_fail git rev-parse --verify master@{99999} >output 2>error &&
test -z "$(cat output)" &&
grep "fatal: 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:
(
cd subdir &&
test_must_fail git rev-parse HEAD:./nonexistent.txt 2>error &&
grep 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:
test_must_fail git rev-parse HEAD:../file.txt >output 2>error &&
test -z "$(cat output)" &&
test_i18ngrep "outside repository" error
fatal: '../file.txt' is outside repository
ok 15 - relative path outside worktree
expecting success:
test_must_fail git --git-dir=.git --work-tree=subdir rev-parse HEAD:./file.txt >output 2>error &&
test -z "$(cat output)" &&
grep "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:
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:
( 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:
test_must_fail git rev-parse foobar -- 2>stderr &&
test_i18ngrep "bad revision" stderr
fatal: bad revision 'foobar'
ok 19 - arg before dashdash must be a revision (missing)
expecting success:
>foobar &&
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 (file)
expecting success:
>foobar &&
git update-ref refs/heads/foobar HEAD &&
{
# we do not want to use rev-parse here, because
# we are testing it
cat .git/refs/heads/foobar &&
printf "%s\n" --
} >expect &&
git rev-parse foobar -- >actual &&
test_cmp expect actual
ok 21 - arg before dashdash must be a revision (ambiguous)
# passed all 21 test(s)
1..21
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
test_must_fail git rev-parse --verify '@{u}@{-1}'
fatal: Needed a single revision
ok 20 - @{u}@{-1} is nonsensical
expecting success:
test_must_fail git rev-parse --verify '@{0}@{0}'
fatal: Needed a single revision
ok 21 - @{0}@{0} is nonsensical
expecting success:
test_must_fail git rev-parse --verify '@{1}@{u}'
fatal: no such branch: '@{1}'
ok 22 - @{1}@{u} is nonsensical
expecting success:
test_must_fail git rev-parse --verify 'HEAD@{-1}'
fatal: Needed a single revision
ok 23 - HEAD@{-1} is nonsensical
expecting success:
test_must_fail git rev-parse --verify '@{-1}@{-1}'
fatal: Needed a single revision
ok 24 - @{-1}@{-1} is nonsensical
expecting success:
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:
test_must_fail git rev-parse --verify '@{3}'
fatal: Log for 'new-branch' only has 3 entries.
ok 26 - @{3} is nonsensical
expecting success:
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:
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:
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:
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:
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:
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:
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'
*** t1507-rev-parse-upstream.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1507-rev-parse-upstream/.git/
expecting success:
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:
test refs/remotes/origin/master = "$(full_name @{upstream})" &&
test refs/remotes/origin/master = "$(full_name @{UPSTREAM})" &&
test refs/remotes/origin/master = "$(full_name @{UpSTReam})"
ok 2 - @{upstream} resolves to correct full name
expecting success:
test refs/remotes/origin/master = "$(full_name @{u})" &&
test refs/remotes/origin/master = "$(full_name @{U})"
ok 3 - @{u} resolves to correct full name
expecting success:
test refs/remotes/origin/side = "$(full_name my-side@{u})"
ok 4 - my-side@{upstream} resolves to correct full name
expecting success:
full_name fun@ny@{u} >actual &&
echo refs/remotes/origin/side >expect &&
test_cmp expect actual &&
full_name fun@ny@{U} >actual &&
test_cmp expect actual
ok 5 - upstream of branch with @ in middle
expecting success:
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:
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:
test_must_fail 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:
git checkout side &&
test_commit 5 &&
(cd clone && git fetch) &&
test 2 = "$(commit_subject my-side)" &&
test 5 = "$(commit_subject my-side@{u})"
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:
test_must_fail full_name non-tracking@{u} &&
(cd clone && git checkout --no-track -b non-tracking) &&
test_must_fail 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:
test_commit 6 &&
(cd clone && git fetch) &&
test 5 = $(commit_subject my-side@{u}@{1}) &&
test 5 = $(commit_subject my-side@{U}@{1})
[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:
git checkout HEAD^0 &&
test_must_fail git rev-parse @{u} &&
test_must_fail git rev-parse @{U}
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
(
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:
(
cd clone || exit
git checkout master || exit
git branch -D new ;# can fail but is ok
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:
git checkout -t -b other master &&
git branch -d @{u} &&
git for-each-ref refs/heads/master >actual &&
>expect &&
test_cmp expect 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:
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:
test refs/heads/master = "$(full_name local-master@{u})"
ok 17 - branch@{u} works when tracking a local branch
expecting success:
cat >expect <<-EOF &&
fatal: no upstream configured for branch ${sq}non-tracking${sq}
EOF
error_message non-tracking@{u} &&
test_i18ncmp expect error
ok 18 - branch@{u} error message when no upstream
expecting success:
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:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 8f489d0 3
ok 21 - @{u} error message when not on a branch
expecting success:
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:
(
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)
From .
* branch master -> FETCH_HEAD
Updating 6efda21..ac35135
Fast-forward
ok 23 - pull works when tracking a local branch
expecting success:
test refs/heads/master = "$(full_name @{u})"
ok 24 - @{u} works when tracking a local branch
expecting success:
git log -1 -g other@{u} >actual &&
test_cmp expect actual
ok 25 - log -g other@{u}
expecting success:
git log -1 -g other@{u}@{now} >actual &&
test_cmp expect actual
ok 26 - log -g other@{u}@{now}
expecting success:
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:
echo content >@{upstream} &&
git add @{upstream} &&
git commit -m "funny upstream file" &&
git hash-object @{upstream} >expect &&
git rev-parse HEAD:@{upstream} >actual
[detached HEAD c358789] funny upstream file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 @{upstream}
ok 28 - @{upstream}-parsing does not look beyond colon
# passed all 28 test(s)
1..28
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1509-root-work-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1509-root-work-tree/.git/
1..0 # SKIP Test requiring writable / skipped. Read this test if you want to run it
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1511-rev-parse-caret.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1511-rev-parse-caret/.git/
expecting success:
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) 820c911] 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 409eb79] Modified
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master 1eda998] !Exp
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master 7ed649b] Changed
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master 2def0c8] Changed-again
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
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:
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:
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:
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:
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:
git rev-parse master >expected &&
git rev-parse master^{/.} >actual &&
test_cmp expected actual
ok 7 - ref^{/.}
expecting success:
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:
git rev-parse ref >expected &&
git rev-parse master^{/Initial} >actual &&
test_cmp expected actual
ok 9 - ref^{/Initial}
expecting success:
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:
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:
git rev-parse expref >expected &&
git rev-parse master^{/!!Exp} >actual &&
test_cmp expected actual
ok 12 - ref^{/!!Exp}
expecting success:
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:
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:
git rev-parse master >expected &&
git rev-parse master^{/!-non-existent} >actual &&
test_cmp expected actual
ok 15 - ref^{/!-non-existent}
expecting success:
git rev-parse expref >expected &&
git rev-parse master^{/!-Changed} >actual &&
test_cmp expected actual
ok 16 - ref^{/!-Changed}
expecting success:
git rev-parse modref >expected &&
git rev-parse expref^{/!-!Exp} >actual &&
test_cmp expected actual
ok 17 - ref^{/!-!Exp}
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1512-rev-parse-disambiguation.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1512-rev-parse-disambiguation/.git/
checking prerequisite: SHA1
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
)
prerequisite SHA1 ok
expecting success:
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:
test_must_fail git rev-parse --verify 000000000^{commit} 2>actual &&
test_i18ngrep "short SHA1 000000000 is ambiguous" actual
error: short SHA1 000000000 is ambiguous
ok 2 - warn ambiguity when no candidate matches type hint
expecting success:
# 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:
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:
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:
# 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:
# 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:
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:
# 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:
# 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:
# 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:
# Likewise.
git reset 000000000
ok 12 - git reset takes only commit-ish
expecting success:
# create one tag 0000000000f8f
git tag -a -m j7cp83um v1.0.0
ok 13 - first tag
checking known breakage:
# 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:
# 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:
# 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:
# 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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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"
Automatic merge failed; fix conflicts and then commit the result.
f5518nwu: needs merge
j000jmpzn: needs merge
rm 'f5518nwu'
rm 'j000jmpzn'
a0blgqsjc: needs merge
rm 'a0blgqsjc'
[master 00000000006] ad2uee
Author: A U Thor <author@example.com>
ok 17 - more history
checking known breakage:
# 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:
# 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:
# 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:
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:
# 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 $(wc -l <actual) = 16 &&
test "$(sed -e "s/^\(.........\).*/\1/" actual | sort -u)" = 000000000
ok 22 - rev-parse --disambiguate
expecting success:
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:
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:
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:
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:
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:
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:
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:
test_must_fail git rev-parse 000000000^{commit} 2>stderr &&
grep ^hint: stderr >hints &&
# 5 commits, 1 tag (which is a commitish), plus intro line
test_line_count = 7 hints
000000000^{commit}
ok 30 - ambiguity hints respect type
expecting success:
# 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:
# 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:
# 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:
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
# still have 3 known breakage(s)
# passed all remaining 31 test(s)
1..34
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:
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) 1e0ee1e] 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
git rev-parse --prefix sub1/sub2/ -- file2 >actual &&
cat <<-\EOF >expected &&
--
sub1/sub2/file2
EOF
test_cmp expected actual
ok 11 - two-levels deep
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1514-rev-parse-push.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1514-rev-parse-push/.git/
expecting success:
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1514-rev-parse-push/parent.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1514-rev-parse-push/other.git/
[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:
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:
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:
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:
test_config push.default current &&
resolve topic@{push} refs/remotes/origin/topic
ok 5 - @{push} with default=current
expecting success:
test_config push.default matching &&
resolve topic@{push} refs/remotes/origin/topic
ok 6 - @{push} with default=matching
expecting success:
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:
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:
git checkout HEAD^0 &&
test_when_finished "git checkout -" &&
test_must_fail git rev-parse @{push}
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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'
*** t1515-rev-parse-outside-repo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1515-rev-parse-outside-repo/.git/
expecting success:
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:
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:
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:
git init --separate-git-dir repo dir &&
test_must_fail git rev-parse --resolve-git-dir . &&
echo "$(pwd)/repo" >expect &&
git rev-parse --resolve-git-dir dir/.git >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1515-rev-parse-outside-repo/non-repo/repo/
fatal: not a gitdir '.'
ok 4 - rev-parse --resolve-git-dir
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1600-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1600-index/.git/
expecting success:
echo 1 >a
ok 1 - setup
expecting success:
(
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
)
ok 2 - bogus GIT_INDEX_VERSION issues warning
expecting success:
(
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
)
ok 3 - out of bounds GIT_INDEX_VERSION issues warning
expecting success:
(
GIT_INDEX_VERSION=1 &&
export GIT_INDEX_VERSION &&
git add a 2>actual.err &&
>expect.err &&
test_i18ncmp expect.err actual.err
)
ok 4 - no warning with bogus GIT_INDEX_VERSION and existing index
expecting success:
(
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
)
ok 5 - out of bounds index.version issues warning
expecting success:
(
rm -f .git/index &&
GIT_INDEX_VERSION=4 &&
export GIT_INDEX_VERSION &&
git config --add index.version 2 &&
git add a 2>&1 &&
echo 4 >expect &&
test-tool index-version <.git/index >actual &&
test_cmp expect actual
)
ok 6 - GIT_INDEX_VERSION takes precedence over config
# passed all 6 test(s)
1..6
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:
tree=$(printf "160000 commit $ZERO_OID\\tbroken\\n" | git mktree)
ok 1 - create tree with null sha1
expecting success:
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:
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:
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'
*** t0027-auto-crlf.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0027-auto-crlf/.git/
expecting success:
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:
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) 90d5fa2] add .gitattributes
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 .gitattributes
[master 3661d79] 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:
commit_check_warn false "" "" "" "" "" "" &&
commit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "" "" &&
commit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "" ""
[master 159eac3] 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
[master 02f4e23] 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 5105877] 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:
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 5c3dd89] 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 5e049a5] 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 fb3b7c6] 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:
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 a2ae976] 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 47f33d8] 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 1d215b5] 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:
commit_check_warn false "-text" "" "" "" "" "" &&
commit_check_warn true "-text" "" "" "" "" "" &&
commit_check_warn input "-text" "" "" "" "" ""
[master 7889da3] 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 bda2d2a] 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 7ecc8e3] 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:
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 81e854b] 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 aa0ade7] 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 f73cdbf] 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:
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 9cd0721] 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 89ce47a] 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 764471e] 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:
check_warning "$lfwarn" ${pfx}_LF.err
ok 9 - commit file with mixed EOL onto LF crlf=false attr=
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 10 - commit file with mixed EOL onto CLRF attr= aeol= crlf=false
expecting success:
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:
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:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 13 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=false
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 14 - commit file with mixed EOL onto LF crlf=true attr=
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 15 - commit file with mixed EOL onto CLRF attr= aeol= crlf=true
expecting success:
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:
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:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 18 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=true
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 19 - commit file with mixed EOL onto LF crlf=input attr=
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 20 - commit file with mixed EOL onto CLRF attr= aeol= crlf=input
expecting success:
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:
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:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 23 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=input
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 24 - commit file with mixed EOL onto LF crlf=false attr=auto
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 25 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=false
expecting success:
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:
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:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 28 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=false
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 29 - commit file with mixed EOL onto LF crlf=true attr=auto
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 30 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=true
expecting success:
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:
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:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 33 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=true
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 34 - commit file with mixed EOL onto LF crlf=input attr=auto
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 35 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=input
expecting success:
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:
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:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 38 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=input
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 39 - commit NNO files crlf=false attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 40 - commit NNO files attr= aeol= crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 41 - commit NNO files attr= aeol= crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 42 - commit NNO files attr= aeol= crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 43 - commit NNO files attr= aeol= crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 44 - commit NNO files crlf=true attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 45 - commit NNO files attr= aeol= crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 46 - commit NNO files attr= aeol= crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 47 - commit NNO files attr= aeol= crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 48 - commit NNO files attr= aeol= crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 49 - commit NNO files crlf=input attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 50 - commit NNO files attr= aeol= crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 51 - commit NNO files attr= aeol= crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 52 - commit NNO files attr= aeol= crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 53 - commit NNO files attr= aeol= crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 54 - commit NNO files crlf=false attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 55 - commit NNO files attr=auto aeol= crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 56 - commit NNO files attr=auto aeol= crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 57 - commit NNO files attr=auto aeol= crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 58 - commit NNO files attr=auto aeol= crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 59 - commit NNO files crlf=true attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 60 - commit NNO files attr=auto aeol= crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 61 - commit NNO files attr=auto aeol= crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 62 - commit NNO files attr=auto aeol= crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 63 - commit NNO files attr=auto aeol= crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 64 - commit NNO files crlf=input attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 65 - commit NNO files attr=auto aeol= crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 66 - commit NNO files attr=auto aeol= crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 67 - commit NNO files attr=auto aeol= crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 68 - commit NNO files attr=auto aeol= crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 69 - commit NNO files crlf=true attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 70 - commit NNO files attr=-text aeol= crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 71 - commit NNO files attr=-text aeol= crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 72 - commit NNO files attr=-text aeol= crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 73 - commit NNO files attr=-text aeol= crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 74 - commit NNO files crlf=true attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 75 - commit NNO files attr=-text aeol=lf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 76 - commit NNO files attr=-text aeol=lf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 77 - commit NNO files attr=-text aeol=lf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 78 - commit NNO files attr=-text aeol=lf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 79 - commit NNO files crlf=true attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 80 - commit NNO files attr=-text aeol=crlf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 81 - commit NNO files attr=-text aeol=crlf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 82 - commit NNO files attr=-text aeol=crlf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 83 - commit NNO files attr=-text aeol=crlf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 84 - commit NNO files crlf=true attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 85 - commit NNO files attr= aeol=lf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 86 - commit NNO files attr= aeol=lf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 87 - commit NNO files attr= aeol=lf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 88 - commit NNO files attr= aeol=lf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 89 - commit NNO files crlf=true attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 90 - commit NNO files attr= aeol=crlf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 91 - commit NNO files attr= aeol=crlf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 92 - commit NNO files attr= aeol=crlf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 93 - commit NNO files attr= aeol=crlf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 94 - commit NNO files crlf=true attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 95 - commit NNO files attr=auto aeol=lf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 96 - commit NNO files attr=auto aeol=lf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 97 - commit NNO files attr=auto aeol=lf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 98 - commit NNO files attr=auto aeol=lf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 99 - commit NNO files crlf=true attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 100 - commit NNO files attr=auto aeol=crlf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 101 - commit NNO files attr=auto aeol=crlf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 102 - commit NNO files attr=auto aeol=crlf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 103 - commit NNO files attr=auto aeol=crlf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 104 - commit NNO files crlf=true attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 105 - commit NNO files attr=text aeol=lf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 106 - commit NNO files attr=text aeol=lf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 107 - commit NNO files attr=text aeol=lf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 108 - commit NNO files attr=text aeol=lf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 109 - commit NNO files crlf=true attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 110 - commit NNO files attr=text aeol=crlf crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 111 - commit NNO files attr=text aeol=crlf crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 112 - commit NNO files attr=text aeol=crlf crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 113 - commit NNO files attr=text aeol=crlf crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 114 - commit NNO files crlf=false attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 115 - commit NNO files attr=-text aeol= crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 116 - commit NNO files attr=-text aeol= crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 117 - commit NNO files attr=-text aeol= crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 118 - commit NNO files attr=-text aeol= crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 119 - commit NNO files crlf=false attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 120 - commit NNO files attr=-text aeol=lf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 121 - commit NNO files attr=-text aeol=lf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 122 - commit NNO files attr=-text aeol=lf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 123 - commit NNO files attr=-text aeol=lf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 124 - commit NNO files crlf=false attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 125 - commit NNO files attr=-text aeol=crlf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 126 - commit NNO files attr=-text aeol=crlf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 127 - commit NNO files attr=-text aeol=crlf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 128 - commit NNO files attr=-text aeol=crlf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 129 - commit NNO files crlf=false attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 130 - commit NNO files attr= aeol=lf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 131 - commit NNO files attr= aeol=lf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 132 - commit NNO files attr= aeol=lf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 133 - commit NNO files attr= aeol=lf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 134 - commit NNO files crlf=false attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 135 - commit NNO files attr= aeol=crlf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 136 - commit NNO files attr= aeol=crlf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 137 - commit NNO files attr= aeol=crlf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 138 - commit NNO files attr= aeol=crlf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 139 - commit NNO files crlf=false attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 140 - commit NNO files attr=auto aeol=lf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 141 - commit NNO files attr=auto aeol=lf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 142 - commit NNO files attr=auto aeol=lf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 143 - commit NNO files attr=auto aeol=lf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 144 - commit NNO files crlf=false attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 145 - commit NNO files attr=auto aeol=crlf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 146 - commit NNO files attr=auto aeol=crlf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 147 - commit NNO files attr=auto aeol=crlf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 148 - commit NNO files attr=auto aeol=crlf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 149 - commit NNO files crlf=false attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 150 - commit NNO files attr=text aeol=lf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 151 - commit NNO files attr=text aeol=lf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 152 - commit NNO files attr=text aeol=lf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 153 - commit NNO files attr=text aeol=lf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 154 - commit NNO files crlf=false attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 155 - commit NNO files attr=text aeol=crlf crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 156 - commit NNO files attr=text aeol=crlf crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 157 - commit NNO files attr=text aeol=crlf crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 158 - commit NNO files attr=text aeol=crlf crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 159 - commit NNO files crlf=input attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 160 - commit NNO files attr=-text aeol= crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 161 - commit NNO files attr=-text aeol= crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 162 - commit NNO files attr=-text aeol= crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 163 - commit NNO files attr=-text aeol= crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 164 - commit NNO files crlf=input attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 165 - commit NNO files attr=-text aeol=lf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 166 - commit NNO files attr=-text aeol=lf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 167 - commit NNO files attr=-text aeol=lf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 168 - commit NNO files attr=-text aeol=lf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 169 - commit NNO files crlf=input attr=-text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 170 - commit NNO files attr=-text aeol=crlf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 171 - commit NNO files attr=-text aeol=crlf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 172 - commit NNO files attr=-text aeol=crlf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 173 - commit NNO files attr=-text aeol=crlf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 174 - commit NNO files crlf=input attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 175 - commit NNO files attr= aeol=lf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 176 - commit NNO files attr= aeol=lf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 177 - commit NNO files attr= aeol=lf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 178 - commit NNO files attr= aeol=lf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 179 - commit NNO files crlf=input attr= LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 180 - commit NNO files attr= aeol=crlf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 181 - commit NNO files attr= aeol=crlf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 182 - commit NNO files attr= aeol=crlf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 183 - commit NNO files attr= aeol=crlf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 184 - commit NNO files crlf=input attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 185 - commit NNO files attr=auto aeol=lf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 186 - commit NNO files attr=auto aeol=lf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 187 - commit NNO files attr=auto aeol=lf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 188 - commit NNO files attr=auto aeol=lf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 189 - commit NNO files crlf=input attr=auto LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 190 - commit NNO files attr=auto aeol=crlf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 191 - commit NNO files attr=auto aeol=crlf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 192 - commit NNO files attr=auto aeol=crlf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 193 - commit NNO files attr=auto aeol=crlf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 194 - commit NNO files crlf=input attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 195 - commit NNO files attr=text aeol=lf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 196 - commit NNO files attr=text aeol=lf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 197 - commit NNO files attr=text aeol=lf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 198 - commit NNO files attr=text aeol=lf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 199 - commit NNO files crlf=input attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 200 - commit NNO files attr=text aeol=crlf crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 201 - commit NNO files attr=text aeol=crlf crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 202 - commit NNO files attr=text aeol=crlf crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 203 - commit NNO files attr=text aeol=crlf crlf=input CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 204 - commit NNO files crlf=false attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 205 - commit NNO files attr=text aeol= crlf=false CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 206 - commit NNO files attr=text aeol= crlf=false CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 207 - commit NNO files attr=text aeol= crlf=false LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 208 - commit NNO files attr=text aeol= crlf=false CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 209 - commit NNO files crlf=true attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 210 - commit NNO files attr=text aeol= crlf=true CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 211 - commit NNO files attr=text aeol= crlf=true CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 212 - commit NNO files attr=text aeol= crlf=true LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 213 - commit NNO files attr=text aeol= crlf=true CRLF_nul
expecting success:
check_warning "$lfwarn" ${pfx}_LF.err
ok 214 - commit NNO files crlf=input attr=text LF
expecting success:
check_warning "$crlfwarn" ${pfx}_CRLF.err
ok 215 - commit NNO files attr=text aeol= crlf=input CRLF
expecting success:
check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err
ok 216 - commit NNO files attr=text aeol= crlf=input CRLF_mix_LF
expecting success:
check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err
ok 217 - commit NNO files attr=text aeol= crlf=input LF_mix_cr
expecting success:
check_warning "$crlfnul" ${pfx}_CRLF_nul.err
ok 218 - commit NNO files attr=text aeol= crlf=input CRLF_nul
expecting success:
git commit -m "commit files on top of NNO" &&
rm -f *.txt &&
git -c core.autocrlf=false reset --hard
[master c5e4c36] commit files on top of NNO
Author: A U Thor <author@example.com>
210 files changed, 332 insertions(+), 362 deletions(-)
HEAD is now at c5e4c36 commit files on top of NNO
ok 219 - commit NNO and cleanup
expecting success:
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:
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:
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:
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:
compare_files $lfname ${pfx}_LF.txt
ok 224 - compare_files LF NNO_attr__aeol__true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 225 - compare_files CRLF NNO_attr__aeol__true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 228 - compare_files CRLF_nul NNO_attr__aeol__true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 229 - compare_files LF NNO_attr_-text_aeol__true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 230 - compare_files CRLF NNO_attr_-text_aeol__true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 233 - compare_files CRLF_nul NNO_attr_-text_aeol__true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 234 - compare_files LF NNO_attr_-text_aeol_lf_true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 235 - compare_files CRLF NNO_attr_-text_aeol_lf_true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 238 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 239 - compare_files LF NNO_attr_-text_aeol_crlf_true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 240 - compare_files CRLF NNO_attr_-text_aeol_crlf_true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 243 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 244 - compare_files LF NNO_attr_auto_aeol__true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 245 - compare_files CRLF NNO_attr_auto_aeol__true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 248 - compare_files CRLF_nul NNO_attr_auto_aeol__true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 249 - compare_files LF NNO_attr_auto_aeol_lf_true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 250 - compare_files CRLF NNO_attr_auto_aeol_lf_true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 253 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 254 - compare_files LF NNO_attr_auto_aeol_crlf_true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 255 - compare_files CRLF NNO_attr_auto_aeol_crlf_true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 258 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 259 - compare_files LF NNO_attr_text_aeol__true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 260 - compare_files LF NNO_attr_text_aeol__true_CRLF.txt
expecting success:
compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt
ok 261 - compare_files LF NNO_attr_text_aeol__true_CRLF_mix_LF.txt
expecting success:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 263 - compare_files LF_nul NNO_attr_text_aeol__true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 264 - compare_files LF NNO_attr_text_aeol_lf_true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 265 - compare_files LF NNO_attr_text_aeol_lf_true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 268 - compare_files LF_nul NNO_attr_text_aeol_lf_true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 269 - compare_files LF NNO_attr_text_aeol_crlf_true_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 270 - compare_files LF NNO_attr_text_aeol_crlf_true_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 273 - compare_files LF_nul NNO_attr_text_aeol_crlf_true_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 274 - compare_files LF NNO_attr__aeol__false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 275 - compare_files CRLF NNO_attr__aeol__false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 278 - compare_files CRLF_nul NNO_attr__aeol__false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 279 - compare_files LF NNO_attr_-text_aeol__false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 280 - compare_files CRLF NNO_attr_-text_aeol__false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 283 - compare_files CRLF_nul NNO_attr_-text_aeol__false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 284 - compare_files LF NNO_attr_-text_aeol_lf_false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 285 - compare_files CRLF NNO_attr_-text_aeol_lf_false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 288 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 289 - compare_files LF NNO_attr_-text_aeol_crlf_false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 290 - compare_files CRLF NNO_attr_-text_aeol_crlf_false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 293 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 294 - compare_files LF NNO_attr_auto_aeol__false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 295 - compare_files CRLF NNO_attr_auto_aeol__false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 298 - compare_files CRLF_nul NNO_attr_auto_aeol__false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 299 - compare_files LF NNO_attr_auto_aeol_lf_false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 300 - compare_files CRLF NNO_attr_auto_aeol_lf_false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 303 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 304 - compare_files LF NNO_attr_auto_aeol_crlf_false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 305 - compare_files CRLF NNO_attr_auto_aeol_crlf_false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 308 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 309 - compare_files LF NNO_attr_text_aeol__false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 310 - compare_files LF NNO_attr_text_aeol__false_CRLF.txt
expecting success:
compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt
ok 311 - compare_files LF NNO_attr_text_aeol__false_CRLF_mix_LF.txt
expecting success:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 313 - compare_files LF_nul NNO_attr_text_aeol__false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 314 - compare_files LF NNO_attr_text_aeol_lf_false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 315 - compare_files LF NNO_attr_text_aeol_lf_false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 318 - compare_files LF_nul NNO_attr_text_aeol_lf_false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 319 - compare_files LF NNO_attr_text_aeol_crlf_false_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 320 - compare_files LF NNO_attr_text_aeol_crlf_false_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 323 - compare_files LF_nul NNO_attr_text_aeol_crlf_false_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 324 - compare_files LF NNO_attr__aeol__input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 325 - compare_files CRLF NNO_attr__aeol__input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 328 - compare_files CRLF_nul NNO_attr__aeol__input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 329 - compare_files LF NNO_attr_-text_aeol__input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 330 - compare_files CRLF NNO_attr_-text_aeol__input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 333 - compare_files CRLF_nul NNO_attr_-text_aeol__input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 334 - compare_files LF NNO_attr_-text_aeol_lf_input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 335 - compare_files CRLF NNO_attr_-text_aeol_lf_input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 338 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 339 - compare_files LF NNO_attr_-text_aeol_crlf_input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 340 - compare_files CRLF NNO_attr_-text_aeol_crlf_input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 343 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 344 - compare_files LF NNO_attr_auto_aeol__input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 345 - compare_files CRLF NNO_attr_auto_aeol__input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 348 - compare_files CRLF_nul NNO_attr_auto_aeol__input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 349 - compare_files LF NNO_attr_auto_aeol_lf_input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 350 - compare_files CRLF NNO_attr_auto_aeol_lf_input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 353 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 354 - compare_files LF NNO_attr_auto_aeol_crlf_input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 355 - compare_files CRLF NNO_attr_auto_aeol_crlf_input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 358 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 359 - compare_files LF NNO_attr_text_aeol__input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 360 - compare_files LF NNO_attr_text_aeol__input_CRLF.txt
expecting success:
compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt
ok 361 - compare_files LF NNO_attr_text_aeol__input_CRLF_mix_LF.txt
expecting success:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 363 - compare_files LF_nul NNO_attr_text_aeol__input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 364 - compare_files LF NNO_attr_text_aeol_lf_input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 365 - compare_files LF NNO_attr_text_aeol_lf_input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 368 - compare_files LF_nul NNO_attr_text_aeol_lf_input_CRLF_nul.txt
expecting success:
compare_files $lfname ${pfx}_LF.txt
ok 369 - compare_files LF NNO_attr_text_aeol_crlf_input_LF.txt
expecting success:
compare_files $crlfname ${pfx}_CRLF.txt
ok 370 - compare_files LF NNO_attr_text_aeol_crlf_input_CRLF.txt
expecting success:
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:
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:
compare_files $crlfnul ${pfx}_CRLF_nul.txt
ok 373 - compare_files LF_nul NNO_attr_text_aeol_crlf_input_CRLF_nul.txt
expecting success:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_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:
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:
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:
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:
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:
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:
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'
*** t1700-split-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/.git/
expecting success:
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) &&
if test "$indexversion" = "4"
then
own=432ef4b63f32193984f339431fd50ca796493569
base=508851a7f0dfa8691e9f69c7f055865389012491
else
own=8299b0bcd1ac364e5f1d7768efb62fa2da79a339
base=39d890139ee5356c7ef572216cebcd27aa41f9df
fi &&
cat >expect <<-EOF &&
own $own
base $base
replacements:
deletions:
EOF
test_cmp expect actual
ok 1 - enable split index
expecting success:
: >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 2 - add one file
expecting success:
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 | grep "^own" | sed "s/own/base/") &&
test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<-EOF &&
not a split index
EOF
test_cmp expect actual
ok 3 - disable split index
expecting success:
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 4 - enable split index again, "one" now belongs to base index"
expecting success:
echo modified >one &&
git update-index one &&
git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<-EOF &&
100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 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 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q
replacements: 0
deletions:
EOF
test_cmp expect actual
ok 5 - modify original file, base index untouched
expecting success:
: >two &&
git update-index --add two &&
git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<-EOF &&
100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 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 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q
100644 $EMPTY_BLOB 0 two
replacements: 0
deletions:
EOF
test_cmp expect actual
ok 6 - add another file, which stays index
expecting success:
git update-index --force-remove two &&
git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<-EOF &&
100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 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 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q
replacements: 0
deletions:
EOF
test_cmp expect actual
ok 7 - remove file not in base index
expecting success:
git update-index --force-remove one &&
git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<-EOF &&
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: 0
EOF
test_cmp expect actual
ok 8 - remove file in base index
expecting success:
: >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 9 - add original file back
expecting success:
: >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 10 - add new file
expecting success:
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 11 - unify index, two files remain
expecting success:
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 12 - rev-parse --shared-index-path
expecting success:
git config core.splitIndex true &&
: >three &&
git update-index --add three &&
git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<-EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 three
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 13 - set core.splitIndex config variable to true
expecting success:
git config core.splitIndex false &&
git update-index --force-remove three &&
git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<-EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 14 - set core.splitIndex config variable to false
expecting success:
git config core.splitIndex true &&
: >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 &&
: >four &&
git update-index --add four &&
test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<-EOF &&
$BASE
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 four
replacements:
deletions:
EOF
test_cmp expect actual
ok 15 - set core.splitIndex config variable to true
expecting success:
git config --unset splitIndex.maxPercentChange &&
: >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 &&
: >six &&
git update-index --add six &&
test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<-EOF &&
$BASE
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 six
replacements:
deletions:
EOF
test_cmp expect actual
ok 16 - check behavior with splitIndex.maxPercentChange unset
expecting success:
git config splitIndex.maxPercentChange 0 &&
: >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 &&
: >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 17 - check splitIndex.maxPercentChange set to 0
expecting success:
: >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.* &&
: >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.* &&
: >twelve &&
git update-index --add twelve &&
test $(ls .git/sharedindex.* | wc -l) -le 2
ok 18 - shared index files expire after 2 weeks by default
expecting success:
git config splitIndex.sharedIndexExpire "16.days.ago" &&
test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* &&
: >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.* &&
: >fourteen &&
git update-index --add fourteen &&
test $(ls .git/sharedindex.* | wc -l) -le 2
ok 19 - check splitIndex.sharedIndexExpire set to 16 days
expecting success:
git config splitIndex.sharedIndexExpire never &&
just_10_years_ago=$((-365*10*86400)) &&
test-tool chmtime =$just_10_years_ago .git/sharedindex.* &&
: >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.* &&
: >sixteen &&
git update-index --add sixteen &&
test $(ls .git/sharedindex.* | wc -l) -le 2
ok 20 - check splitIndex.sharedIndexExpire set to "never" and "now"
expecting success:
# 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 &&
: >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 21 - split index respects core.sharedrepository 0666
expecting success:
# 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 &&
: >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 22 - split index respects core.sharedrepository 0642
checking prerequisite: SANITY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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 23 - graceful handling when splitting index is not allowed
expecting success:
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-tool dump-cache-tree >cache-tree.out || true) &&
test_line_count = 0 cache-tree.out
[master (root-commit) acdde63] 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 f604846 add broken entry
error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken'
ok 24 - writing split index with null sha1 does not write cache tree
# passed all 24 test(s)
1..24
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2000-checkout-cache-clash.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2000-checkout-cache-clash/.git/
expecting success: git update-index --add path0 path1/file1
ok 1 - git update-index --add various paths.
expecting success: 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: git checkout-index -f -a
ok 3 - git checkout-index with -f should succeed.
expecting success: 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2001-checkout-cache-clash.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2001-checkout-cache-clash/.git/
expecting success: git update-index --add path0/file0
ok 1 - git update-index --add path0/file0
expecting success: tree1=$(git write-tree)
ok 2 - writing tree out with git write-tree
expecting success: git update-index --add path1/file1
ok 3 - git update-index --add path1/file1
expecting success: tree2=$(git write-tree)
ok 4 - writing tree out with git write-tree
expecting success: git read-tree -m $tree1 && git checkout-index -f -a
ok 5 - read previously written tree and checkout.
expecting success: test_ln_s_add path0 path1
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
ok 6 - add a symlink
expecting success: tree3=$(git write-tree)
ok 7 - writing tree out with git write-tree
expecting success: git read-tree $tree2 && git checkout-index -f -a
ok 8 - read previously written tree and checkout.
expecting success: test ! -h path0 && test -d path0 &&
test ! -h path1 && test -d path1 &&
test ! -h path0/file0 && test -f path0/file0 &&
test ! -h path1/file1 && test -f path1/file1
ok 9 - checking out conflicting path with -f
# passed all 9 test(s)
1..9
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:
echo frotz >path0 &&
git update-index --add path0 &&
t=$(git write-tree)
ok 1 - preparation
expecting success:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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'
*** t2005-checkout-index-symlinks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2005-checkout-index-symlinks/.git/
expecting success:
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:
git checkout-index symlink &&
test -f symlink
ok 2 - the checked-out symlink must be a file
expecting success:
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'
*** t2006-checkout-index-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2006-checkout-index-basic/.git/
expecting success:
test_expect_code 129 git checkout-index --gobbledegook 2>err &&
test_i18ngrep "[Uu]sage" err
usage: git checkout-index [<options>] [--] [<file>...]
ok 1 - checkout-index --gobbledegook
expecting success:
mkdir broken &&
(
cd broken &&
git init &&
>.git/index &&
test_expect_code 129 git checkout-index -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage" broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2006-checkout-index-basic/broken/.git/
usage: git checkout-index [<options>] [--] [<file>...]
ok 2 - checkout-index -h in broken repository
# passed all 2 test(s)
1..2
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:
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:
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:
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:
rm -f path* .merge_* actual .git/index &&
git read-tree -m $t1 $t2 $t3
ok 4 - setup 3-way merge
expecting success:
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:
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:
rm -f path* .merge_* actual &&
git checkout-index --stage=all --temp -- path0 >actual &&
test_line_count = 0 actual
git checkout-index: path0 does not exist at stage 4
ok 7 - checkout all stages/one file to nothing
expecting success:
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 8 - checkout all stages/one file to temporary files
expecting success:
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 9 - checkout some stages/one file to temporary files
expecting success:
rm -f path* .merge_* actual &&
git checkout-index -a --stage=all --temp >actual &&
test_line_count = 5 actual
ok 10 - checkout all stages/all files to temporary files
expecting success:
test x$(grep path0 actual | cut "-d " -f2) = x
ok 11 - -- path0: no entry
expecting success:
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 12 - -- path1: all 3 stages
expecting success:
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 13 - -- path2: no stage 1, have stage 2 and 3
expecting success:
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 14 - -- path3: no stage 2, have stage 1 and 3
expecting success:
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 15 - -- path4: no stage 3, have stage 1 and 3
expecting success:
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 16 - -- asubdir/path5: no stage 2 and 3 have stage 1
expecting success:
(
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 17 - checkout --temp within subdir
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
ok 18 - checkout --temp symlink
expecting success:
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 19 - emit well-formed relative path
# passed all 19 test(s)
1..19
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# 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:
git checkout master
Switched to branch 'master'
ok 2 - switch from symlink to dir
expecting success:
rm -fr frotz xyzzy nitfol &&
git checkout -f master
Already on 'master'
ok 3 - Remove temporary directories & switch to master
expecting success:
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:
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:
(
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:
rm file0 &&
git checkout HEAD -- file0 &&
test "base" = "$(cat file0)"
ok 3 - checkout with empty prefix
expecting success:
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:
(
cd dir1 &&
rm file1 &&
git checkout HEAD -- ../dir1/../dir1/file1 &&
test "hello" = "$(cat file1)"
)
ok 5 - checkout with complex relative path
expecting success: test_must_fail git checkout HEAD -- ../../Makefile
fatal: ../../Makefile: '../../Makefile' is outside repository
ok 6 - relative path outside tree should fail
expecting success: test_must_fail git checkout HEAD -- ../file0
fatal: ../file0: '../file0' is outside repository
ok 7 - incorrect relative path to file should fail (1)
expecting success: ( 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: ( cd dir1 && test_must_fail git checkout HEAD -- ../../file0 )
fatal: ../../file0: '../../file0' is outside repository
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:
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) c1bf6a6] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
[master 2e1220c] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
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 2e1220c second
Already on 'master'
Switched to branch 'side'
Switched to branch 'master'
ok 2 - branch switching
expecting success:
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 2e1220c second
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:
echo hello >world &&
echo hello >all &&
git add all world &&
git commit -m initial &&
git branch world
[master (root-commit) 5e0d239] 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:
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:
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:
echo bye > world &&
git checkout -- world &&
git diff --exit-code --quiet
ok 4 - checkout world from the index
expecting success:
git checkout all
ok 5 - non ambiguous call
expecting success:
git checkout world &&
test "refs/heads/world" = "$(git symbolic-ref HEAD)"
Already on 'world'
ok 6 - allow the most common case
expecting success:
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:
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
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:
echo bye > world &&
git checkout world -- world &&
git diff --exit-code --quiet
ok 9 - disambiguate checking out from a tree-ish
expecting success:
test_must_fail git checkout HEAD master -- 2>actual &&
test_i18ngrep 2 actual &&
test_i18ngrep "one reference expected, 2 given" actual
fatal: only one reference expected, 2 given.
fatal: only one reference expected, 2 given.
ok 10 - accurate error message with more than one ref
# passed all 10 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2011-checkout-invalid-head.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2011-checkout-invalid-head/.git/
expecting success:
echo hello >world &&
git add world &&
git commit -m initial
[master (root-commit) c40d2dc] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
ok 1 - setup
expecting success:
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:
echo $ZERO_OID >.git/HEAD &&
git checkout master --
Switched to branch 'master'
ok 3 - checkout master from invalid HEAD
expecting success:
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:
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:
reset_to_df &&
git checkout master
Switched to branch 'master'
ok 6 - checkout away from d/f HEAD (unpacked, to branch)
expecting success:
reset_to_df &&
git checkout --detach master
HEAD is now at c40d2dc initial
ok 7 - checkout away from d/f HEAD (unpacked, to detached)
expecting success:
git pack-refs --all --prune
ok 8 - pack refs
expecting success:
reset_to_df &&
git checkout master
Switched to branch 'master'
ok 9 - checkout away from d/f HEAD (packed, to branch)
expecting success:
reset_to_df &&
git checkout --detach master
HEAD is now at c40d2dc 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:
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) c40d2dc] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
[master c79c06e] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
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:
git checkout other
Switched to branch 'other'
ok 3 - first branch switch
expecting success:
git checkout - &&
test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"
Switched to branch 'master'
ok 4 - "checkout -" switches back
expecting success:
git checkout - &&
test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
Switched to branch 'other'
ok 5 - "checkout -" switches forth
expecting success:
git checkout $(git rev-parse HEAD)
Note: checking out 'c40d2dc2171559b925e04df32bd688e796f16bc0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at c40d2dc initial
ok 6 - detach HEAD
expecting success:
git checkout - &&
test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
Switched to branch 'other'
ok 7 - "checkout -" attaches again
expecting success:
git checkout - &&
test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" &&
test_must_fail git symbolic-ref HEAD
Note: checking out 'c40d2dc2171559b925e04df32bd688e796f16bc0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at c40d2dc initial
fatal: ref HEAD is not a symbolic ref
ok 8 - "checkout -" detaches again
expecting success:
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:
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:
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:
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:
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:
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:
git checkout -b another other &&
echo "hello again" >>world &&
git add world &&
git commit -m third
Switched to a new branch 'another'
[another fbf4e11] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 15 - merge base test setup
expecting success:
git checkout another &&
git checkout another...master &&
test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)"
Already on 'another'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at c40d2dc initial
ok 16 - another...master
expecting success:
git checkout another &&
git checkout ...master &&
test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)"
Previous HEAD position was c40d2dc initial
Switched to branch 'another'
Note: checking out '...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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at c40d2dc initial
ok 17 - ...master
expecting success:
git checkout another &&
git checkout master... &&
test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)"
Previous HEAD position was c40d2dc initial
Switched to branch 'another'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at c40d2dc initial
ok 18 - master...
expecting success:
git checkout master &&
git checkout other &&
git rebase master &&
git checkout - &&
test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"
Previous HEAD position was c40d2dc initial
Switched to branch 'master'
Switched to branch 'other'
First, rewinding head to replay your work on top of it...
Fast-forwarded other to master.
Switched to branch 'master'
ok 19 - "checkout -" works after a rebase A
expecting success:
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'
First, rewinding head to replay your work on top of it...
Fast-forwarded moodle to master.
Switched to branch 'master'
ok 20 - "checkout -" works after a rebase A B
expecting success:
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:
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'
First, rewinding head to replay your work on top of it...
Fast-forwarded foodle to master.
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-switch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2014-switch/.git/
expecting success:
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'
M file
ok 1 - setup
expecting success:
git diff --exit-code
ok 2 - check all changes are staged
expecting success:
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:
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'
*** t1013-read-tree-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/.git/
expecting success:
prolog &&
reset_work_tree_to_interested no_submodule &&
(
cd submodule_update &&
git branch -t add_sub1 origin/add_sub1 &&
$command add_sub1 &&
test_superproject_content origin/add_sub1 &&
test_submodule_content sub1 origin/add_sub1
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1/.git/
[master (root-commit) 532004b] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2/.git/
[master (root-commit) 62c2f8a] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/.git/
[master (root-commit) 2a243b0] 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 0b9f4ba] 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 b6a0415] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:12 2018 +0000
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 e5e3805] 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 a583bfa] 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 a52af8c] 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 9267023] 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 1a8a882] 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 34be90f] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively cd217a7] 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 '532004b8ae691cdab3311211cadac751f8c656db'
Previous HEAD position was 532004b Base inside first submodule
Switched to branch 'modifications'
rm 'sub1'
[replace_sub1_with_directory 7a2191b] 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 ff029db] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:16 2018 +0000
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 8ddffa5] 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 b0f581e] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:16 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Switched to a new branch 'invalid_sub1'
[invalid_sub1 a749ac1] Invalid sub1 commit
Author: A U Thor <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 653c9b3] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:02:16 2018 +0000
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:
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:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 3 - git read-tree -u -m --recurse-submodules: submodule branch is not changed, detach HEAD instead
expecting success:
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 4 - git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule
expecting success:
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 5 - git read-tree -u -m --recurse-submodules: replace directory with submodule
expecting success:
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
)
Cloning into 'submodule_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 '532004b8ae691cdab3311211cadac751f8c656db'
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:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
ok 10 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree
expecting success:
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 &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: failed to unpack tree object 0123456789012345678901234567890123456789
error: Submodule 'sub1' cannot checkout new HEAD.
ok 11 - git read-tree -u -m --recurse-submodules: updating to a missing submodule commit fails
expecting success:
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 12 - git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name
checking known breakage:
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 13 - git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file # TODO known breakage
checking known breakage:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 14 - git read-tree -u -m --recurse-submodules: replace submodule with a directory # TODO known breakage
checking known breakage:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 15 - 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:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
ok 16 - git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
ok 17 - git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree
expecting success:
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 'a52af8cb2dd16b0526894a6973b5e4acc35059d0'
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 '62c2f8a8fbddcd3fb634abdc89144436cba97036'
Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'.
ok 18 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively
expecting success:
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 19 - git read-tree -u --reset --recurse-submodules: added submodule is checked out
expecting success:
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 20 - git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 21 - git read-tree -u --reset --recurse-submodules: submodule branch is not changed, detach HEAD instead
expecting success:
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 22 - git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule
expecting success:
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 23 - git read-tree -u --reset --recurse-submodules: replace directory with submodule
expecting success:
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
)
Cloning into 'submodule_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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
ok 24 - git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 25 - git read-tree -u --reset --recurse-submodules: removed submodule absorbs submodules .git directory
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
ok 26 - git read-tree -u --reset --recurse-submodules: replace submodule with a file
checking known breakage:
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 27 - git read-tree -u --reset --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
ok 28 - git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree
expecting success:
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 &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
fatal: failed to unpack tree object 0123456789012345678901234567890123456789
error: Submodule 'sub1' cannot checkout new HEAD.
ok 29 - git read-tree -u --reset --recurse-submodules: updating to a missing submodule commit fails
expecting success:
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 30 - git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
ok 31 - git read-tree -u --reset --recurse-submodules: replace submodule with a directory
expecting success:
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_submodule_content sub1 origin/modify_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 '532004b8ae691cdab3311211cadac751f8c656db'
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'
Submodule sub1 is not populated
ok 32 - git read-tree -u --reset --recurse-submodules: replace submodule containing a .git directory with a directory must fail
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
ok 33 - git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files
expecting success:
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 34 - git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
ok 35 - git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
ok 36 - git read-tree -u --reset --recurse-submodules: changed submodule worktree is reset
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 37 - git read-tree -u -m: added submodule creates empty directory
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 38 - git read-tree -u -m: added submodule leaves existing empty directory alone
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 39 - git read-tree -u -m: replace tracked file with submodule creates empty directory
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 40 - git read-tree -u -m: replace directory with submodule
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 41 - git read-tree -u -m: removed submodule leaves submodule directory and its contents in place
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 42 - git read-tree -u -m: removed submodule leaves submodule containing a .git directory alone
expecting success:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 43 - git read-tree -u -m: replace submodule with a directory must fail
expecting success:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 44 - git read-tree -u -m: replace submodule containing a .git directory with a directory must fail
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 45 - git read-tree -u -m: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 46 - git read-tree -u -m: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
Submodule path 'sub1': checked out 'e5e3805deaf03e0bcfdc167580ee126e735267ab'
ok 47 - git read-tree -u -m: modified submodule does not update submodule work tree
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 48 - git read-tree -u -m: modified submodule does not update submodule work tree to invalid commit
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 49 - git read-tree -u -m: modified submodule does not update submodule work tree from invalid commit
expecting success:
prolog &&
reset_work_tree_to 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 50 - git read-tree -u -m: added submodule doesn't remove untracked unignored file with same name
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 51 - git read-tree -u --reset: added submodule creates empty directory
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 52 - git read-tree -u --reset: added submodule leaves existing empty directory alone
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 53 - git read-tree -u --reset: replace tracked file with submodule creates empty directory
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 54 - git read-tree -u --reset: replace directory with submodule
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 55 - git read-tree -u --reset: removed submodule leaves submodule directory and its contents in place
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
ok 56 - git read-tree -u --reset: removed submodule leaves submodule containing a .git directory alone
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 57 - git read-tree -u --reset: replace submodule with a directory must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 58 - git read-tree -u --reset: replace submodule containing a .git directory with a directory must fail # TODO known breakage
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 59 - git read-tree -u --reset: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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 '532004b8ae691cdab3311211cadac751f8c656db'
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 60 - git read-tree -u --reset: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
Submodule path 'sub1': checked out 'e5e3805deaf03e0bcfdc167580ee126e735267ab'
ok 61 - git read-tree -u --reset: modified submodule does not update submodule work tree
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 62 - git read-tree -u --reset: modified submodule does not update submodule work tree to invalid commit
expecting success:
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 '532004b8ae691cdab3311211cadac751f8c656db'
Submodule path 'uninitialized_sub': checked out '532004b8ae691cdab3311211cadac751f8c656db'
ok 63 - git read-tree -u --reset: modified submodule does not update submodule work tree from invalid commit
expecting success:
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 64 - git read-tree -u --reset: added submodule does remove untracked unignored file with same name when forced
# still have 11 known breakage(s)
# passed all remaining 53 test(s)
1..64
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:
mkdir parent &&
(cd parent &&
git init &&
echo content >file &&
git add file &&
git commit -m base
) &&
git fetch parent master:origin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2015-checkout-unborn/parent/.git/
[master (root-commit) 85f089b] 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:
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:
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:
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:
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:
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:
try_repo 0 unset unset unset "" unset \
.git "$here/0" "$here/0" "(null)" \
.git "$here/0" "$here/0" sub/ 2>message &&
! test -s 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:
try_repo 1 "$here" unset unset "" unset \
"$here/1/.git" "$here" "$here" 1/ \
"$here/1/.git" "$here" "$here" 1/sub/ 2>message &&
! test -s 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 -s 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:
# 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 -s 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 -s 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 -s 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:
# 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 -s 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
# 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 -s 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:
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:
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:
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:
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:
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:
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:
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:
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:
# 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 -s 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:
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:
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:
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 -s 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:
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:
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:
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:
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:
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:
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:
# 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 -s 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 -s message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/29/.git/
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
ok 95 - #29: setup
expecting success:
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:
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:
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:
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:
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:
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:
# 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:
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:
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:
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:
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:
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:
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:
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'
*** t2017-checkout-orphan.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2017-checkout-orphan/.git/
expecting success:
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) b9913eb] First Commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
[master f953497] Second Commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - Setup
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 f953497 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 f953497 Second Commit
ok 12 - --orphan refuses to switch if a merge is needed
expecting success:
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:
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:
git checkout ambiguity >stdout 2>stderr
ok 2 - checkout ambiguous ref succeeds
expecting success:
grep "warning.*ambiguous" stderr
warning: refname 'ambiguity' is ambiguous.
ok 3 - checkout produces ambiguity warning
expecting success:
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:
test_i18ngrep "Switched to branch" stderr &&
test_i18ngrep ! "^HEAD is now at" stderr
Switched to branch 'ambiguity'
ok 5 - checkout reports switch to branch
expecting success:
git checkout vagueness >stdout 2>stderr &&
test_set_prereq VAGUENESS_SUCCESS
ok 6 - checkout vague ref succeeds
expecting success:
grep "warning.*ambiguous" stderr
warning: refname 'vagueness' is ambiguous.
ok 7 - checkout produces ambiguity warning
expecting success:
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:
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:
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:
do_checkout branch2
Switched to a new branch 'branch2'
ok 2 - checkout -b to a new branch, set to HEAD
expecting success:
git checkout branch1 &&
git branch -D branch2 &&
do_checkout branch2 $HEAD1
Switched to branch 'branch1'
Deleted branch branch2 (was 5be17a9).
Switched to a new branch 'branch2'
ok 3 - checkout -b to a new branch, set to an explicit ref
expecting success:
git checkout branch1 &&
# clean up from previous test
git branch -D branch2 &&
setup_dirty_unmergeable &&
test_must_fail do_checkout branch2 $HEAD1 &&
test_dirty_unmergeable
Switched to branch 'branch1'
Deleted branch branch2 (was ee02a18).
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
ok 4 - checkout -b to a new branch with unmergeable changes fails
expecting success:
# still dirty and on branch1
do_checkout branch2 $HEAD1 "-f -b" &&
test_must_fail test_dirty_unmergeable
Switched to a new branch 'branch2'
ok 5 - checkout -f -b to a new branch with unmergeable changes discards changes
expecting success:
git checkout branch1 &&
# clean up from previous test
git branch -D branch2 &&
setup_dirty_mergeable &&
do_checkout branch2 $HEAD1 &&
test_dirty_mergeable
Switched to branch 'branch1'
Deleted branch branch2 (was ee02a18).
Switched to a new branch 'branch2'
A file2
ok 6 - checkout -b to a new branch preserves mergeable changes
expecting success:
# clean up from previous test
git reset --hard &&
git checkout branch1 &&
# clean up from previous test
git branch -D branch2 &&
setup_dirty_mergeable &&
do_checkout branch2 $HEAD1 "-f -b" &&
test_must_fail test_dirty_mergeable
HEAD is now at ee02a18 initial
Switched to branch 'branch1'
Deleted branch branch2 (was ee02a18).
Switched to a new branch 'branch2'
ok 7 - checkout -f -b to a new branch with mergeable changes discards changes
expecting success:
git reset --hard HEAD &&
test_must_fail do_checkout branch2 $HEAD2
HEAD is now at ee02a18 initial
fatal: A branch named 'branch2' already exists.
ok 8 - checkout -b to an existing branch fails
expecting success:
git reset --hard HEAD &&
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
HEAD is now at ee02a18 initial
Switched to branch 'branch1'
Switched to branch 'branch2'
ok 9 - checkout -b to @{-1} fails with the right branch name
expecting success:
git checkout branch1 &&
do_checkout branch2 "" -B
Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 10 - checkout -B to an existing branch resets branch to HEAD
expecting success:
git checkout $(git rev-parse --verify HEAD) &&
do_checkout branch2 "" -B
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5be17a9 change1
Switched to and reset branch 'branch2'
ok 11 - checkout -B to an existing branch from detached HEAD resets branch to HEAD
expecting success:
git checkout branch1 &&
do_checkout branch2 $HEAD1 -B
Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 12 - checkout -B to an existing branch with an explicit ref resets branch to that ref
expecting success:
git checkout branch1 &&
setup_dirty_unmergeable &&
test_must_fail 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
ok 13 - checkout -B to an existing branch with unmergeable changes fails
expecting success:
# still dirty and on branch1
do_checkout branch2 $HEAD1 "-f -B" &&
test_must_fail test_dirty_unmergeable
Switched to and reset branch 'branch2'
ok 14 - checkout -f -B to an existing branch with unmergeable changes discards changes
expecting success:
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
ok 15 - checkout -B to an existing branch preserves mergeable changes
expecting success:
# clean up from previous test
git reset --hard &&
git checkout branch1 &&
setup_dirty_mergeable &&
do_checkout branch2 $HEAD1 "-f -B" &&
test_must_fail test_dirty_mergeable
HEAD is now at ee02a18 initial
Switched to branch 'branch1'
Switched to and reset branch 'branch2'
ok 16 - checkout -f -B to an existing branch with mergeable changes discards changes
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5be17a9 change1
Switched to a new branch 'initial-1-g5be17a9'
ok 17 - checkout -b <describe>
expecting success:
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
ok 18 - checkout -B to the current branch works
# passed all 18 test(s)
1..18
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:
mkdir -p a/b/c &&
>a/b/c/d &&
git add -A &&
git commit -m base &&
git tag start
[master (root-commit) 37e423e] 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:
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 295eb3c] 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:
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 1865ffe] 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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[symlink 2646c1d] 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:
git rm --cached a/b &&
git commit -m "un-track the symlink" &&
test_must_fail git checkout start
rm 'a/b'
[symlink dc8c2ae] 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:
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:
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:
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
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:
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'
ok 3 - do not touch unmerged entries matching $path but not in $tree
expecting success:
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
# passed all 4 test(s)
1..4
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:
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:
reset &&
git checkout branch &&
check_not_detached
Already on 'master'
Switched to branch 'branch'
ok 2 - checkout branch does not detach
expecting success:
reset &&
git checkout tag &&
check_detached
Switched to branch 'master'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at fd8d77e four
ok 3 - checkout tag detaches
expecting success:
reset &&
git checkout refs/heads/branch &&
check_detached
Switched to branch 'master'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at fd8d77e four
ok 4 - checkout branch by full name detaches
expecting success:
reset &&
git checkout branch^ &&
check_detached
Switched to branch 'master'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 7c7cd71 three
ok 5 - checkout non-ref detaches
expecting success:
reset &&
git checkout branch^0 &&
check_detached
Previous HEAD position was 7c7cd71 three
Switched to branch 'master'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at fd8d77e four
ok 6 - checkout ref^0 detaches
expecting success:
reset &&
git checkout --detach branch &&
check_detached
Switched to branch 'master'
HEAD is now at fd8d77e four
ok 7 - checkout --detach detaches
expecting success:
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:
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:
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:
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:
reset &&
git checkout one &&
git checkout --detach two &&
git diff --exit-code HEAD &&
git diff --exit-code two
Already on 'master'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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:
check_orphan_warning stderr "2 commits"
Warning: you are leaving 2 commits behind, not connected to
ok 14 - checkout warns on orphan commits: output
expecting success:
git checkout "$orphan2" &&
git checkout HEAD^ 2>stderr
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at bfea71d orphan2
ok 15 - checkout warns orphaning 1 of 2 commits
expecting success:
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:
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:
check_no_orphan_warning stderr
Previous HEAD position was 139b20d two
ok 18 - checkout does not warn leaving ref tip
expecting success:
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:
check_no_orphan_warning stderr
Previous HEAD position was 7c7cd71 three
ok 20 - checkout does not warn leaving reachable commit
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
# 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:
commit=7c7cd714e262 &&
commit2=139b20d8e6c5 &&
commit3=d79ce1670bdc &&
# The first detach operation is more chatty than the following ones.
cat >1st_detach <<-EOF &&
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
commit=7c7cd714e262 &&
commit2=139b20d8e6c5 &&
commit3=d79ce1670bdc &&
# The first detach operation is more chatty than the following ones.
cat >1st_detach <<-EOF &&
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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:
test_must_fail git merge master
Merging:
d46615c added_in_topic
virtual master
found 1 common ancestor:
7a8c5bf both.txt
Auto-merging each.txt
CONFLICT (add/add): Merge conflict in 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:
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:
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
# 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:
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 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 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
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
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
Fetching repo_a
warning: no common commits
From repo_a
* [new branch] bar -> repo_a/bar
* [new branch] foo -> repo_a/foo
* [new branch] master -> repo_a/master
* [new tag] a_bar -> a_bar
* [new tag] a_foo -> a_foo
* [new tag] a_master -> a_master
Fetching repo_b
warning: no common commits
From repo_b
* [new branch] baz -> other_b/baz
* [new branch] foo -> other_b/foo
* [new branch] master -> other_b/master
* [new tag] b_baz -> b_baz
* [new tag] b_foo -> b_foo
* [new tag] b_master -> b_master
ok 1 - setup
expecting success:
git checkout -B master &&
test_might_fail git branch -D xyzzy &&
test_must_fail git checkout xyzzy &&
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:
git checkout -B master &&
test_might_fail git branch -D foo &&
test_must_fail git checkout foo &&
test_must_fail git rev-parse --verify refs/heads/foo &&
test_branch master
Reset branch 'master'
error: branch 'foo' not found.
error: pathspec 'foo' did not match any file(s) known to git.
fatal: Needed a single revision
ok 3 - checkout of branch from multiple remotes fails #1
expecting success:
git checkout -B master &&
test_might_fail git branch -D bar &&
git checkout bar &&
test_branch bar &&
test_cmp_rev remotes/repo_a/bar HEAD &&
test_branch_upstream bar repo_a bar
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 4 - checkout of branch from a single remote succeeds #1
expecting success:
git checkout -B master &&
test_might_fail git branch -D baz &&
git checkout baz &&
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 5 - checkout of branch from a single remote succeeds #2
expecting success:
git checkout -B master &&
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 6 - --no-guess suppresses branch auto-vivification
expecting success:
git checkout -B master &&
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'
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
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
warning: no common commits
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
warning: no common commits
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 7 - setup more remotes with unconventional refspecs
expecting success:
git checkout -B master &&
test_might_fail git branch -D bar &&
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 8 - checkout of branch from multiple remotes fails #2
expecting success:
git checkout -B master &&
test_might_fail git branch -D baz &&
test_must_fail git checkout baz &&
test_must_fail git rev-parse --verify refs/heads/baz &&
test_branch master
Reset branch 'master'
Deleted branch baz (was a4f4a16).
error: pathspec 'baz' did not match any file(s) known to git.
fatal: Needed a single revision
ok 9 - checkout of branch from multiple remotes fails #3
expecting success:
git checkout -B master &&
test_might_fail git branch -D spam &&
git checkout spam &&
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 10 - checkout of branch from a single remote succeeds #3
expecting success:
git checkout -B master &&
test_might_fail git branch -D eggs &&
git checkout eggs &&
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 11 - checkout of branch from a single remote succeeds #4
expecting success:
git checkout -B master &&
test_might_fail git branch -D spam &&
>spam &&
test_must_fail git checkout spam &&
test_must_fail git rev-parse --verify refs/heads/spam &&
test_branch master
Switched to and reset branch 'master'
Deleted branch spam (was 1702b85).
error: pathspec 'spam' did not match any file(s) known to git.
fatal: Needed a single revision
ok 12 - checkout of branch with a file having the same name fails
expecting success:
git checkout -B master &&
test_might_fail git branch -D spam &&
>spam &&
mkdir sub &&
mv spam sub/spam &&
test_must_fail git -C sub checkout spam &&
test_must_fail git rev-parse --verify refs/heads/spam &&
test_branch master
Reset branch 'master'
error: branch 'spam' not found.
error: pathspec 'spam' did not match any file(s) known to git.
fatal: Needed a single revision
ok 13 - checkout of branch with a file in subdir having the same name fails
expecting success:
git checkout -B master &&
test_might_fail git branch -D spam &&
>spam &&
git checkout spam -- &&
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 14 - checkout <branch> -- succeeds, even if a file with the same name exists
expecting success:
git checkout master &&
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 &&
git checkout loose | sed -e "s/loose/BRANCHNAME/g" >actual &&
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 15 - loosely defined local base branch is reported correctly
# passed all 15 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2026-worktree-prune.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2026-worktree-prune/.git/
expecting success:
git commit --allow-empty -m init
[master (root-commit) 904eb86] init
Author: A U Thor <author@example.com>
ok 1 - initialize
expecting success:
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:
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
ok 3 - prune files inside $GIT_DIR/worktrees
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
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:
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:
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:
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:
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 904eb86)
HEAD is now at 904eb86 init
ok 9 - not prune recent checkouts
expecting success:
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 904eb86)
HEAD is now at 904eb86 init
ok 10 - not prune proper checkouts
# passed all 10 test(s)
1..10
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:
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) c6ef67b] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 bar
create mode 100644 dir/foo
[master 093b80a] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
set_and_save_state dir/foo work head &&
(echo n; echo 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
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
Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 2 - saying "n" does nothing
expecting success:
(echo n; echo 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
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
Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 3 - git checkout -p
expecting success:
set_state dir/foo work index &&
(echo n; echo 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
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
Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 4 - git checkout -p with staged changes
expecting success:
set_and_save_state dir/foo work head &&
(echo n; echo y; echo 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
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
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:
(echo n; echo y; echo 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
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
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:
set_state dir/foo index index &&
# the third n is to get out in case it mistakenly does not apply
(echo n; echo y; echo 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
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
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:
# the third n is to get out in case it mistakenly does not apply
(echo n; echo y; echo 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
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
Apply this hunk to index and worktree [y,n,q,a,d,e,?]?
ok 8 - git checkout -p HEAD^
expecting success:
set_state dir/foo work index &&
rm dir/foo &&
(echo n; echo 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
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
Discard deletion from worktree [y,n,q,a,d,?]?
ok 9 - git checkout -p handles deletion
expecting success:
set_state dir/foo work head &&
(echo y; echo 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
Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 10 - path limiting works: dir
expecting success:
set_state dir/foo work head &&
(echo y; echo 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
Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 11 - path limiting works: -- dir
expecting success:
# the third n is to get out in case it mistakenly does not apply
(echo y; echo n; echo 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
Apply this hunk to index and worktree [y,n,q,a,d,e,?]?
ok 12 - path limiting works: HEAD^ -- dir
expecting success:
set_state dir/foo work head &&
# the third n is to get out in case it mistakenly does not apply
(echo y; echo n; echo 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
Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 13 - path limiting works: foo inside dir
expecting success:
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'
*** t2027-worktree-list.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2027-worktree-list/.git/
expecting success:
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:
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:
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:
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:
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:
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:
git init --bare bare1 &&
echo "data" >file1 &&
git add file1 &&
git commit -m"File1: add data" &&
git push bare1 master &&
git reset --hard HEAD^
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2027-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 7 - bare repo setup
expecting success:
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 8 - "list" all worktrees from bare main
expecting success:
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 9 - "list" all worktrees --porcelain from bare main
expecting success:
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 10 - "list" all worktrees from linked with a bare main
expecting success:
rm -rf bare1
ok 11 - bare repo cleanup
expecting success:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2027-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.t2027-worktree-list/broken-main 0000000 (error)
ok 12 - broken main worktree still at the top
expecting success:
mkdir sorted &&
git init sorted/main &&
(
cd sorted/main &&
test_tick &&
test_commit new &&
git worktree add ../first &&
git worktree add ../second &&
git worktree list --porcelain >out &&
grep ^worktree out >actual
) &&
cat >expected <<-EOF &&
worktree $(pwd)/sorted/main
worktree $(pwd)/sorted/first
worktree $(pwd)/sorted/second
EOF
test_cmp expected sorted/main/actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2027-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 13 - linked worktrees are sorted
# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2028-worktree-move.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2028-worktree-move/.git/
expecting success:
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:
test_must_fail git worktree lock .
fatal: The main working tree cannot be locked or unlocked
ok 2 - lock main worktree
expecting success:
git worktree lock --reason hahaha source &&
echo hahaha >expected &&
test_cmp expected .git/worktrees/source/locked
ok 3 - lock linked worktree
expecting success:
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:
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:
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:
test_must_fail git worktree unlock .
fatal: The main working tree cannot be locked or unlocked
ok 7 - unlock main worktree
expecting success:
git worktree unlock source &&
test_path_is_missing .git/worktrees/source/locked
ok 8 - unlock linked worktree
expecting success:
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:
mkdir abc &&
test_must_fail git worktree move abc def
fatal: 'abc' is not a working tree
ok 10 - move non-worktree
expecting success:
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
ok 11 - move locked worktree
expecting success:
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.t2028-worktree-move/destination
ok 12 - move worktree
expecting success:
test_must_fail git worktree move . def
fatal: '.' is a main working tree
ok 13 - move main worktree
expecting success:
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.t2028-worktree-move/some-dir/destination
ok 14 - move worktree to another dir
expecting success:
test_must_fail git worktree remove .
fatal: '.' is a main working tree
ok 15 - remove main worktree
expecting success:
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
ok 16 - remove locked worktree
expecting success:
echo dirty >>destination/init.t &&
test_when_finished "git -C destination checkout init.t" &&
test_must_fail git worktree remove destination
fatal: 'destination' is dirty, use --force to delete it
ok 17 - remove worktree with dirty tracked file
expecting success:
: >destination/untracked &&
test_must_fail git worktree remove destination
fatal: 'destination' is dirty, use --force to delete it
ok 18 - remove worktree with untracked file
expecting success:
git worktree remove --force destination &&
test_path_is_missing destination
ok 19 - force remove worktree with untracked file
expecting success:
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 20 - remove missing worktree
expecting success:
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
ok 21 - NOT remove missing-but-locked worktree
# passed all 21 test(s)
1..21
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:
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:
echo initial >top &&
git add top &&
git commit -m initial &&
test -r "${COMMIT_FILE}"
Post commit hook was called.
[master (root-commit) a945bf9] 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:
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 c760e20] 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:
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 508dd67] 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'
*** 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success: git update-index --add -- path0 path1 path2/file2 path3/file3
ok 1 - git update-index --add to add various paths.
expecting success: 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: 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: 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: test_must_fail git update-index --add -- path3
error: 'path3' appears as both a file and as a directory
error: path3: cannot add to the index - missing --add option?
fatal: Unable to process path path3
ok 5 - git update-index to add conflicting path path3 should fail.
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2101-update-index-reupdate.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2101-update-index-reupdate/.git/
expecting success:
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:
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:
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: git commit -m initial
[master (root-commit) 87b3320] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
ok 4 - first commit
expecting success:
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:
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 current expected
ok 6 - update-index --update from subdir
expecting success:
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:
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:
printf new-file > symlink &&
git update-index symlink
ok 2 - modify the symbolic link
expecting success:
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'
*** t2103-update-index-ignore-missing.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2103-update-index-ignore-missing/.git/
expecting success:
>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:
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:
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:
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:
git reset --hard initial &&
test_tick &&
(
cd xyzzy &&
git commit -m "sub second" --allow-empty
) &&
test_must_fail git update-index --refresh &&
test_must_fail git update-index --ignore-missing --refresh &&
git update-index --ignore-submodules --refresh
HEAD is now at ce14d7f initial
[master 66f0d66] sub second
Author: A U Thor <author@example.com>
xyzzy: needs update
xyzzy: needs update
ok 5 - --ignore-submodules --refresh (2)
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2104-update-index-skip-worktree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2104-update-index-skip-worktree/.git/
expecting success:
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:
test "$(test-tool index-version < .git/index)" = 2
ok 2 - index is at version 2
expecting success:
git update-index --skip-worktree 1 sub/1 &&
git ls-files -t | test_cmp expect.skip -
ok 3 - update-index --skip-worktree
expecting success:
test "$(test-tool index-version < .git/index)" = 3
ok 4 - index is at version 3 after having some skip-worktree entries
expecting success:
git ls-files -t | test_cmp expect.skip -
ok 5 - ls-files -t
expecting success:
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:
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'
*** t2030-unresolve-info.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2030-unresolve-info/.git/
expecting success:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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.
fi/le: needs merge
rm 'fi/le'
resolving records
HEAD is now at 70d285e merged
resetting discards
ok 3 - rm records reset clears
expecting success:
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:
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
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:
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:
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'.
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:
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'.
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:
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:
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
Auto-merging add-differently
CONFLICT (add/add): Merge conflict in add-differently
Recorded preimage for 'add-differently'
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
error: no remembered resolution for 'add-differently'
ok 10 - rerere forget (add-add conflict)
# passed all 10 test(s)
1..10
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:
mkdir sub1 &&
(cd sub1 &&
git init &&
REAL="$(pwd)/.real" &&
mv .git "$REAL" &&
echo "gitdir: $REAL" >.git &&
test_commit first)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2105-update-index-gitfile/sub1/.git/
[master (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
ok 1 - submodule with absolute .git file
expecting success:
git update-index --add -- sub1
ok 2 - add gitlink to absolute .git file
expecting success:
mkdir sub2 &&
(cd sub2 &&
git init &&
mv .git .real &&
echo "gitdir: .real" >.git &&
test_commit first)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2105-update-index-gitfile/sub2/.git/
[master (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
ok 3 - submodule with relative .git file
expecting success:
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: : >file &&
git add file &&
git commit -m initial &&
git branch other &&
echo upstream >file &&
git add file &&
git commit -m upstream
[master (root-commit) f5e7e03] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
[master 9479f3f] upstream
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success: git reset --hard &&
git checkout other &&
echo dirt >file &&
git update-index --assume-unchanged file &&
test_must_fail git checkout master
HEAD is now at 9479f3f upstream
Switched to branch 'other'
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 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:
test_must_fail git update-index --nonsense 2>msg &&
cat msg &&
test -s msg
error: unknown option 'nonsense'
usage: git update-index [<options>] [--] [<file>...]
-q continue refresh even when index needs update
--ignore-submodules refresh: ignore submodules
--add do not ignore new files
--replace let files replace directories and vice-versa
--remove notice files missing from worktree
--unmerged refresh even if index contains unmerged entries
--refresh refresh stat information
--really-refresh like --refresh, but ignore assume-unchanged setting
--cacheinfo <mode>,<object>,<path>
add the specified entry to the index
--chmod (+/-)x override the executable bit of the listed files
--assume-unchanged mark files as "not changing"
--no-assume-unchanged
clear assumed-unchanged bit
--skip-worktree mark files as "index-only"
--no-skip-worktree clear skip-worktree bit
--info-only add to index only; do not add content to object database
--force-remove remove named paths even if present in worktree
-z with --stdin: input lines are terminated by null bytes
--stdin read list of paths to be updated from standard input
--index-info add entries from standard input to the index
--unresolve repopulate stages #2 and #3 for the listed paths
-g, --again only update entries that differ from HEAD
--ignore-missing ignore files missing from worktree
--verbose report actions to standard output
--clear-resolve-undo (for porcelains) forget saved unresolved conflicts
--index-version <n> write index in this format
--split-index enable or disable split index
--untracked-cache enable/disable untracked cache
--test-untracked-cache
test if the filesystem supports untracked cache
--force-untracked-cache
enable untracked cache without testing the filesystem
--force-write-index write out the index even if is not flagged as changed
--fsmonitor enable or disable file system monitor
--fsmonitor-valid mark files as fsmonitor valid
--no-fsmonitor-valid clear fsmonitor valid bit
ok 1 - update-index --nonsense fails
expecting success:
test_expect_code 129 git update-index --nonsense 2>err &&
test_i18ngrep "[Uu]sage: git update-index" err
usage: git update-index [<options>] [--] [<file>...]
ok 2 - update-index --nonsense dumps usage
expecting success:
mkdir broken &&
(
cd broken &&
git init &&
>.git/index &&
test_expect_code 129 git update-index -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage: git update-index" broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/broken/.git/
usage: git update-index [<options>] [--] [<file>...]
ok 3 - update-index -h with corrupt index
expecting success:
test_must_fail git update-index --cacheinfo
error: option 'cacheinfo' expects <mode>,<sha1>,<path>
ok 4 - --cacheinfo complains of missing arguments
expecting success:
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:
git init submodule &&
(cd submodule && test_commit foo) &&
git add submodule &&
git rev-parse :submodule >expect &&
test_must_fail git update-index --cacheinfo 160000 $ZERO_OID submodule &&
git rev-parse :submodule >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/submodule/.git/
[master (root-commit) ddd63c9] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
warning: adding embedded git repository: submodule
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> submodule
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached submodule
hint:
hint: See "git help submodule" for more information.
error: cache entry has null sha1: submodule
fatal: Unable to write new index file
ok 6 - --cacheinfo does not accept gitlink null sha1
expecting success:
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:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/cleanup/repo/.git/
ok 8 - .lock files cleaned up
expecting success:
>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'
*** t2025-worktree-add.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-worktree-add/.git/
expecting success:
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:
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:
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:
test_must_fail git worktree add existing_short -
fatal: invalid reference: @{-1}
ok 4 - "add" using shorthand - fails when no previous branch
expecting success:
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:
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.t2025-worktree-add'
Preparing worktree (checking out 'master')
ok 6 - "add" refuses to checkout locked branch
expecting success:
(
cd existing_empty &&
echo dirty >>init.t &&
git checkout master -- init.t
)
ok 7 - checking out paths not complaining about linked checkouts
expecting success:
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:
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:
(
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:
(
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:
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:
(
cd here &&
test_must_fail git checkout newmaster
)
fatal: 'newmaster' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2025-worktree-add/there'
ok 13 - die the same branch is already checked out
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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.t2025-worktree-add/there'
ok 14 - die the same branch is already checked out (symlink)
expecting success:
(
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:
(
cd there &&
git checkout newmaster
)
Already on 'newmaster'
ok 16 - not die on re-checking out current branch
expecting success:
(
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:
(
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:
(
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:
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:
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:
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:
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:
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:
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:
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.t2025-worktree-add'
Preparing worktree (checking out 'test-branch')
ok 26 - "add <path>" dwim fails with checked out branch
expecting success:
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:
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:
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:
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:
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:
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.t2025-worktree-add/there'
ok 32 - "add -B" fails if the branch is checked out
expecting success:
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:
git clone --local here here-clone &&
( cd here-clone && git fsck )
Cloning into 'here-clone'...
done.
ok 34 - local clone from linked checkout
expecting success:
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.t2025-worktree-add/bare/objects
ok 35 - local clone --shared from linked checkout
expecting success:
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 36 - "add" worktree with --no-checkout
expecting success:
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 37 - "add" worktree with --checkout
expecting success:
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.t2025-worktree-add/under-rebase 179a9e0 (detached HEAD)
ok 38 - put a worktree under rebase
expecting success:
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.t2025-worktree-add/under-rebase'
Preparing worktree (checking out 'under-rebase')
ok 39 - add a worktree, checking out a rebased branch
expecting success:
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.t2025-worktree-add/under-rebase'
ok 40 - checking out a rebased branch from another worktree
expecting success:
(
cd under-rebase &&
test_must_fail git branch -D under-rebase
)
error: Cannot delete branch 'under-rebase' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2025-worktree-add/under-rebase'
ok 41 - not allow to delete a branch under rebase
expecting success:
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.t2025-worktree-add/under-rebase
ok 42 - rename a branch under rebase not allowed
expecting success:
(
cd under-rebase &&
git checkout under-rebase &&
git checkout - &&
git rebase --abort
)
Switched to branch 'under-rebase'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 179a9e0 c
ok 43 - check out from current worktree branch ok
expecting success:
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.t2025-worktree-add/under-bisect 15d3bfc (detached HEAD)
fatal: 'under-bisect' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2025-worktree-add/under-bisect'
Preparing worktree (checking out 'under-bisect')
ok 44 - checkout a branch under bisect
expecting success:
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.t2025-worktree-add/under-bisect
ok 45 - rename a branch under bisect not allowed
expecting success:
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 46 - --track sets up tracking
expecting success:
test_when_finished rm -rf repo_upstream repo_local foo &&
setup_remote_repo repo_upstream repo_local &&
(
cd repo_local &&
git worktree add --no-track -b foo ../foo repo_upstream/foo
) &&
(
cd foo &&
test_must_fail git config "branch.foo.remote" &&
test_must_fail git config "branch.foo.merge" &&
test_cmp_rev refs/remotes/repo_upstream/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
warning: no common commits
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 47 - --no-track avoids setting up tracking
expecting success:
test_must_fail git worktree add foo non-existent
fatal: invalid reference: non-existent
ok 48 - "add" <path> <non-existent-branch> fails
expecting success:
test_when_finished rm -rf repo_upstream repo_dwim foo &&
setup_remote_repo repo_upstream repo_dwim &&
git init repo_dwim &&
(
cd repo_dwim &&
git worktree add ../foo foo
) &&
(
cd foo &&
test_branch_upstream foo repo_upstream foo &&
test_cmp_rev refs/remotes/repo_upstream/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
warning: no common commits
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.t2025-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 49 - "add" <path> <branch> dwims
expecting success:
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git worktree add ../foo
) &&
(
cd foo &&
test_must_fail git config "branch.foo.remote" &&
test_must_fail git config "branch.foo.merge" &&
! test_cmp_rev refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
warning: no common commits
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
--- expect.rev 2018-06-24 06:04:26.043449415 +0000
+++ actual.rev 2018-06-24 06:04:26.063449925 +0000
@@ -1 +1 @@
-a4459459e7170dcc2f26cecbbe72526f07efb88a
+0904084170bbd5ecc521e3c91047439d367f64c0
ok 50 - git worktree add does not match remote
expecting success:
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git worktree add --guess-remote ../foo
) &&
(
cd foo &&
test_branch_upstream foo repo_a foo &&
test_cmp_rev refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
warning: no common commits
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 51 - git worktree add --guess-remote sets up tracking
expecting success:
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git config worktree.guessRemote true &&
git worktree add ../foo
) &&
(
cd foo &&
test_branch_upstream foo repo_a foo &&
test_cmp_rev refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
warning: no common commits
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 52 - git worktree add with worktree.guessRemote sets up tracking
expecting success:
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git config worktree.guessRemote true &&
git worktree add --no-guess-remote ../foo
) &&
(
cd foo &&
test_must_fail git config "branch.foo.remote" &&
test_must_fail git config "branch.foo.merge" &&
! test_cmp_rev refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2025-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
warning: no common commits
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
--- expect.rev 2018-06-24 06:04:29.618540585 +0000
+++ actual.rev 2018-06-24 06:04:29.643541222 +0000
@@ -1 +1 @@
-a4459459e7170dcc2f26cecbbe72526f07efb88a
+0904084170bbd5ecc521e3c91047439d367f64c0
ok 53 - git worktree --no-guess-remote option overrides config
expecting success:
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 54 - "add" invokes post-checkout hook (branch)
expecting success:
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 55 - "add" invokes post-checkout hook (detached)
expecting success:
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 56 - "add --no-checkout" suppresses post-checkout hook
expecting success:
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 57 - "add" in other worktree invokes post-checkout hook
expecting success:
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 58 - "add" in bare repo invokes post-checkout hook
# passed all 58 test(s)
1..58
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:
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:
git add -u dir1 dir2
ok 2 - update
expecting success:
test "$(git ls-files dir1/sub1)" = ""
ok 3 - update noticed a removal
expecting success:
test "$(git diff-files --name-status dir2/sub3)" = ""
ok 4 - update touched correct path
expecting success:
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:
test "$(git ls-files dir2/other)" = ""
ok 6 - update did not touch untracked files
expecting success:
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:
(
cd dir1 &&
echo more >sub2 &&
git add -u sub2
)
ok 8 - update from a subdirectory
expecting success:
test "$(git diff-files --name-status dir1)" = ""
ok 9 - change gets noticed
expecting success:
(
cd dir1 &&
echo even more >>sub2 &&
git --literal-pathspecs add -u &&
echo even more >>sub2 &&
git add -u
) &&
: >expect &&
git diff-files --name-only >actual &&
test_cmp expect actual
ok 10 - non-qualified update in subdir updates from the root
expecting success:
rm foo &&
test_ln_s_add top foo
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# 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:
git add -u &&
test -z "$(git diff-files)"
ok 12 - add everything changed
expecting success:
touch check &&
git add -u &&
test -z "$(git diff-files)"
ok 13 - touch and then add -u
expecting success:
touch check &&
git add check &&
test -z "$(git diff-files)"
ok 14 - touch and then add explicitly
expecting success:
(
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
ok 15 - add -n -u should not add but just report
expecting success:
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:
test_must_fail git add -u non-existent &&
! (git ls-files | grep "non-existent")
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'
*** t2202-add-addremove.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2202-add-addremove/.git/
expecting success:
(
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:
(
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:
git reset --hard &&
echo >will-remove &&
>will-not-be-added &&
git add &&
git diff-index --name-status --cached HEAD >actual &&
>expect &&
test_cmp expect actual
HEAD is now at 50dd5d8 initial
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
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'
*** t2201-add-update-typechange.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2201-add-update-typechange/.git/
expecting success:
>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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# 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:
rm -f xyzzy yomin nitfol caskly &&
# caskly disappears (not a submodule)
mkdir caskly &&
# nitfol changes from symlink to regular
>nitfol &&
# rezrov/bozbar disappears
rm -fr rezrov &&
if test_have_prereq SYMLINKS; then
ln -s xyzzy rezrov
else
printf %s xyzzy > rezrov
fi &&
# xyzzy disappears (not a submodule)
mkdir xyzzy &&
echo gnusto >xyzzy/bozbar &&
# yomin gets replaced with a submodule
mkdir yomin &&
>yomin/yomin &&
(
cd yomin &&
git init &&
git add yomin &&
git commit -m "sub initial"
) &&
yomin=$(GIT_DIR=yomin/.git git rev-parse HEAD) &&
# yonk is added and then turned into a submodule
# this should appear as T in diff-files and as A in diff-index
>yonk &&
git add yonk &&
rm -f yonk &&
mkdir yonk &&
>yonk/yonk &&
(
cd yonk &&
git init &&
git add yonk &&
git commit -m "sub initial"
) &&
yonk=$(GIT_DIR=yonk/.git git rev-parse HEAD) &&
# zifmia is added and then removed
# this should appear in diff-files but not in diff-index.
>zifmia &&
git add zifmia &&
rm -f zifmia &&
mkdir zifmia &&
{
git ls-tree -r HEAD |
sed -e "s/^/:/" -e "
/ caskly/{
s/ caskly/ $ZERO_OID D&/
s/blob/000000/
}
/ nitfol/{
s/ nitfol/ $ZERO_OID $T_letter&/
s/blob/100644/
}
/ rezrov.bozbar/{
s/ rezrov.bozbar/ $ZERO_OID D&/
s/blob/000000/
}
/ xyzzy/{
s/ xyzzy/ $ZERO_OID D&/
s/blob/000000/
}
/ yomin/{
s/ yomin/ $ZERO_OID T&/
s/blob/160000/
}
"
} >expect &&
{
cat expect
echo ":100644 160000 $_empty $ZERO_OID T yonk"
echo ":100644 000000 $_empty $ZERO_OID D zifmia"
} >expect-files &&
{
cat expect
echo ":000000 160000 $ZERO_OID $ZERO_OID A yonk"
} >expect-index &&
{
echo "100644 $_empty 0 nitfol"
echo "160000 $yomin 0 yomin"
echo "160000 $yonk 0 yonk"
} >expect-final
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2201-add-update-typechange/yomin/.git/
[master (root-commit) 9da2848] sub initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 yomin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2201-add-update-typechange/yonk/.git/
[master (root-commit) 9cc3160] sub initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 yonk
ok 2 - modify
expecting success:
git diff-files --raw >actual &&
test_cmp expect-files actual
ok 3 - diff-files
expecting success:
git diff-index --raw HEAD -- >actual &&
test_cmp expect-index actual
ok 4 - diff-index
expecting success:
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:
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'
*** t2300-cd-to-toplevel.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2300-cd-to-toplevel/.git/
expecting success:
(
cd 'repo' &&
PATH="$EXEC_PATH:$PATH" &&
. git-sh-setup &&
cd_to_toplevel &&
[ "$(pwd -P)" = "$TOPLEVEL" ]
)
ok 1 - at physical root
expecting success:
(
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
(
cd 'symrepo' &&
PATH="$EXEC_PATH:$PATH" &&
. git-sh-setup &&
cd_to_toplevel &&
[ "$(pwd -P)" = "$TOPLEVEL" ]
)
ok 3 - at symbolic root
expecting success:
(
cd 'subdir-link' &&
PATH="$EXEC_PATH:$PATH" &&
. git-sh-setup &&
cd_to_toplevel &&
[ "$(pwd -P)" = "$TOPLEVEL" ]
)
ok 4 - at symbolic subdir
expecting success:
(
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'
*** t3000-ls-files-others.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3000-ls-files-others/.git/
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
ok 1 - setup
expecting success:
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:
git ls-files --others >output &&
test_cmp expected1 output
ok 3 - ls-files --others
expecting success:
git ls-files --others --directory >output &&
test_cmp expected2 output
ok 4 - ls-files --others --directory
expecting success:
git ls-files --others --directory --no-empty-directory >output &&
test_cmp expected3 output
ok 5 - --no-empty-directory hides empty directory
expecting success:
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:
git init super &&
git init sub &&
(
cd sub &&
>a &&
git add a &&
git commit -m sub &&
git pack-refs --all
) &&
(
cd super &&
"$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" ../sub sub
git ls-files --others --exclude-standard >../actual
) &&
echo sub/ >expect &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3000-ls-files-others/super/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3000-ls-files-others/sub/.git/
[master (root-commit) d720933] 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
# passed all 7 test(s)
1..7
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:
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:
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 2 - no complaints for unignored file
expecting success:
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:
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 4 - no complaints for unignored dir
expecting success:
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 5 - no complaints for unignored d*
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 6 - complaints for ignored ign
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 7 - complaints for ignored ign output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 8 - complaints for ignored ign with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 9 - complaints for ignored ign with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 10 - complaints for ignored dir/ign
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 11 - complaints for ignored dir/ign output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 12 - complaints for ignored dir/ign with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 13 - complaints for ignored dir/ign with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 14 - complaints for ignored dir/sub
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 15 - complaints for ignored dir/sub output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 16 - complaints for ignored dir/sub with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 17 - complaints for ignored dir/sub with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 18 - complaints for ignored dir/sub/ign
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 19 - complaints for ignored dir/sub/ign output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 20 - complaints for ignored dir/sub/ign with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 21 - complaints for ignored dir/sub/ign with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 22 - complaints for ignored sub/file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 23 - complaints for ignored sub/file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 24 - complaints for ignored sub/file with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 25 - complaints for ignored sub/file with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 26 - complaints for ignored sub
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 27 - complaints for ignored sub output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 28 - complaints for ignored sub with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 29 - complaints for ignored sub with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 30 - complaints for ignored sub/file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 31 - complaints for ignored sub/file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 32 - complaints for ignored sub/file with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 33 - complaints for ignored sub/file with unignored file output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 34 - complaints for ignored sub/ign
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 35 - complaints for ignored sub/ign output
expecting success:
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
! test -s out
ok 36 - complaints for ignored sub/ign with unignored file
expecting success:
test_i18ngrep -e "Use -f if" err
Use -f if you really want to add them.
ok 37 - complaints for ignored sub/ign with unignored file output
expecting success:
rm -f .git/index &&
(
cd dir &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
)
ok 38 - complaints for ignored sub in dir
expecting success:
(
cd dir &&
test_i18ngrep -e "Use -f if" err
)
Use -f if you really want to add them.
ok 39 - complaints for ignored sub in dir output
expecting success:
rm -f .git/index &&
(
cd dir &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
)
ok 40 - complaints for ignored sub/file in dir
expecting success:
(
cd dir &&
test_i18ngrep -e "Use -f if" err
)
Use -f if you really want to add them.
ok 41 - complaints for ignored sub/file in dir output
expecting success:
rm -f .git/index &&
(
cd dir &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
)
ok 42 - complaints for ignored sub/ign in dir
expecting success:
(
cd dir &&
test_i18ngrep -e "Use -f if" err
)
Use -f if you really want to add them.
ok 43 - complaints for ignored sub/ign in dir output
expecting success:
rm -f .git/index &&
(
cd sub &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
)
ok 44 - complaints for ignored ign in sub
expecting success:
(
cd sub &&
test_i18ngrep -e "Use -f if" err
)
Use -f if you really want to add them.
ok 45 - complaints for ignored ign in sub output
expecting success:
rm -f .git/index &&
(
cd sub &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
! test -s out
)
ok 46 - complaints for ignored file in sub
expecting success:
(
cd sub &&
test_i18ngrep -e "Use -f if" err
)
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'
*** t3002-ls-files-dashpath.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3002-ls-files-dashpath/.git/
expecting success: echo frotz >path0 &&
echo frotz >./-foo &&
echo frotz >./--
ok 1 - setup
expecting success: git ls-files --others >output &&
test_cmp output - <<EOF
--
-foo
output
path0
EOF
ok 2 - git ls-files without path restriction.
expecting success: git ls-files --others path0 >output &&
test_cmp output - <<EOF
path0
EOF
ok 3 - git ls-files with path restriction.
expecting success: git ls-files --others -- path0 >output &&
test_cmp output - <<EOF
path0
EOF
ok 4 - git ls-files with path restriction with --.
expecting success: git ls-files --others -- -- >output &&
test_cmp output - <<EOF
--
EOF
ok 5 - git ls-files with path restriction with -- --.
expecting success: 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'
*** t2203-add-intent.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/.git/
expecting success:
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:
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:
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:
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:
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:
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:
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 --ita-invisible-in-index HEAD -- nitfol | wc -l) = 0 &&
test $(git diff --name-only --ita-invisible-in-index -- 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:
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:
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:
git reset --hard &&
mkdir dir &&
: >dir/foo &&
git add dir/foo &&
git commit -m foo &&
: >dir/bar &&
git add -N dir/bar &&
git diff --cached --name-only >actual &&
echo dir/bar >expect &&
test_cmp expect actual &&
git write-tree >/dev/null &&
git diff --cached --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:
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
)
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:
rm -fr ita-in-dir &&
git init ita-in-dir &&
(
cd ita-in-dir &&
mkdir -p 1/2/3 &&
echo 4 >1/2/3/4 &&
git add -N 1/2/3/4 &&
git write-tree >actual &&
echo $EMPTY_TREE >expected &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/ita-in-dir/.git/
ok 12 - cache-tree does skip dir that becomes empty
expecting success:
git init empty-initial-commit &&
(
cd empty-initial-commit &&
: >one &&
git add -N one &&
test_must_fail git commit -m nothing-new-here
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/empty-initial-commit/.git/
On branch master
Initial commit
Changes not staged for commit:
new file: one
no changes added to commit
ok 13 - commit: ita entries ignored in empty initial commit check
expecting success:
git init empty-subsequent-commit &&
(
cd empty-subsequent-commit &&
test_commit one &&
: >two &&
git add -N two &&
test_must_fail git commit -m nothing-new-here
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/empty-subsequent-commit/.git/
[master (root-commit) 4331c28] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
On branch master
Changes not staged for commit:
new file: two
no changes added to commit
ok 14 - commit: ita entries ignored in empty commit check
expecting success:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/rename-detection/.git/
[master (root-commit) 0bad72c] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first
renamed: first -> third
ok 15 - rename detection finds the right names
expecting success:
git init rename-detection-2 &&
(
cd rename-detection-2 &&
echo contents >first &&
git add first &&
git commit -m first &&
git mv first second &&
mv second third &&
git add -N third &&
git status | grep -v "^?" >actual.1 &&
test_i18ngrep "renamed: *first -> second" actual.1 &&
test_i18ngrep "renamed: *second -> third" actual.1 &&
git status --porcelain | grep -v "^?" >actual.2 &&
cat >expected.2 <<-\EOF &&
R first -> second
R second -> third
EOF
test_cmp expected.2 actual.2 &&
hash=$(git hash-object third) &&
git status --porcelain=v2 | grep -v "^?" >actual.3 &&
cat >expected.3 <<-EOF &&
2 R. N... 100644 100644 100644 $hash $hash R100 second first
2 .R N... 100644 100644 100644 $hash $hash R100 third second
EOF
test_cmp expected.3 actual.3
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/rename-detection-2/.git/
[master (root-commit) 0bad72c] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first
renamed: first -> second
renamed: second -> third
ok 16 - double rename detection in status
# passed all 16 test(s)
1..16
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:
echo content >file &&
git add file &&
git commit -m file &&
echo modification >file
[master (root-commit) 6954719] 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:
echo 'file' >expect &&
git ls-files --exclude-standard --cached >output &&
test_cmp expect output
ok 2 - ls-files output contains file (cached)
expecting success:
echo 'file' >expect &&
git ls-files --exclude-standard --modified >output &&
test_cmp expect output
ok 3 - ls-files output contains file (modified)
expecting success:
echo file >.gitignore
ok 4 - add file to gitignore
expecting success:
echo 'file' >expect &&
git ls-files --exclude-standard --cached >output &&
test_cmp expect output
ok 5 - ls-files output contains file (cached)
expecting success:
echo 'file' >expect &&
git ls-files --exclude-standard --modified >output &&
test_cmp expect output
ok 6 - ls-files output contains file (modified)
expecting success:
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:
git ls-files >actual &&
test_cmp empty actual
ok 1 - ls-files in empty repository
expecting success:
git ls-files doesnotexist >actual &&
test_cmp empty actual
ok 2 - ls-files with nonexistent path
expecting success:
test_expect_code 129 git ls-files --nonsense 2>actual &&
test_i18ngrep "[Uu]sage: git ls-files" actual
usage: git ls-files [<options>] [<file>...]
ok 3 - ls-files with nonsense option
expecting success:
mkdir broken &&
(
cd broken &&
git init &&
>.git/index &&
test_expect_code 129 git ls-files -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage: git ls-files " broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3004-ls-files-basic/broken/.git/
usage: git ls-files [<options>] [<file>...]
ok 4 - ls-files -h in corrupt repository
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
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:
: >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:
(
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:
(
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_cmp expect.err actual.err
)
ok 3 - ls-files -c
expecting success:
(
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_cmp expect.err actual.err
)
ok 4 - ls-files -o
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3001-ls-files-others-exclude.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3001-ls-files-others-exclude/.git/
expecting success: 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: 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:
git add $allignores &&
git update-index --skip-worktree $allignores &&
rm $allignores
ok 3 - setup skip-worktree gitignore
expecting success: 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:
git checkout --ignore-skip-worktree-bits $allignores &&
rm .git/index
ok 5 - restore gitignore
expecting success: test_cmp expect output
ok 6 - git status honors core.excludesfile
expecting success:
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:
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:
>two &&
git ls-files --others --exclude=two/ >output &&
grep "^two" output
two
ok 9 - trailing slash in exclude forces directory match (1)
expecting success:
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:
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:
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:
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:
mkdir -p top/l1/l2 &&
(
cd top &&
git init &&
echo /.gitignore >.gitignore &&
echo l1 >>.gitignore &&
echo l2 >l1/.gitignore &&
>l1/l2/l1
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3001-ls-files-others-exclude/top/.git/
ok 14 - subdirectory ignore (setup)
expecting success:
(
cd top &&
git ls-files -o --exclude-standard
) >actual &&
>expect &&
test_cmp expect actual
ok 15 - subdirectory ignore (toplevel)
expecting success:
(
cd top/l1/l2 &&
git ls-files -o --exclude-standard
) >actual &&
>expect &&
test_cmp expect actual
ok 16 - subdirectory ignore (l1/l2)
expecting success:
(
cd top/l1 &&
git ls-files -o --exclude-standard
) >actual &&
>expect &&
test_cmp expect actual
ok 17 - subdirectory ignore (l1)
expecting success:
rm top/l1/l2/l1 &&
rm top/l1/.gitignore
ok 18 - show/hide empty ignored directory (setup)
expecting success:
(
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:
(
cd top &&
git ls-files -o -i --exclude l1 --directory --no-empty-directory
) >actual &&
>expect &&
test_cmp expect actual
ok 20 - hide empty ignored directory with --no-empty-directory
expecting success:
> top/l1/tracked &&
(
cd top &&
git add -f l1/tracked
)
ok 21 - show/hide empty ignored sub-directory (setup)
expecting success:
(
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:
(
cd top &&
git ls-files -o -i --exclude l1 --directory --no-empty-directory
) >actual &&
>expect &&
test_cmp expect actual
ok 23 - hide empty ignored sub-directory with --no-empty-directory
expecting success:
: >expect &&
git ls-files -i -o --exclude "/three/a.3[abc]" >actual &&
test_cmp expect actual
ok 24 - pattern matches prefix completely
expecting success:
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:
: >expect &&
git ls-files -o -i --exclude "one**a.1" >actual &&
test_cmp expect 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'
*** t3006-ls-files-long.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3006-ls-files-long/.git/
expecting success:
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:
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:
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:
(
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.008305 0.005322 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'
*** t3020-ls-files-error-unmatch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3020-ls-files-error-unmatch/.git/
expecting success:
touch foo bar &&
git update-index --add foo bar &&
git commit -m "add foo bar"
[master (root-commit) 4ba8c94] 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: 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: 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'
*** t3010-ls-files-killed-modified.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3010-ls-files-killed-modified/.git/
expecting success:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3010-ls-files-killed-modified/submod1/.git/
[master (root-commit) 49be564] empty 1
Author: A U Thor <author@example.com>
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3010-ls-files-killed-modified/submod2/.git/
[master (root-commit) 599cd16] empty 2
Author: A U Thor <author@example.com>
[master 77499c3] empty 1 (updated)
Author: A U Thor <author@example.com>
ok 1 - git update-index --add to add various paths.
expecting success:
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:
git ls-files -k >.output &&
test_cmp .expected .output
ok 3 - git ls-files -k output (w/o icase)
expecting success:
git -c core.ignorecase=true ls-files -k >.output &&
test_cmp .expected .output
ok 4 - git ls-files -k output (w/ icase)
expecting success:
git ls-files -m >.output
ok 5 - git ls-files -m to show modified files.
expecting success:
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'
*** t3031-merge-criscross.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3031-merge-criscross/.git/
expecting success:
mkdir data &&
# create a bunch of files
n=1 &&
while test $n -le 10
do
echo $n > data/$n &&
n=$(($n+1)) ||
return 1
done &&
# check them in
git add data &&
git commit -m A &&
git branch A &&
# a file in one branch
git checkout -b B A &&
git rm data/9 &&
git add data &&
git commit -m B &&
# with a branch off of it
git branch D &&
# put some commits on D
git checkout D &&
echo testD > data/testD &&
git add data &&
git commit -m D &&
# back up to the top, create another branch and cause
# a rename conflict with the file we deleted earlier
git checkout -b C A &&
git mv data/9 data/new-9 &&
git add data &&
git commit -m C &&
# with a branch off of it
git branch E &&
# put a commit on E
git checkout E &&
echo testE > data/testE &&
git add data &&
git commit -m E &&
# now, merge E into B
git checkout B &&
test_must_fail git merge E &&
# force-resolve
git add data &&
git commit -m F &&
git branch F &&
# and merge D into C
git checkout C &&
test_must_fail git merge D &&
# force-resolve
git add data &&
git commit -m G &&
git branch G
[master (root-commit) 9e6a689] A
Author: A U Thor <author@example.com>
10 files changed, 10 insertions(+)
create mode 100644 data/1
create mode 100644 data/10
create mode 100644 data/2
create mode 100644 data/3
create mode 100644 data/4
create mode 100644 data/5
create mode 100644 data/6
create mode 100644 data/7
create mode 100644 data/8
create mode 100644 data/9
Switched to a new branch 'B'
rm 'data/9'
[B 63a1def] B
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 data/9
Switched to branch 'D'
[D 0bb32cf] D
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 data/testD
Switched to a new branch 'C'
[C 76b1518] C
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename data/{9 => new-9} (100%)
Switched to branch 'E'
[E f0c07aa] E
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 data/testE
Switched to branch 'B'
Merging:
63a1def B
virtual E
found 1 common ancestor:
9e6a689 A
CONFLICT (rename/delete): data/9 deleted in HEAD and renamed to data/new-9 in E. Version E of data/new-9 left in tree.
Automatic merge failed; fix conflicts and then commit the result.
[B 35afb59] F
Author: A U Thor <author@example.com>
Switched to branch 'C'
Merging:
76b1518 C
virtual D
found 1 common ancestor:
9e6a689 A
CONFLICT (rename/delete): data/9 deleted in D and renamed to data/new-9 in HEAD. Version HEAD of data/new-9 left in tree.
Automatic merge failed; fix conflicts and then commit the result.
[C 739280e] G
Author: A U Thor <author@example.com>
ok 1 - setup repo with criss-cross history
expecting success:
git merge F
Merging:
739280e G
virtual F
found 2 common ancestors:
76b1518 C
63a1def B
Merging:
76b1518 C
63a1def B
found 1 common ancestor:
9e6a689 A
Skipped data/new-9 (merged same as existing)
Merge made by the 'recursive' strategy.
data/testE | 1 +
1 file changed, 1 insertion(+)
create mode 100644 data/testE
ok 2 - recursive merge between F and G, causes segfault
# passed all 2 test(s)
1..2
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:
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) 0386ea6] add a and b
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 a
create mode 100644 b/b
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/submodule/.git/
[master (root-commit) e621997] 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 349c8e2] 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:
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:
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:
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:
cat >expect <<-\EOF &&
.gitmodules
a
b/b
submodule/.gitmodules
submodule/c
submodule/subsub/d
EOF
git init submodule/subsub &&
echo d >submodule/subsub/d &&
git -C submodule/subsub add d &&
git -C submodule/subsub commit -m "add d" &&
git -C submodule submodule add ./subsub &&
git -C submodule commit -m "added subsub" &&
git submodule absorbgitdirs &&
git ls-files --recurse-submodules >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/submodule/subsub/.git/
[master (root-commit) 0422dab] 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 5122d25] 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:
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:
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 &&
cat actual &&
git ls-files --recurse-submodules "*" >actual &&
test_cmp expect actual
[master 337409b] adding e.txt
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 e.txt
[master cdeba7a] 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 6cdb519] add h and sib/file
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 h.txt
create mode 100644 sib/file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/sub/.git/
[master (root-commit) 327eb23] 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 4e599bf] added sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 160000 sub
.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
ok 7 - --recurse-submodules and pathspecs setup
expecting success:
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:
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:
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:
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:
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:
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:
# 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:
test_must_fail git ls-files --recurse-submodules --error-unmatch 2>actual &&
test_i18ngrep "does not support --error-unmatch" actual
fatal: ls-files --recurse-submodules does not support --error-unmatch
ok 15 - --recurse-submodules does not support --error-unmatch
expecting success:
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:
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:
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:
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:
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:
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'
*** t3032-merge-recursive-space-options.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3032-merge-recursive-space-options/.git/
expecting success:
conflict_hunks () {
sed $SED_OPTIONS -n -e "
/^<<<</ b conflict
b
: conflict
p
/^>>>>/ b
n
b conflict
" "$@"
} &&
cat <<-\EOF >text.txt &&
Hope, he says, cherishes the soul of him who lives in
justice and holiness and is the nurse of his age and the
companion of his journey;--hope which is mightiest to sway
the restless soul of man.
How admirable are his words! And the great blessing of riches, I do
not say to every man, but to a good man, is, that he has had no
occasion to deceive or to defraud others, either intentionally or
unintentionally; and when he departs to the world below he is not in
any apprehension about offerings due to the gods or debts which he owes
to men. Now to this peace of mind the possession of wealth greatly
contributes; and therefore I say, that, setting one thing against
another, of the many advantages which wealth has to give, to a man of
sense this is in my opinion the greatest.
Well said, Cephalus, I replied; but as concerning justice, what is
it?--to speak the truth and to pay your debts--no more than this? And
even to this are there not exceptions? Suppose that a friend when in
his right mind has deposited arms with me and he asks for them when he
is not in his right mind, ought I to give them back to him? No one
would say that I ought or that I should be right in doing so, any more
than they would say that I ought always to speak the truth to one who
is in his condition.
You are quite right, he replied.
But then, I said, speaking the truth and paying your debts is not a
correct definition of justice.
CEPHALUS - SOCRATES - POLEMARCHUS
Quite correct, Socrates, if Simonides is to be believed, said
Polemarchus interposing.
I fear, said Cephalus, that I must go now, for I have to look after the
sacrifices, and I hand over the argument to Polemarchus and the company.
EOF
git add text.txt &&
test_tick &&
git commit -m "Initial revision" &&
git checkout -b remote &&
sed -e "
s/\. /\. /g
s/[?] /? /g
s/ / /g
s/--/---/g
s/but as concerning/but as con cerning/
/CEPHALUS - SOCRATES - POLEMARCHUS/ d
" text.txt >text.txt+ &&
mv text.txt+ text.txt &&
git commit -a -m "Remove cruft" &&
git checkout master &&
sed -e "
s/\(not in his right mind\),\(.*\)/\1;\2Q/
s/Quite correct\(.*\)/It is too correct\1Q/
s/unintentionally/un intentionally/
/un intentionally/ s/$/Q/
s/Polemarchus interposing./Polemarchus, interposing.Q/
/justice and holiness/ s/$/Q/
/pay your debts/ s/$/Q/
" text.txt | q_to_cr >text.txt+ &&
mv text.txt+ text.txt &&
git commit -a -m "Clarify" &&
git show-branch --all
[master (root-commit) c1e95d9] Initial revision
Author: A U Thor <author@example.com>
1 file changed, 36 insertions(+)
create mode 100644 text.txt
Switched to a new branch 'remote'
[remote be82dcf] Remove cruft
Author: A U Thor <author@example.com>
1 file changed, 9 insertions(+), 10 deletions(-)
Switched to branch 'master'
[master 0ab7224] Clarify
Author: A U Thor <author@example.com>
1 file changed, 6 insertions(+), 6 deletions(-)
* [master] Clarify
! [remote] Remove cruft
--
+ [remote] Remove cruft
* [master] Clarify
*+ [remote^] Initial revision
ok 1 - setup
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive HEAD^ -- HEAD remote &&
test_must_fail git update-index --refresh &&
grep "<<<<<<" text.txt
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
CONFLICT (content): Merge conflict in text.txt
text.txt: needs merge
<<<<<<< HEAD
<<<<<<< HEAD
ok 2 - naive merge fails
expecting success:
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
ok 3 - --ignore-space-change makes merge succeed
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git cherry-pick --no-commit remote &&
git read-tree --reset -u HEAD &&
test_must_fail git cherry-pick remote &&
test_must_fail git update-index --refresh &&
grep "<<<<<<" text.txt
Auto-merging text.txt
CONFLICT (content): Merge conflict in text.txt
error: could not apply be82dcf... Remove cruft
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
Auto-merging text.txt
CONFLICT (content): Merge conflict in text.txt
error: could not apply be82dcf... Remove cruft
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
text.txt: needs merge
<<<<<<< HEAD
<<<<<<< HEAD
ok 4 - naive cherry-pick fails
expecting success:
git read-tree --reset -u HEAD &&
git cherry-pick --no-commit -Xignore-space-change remote
Auto-merging text.txt
ok 5 - -Xignore-space-change makes cherry-pick succeed
expecting success:
q_to_cr <<-\EOF >expected &&
justice and holiness and is the nurse of his age and theQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote &&
grep "justice and holiness" text.txt >actual &&
test_cmp expected actual
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
ok 6 - --ignore-space-change: our w/s-only change wins
expecting success:
cat <<-\EOF >expected &&
it?---to speak the truth and to pay your debts---no more than this? And
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote &&
grep "pay your debts" text.txt >actual &&
test_cmp expected actual
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
ok 7 - --ignore-space-change: their real change wins over w/s
expecting success:
cat <<-\EOF >expected1 &&
Well said, Cephalus, I replied; but as con cerning justice, what is
EOF
q_to_cr <<-\EOF >expected2 &&
un intentionally; and when he departs to the world below he is not inQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote &&
grep "Well said" text.txt >actual1 &&
grep "when he departs" text.txt >actual2 &&
test_cmp expected1 actual1 &&
test_cmp expected2 actual2
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
ok 8 - --ignore-space-change: does not ignore new spaces
expecting success:
cat <<-\EOF >expected &&
Well said, Cephalus, I replied; but as concerning justice, what is
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-all-space HEAD^ -- HEAD remote &&
grep "Well said" text.txt >actual &&
test_cmp expected actual
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
ok 9 - --ignore-all-space drops their new spaces
expecting success:
q_to_cr <<-\EOF >expected &&
un intentionally; and when he departs to the world below he is not inQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-all-space HEAD^ -- HEAD remote &&
grep "when he departs" text.txt >actual &&
test_cmp expected actual
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
ok 10 - --ignore-all-space keeps our new spaces
expecting success:
q_to_cr <<-\EOF >expected &&
<<<<<<< HEAD
is not in his right mind; ought I to give them back to him? No oneQ
=======
is not in his right mind, ought I to give them back to him? No one
>>>>>>> remote
EOF
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --ignore-space-at-eol \
HEAD^ -- HEAD remote &&
conflict_hunks text.txt >actual &&
test_cmp expected actual
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
CONFLICT (content): Merge conflict in text.txt
ok 11 - --ignore-space-at-eol
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3030-merge-recursive.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3030-merge-recursive/.git/
expecting success:
echo hello >a &&
o0=$(git hash-object a) &&
cp a b &&
cp a c &&
mkdir d &&
cp a d/e &&
test_tick &&
git add a b c d/e &&
git commit -m initial &&
c0=$(git rev-parse --verify HEAD) &&
git branch side &&
git branch df-1 &&
git branch df-2 &&
git branch df-3 &&
git branch remove &&
git branch submod &&
git branch copy &&
git branch rename &&
git branch rename-ln &&
echo hello >>a &&
cp a d/e &&
o1=$(git hash-object a) &&
git add a d/e &&
test_tick &&
git commit -m "master modifies a and d/e" &&
c1=$(git rev-parse --verify HEAD) &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o1 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o1 d/e"
echo "100644 $o1 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual
[master (root-commit) 88eeecf] initial
Author: A U Thor <author@example.com>
4 files changed, 4 insertions(+)
create mode 100644 a
create mode 100644 b
create mode 100644 c
create mode 100644 d/e
[master b7f3e7f] master modifies a and d/e
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
ok 1 - setup 1
expecting success:
rm -rf [abcd] &&
git checkout side &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o0 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual &&
echo goodbye >>a &&
o2=$(git hash-object a) &&
git add a &&
test_tick &&
git commit -m "side modifies a" &&
c2=$(git rev-parse --verify HEAD) &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o2 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o2 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual
Switched to branch 'side'
D b
D c
[side 4419332] side modifies a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 2 - setup 2
expecting success:
rm -rf [abcd] &&
git checkout df-1 &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o0 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual &&
rm -f b && mkdir b && echo df-1 >b/c && git add b/c &&
o3=$(git hash-object b/c) &&
test_tick &&
git commit -m "df-1 makes b/c" &&
c3=$(git rev-parse --verify HEAD) &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o3 b/c"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o0 0 a"
echo "100644 $o3 0 b/c"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual
Switched to branch 'df-1'
D b
D c
D d/e
[df-1 918ade1] df-1 makes b/c
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 b
create mode 100644 b/c
ok 3 - setup 3
expecting success:
rm -rf [abcd] &&
git checkout df-2 &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o0 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual &&
rm -f a && mkdir a && echo df-2 >a/c && git add a/c &&
o4=$(git hash-object a/c) &&
test_tick &&
git commit -m "df-2 makes a/c" &&
c4=$(git rev-parse --verify HEAD) &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o4 a/c"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o4 0 a/c"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual
Switched to branch 'df-2'
D a
D c
D d/e
[df-2 833bf24] df-2 makes a/c
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 a
create mode 100644 a/c
ok 4 - setup 4
expecting success:
rm -rf [abcd] &&
git checkout remove &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o0 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual &&
rm -f b &&
echo remove-conflict >a &&
git add a &&
git rm b &&
o5=$(git hash-object a) &&
test_tick &&
git commit -m "remove removes b and modifies a" &&
c5=$(git rev-parse --verify HEAD) &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o5 a"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o5 0 a"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual
Switched to branch 'remove'
D b
D c
D d/e
rm 'b'
[remove 968f3e1] remove removes b and modifies a
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 2 deletions(-)
delete mode 100644 b
ok 5 - setup 5
expecting success:
rm -rf [abcd] &&
git checkout df-3 &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 $o0 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
) >expected &&
test_cmp expected actual &&
rm -fr d && echo df-3 >d && git add d &&
o6=$(git hash-object d) &&
test_tick &&
git commit -m "df-3 makes d" &&
c6=$(git rev-parse --verify HEAD) &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "100644 blob $o0 a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o6 d"
echo "100644 $o0 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o6 0 d"
) >expected &&
test_cmp expected actual
Switched to branch 'df-3'
D c
D d/e
[df-3 9d284b3] df-3 makes d
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 d
delete mode 100644 d/e
ok 6 - setup 6
expecting success:
git checkout submod &&
git rm d/e &&
test_tick &&
git commit -m "remove d/e" &&
git update-index --add --cacheinfo 160000 $c1 d &&
test_tick &&
git commit -m "make d/ a submodule"
Switched to branch 'submod'
D c
rm 'd/e'
[submod a09e90e] remove d/e
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 d/e
[submod 8c3440b] make d/ a submodule
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 160000 d
ok 7 - setup 7
expecting success:
git checkout rename &&
git mv a e &&
git add e &&
test_tick &&
git commit -m "rename a->e" &&
c7=$(git rev-parse --verify HEAD) &&
git checkout rename-ln &&
git mv a e &&
test_ln_s_add e a &&
test_tick &&
git commit -m "rename a->e, symlink a->e" &&
oln=$(printf e | git hash-object --stdin)
Switched to branch 'rename'
D c
[rename 5dd9bd8] rename a->e
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename a => e (100%)
Switched to branch 'rename-ln'
D c
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[rename-ln 7e1ee82] rename a->e, symlink a->e
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
rewrite a (100%)
mode change 100644 => 120000
copy a => e (100%)
ok 8 - setup 8
expecting success:
git checkout copy &&
cp a e &&
git add e &&
test_tick &&
git commit -m "copy a->e"
Switched to branch 'copy'
D c
[copy a40ced5] copy a->e
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 e
ok 9 - setup 9
expecting success:
rm -fr [abcd] &&
git checkout -f "$c2" &&
test_expect_code 1 git merge-recursive "$c0" -- "$c2" "$c1"
Note: checking out '441933296d498d45ed4c5cbe9135259386a2e2b2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 4419332 side modifies a
Merging 441933296d498d45ed4c5cbe9135259386a2e2b2 with b7f3e7f677ef7001dcb4b810583c9259a210141d
Merging:
4419332 side modifies a
b7f3e7f master modifies a and d/e
found 1 common ancestor:
88eeecf initial
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 10 - merge-recursive simple
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o0 1 a"
echo "100644 $o2 2 a"
echo "100644 $o1 3 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual
ok 11 - merge-recursive result
expecting success:
rm -fr [abcd] &&
git checkout -f "$c1" &&
test_must_fail git merge "$c5" &&
test_must_fail git merge "$c5" 2> out &&
test_i18ngrep "not possible because you have unmerged files" out &&
git add -u &&
test_must_fail git merge "$c5" 2> out &&
test_i18ngrep "You have not concluded your merge" out &&
rm -f .git/MERGE_HEAD &&
test_must_fail git merge "$c5" 2> out &&
test_i18ngrep "Your local changes to the following files would be overwritten by merge:" out
Previous HEAD position was 4419332 side modifies a
HEAD is now at b7f3e7f master modifies a and d/e
Merging:
b7f3e7f master modifies a and d/e
virtual 968f3e182d39cc5676d733434b2b1fcade6d5fdb
found 1 common ancestor:
88eeecf initial
Removing b
Auto-merging a
CONFLICT (content): Merge conflict in a
Automatic merge failed; fix conflicts and then commit the result.
error: Merging is not possible because you have unmerged files.
fatal: You have not concluded your merge (MERGE_HEAD exists).
Merging:
b7f3e7f master modifies a and d/e
virtual 968f3e182d39cc5676d733434b2b1fcade6d5fdb
found 1 common ancestor:
88eeecf initial
error: Your local changes to the following files would be overwritten by merge:
ok 12 - fail if the index has unresolved entries
expecting success:
rm -fr [abcd] &&
git checkout -f "$c1" &&
test_expect_code 1 git merge-recursive "$c0" -- "$c1" "$c5"
HEAD is now at b7f3e7f master modifies a and d/e
Merging b7f3e7f677ef7001dcb4b810583c9259a210141d with 968f3e182d39cc5676d733434b2b1fcade6d5fdb
Merging:
b7f3e7f master modifies a and d/e
968f3e1 remove removes b and modifies a
found 1 common ancestor:
88eeecf initial
Removing b
Auto-merging a
CONFLICT (content): Merge conflict in a
ok 13 - merge-recursive remove conflict
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o0 1 a"
echo "100644 $o1 2 a"
echo "100644 $o5 3 a"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual
ok 14 - merge-recursive remove conflict
expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c1" &&
git merge-recursive "$c0" -- "$c1" "$c3"
HEAD is now at b7f3e7f master modifies a and d/e
HEAD is now at b7f3e7f master modifies a and d/e
Merging b7f3e7f677ef7001dcb4b810583c9259a210141d with 918ade1d06dd1c0da47b644356c64b1b2122e705
Merging:
b7f3e7f master modifies a and d/e
918ade1 df-1 makes b/c
found 1 common ancestor:
88eeecf initial
Adding b/c
Removing b to make room for subdirectory
Removing b
ok 15 - merge-recursive d/f simple
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o1 0 a"
echo "100644 $o3 0 b/c"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual
ok 16 - merge-recursive result
expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c1" &&
test_expect_code 1 git merge-recursive "$c0" -- "$c1" "$c4"
HEAD is now at b7f3e7f master modifies a and d/e
HEAD is now at b7f3e7f master modifies a and d/e
Merging b7f3e7f677ef7001dcb4b810583c9259a210141d with 833bf240c9e2636a0e5eb3dd8f735d2a92181f22
Merging:
b7f3e7f master modifies a and d/e
833bf24 df-2 makes a/c
found 1 common ancestor:
88eeecf initial
Adding a/c
Removing a to make room for subdirectory
CONFLICT (modify/delete): a deleted in 833bf240c9e2636a0e5eb3dd8f735d2a92181f22 and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of a left in tree at a~b7f3e7f677ef7001dcb4b810583c9259a210141d.
ok 17 - merge-recursive d/f conflict
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o0 1 a"
echo "100644 $o1 2 a"
echo "100644 $o4 0 a/c"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual
ok 18 - merge-recursive d/f conflict result
expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c4" &&
test_expect_code 1 git merge-recursive "$c0" -- "$c4" "$c1"
error: 'a' appears as both a file and as a directory
error: a: cannot drop to stage #0
HEAD is now at b7f3e7f master modifies a and d/e
Previous HEAD position was b7f3e7f master modifies a and d/e
HEAD is now at 833bf24 df-2 makes a/c
Merging 833bf240c9e2636a0e5eb3dd8f735d2a92181f22 with b7f3e7f677ef7001dcb4b810583c9259a210141d
Merging:
833bf24 df-2 makes a/c
b7f3e7f master modifies a and d/e
found 1 common ancestor:
88eeecf initial
Adding a/c
CONFLICT (modify/delete): a deleted in 833bf240c9e2636a0e5eb3dd8f735d2a92181f22 and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of a left in tree at a~b7f3e7f677ef7001dcb4b810583c9259a210141d_0.
ok 19 - merge-recursive d/f conflict the other way
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o0 1 a"
echo "100644 $o1 3 a"
echo "100644 $o4 0 a/c"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual
ok 20 - merge-recursive d/f conflict result the other way
expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c1" &&
test_expect_code 1 git merge-recursive "$c0" -- "$c1" "$c6"
error: 'a' appears as both a file and as a directory
error: a: cannot drop to stage #0
HEAD is now at 833bf24 df-2 makes a/c
Previous HEAD position was 833bf24 df-2 makes a/c
HEAD is now at b7f3e7f master modifies a and d/e
Merging b7f3e7f677ef7001dcb4b810583c9259a210141d with 9d284b3a95aea72df4581977e913e55da89d5e3d
Merging:
b7f3e7f master modifies a and d/e
9d284b3 df-3 makes d
found 1 common ancestor:
88eeecf initial
CONFLICT (modify/delete): d/e deleted in 9d284b3a95aea72df4581977e913e55da89d5e3d and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of d/e left in tree.
CONFLICT (directory/file): There is a directory with name d in b7f3e7f677ef7001dcb4b810583c9259a210141d. Adding d as d~9d284b3a95aea72df4581977e913e55da89d5e3d
ok 21 - merge-recursive d/f conflict
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o1 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o6 3 d"
echo "100644 $o0 1 d/e"
echo "100644 $o1 2 d/e"
) >expected &&
test_cmp expected actual
ok 22 - merge-recursive d/f conflict result
expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c6" &&
test_expect_code 1 git merge-recursive "$c0" -- "$c6" "$c1"
error: 'd/e' appears as both a file and as a directory
error: d/e: cannot drop to stage #0
HEAD is now at b7f3e7f master modifies a and d/e
Previous HEAD position was b7f3e7f master modifies a and d/e
HEAD is now at 9d284b3 df-3 makes d
Merging 9d284b3a95aea72df4581977e913e55da89d5e3d with b7f3e7f677ef7001dcb4b810583c9259a210141d
Merging:
9d284b3 df-3 makes d
b7f3e7f master modifies a and d/e
found 1 common ancestor:
88eeecf initial
CONFLICT (modify/delete): d/e deleted in 9d284b3a95aea72df4581977e913e55da89d5e3d and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of d/e left in tree.
Removing d to make room for subdirectory
CONFLICT (file/directory): There is a directory with name d in b7f3e7f677ef7001dcb4b810583c9259a210141d. Adding d as d~9d284b3a95aea72df4581977e913e55da89d5e3d_0
ok 23 - merge-recursive d/f conflict
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o1 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o6 2 d"
echo "100644 $o0 1 d/e"
echo "100644 $o1 3 d/e"
) >expected &&
test_cmp expected actual
ok 24 - merge-recursive d/f conflict result
expecting success:
git reset --hard "$c2" &&
git read-tree -m "$c0" "$c2" "$c1"
error: 'd/e' appears as both a file and as a directory
error: d/e: cannot drop to stage #0
warning: unable to unlink 'd': Is a directory
HEAD is now at 4419332 side modifies a
ok 25 - reset and 3-way merge
expecting success:
git reset --hard master &&
git read-tree --prefix=M/ master &&
git ls-files -s >actual &&
(
echo "100644 $o1 0 M/a"
echo "100644 $o0 0 M/b"
echo "100644 $o0 0 M/c"
echo "100644 $o1 0 M/d/e"
echo "100644 $o1 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual &&
git read-tree --prefix=a1/ master &&
git ls-files -s >actual &&
(
echo "100644 $o1 0 M/a"
echo "100644 $o0 0 M/b"
echo "100644 $o0 0 M/c"
echo "100644 $o1 0 M/d/e"
echo "100644 $o1 0 a"
echo "100644 $o1 0 a1/a"
echo "100644 $o0 0 a1/b"
echo "100644 $o0 0 a1/c"
echo "100644 $o1 0 a1/d/e"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
) >expected &&
test_cmp expected actual &&
git read-tree --prefix=z/ master &&
git ls-files -s >actual &&
(
echo "100644 $o1 0 M/a"
echo "100644 $o0 0 M/b"
echo "100644 $o0 0 M/c"
echo "100644 $o1 0 M/d/e"
echo "100644 $o1 0 a"
echo "100644 $o1 0 a1/a"
echo "100644 $o0 0 a1/b"
echo "100644 $o0 0 a1/c"
echo "100644 $o1 0 a1/d/e"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e"
echo "100644 $o1 0 z/a"
echo "100644 $o0 0 z/b"
echo "100644 $o0 0 z/c"
echo "100644 $o1 0 z/d/e"
) >expected &&
test_cmp expected actual
HEAD is now at b7f3e7f master modifies a and d/e
ok 26 - reset and bind merge
expecting success:
(
GIT_WORK_TREE="$PWD/ours-has-rename-work" &&
export GIT_WORK_TREE &&
GIT_INDEX_FILE="$PWD/ours-has-rename-index" &&
export GIT_INDEX_FILE &&
mkdir "$GIT_WORK_TREE" &&
git read-tree -i -m $c7 2>actual-err &&
test_must_be_empty actual-err &&
git update-index --ignore-missing --refresh 2>actual-err &&
test_must_be_empty actual-err &&
git merge-recursive $c0 -- $c7 $c3 2>actual-err &&
test_must_be_empty actual-err &&
git ls-files -s >actual-files 2>actual-err &&
test_must_be_empty actual-err
) &&
cat >expected-files <<-EOF &&
100644 $o3 0 b/c
100644 $o0 0 c
100644 $o0 0 d/e
100644 $o0 0 e
EOF
test_cmp expected-files actual-files
Merging 5dd9bd8ddad823127f5e40fcbc297d40f91d9a53 with 918ade1d06dd1c0da47b644356c64b1b2122e705
Merging:
5dd9bd8 rename a->e
918ade1 df-1 makes b/c
found 1 common ancestor:
88eeecf initial
Skipped e (merged same as existing)
Adding b/c
Removing b to make room for subdirectory
Removing b
ok 27 - merge-recursive w/ empty work tree - ours has rename
expecting success:
(
GIT_WORK_TREE="$PWD/theirs-has-rename-work" &&
export GIT_WORK_TREE &&
GIT_INDEX_FILE="$PWD/theirs-has-rename-index" &&
export GIT_INDEX_FILE &&
mkdir "$GIT_WORK_TREE" &&
git read-tree -i -m $c3 2>actual-err &&
test_must_be_empty actual-err &&
git update-index --ignore-missing --refresh 2>actual-err &&
test_must_be_empty actual-err &&
git merge-recursive $c0 -- $c3 $c7 2>actual-err &&
test_must_be_empty actual-err &&
git ls-files -s >actual-files 2>actual-err &&
test_must_be_empty actual-err
) &&
cat >expected-files <<-EOF &&
100644 $o3 0 b/c
100644 $o0 0 c
100644 $o0 0 d/e
100644 $o0 0 e
EOF
test_cmp expected-files actual-files
Merging 918ade1d06dd1c0da47b644356c64b1b2122e705 with 5dd9bd8ddad823127f5e40fcbc297d40f91d9a53
Merging:
918ade1 df-1 makes b/c
5dd9bd8 rename a->e
found 1 common ancestor:
88eeecf initial
Adding b/c
ok 28 - merge-recursive w/ empty work tree - theirs has rename
expecting success:
git reset --hard master &&
git checkout -b rm &&
git rm d/e &&
git commit -mremoved-d/e &&
git checkout master &&
git merge -s recursive rm &&
test_must_fail test -d d
HEAD is now at b7f3e7f master modifies a and d/e
Switched to a new branch 'rm'
rm 'd/e'
[rm df61676] removed-d/e
Author: A U Thor <author@example.com>
1 file changed, 2 deletions(-)
delete mode 100644 d/e
Switched to branch 'master'
Updating b7f3e7f..df61676
Fast-forward
d/e | 2 --
1 file changed, 2 deletions(-)
delete mode 100644 d/e
ok 29 - merge removes empty directories
expecting success:
git checkout submod &&
git merge remove
Switched to branch 'submod'
Merging:
8c3440b make d/ a submodule
virtual remove
found 1 common ancestor:
88eeecf initial
Adding d
Removing b
Merge made by the 'recursive' strategy.
a | 2 +-
b | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
delete mode 100644 b
ok 30 - merge-recursive simple w/submodule
expecting success:
git ls-files -s >actual &&
(
echo "100644 $o5 0 a"
echo "100644 $o0 0 c"
echo "160000 $c1 0 d"
) >expected &&
test_cmp expected actual
ok 31 - merge-recursive simple w/submodule result
expecting success:
git checkout -f copy &&
git merge rename &&
( git ls-tree -r HEAD && git ls-files -s ) >actual &&
(
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 blob $o0 e"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
echo "100644 $o0 0 e"
) >expected &&
test_cmp expected actual
Switched to branch 'copy'
Merging:
a40ced5 copy a->e
virtual rename
found 1 common ancestor:
88eeecf initial
Merge made by the 'recursive' strategy.
a | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 a
ok 32 - merge-recursive copy vs. rename
checking known breakage:
git checkout -f rename &&
git merge rename-ln &&
( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
(
echo "120000 blob $oln a"
echo "100644 blob $o0 b"
echo "100644 blob $o0 c"
echo "100644 blob $o0 d/e"
echo "100644 blob $o0 e"
echo "120000 $oln 0 a"
echo "100644 $o0 0 b"
echo "100644 $o0 0 c"
echo "100644 $o0 0 d/e"
echo "100644 $o0 0 e"
) >expected &&
test_cmp expected actual
Switched to branch 'rename'
Merging:
5dd9bd8 rename a->e
virtual rename-ln
found 1 common ancestor:
88eeecf initial
Merge made by the 'recursive' strategy.
--- expected 2018-06-24 06:04:43.848903492 +0000
+++ actual 2018-06-24 06:04:43.848903492 +0000
@@ -1,9 +1,7 @@
-120000 blob 9cbe6ea56f225388ae614c419249bfc6d734cc30 a
100644 blob ce013625030ba8dba906f756967f9e9ca394464a b
100644 blob ce013625030ba8dba906f756967f9e9ca394464a c
100644 blob ce013625030ba8dba906f756967f9e9ca394464a d/e
100644 blob ce013625030ba8dba906f756967f9e9ca394464a e
-120000 9cbe6ea56f225388ae614c419249bfc6d734cc30 0 a
100644 ce013625030ba8dba906f756967f9e9ca394464a 0 b
100644 ce013625030ba8dba906f756967f9e9ca394464a 0 c
100644 ce013625030ba8dba906f756967f9e9ca394464a 0 d/e
not ok 33 - merge-recursive rename vs. rename/symlink # TODO known breakage
expecting success:
git reset --hard HEAD &&
git checkout -b main &&
git rm -rf . &&
echo "just a file" >sub1 &&
mkdir -p sub2 &&
echo content1 >sub2/file1 &&
echo content2 >sub2/file2 &&
echo content3 >sub2/file3 &&
mkdir simple &&
echo base >simple/bar &&
git add -A &&
test_tick &&
git commit -m base &&
git checkout -b other &&
echo more >>simple/bar &&
test_tick &&
git commit -a -m changesimplefile &&
git checkout main &&
git rm sub1 &&
git mv sub2 sub1 &&
test_tick &&
git commit -m changefiletodir &&
test_tick &&
git merge other
HEAD is now at f670565 Merge branch 'rename-ln' into rename
Switched to a new branch 'main'
rm 'b'
rm 'c'
rm 'd/e'
rm 'e'
[main 6073f24] base
Author: A U Thor <author@example.com>
20 files changed, 41 insertions(+), 1 deletion(-)
create mode 100644 actual
create mode 100644 actual-err
create mode 100644 actual-files
rename b => a~b7f3e7f677ef7001dcb4b810583c9259a210141d (50%)
rename c => a~b7f3e7f677ef7001dcb4b810583c9259a210141d_0 (50%)
create mode 100644 d~9d284b3a95aea72df4581977e913e55da89d5e3d
create mode 100644 d~9d284b3a95aea72df4581977e913e55da89d5e3d_0
delete mode 100644 e
create mode 100644 expected
create mode 100644 expected-files
create mode 100644 ours-has-rename-index
create mode 100644 ours-has-rename-work/b/c
create mode 100644 out
create mode 100644 simple/bar
create mode 100644 sub1
create mode 100644 sub2/file1
create mode 100644 sub2/file2
create mode 100644 sub2/file3
create mode 100644 theirs-has-rename-index
rename {d => theirs-has-rename-work}/e (100%)
Switched to a new branch 'other'
[other d7bb009] changesimplefile
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'main'
rm 'sub1'
[main 03146ad] changefiletodir
Author: A U Thor <author@example.com>
4 files changed, 1 deletion(-)
delete mode 100644 sub1
rename {sub2 => sub1}/file1 (100%)
rename {sub2 => sub1}/file2 (100%)
rename {sub2 => sub1}/file3 (100%)
Merging:
03146ad changefiletodir
virtual other
found 1 common ancestor:
6073f24 base
Skipped sub1/file3 (merged same as existing)
Skipped sub1/file2 (merged same as existing)
Skipped sub1/file1 (merged same as existing)
Merge made by the 'recursive' strategy.
simple/bar | 1 +
1 file changed, 1 insertion(+)
ok 34 - merging with triple rename across D/F conflict
expecting success:
git reset --hard HEAD &&
# more trees than static slots used by oid_to_hex()
for commit in $c0 $c2 $c4 $c5 $c6 $c7
do
git rev-parse "$commit^{tree}"
done >trees &&
# ignore the return code -- it only fails because the input is weird
test_must_fail git -c merge.verbosity=5 merge-recursive $(cat trees) -- $c1 $c3 >out &&
# merge-recursive prints in reverse order, but we do not care
sort <trees >expect &&
sed -n "s/^virtual //p" out | sort >actual &&
test_cmp expect actual
HEAD is now at 9ea9794 Merge branch 'other' into main
error: Your local changes to the following files would be overwritten by merge:
actual
Please commit your changes or stash them before you merge.
Aborting
error: merging of trees b5ddc250313a078250418870e9c7c3eeab06251e and 3bc6156dfdc7615457e8d8c7434a5b65d7ccd4b1 failed
ok 35 - merge-recursive remembers the names of all base trees
expecting success:
git reset --hard HEAD &&
# We are going to create a history leading to two criss-cross
# branches A and B. The common ancestor at the bottom, O0,
# has two child commits O1 and O2, both of which will be merge
# base between A and B, like so:
#
# O1---A
# / \ /
# O0 .
# \ / \
# O2---B
#
# The recently added "check to see if the index is different from
# the tree into which something else is getting merged" check must
# NOT kick in when an inner merge between O1 and O2 is made. Both
# O1 and O2 happen to have the same tree as O0 in this test to
# trigger the bug---whether the inner merge is made by merging O2
# into O1 or O1 into O2, their common ancestor O0 and the branch
# being merged have the same tree. We should not trigger the "is
# the index dirty?" check in this case.
echo "zero" >file &&
git add file &&
test_tick &&
git commit -m "O0" &&
O0=$(git rev-parse HEAD) &&
test_tick &&
git commit --allow-empty -m "O1" &&
O1=$(git rev-parse HEAD) &&
git reset --hard $O0 &&
test_tick &&
git commit --allow-empty -m "O2" &&
O2=$(git rev-parse HEAD) &&
test_tick &&
git merge -s ours $O1 &&
B=$(git rev-parse HEAD) &&
git reset --hard $O1 &&
test_tick &&
git merge -s ours $O2 &&
A=$(git rev-parse HEAD) &&
git merge $B
HEAD is now at 9ea9794 Merge branch 'other' into main
[main fe8b645] O0
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[main e1bd776] O1
Author: A U Thor <author@example.com>
HEAD is now at fe8b645 O0
[main 672fbaf] O2
Author: A U Thor <author@example.com>
Merge made by the 'ours' strategy.
HEAD is now at e1bd776 O1
Merge made by the 'ours' strategy.
Merging:
4f7c8c2 Merge commit '672fbaf8632d686e6b424ddba7ee25fde69b5dfc' into main
virtual bd5c9f32cb72256a7ca88786ceb02ac8e6fea77b
found 2 common ancestors:
e1bd776 O1
672fbaf O2
Merging:
e1bd776 O1
672fbaf O2
found 1 common ancestor:
fe8b645 O0
Already up to date!
Already up to date!
Merge made by the 'recursive' strategy.
ok 36 - merge-recursive internal merge resolves to the sameness
# still have 1 known breakage(s)
# passed all remaining 35 test(s)
1..36
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:
: >Makefile &&
git add Makefile &&
git commit -m "Superproject created"
[master (root-commit) 100ddc1] 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:
mkdir sub1 &&
( cd sub1 && git init && : >Makefile && git add * &&
git commit -q -m "subproject 1" ) &&
mkdir sub2 &&
( cd sub2 && git init && : >Makefile && git add * &&
git commit -q -m "subproject 2" ) &&
git update-index --add sub1 &&
git add sub2 &&
git commit -q -m "subprojects added" &&
GIT_PRINT_SHA1_ELLIPSIS="yes" git diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
git branch save HEAD &&
cat >expected <<-\EOF &&
:000000 160000 00000... A sub1
:000000 160000 00000... A sub2
EOF
test_cmp expected current
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3040-subprojects-basic/sub1/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3040-subprojects-basic/sub2/.git/
warning: adding embedded git repository: sub2
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> sub2
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached sub2
hint:
hint: See "git help submodule" for more information.
ok 2 - setup: create subprojects
expecting success:
git fsck --full
ok 3 - check if fsck ignores the subprojects
expecting success:
( 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 2a9e35ad1e8185ae30ecebc68e7e4a32937a6bd1 0000000000000000000000000000000000000000 M sub1
ok 4 - check if commit in a subproject detected
expecting success:
git commit -q -a -m "sub1 changed" &&
test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD
:160000 160000 2a9e35ad1e8185ae30ecebc68e7e4a32937a6bd1 1f93953ad9d7cab72a1f92b6e02457a5f1cb673a M sub1
ok 5 - check if a changed subproject HEAD can be committed
expecting success:
test_expect_code 1 git diff-index --exit-code --cached save -- sub1
:160000 160000 2a9e35ad1e8185ae30ecebc68e7e4a32937a6bd1 1f93953ad9d7cab72a1f92b6e02457a5f1cb673a M sub1
ok 6 - check if diff-index works for subproject elements
expecting success:
test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- sub1
:160000 160000 2a9e35ad1e8185ae30ecebc68e7e4a32937a6bd1 1f93953ad9d7cab72a1f92b6e02457a5f1cb673a M sub1
ok 7 - check if diff-tree works for subproject elements
expecting success:
test_expect_code 1 git diff --exit-code HEAD^ HEAD
diff --git a/sub1 b/sub1
index 2a9e35a..1f93953 160000
--- a/sub1
+++ b/sub1
@@ -1 +1 @@
-Subproject commit 2a9e35ad1e8185ae30ecebc68e7e4a32937a6bd1
+Subproject commit 1f93953ad9d7cab72a1f92b6e02457a5f1cb673a
ok 8 - check if git diff works for subproject elements
expecting success:
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:
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:
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'
*** t3034-merge-recursive-rename-options.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3034-merge-recursive-rename-options/.git/
expecting success:
cat <<-\EOF >3-old &&
33a
33b
33c
33d
EOF
sed s/33/22/ <3-old >2-old &&
sed s/33/11/ <3-old >1-old &&
sed s/33/00/ <3-old >0-old &&
git add [0-3]-old &&
git commit -m base &&
git rm [0-3]-old &&
git commit -m delete &&
git checkout -b rename HEAD^ &&
cp 3-old 3-new &&
sed 1,1s/./x/ <2-old >2-new &&
sed 1,2s/./x/ <1-old >1-new &&
sed 1,3s/./x/ <0-old >0-new &&
git add [0-3]-new &&
git rm [0-3]-old &&
git commit -m rename &&
get_expected_stages 0 &&
get_expected_stages 1 &&
get_expected_stages 2 &&
get_expected_stages 3 &&
check_50="false" &&
tail="HEAD^ -- HEAD master"
[master (root-commit) 2e37e88] base
Author: A U Thor <author@example.com>
4 files changed, 16 insertions(+)
create mode 100644 0-old
create mode 100644 1-old
create mode 100644 2-old
create mode 100644 3-old
rm '0-old'
rm '1-old'
rm '2-old'
rm '3-old'
[master 9f2511b] delete
Author: A U Thor <author@example.com>
4 files changed, 16 deletions(-)
delete mode 100644 0-old
delete mode 100644 1-old
delete mode 100644 2-old
delete mode 100644 3-old
Switched to a new branch 'rename'
rm '0-old'
rm '1-old'
rm '2-old'
rm '3-old'
[rename 40bd654] rename
Author: A U Thor <author@example.com>
5 files changed, 7 insertions(+), 7 deletions(-)
create mode 100644 0-new
delete mode 100644 0-old
rename 1-old => 1-new (50%)
rename 2-old => 2-new (75%)
rename 3-old => 3-new (100%)
ok 1 - setup repo
expecting success:
git diff --name-status -M01 HEAD^ HEAD >diff-output &&
test_debug "cat diff-output" &&
test_line_count = 4 diff-output &&
grep "R[0-9][0-9][0-9] \([0-3]\)-old \1-new" diff-output \
>grep-output &&
test_cmp diff-output grep-output &&
th0=$(sed -n "s/R\(...\) 0-old 0-new/\1/p" <diff-output) &&
th1=$(sed -n "s/R\(...\) 1-old 1-new/\1/p" <diff-output) &&
th2=$(sed -n "s/R\(...\) 2-old 2-new/\1/p" <diff-output) &&
th3=$(sed -n "s/R\(...\) 3-old 3-new/\1/p" <diff-output) &&
test "$th0" -lt "$th1" &&
test "$th1" -lt "$th2" &&
test "$th2" -lt "$th3" &&
test "$th3" = 100 &&
if test 50 -le "$th0"
then
check_50=check_threshold_0
elif test 50 -le "$th1"
then
check_50=check_threshold_1
elif test 50 -le "$th2"
then
check_50=check_threshold_2
fi &&
th0="$th0%" &&
th1="$th1%" &&
th2="$th2%" &&
th3="$th3%"
ok 2 - setup thresholds
expecting success:
git diff --name-status -M$th0 --diff-filter=R HEAD^ HEAD \
>diff-output-0 &&
git diff --name-status -M$th1 --diff-filter=R HEAD^ HEAD \
>diff-output-1 &&
git diff --name-status -M$th2 --diff-filter=R HEAD^ HEAD \
>diff-output-2 &&
git diff --name-status -M100% --diff-filter=R HEAD^ HEAD \
>diff-output-3 &&
test_line_count = 4 diff-output-0 &&
test_line_count = 3 diff-output-1 &&
test_line_count = 2 diff-output-2 &&
test_line_count = 1 diff-output-3
ok 3 - assumption for tests: rename detection with diff
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive $tail &&
$check_50
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
ok 4 - default similarity threshold is 50%
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=$th0 $tail &&
check_threshold_0
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
CONFLICT (rename/delete): 0-old deleted in master and renamed to 0-new in HEAD. Version HEAD of 0-new left in tree.
ok 5 - low rename threshold
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=$th1 $tail &&
check_threshold_1
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
ok 6 - medium rename threshold
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=$th2 $tail &&
check_threshold_2
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
ok 7 - high rename threshold
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=100% $tail &&
check_exact_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
ok 8 - exact renames only
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=200% $tail &&
check_exact_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
ok 9 - rename threshold is truncated
expecting success:
git read-tree --reset -u HEAD &&
git merge-recursive --no-renames $tail &&
check_no_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
ok 10 - disabled rename detection
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive \
--find-renames=$th0 --find-renames=$th2 $tail &&
check_threshold_2
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
ok 11 - last wins in --find-renames=<m> --find-renames=<n>
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive \
--find-renames=$th0 --find-renames $tail &&
$check_50
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
ok 12 - --find-renames resets threshold
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --no-renames --find-renames $tail &&
$check_50
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
ok 13 - last wins in --no-renames --find-renames
expecting success:
git read-tree --reset -u HEAD &&
git merge-recursive --find-renames --no-renames $tail &&
check_no_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
ok 14 - last wins in --find-renames --no-renames
expecting success:
git read-tree --reset -u HEAD &&
git merge-recursive HEAD -- HEAD HEAD &&
git diff --quiet --cached &&
git merge-recursive --find-renames=$th0 HEAD -- HEAD HEAD &&
git diff --quiet --cached &&
git merge-recursive --find-renames=$th2 HEAD -- HEAD HEAD &&
git diff --quiet --cached &&
git merge-recursive --find-renames=100% HEAD -- HEAD HEAD &&
git diff --quiet --cached &&
git merge-recursive --no-renames HEAD -- HEAD HEAD &&
git diff --quiet --cached
Merging HEAD with HEAD
Merging:
40bd654 rename
40bd654 rename
found 1 common ancestor:
40bd654 rename
Already up to date!
Merging HEAD with HEAD
Merging:
40bd654 rename
40bd654 rename
found 1 common ancestor:
40bd654 rename
Already up to date!
Merging HEAD with HEAD
Merging:
40bd654 rename
40bd654 rename
found 1 common ancestor:
40bd654 rename
Already up to date!
Merging HEAD with HEAD
Merging:
40bd654 rename
40bd654 rename
found 1 common ancestor:
40bd654 rename
Already up to date!
Merging HEAD with HEAD
Merging:
40bd654 rename
40bd654 rename
found 1 common ancestor:
40bd654 rename
Already up to date!
ok 15 - assumption for further tests: trivial merge succeeds
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=-25 \
HEAD -- HEAD HEAD &&
git diff --quiet --cached
fatal: unknown option --find-renames=-25
ok 16 - --find-renames rejects negative argument
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --find-renames=0xf \
HEAD -- HEAD HEAD &&
git diff --quiet --cached
fatal: unknown option --find-renames=0xf
ok 17 - --find-renames rejects non-numbers
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --rename-threshold=$th0 $tail &&
check_threshold_0
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
CONFLICT (rename/delete): 0-old deleted in master and renamed to 0-new in HEAD. Version HEAD of 0-new left in tree.
ok 18 - rename-threshold=<n> is a synonym for find-renames=<n>
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --no-renames --rename-threshold=$th0 $tail &&
check_threshold_0
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
CONFLICT (rename/delete): 0-old deleted in master and renamed to 0-new in HEAD. Version HEAD of 0-new left in tree.
ok 19 - last wins in --no-renames --rename-threshold=<n>
expecting success:
git read-tree --reset -u HEAD &&
git merge-recursive --rename-threshold=$th0 --no-renames $tail &&
check_no_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
ok 20 - last wins in --rename-threshold=<n> --no-renames
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --rename-threshold=-25 \
HEAD -- HEAD HEAD &&
git diff --quiet --cached
fatal: unknown option --rename-threshold=-25
ok 21 - --rename-threshold=<n> rejects negative argument
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --rename-threshold=0xf \
HEAD -- HEAD HEAD &&
git diff --quiet --cached
fatal: unknown option --rename-threshold=0xf
ok 22 - --rename-threshold=<n> rejects non-numbers
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive \
--rename-threshold=$th0 --find-renames=$th2 $tail &&
check_threshold_2
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
ok 23 - last wins in --rename-threshold=<m> --find-renames=<n>
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive \
--find-renames=$th2 --rename-threshold=$th0 $tail &&
check_threshold_0
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
CONFLICT (rename/delete): 0-old deleted in master and renamed to 0-new in HEAD. Version HEAD of 0-new left in tree.
ok 24 - last wins in --find-renames=<m> --rename-threshold=<n>
expecting success:
git read-tree --reset -u HEAD &&
git -c merge.renames=false merge-recursive $tail &&
check_no_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
ok 25 - merge.renames disables rename detection
expecting success:
git read-tree --reset -u HEAD &&
git -c diff.renames=false merge-recursive $tail &&
check_no_renames
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
ok 26 - merge.renames defaults to diff.renames
expecting success:
git read-tree --reset -u HEAD &&
test_must_fail git -c diff.renames=false -c merge.renames=true merge-recursive $tail &&
$check_50
Merging HEAD with master
Merging:
40bd654 rename
9f2511b delete
found 1 common ancestor:
2e37e88 base
CONFLICT (rename/delete): 3-old deleted in master and renamed to 3-new in HEAD. Version HEAD of 3-new left in tree.
CONFLICT (rename/delete): 2-old deleted in master and renamed to 2-new in HEAD. Version HEAD of 2-new left in tree.
CONFLICT (rename/delete): 1-old deleted in master and renamed to 1-new in HEAD. Version HEAD of 1-new left in tree.
ok 27 - merge.renames overrides diff.renames
# passed all 27 test(s)
1..27
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:
# 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) 415b669] 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 bb867ac] 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:
# 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: 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'
*** t3033-merge-toplevel.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3033-merge-toplevel/.git/
expecting success:
test_commit one &&
git branch left &&
git branch right &&
test_commit two &&
git checkout left &&
test_commit three &&
git checkout right &&
test_commit four &&
git checkout --orphan newroot &&
test_commit five &&
git checkout master
[master (root-commit) d79ce16] one
Author: A U Thor <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 branch 'left'
[left 897c206] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 three.t
Switched to branch 'right'
[right bd0edcc] four
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 four.t
Switched to a new branch 'newroot'
[newroot (root-commit) 5280273] five
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 five.t
create mode 100644 four.t
create mode 100644 one.t
Switched to branch 'master'
ok 1 - setup
expecting success:
t3033_reset &&
git checkout --orphan test &&
git rm -fr . &&
test_must_fail git merge left right &&
test_must_fail git rev-parse --verify HEAD &&
git diff --quiet &&
test_must_fail git rev-parse HEAD
Reset branch 'master'
Switched to a new branch 'test'
rm 'one.t'
rm 'two.t'
fatal: Can merge only exactly one commit into empty head
fatal: Needed a single revision
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
HEAD
ok 2 - merge an octopus into void
expecting success:
t3033_reset &&
git reset --hard one &&
git merge left right &&
# one is ancestor of three (left) and four (right)
test_must_fail git rev-parse --verify HEAD^3 &&
git rev-parse HEAD^1 HEAD^2 | sort >actual &&
git rev-parse three four | sort >expect &&
test_cmp expect actual
Switched to and reset branch 'master'
HEAD is now at d79ce16 one
Fast-forwarding to: left
Trying simple merge with right
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 3 - merge an octopus, fast-forward (ff)
expecting success:
t3033_reset &&
git reset --hard one &&
git merge --no-ff left right &&
# one is ancestor of three (left) and four (right)
test_must_fail git rev-parse --verify HEAD^4 &&
git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual &&
git rev-parse one three four | sort >expect &&
test_cmp expect actual
Reset branch 'master'
HEAD is now at d79ce16 one
Fast-forwarding to: left
Trying simple merge with right
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 4 - merge octopus, non-fast-forward (ff)
expecting success:
t3033_reset &&
git merge left right &&
# two (master) is not an ancestor of three (left) and four (right)
test_must_fail git rev-parse --verify HEAD^4 &&
git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual &&
git rev-parse two three four | sort >expect &&
test_cmp expect actual
Reset branch 'master'
Trying simple merge with left
Trying simple merge with right
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 5 - merge octopus, fast-forward (does not ff)
expecting success:
t3033_reset &&
git merge --no-ff left right &&
test_must_fail git rev-parse --verify HEAD^4 &&
git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual &&
git rev-parse two three four | sort >expect &&
test_cmp expect actual
Reset branch 'master'
Trying simple merge with left
Trying simple merge with right
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 6 - merge octopus, non-fast-forward
expecting success:
t3033_reset &&
git checkout --orphan test &&
git rm -fr . &&
git fetch . left right &&
test_must_fail git merge FETCH_HEAD &&
test_must_fail git rev-parse --verify HEAD &&
git diff --quiet &&
test_must_fail git rev-parse HEAD
Reset branch 'master'
Switched to a new branch 'test'
rm 'one.t'
rm 'two.t'
From .
* branch left -> FETCH_HEAD
* branch right -> FETCH_HEAD
fatal: Can merge only exactly one commit into empty head
fatal: Needed a single revision
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
HEAD
ok 7 - merge FETCH_HEAD octopus into void
expecting success:
t3033_reset &&
git reset --hard one &&
git fetch . left right &&
git merge FETCH_HEAD &&
# one is ancestor of three (left) and four (right)
test_must_fail git rev-parse --verify HEAD^3 &&
git rev-parse HEAD^1 HEAD^2 | sort >actual &&
git rev-parse three four | sort >expect &&
test_cmp expect actual
Switched to and reset branch 'master'
HEAD is now at d79ce16 one
From .
* branch left -> FETCH_HEAD
* branch right -> FETCH_HEAD
Fast-forwarding to: 897c20684b5db8602798bc55d628f0a264841fec
Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 8 - merge FETCH_HEAD octopus fast-forward (ff)
expecting success:
t3033_reset &&
git reset --hard one &&
git fetch . left right &&
git merge --no-ff FETCH_HEAD &&
# one is ancestor of three (left) and four (right)
test_must_fail git rev-parse --verify HEAD^4 &&
git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual &&
git rev-parse one three four | sort >expect &&
test_cmp expect actual
Reset branch 'master'
HEAD is now at d79ce16 one
From .
* branch left -> FETCH_HEAD
* branch right -> FETCH_HEAD
Fast-forwarding to: 897c20684b5db8602798bc55d628f0a264841fec
Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 9 - merge FETCH_HEAD octopus non-fast-forward (ff)
expecting success:
t3033_reset &&
git fetch . left right &&
git merge FETCH_HEAD &&
# two (master) is not an ancestor of three (left) and four (right)
test_must_fail git rev-parse --verify HEAD^4 &&
git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual &&
git rev-parse two three four | sort >expect &&
test_cmp expect actual
Reset branch 'master'
From .
* branch left -> FETCH_HEAD
* branch right -> FETCH_HEAD
Trying simple merge with 897c20684b5db8602798bc55d628f0a264841fec
Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 10 - merge FETCH_HEAD octopus fast-forward (does not ff)
expecting success:
t3033_reset &&
git fetch . left right &&
git merge --no-ff FETCH_HEAD &&
test_must_fail git rev-parse --verify HEAD^4 &&
git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual &&
git rev-parse two three four | sort >expect &&
test_cmp expect actual
Reset branch 'master'
From .
* branch left -> FETCH_HEAD
* branch right -> FETCH_HEAD
Trying simple merge with 897c20684b5db8602798bc55d628f0a264841fec
Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f
Merge made by the 'octopus' strategy.
four.t | 1 +
three.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 four.t
create mode 100644 three.t
fatal: Needed a single revision
ok 11 - merge FETCH_HEAD octopus non-fast-forward
expecting success:
t3033_reset &&
git reset --hard four &&
test_must_fail git merge five
Reset branch 'master'
HEAD is now at bd0edcc four
fatal: refusing to merge unrelated histories
ok 12 - refuse two-project merge by default
expecting success:
t3033_reset &&
git reset --hard four &&
git merge --allow-unrelated-histories five &&
git diff --exit-code five
Reset branch 'master'
HEAD is now at bd0edcc four
Merging:
bd0edcc four
virtual five
found 0 common ancestors:
Merge made by the 'recursive' strategy.
five.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 five.t
ok 13 - two-project merge with --allow-unrelated-histories
# passed all 13 test(s)
1..13
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:
test_tick &&
mkdir -p sub && (
cd sub &&
git init &&
>subfile &&
git add subfile &&
git commit -m "subproject commit #1"
) &&
>mainfile &&
git add sub mainfile &&
test_tick &&
git commit -m "superproject commit #1"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3050-subprojects-fetch/sub/.git/
[master (root-commit) 4c0c877] subproject commit #1
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 subfile
warning: adding embedded git repository: sub
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> sub
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached sub
hint:
hint: See "git help submodule" for more information.
[master (root-commit) 1226c2e] superproject commit #1
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 mainfile
create mode 160000 sub
ok 1 - setup
expecting success:
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:
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:
(git rev-parse HEAD; git ls-files -s) >expected &&
(
cd cloned &&
git pull &&
(git rev-parse HEAD; git ls-files -s) >../actual
) &&
test_cmp expected actual
From file:///<<PKGBUILDDIR>>/t/trash directory.t3050-subprojects-fetch/
1226c2e..1548ecd master -> origin/master
Updating 1226c2e..1548ecd
Fast-forward
mainfile | 1 +
sub | 1 -
sub/subfile | 0
3 files changed, 1 insertion(+), 1 deletion(-)
delete mode 160000 sub
create mode 100644 sub/subfile
ok 4 - fetch
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3100-ls-tree-restrict.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3100-ls-tree-restrict/.git/
expecting success: 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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
a384d4f8dd786f29d6da4705dee4c2c0bc6b5049
ok 1 - setup
expecting success: 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: 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: 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: 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: git ls-tree $tree path >current &&
cat >expected <<\EOF &&
EOF
test_output
ok 6 - ls-tree filtered with path
expecting success: 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: git ls-tree $tree path0/ >current &&
cat >expected <<\EOF &&
EOF
test_output
ok 8 - ls-tree filtered with path0/
expecting success: 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: 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: 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: git ls-tree $tree path2/bak >current &&
cat >expected <<\EOF &&
EOF
test_output
ok 12 - ls-tree filtered with path2/bak
expecting success: 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: 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:
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) 49e4ce1] 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
git ls-tree $tree pa path3/a >current &&
>expected &&
test_output
ok 10 - ls-tree filter is leading path match
expecting success:
(
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:
(
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:
(
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:
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:
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:
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:
mkdir a &&
touch a/one &&
git add a/one &&
git commit -m test
[master (root-commit) 73cbad9] 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:
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:
>file &&
git add file &&
test_tick &&
git commit -m initial &&
git branch side &&
echo 1 >file &&
test_tick &&
git commit -a -m "second on master" &&
git checkout side &&
echo 1 >file &&
test_tick &&
git commit -a -m "second on side" &&
git merge master
[master (root-commit) 1bd44cb] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
[master c77a0a9] second on master
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 master
found 1 common ancestor:
1bd44cb initial
Merge made by the 'recursive' strategy.
ok 1 - setup
expecting success:
git branch --contains=master >actual &&
{
echo " master" && echo "* side"
} >expect &&
test_cmp expect actual
ok 2 - branch --contains=master
expecting success:
git branch --contains master >actual &&
{
echo " master" && echo "* side"
} >expect &&
test_cmp expect actual
ok 3 - branch --contains master
expecting success:
git branch --no-contains=master >actual &&
>expect &&
test_cmp expect actual
ok 4 - branch --no-contains=master
expecting success:
git branch --no-contains master >actual &&
>expect &&
test_cmp expect actual
ok 5 - branch --no-contains master
expecting success:
git branch --contains=side >actual &&
{
echo "* side"
} >expect &&
test_cmp expect actual
ok 6 - branch --contains=side
expecting success:
git branch --no-contains=side >actual &&
{
echo " master"
} >expect &&
test_cmp expect actual
ok 7 - branch --no-contains=side
expecting success:
git branch --contains=master master >actual &&
{
echo " master"
} >expect &&
test_cmp expect actual
ok 8 - branch --contains with pattern implies --list
expecting success:
git branch --no-contains=master master >actual &&
>expect &&
test_cmp expect actual
ok 9 - branch --no-contains with pattern implies --list
expecting success:
git branch --merged >actual &&
{
echo " master" &&
echo "* side"
} >expect &&
test_cmp expect actual
ok 10 - side: branch --merged
expecting success:
git branch --merged=side master >actual &&
{
echo " master"
} >expect &&
test_cmp expect actual
ok 11 - branch --merged with pattern implies --list
expecting success:
git branch --no-merged >actual &&
>expect &&
test_cmp expect actual
ok 12 - side: branch --no-merged
expecting success:
git checkout master &&
git branch --merged >actual &&
{
echo "* master"
} >expect &&
test_cmp expect actual
Switched to branch 'master'
ok 13 - master: branch --merged
expecting success:
git branch --no-merged >actual &&
{
echo " side"
} >expect &&
test_cmp expect actual
ok 14 - master: branch --no-merged
expecting success:
git branch --no-merged=master master >actual &&
>expect &&
test_cmp expect actual
ok 15 - branch --no-merged with pattern implies --list
expecting success:
test_must_fail git branch --contains=master -d &&
test_must_fail git branch --contains=master -m foo &&
test_must_fail git branch --no-contains=master -d &&
test_must_fail git branch --no-contains=master -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 SHA-1s
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
--list list branch names
-l, --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 SHA-1s
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
--list list branch names
-l, --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 SHA-1s
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
--list list branch names
-l, --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 SHA-1s
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
--list list branch names
-l, --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:
test_must_fail git branch --contains master^{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 master^{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:
git branch --track topic master &&
git branch zzz topic &&
git checkout topic &&
test_commit foo &&
git branch --merged topic >actual &&
cat >expect <<-\EOF &&
master
* topic
zzz
EOF
test_cmp expect actual &&
git branch --verbose --merged topic >actual &&
cat >expect <<-\EOF &&
master c77a0a9 second on master
* topic 2c939f4 [ahead 1] foo
zzz c77a0a9 second on master
EOF
test_i18ncmp expect actual
Branch 'topic' set up to track local branch 'master'.
Switched to branch 'topic'
Your branch is up to date with 'master'.
[topic 2c939f4] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
ok 18 - branch --merged with --verbose
expecting success:
git branch --contains zzz --no-contains topic >actual &&
cat >expect <<-\EOF &&
master
side
zzz
EOF
test_cmp expect actual
ok 19 - branch --contains combined with --no-contains
# passed all 19 test(s)
1..19
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:
> 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:
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:
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:
echo content >file &&
git add file &&
git commit -m one &&
echo content >>file &&
git commit -a -m two
[master (root-commit) d255972] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master ef2dd86] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - make commits
expecting success:
git branch branch-one &&
git branch branch-two HEAD^
ok 2 - make branches
expecting success:
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:
git branch >actual &&
test_cmp expect actual
ok 4 - git branch shows local branches
expecting success:
git branch --list >actual &&
test_cmp expect actual
ok 5 - git branch --list shows local branches
expecting success:
git branch --list branch* >actual &&
test_cmp expect actual
ok 6 - git branch --list pattern shows matching local branches
expecting success:
git branch -r >actual &&
test_cmp expect actual
ok 7 - git branch -r shows remote branches
expecting success:
git branch -a >actual &&
test_cmp expect actual
ok 8 - git branch -a shows local and remote branches
expecting success:
git branch -v >tmp &&
awk "{print \$NF}" <tmp >actual &&
test_cmp expect actual
ok 9 - git branch -v shows branch summaries
expecting success:
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:
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:
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:
cat >expect <<EOF &&
* (HEAD detached at $(git rev-parse --short HEAD^0))
branch-one
branch-two
master
EOF
git checkout HEAD^0 &&
git branch >actual &&
test_i18ncmp expect actual
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at ef2dd86 two
ok 13 - git branch shows detached HEAD properly
expecting success:
git checkout master &&
cat >expect <<EOF &&
* (HEAD detached at $(git rev-parse --short HEAD^0))
branch-one
branch-two
master
EOF
git checkout --detach &&
git branch >actual &&
test_i18ncmp expect actual
Switched to branch 'master'
HEAD is now at ef2dd86 two
ok 14 - git branch shows detached HEAD properly after checkout --detach
expecting success:
cat >expect <<EOF &&
* (HEAD detached from $(git rev-parse --short HEAD))
branch-one
branch-two
master
EOF
git reset --hard HEAD^1 &&
git branch >actual &&
test_i18ncmp expect actual
HEAD is now at d255972 one
ok 15 - git branch shows detached HEAD properly after moving
expecting success:
cat >expect <<EOF &&
* (HEAD detached at fromtag)
branch-one
branch-two
master
EOF
git tag fromtag master &&
git checkout fromtag &&
git branch >actual &&
test_i18ncmp expect actual
Previous HEAD position was d255972 one
HEAD is now at ef2dd86 two
ok 16 - git branch shows detached HEAD properly from tag
expecting success:
cat >expect <<EOF &&
* (HEAD detached from fromtag)
branch-one
branch-two
master
EOF
git reset --hard HEAD^1 &&
git branch >actual &&
test_i18ncmp expect actual
HEAD is now at d255972 one
ok 17 - git branch shows detached HEAD properly after moving from tag
expecting success:
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
branch-two
branch-one
master
EOF
git branch --sort=objectsize >actual &&
test_i18ncmp expect actual
ok 18 - git branch `--sort` option
expecting success:
cat >expect <<-\EOF &&
branch-one
master
EOF
git branch --points-at=branch-one >actual &&
test_cmp expect actual
ok 19 - git branch --points-at option
expecting success:
git tag ambiguous &&
git branch ambiguous &&
echo " ambiguous" >expect &&
git branch --list ambiguous >actual &&
test_cmp expect actual
ok 20 - ambiguous branch/tag not marked
expecting success:
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 21 - local-branch symrefs shortened properly
expecting success:
(
git init 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
master
EOF
test_cmp expected actual &&
git branch --list -i | awk "{print \$NF}" >actual &&
cat >expected <<-\EOF &&
branch-one
BRANCH-two
master
EOF
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3203-branch-output/sort-icase/.git/
[master (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
ok 22 - sort branches, ignore case
expecting success:
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/master
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 23 - git branch --format option
expecting success:
echo "<RED>master<RESET>" >expect.color &&
echo "master" >expect.bare &&
color_args="--format=%(color:red)%(refname:short) --list master"
ok 24 - set up color tests
expecting success:
TERM=vt100 git branch $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.bare actual
ok 25 - %(color) omitted without tty
checking prerequisite: TTY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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:
test_terminal git branch $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.color actual
ok 26 - %(color) present with tty
expecting success:
git branch --color $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.color actual
ok 27 - --color overrides auto-color
# passed all 27 test(s)
1..27
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:
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:
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:
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:
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:
git branch refs/heads/qualified two &&
expect_branch refs/heads/refs/heads/qualified two
ok 5 - create branch with pseudo-qualified name
expecting success:
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:
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:
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:
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:
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:
git branch -f @ one &&
expect_branch refs/heads/@ one
ok 11 - create branch named "@"
expecting success:
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:
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: checking out '@{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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
test_commit foo &&
git update-ref refs/remotes/origin/master 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:
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:
cat >expect <<-\EOF &&
* <CYAN>master<RESET>
<BLUE>other<RESET>
<YELLOW>remotes/origin/master<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:
oid=$(git rev-parse --short HEAD) &&
cat >expect <<-EOF &&
* <CYAN>master <RESET> $oid foo
<BLUE>other <RESET> $oid foo
<YELLOW>remotes/origin/master<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'
*** t3210-pack-refs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3210-pack-refs/.git/
expecting success:
git config core.logallrefupdates true
ok 1 - enable reflogs
expecting success: echo Hello > A &&
git update-index --add A &&
git commit -m "Initial commit." &&
HEAD=$(git rev-parse --verify HEAD)
[master (root-commit) 0ad8d5e] 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: 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: 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:
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: 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:
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:
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: 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 0ad8d5e).
Deleted branch g (was 0ad8d5e).
ok 9 - git branch g should work when git branch g/h has been deleted
expecting success:
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: 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 0ad8d5e).
Deleted branch k/l/m (was 0ad8d5e).
Deleted branch k/lm (was 0ad8d5e).
ok 11 - test git branch k after branch k/l/m and k/lm have been deleted
expecting success: 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 0ad8d5e).
Deleted branch n/op (was 0ad8d5e).
Deleted branch n/o/p (was 0ad8d5e).
ok 12 - test git branch n after some branch deletion and pruning
expecting success: 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:
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:
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_cmp /dev/null result
[master e7e5e09] soon to be garbage-collected
Author: A U Thor <author@example.com>
HEAD is now at 0ad8d5e Initial commit.
ok 15 - explicit pack-refs with dangling packed reference
expecting success:
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_cmp /dev/null result
Switched to a new branch 'lamb'
[lamb 0471d05] future garbage
Author: A U Thor <author@example.com>
HEAD is now at 0ad8d5e Initial commit.
Switched to branch 'master'
Deleted branch lamb (was 0ad8d5e).
ok 16 - delete ref with dangling packed version
expecting success:
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_cmp /dev/null result
[master 0471d05] future garbage
Author: A U Thor <author@example.com>
HEAD is now at 0ad8d5e Initial commit.
Deleted branch lamb (was 0ad8d5e).
ok 17 - delete ref while another dangling packed ref
expecting success:
git update-ref refs/top HEAD &&
git pack-refs --all --prune &&
grep refs/top .git/packed-refs &&
test_path_is_missing .git/refs/top
0ad8d5e98c78cc2d8ea3bd5bdec13934ebd201bd refs/top
ok 18 - pack ref directly below refs/
expecting success:
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:
git config core.logallrefupdates false &&
rm -rf .git/logs
ok 20 - disable reflogs
expecting success:
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:
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:
test_must_fail git branch foo 2>stderr &&
grep refs/heads/foo/bar/baz stderr
fatal: cannot lock ref 'refs/heads/foo': 'refs/heads/foo/bar/baz' exists; cannot create 'refs/heads/foo'
ok 23 - existing directory reports concrete ref
expecting success:
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:
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:
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:
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:
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:
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
# First make sure that symlinking works when reading:
git update-ref refs/heads/loosy 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'
*** t3211-peel-ref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3211-peel-ref/.git/
expecting success:
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:
git update-ref refs/outside/foo refs/tags/foo
ok 2 - create annotated tag outside of refs/tags
expecting success:
{
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:
git show-ref -d >actual &&
test_cmp expect actual
ok 4 - refs are peeled outside of refs/tags (loose)
expecting success:
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:
# 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:
git show-ref -d >actual &&
test_cmp expect actual
ok 7 - refs are peeled outside of refs/tags (old packed)
expecting success:
git pack-refs --all &&
cp .git/packed-refs fully-peeled &&
git branch yadda &&
git pack-refs --all &&
git branch -d yadda &&
test_cmp fully-peeled .git/packed-refs
Deleted branch yadda (was d1ff1c9).
ok 8 - peeled refs survive deletion of packed ref
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3300-funny-names.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3300-funny-names/.git/
expecting success:
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:
git update-index --add "$p0" "$p2" &&
t0=$(git write-tree)
ok 2 - setup: populate index and tree
expecting success:
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:
git update-index --add "$p1" &&
t1=$(git write-tree)
ok 4 - setup: add funny filename
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
git update-index --force-remove "$p0"
ok 13 - setup: remove unfunny index entry
expecting success:
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:
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:
chmod +x "$p1"
ok 16 - setup: mode change
expecting success:
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:
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
ok 18 - diffstat for rename quotes funny filename
expecting success:
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:
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:
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'
*** t3200-branch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/.git/
expecting success:
echo Hello >A &&
git update-index --add A &&
git commit -m "Initial commit." &&
echo World >>A &&
git update-index --add A &&
git commit -m "Second commit." &&
HEAD=$(git rev-parse --verify HEAD)
[master (root-commit) 2d3a091] Initial commit.
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A
[master 2de47d1] Second commit.
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - prepare a trivial repository
expecting success:
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:
mkdir broken &&
(
cd broken &&
git init &&
>.git/refs/heads/master &&
test_expect_code 129 git branch -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage" broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/broken/.git/
usage: git branch [<options>] [-r | -a] [--merged | --no-merged]
ok 3 - branch -h in broken repository
expecting success:
git branch abc && test_path_is_file .git/refs/heads/abc
ok 4 - git branch abc should create a branch
expecting success:
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:
test_must_fail git branch HEAD
fatal: 'HEAD' is not a valid branch name.
ok 6 - git branch HEAD should fail
expecting success:
GIT_COMMITTER_DATE="2005-05-26 23:30" \
git branch -l 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 7 - git branch -l d/e/f should create a branch and a log
expecting success:
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 2de47d1).
ok 8 - git branch -d d/e/f should delete a branch and a log
expecting success:
git branch j &&
git branch -d j &&
git branch j/k
Deleted branch j (was 2de47d1).
ok 9 - git branch j/k should work after branch j has been deleted
expecting success:
git branch l/m &&
git branch -d l/m &&
git branch l
Deleted branch l/m (was 2de47d1).
ok 10 - git branch l should work after branch l/m has been deleted
expecting success:
test_expect_code 128 git branch -m 2>err &&
test_i18ngrep "branch name required" err
fatal: branch name required
ok 11 - git branch -m dumps usage
expecting success:
test_when_finished "git branch -D broken_symref" &&
git branch -l 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 2de47d1).
ok 12 - git branch -m m broken_symref should work
expecting success:
git branch -l m &&
git branch -m m m/m &&
git reflog exists refs/heads/m/m
ok 13 - git branch -m m m/m should work
expecting success:
git branch -l n/n &&
git branch -m n/n n &&
git reflog exists refs/heads/n
ok 14 - git branch -m n/n n should work
expecting success:
test_when_finished git branch -D bbb &&
test_when_finished git checkout master &&
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 25ed488] a new commit
Author: A U Thor <author@example.com>
Switched to branch 'master'
Deleted branch bbb (was 25ed488).
ok 15 - git branch -m bbb should rename checked out branch
expecting success:
test_when_finished "git branch -D foo/bar || git branch -D foo" &&
test_when_finished git checkout master &&
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 'master'
Deleted branch foo/bar (was 2de47d1).
ok 16 - renaming checked out branch works with d/f conflict
expecting success:
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 17 - git branch -m o/o o should fail when o/p exists
expecting success:
git branch o/q &&
test_must_fail git branch -m o/q o/p
fatal: A branch named 'o/p' already exists.
ok 18 - git branch -m o/q o/p should fail when o/p exists
expecting success:
git branch -M o/q o/p
ok 19 - git branch -M o/q o/p should work when o/p exists
expecting success:
git branch o/q &&
git branch -m -f o/q o/p
ok 20 - git branch -m -f o/q o/p should work when o/p exists
expecting success:
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 21 - git branch -m q r/q should fail when r exists
expecting success:
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 22 - git branch -M foo bar should fail when bar is checked out
expecting success:
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 23 - git branch -M baz bam should succeed when baz is checked out
expecting success:
msg="Branch: renamed refs/heads/baz to refs/heads/bam" &&
grep " 0\{40\}.*$msg$" .git/logs/HEAD &&
grep "^0\{40\}.*$msg$" .git/logs/HEAD
2de47d145b8b77391256afac7a93c66b0f5f7701 0000000000000000000000000000000000000000 C O Mitter <committer@example.com> 1529820294 +0000 Branch: renamed refs/heads/baz to refs/heads/bam
0000000000000000000000000000000000000000 2de47d145b8b77391256afac7a93c66b0f5f7701 C O Mitter <committer@example.com> 1529820294 +0000 Branch: renamed refs/heads/baz to refs/heads/bam
ok 24 - git branch -M baz bam should add entries to .git/logs/HEAD
expecting success:
git init 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 master mistress &&
grep lonely .git/HEAD
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/orphan/.git/
[master (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Switched to a new branch 'lonely'
ref: refs/heads/lonely
ref: refs/heads/lonely
ok 25 - git branch -M should leave orphaned HEAD alone
expecting success:
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 26 - resulting reflog can be shown by log -g
expecting success:
git checkout master &&
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
Switched to branch 'master'
Preparing worktree (new branch 'baz')
HEAD is now at 2de47d1 Second commit.
Preparing worktree (checking out 'baz')
HEAD is now at 2de47d1 Second commit.
ok 27 - git branch -M baz bam should succeed when baz is checked out as linked working tree
expecting success:
git checkout -b baz &&
git worktree add -f bazdir3 baz &&
(
cd bazdir3 &&
git branch -M baz bam &&
test $(git rev-parse --abbrev-ref HEAD) = bam
) &&
test $(git rev-parse --abbrev-ref HEAD) = bam
Switched to a new branch 'baz'
Preparing worktree (checking out 'baz')
HEAD is now at 2de47d1 Second commit.
ok 28 - git branch -M baz bam should succeed within a worktree in which baz is checked out
expecting success:
git checkout master &&
git branch -M master
Switched to branch 'master'
ok 29 - git branch -M master should work when master is checked out
expecting success:
git checkout master &&
git branch -M master master
Already on 'master'
ok 30 - git branch -M master master should work when master is checked out
expecting success:
git checkout master &&
git branch master2 &&
git branch -M master2 master2
Already on 'master'
ok 31 - git branch -M master2 master2 should work when master is checked out
expecting success:
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
2de47d145b8b77391256afac7a93c66b0f5f7701
Deleted branch t (was 2de47d1).
fatal: Needed a single revision
ok 32 - git branch -v -d t should work
expecting success:
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
2de47d145b8b77391256afac7a93c66b0f5f7701
fatal: Needed a single revision
2de47d145b8b77391256afac7a93c66b0f5f7701
Deleted branch s (was 2de47d1).
ok 33 - git branch -v -m t s should work
expecting success:
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
2de47d145b8b77391256afac7a93c66b0f5f7701
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 SHA-1s
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
--list list branch names
-l, --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 2de47d1).
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 34 - git branch -m -d t s should fail
expecting success:
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
2de47d145b8b77391256afac7a93c66b0f5f7701
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 SHA-1s
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
--list list branch names
-l, --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 2de47d1).
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 --list -d t should fail
expecting success:
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 2de47d1).
ok 36 - git branch --list -v with --abbrev
expecting success:
COLUMNS=81 git branch --column=column >actual &&
cat >expected <<\EOF &&
a/b/c bam foo l * master n o/p r
abc bar j/k m/m master2 o/o q
EOF
test_cmp expected actual
ok 37 - git branch --column
expecting success:
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 >expected <<EOF &&
a/b/c
abc
bam
bar
foo
j/k
l
m/m
* master
master2
n
o/o
o/p
q
r
$long
EOF
test_cmp expected 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 2de47d1).
ok 38 - git branch --column with an extremely long branch name
expecting success:
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 >expected <<\EOF &&
a/b/c bam foo l * master n o/p r
abc bar j/k m/m master2 o/o q
EOF
test_cmp expected actual
ok 39 - git branch with column.*
expecting success:
test_must_fail git branch --column -v
fatal: --column and --verbose are incompatible
ok 40 - git branch --column -v should fail
expecting success:
git config column.ui column &&
COLUMNS=80 git branch -v | cut -c -10 | sed "s/ *$//" >actual &&
git config --unset column.ui &&
cat >expected <<\EOF &&
a/b/c
abc
bam
bar
foo
j/k
l
m/m
* master
master2
n
o/o
o/p
q
r
EOF
test_cmp expected actual
ok 41 - git branch -v with column.ui ignored
expecting success:
git branch -m q q2 &&
git branch -m q2 q
ok 42 - git branch -m q q2 without config should succeed
expecting success:
git branch -l s/s &&
git reflog exists refs/heads/s/s &&
git branch -l 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 2de47d1).
ok 43 - git branch -m s/s s should work when s/t is deleted
expecting success:
test $(git config branch.s.dummy) = Hello &&
test_must_fail git config branch.s/s.dummy
ok 44 - config information was renamed, too
expecting success:
test_when_finished "git checkout master" &&
git checkout -b source master &&
# 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 'master'
ok 45 - git branch -m correctly renames multiple config sections
expecting success:
test_expect_code 128 git branch -c 2>err &&
test_i18ngrep "branch name required" err
fatal: branch name required
ok 46 - git branch -c dumps usage
expecting success:
test_expect_code 128 git branch --copy 2>err &&
test_i18ngrep "branch name required" err
fatal: branch name required
ok 47 - git branch --copy dumps usage
expecting success:
git branch -l 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 48 - git branch -c d e should work
expecting success:
git branch -l 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 49 - git branch --copy is a synonym for -c
expecting success:
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 50 - git branch -c ee ef should copy ee to create branch ef
expecting success:
git branch -l 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 51 - git branch -c f/f g/g should work
expecting success:
git branch -l 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 52 - git branch -c m2 m2 should work
expecting success:
git branch -l 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 53 - git branch -c zz zz/zz should fail
expecting success:
git branch -l 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 54 - git branch -c b/b b should fail
expecting success:
git branch -l o/q &&
git reflog exists refs/heads/o/q &&
git reflog exists refs/heads/o/p &&
git branch -C o/q o/p
ok 55 - git branch -C o/q o/p should work when o/p exists
expecting success:
git reflog exists refs/heads/o/q &&
git reflog exists refs/heads/o/p &&
git branch -c -f o/q o/p
ok 56 - git branch -c -f o/q o/p should work when o/p exists
expecting success:
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 57 - git branch -c qq rr/qq should fail when rr exists
expecting success:
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 58 - git branch -C b1 b2 should fail when b2 is checked out
expecting success:
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 59 - git branch -C c1 c2 should succeed when c1 is checked out
expecting success:
msg="Branch: copied refs/heads/c1 to refs/heads/c2" &&
! grep "$msg$" .git/logs/HEAD
ok 60 - git branch -C c1 c2 should never touch HEAD
expecting success:
git checkout master &&
git branch -C master
Switched to branch 'master'
ok 61 - git branch -C master should work when master is checked out
expecting success:
git checkout master &&
git branch -C master master
Already on 'master'
ok 62 - git branch -C master master should work when master is checked out
expecting success:
git checkout master &&
git branch master5 &&
git branch -C master5 master5
Already on 'master'
ok 63 - git branch -C master5 master5 should work when master is checked out
expecting success:
git branch -l cd &&
git reflog exists refs/heads/cd &&
git config branch.cd.dummy CD &&
git branch -l 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 64 - git branch -C ab cd should overwrite existing config for cd
expecting success:
FOO=1 &&
export FOO &&
test_when_finished "git checkout master" &&
git checkout -b source2 master &&
# 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 'master'
ok 65 - git branch -c correctly copies multiple config sections
expecting success:
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 66 - deleting a symref
expecting success:
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 67 - deleting a dangling symref
expecting success:
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 68 - deleting a self-referential symref
expecting success:
git symbolic-ref refs/heads/master2 refs/heads/master &&
test_must_fail git branch -m master2 master3 &&
git symbolic-ref refs/heads/master2 &&
test_path_is_file .git/refs/heads/master &&
test_path_is_missing .git/refs/heads/master3
error: refname refs/heads/master2 is a symbolic ref, renaming it is not supported
fatal: Branch rename failed
refs/heads/master
ok 69 - renaming a symref is not allowed
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
git branch -l 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 70 - git branch -m u v should fail when the reflog for u is a symlink
expecting success:
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/master || git fetch local) &&
git branch --track my1 local/master &&
test $(git config branch.my1.remote) = local &&
test $(git config branch.my1.merge) = refs/heads/master
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] master -> local/master
* [new branch] master2 -> local/master2
* [new branch] master5 -> local/master5
* [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] u -> local/u
* [new branch] zz -> local/zz
Branch 'my1' set up to track remote branch 'master' from 'local'.
ok 71 - test tracking setup via --track
expecting success:
git config remote.local.url . &&
git config remote.local.fetch refs/heads/master:refs/remotes/local/master &&
(git show-ref -q refs/remotes/local/master || git fetch local) &&
git branch --track my4 local/master &&
test $(git config branch.my4.remote) = local &&
test $(git config branch.my4.merge) = refs/heads/master
Branch 'my4' set up to track remote branch 'master' from 'local'.
ok 72 - test tracking setup (non-wildcard, matching)
expecting success:
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/master || git fetch local) &&
git config remote.local.fetch refs/heads/s:refs/remotes/local/s &&
test_must_fail git branch --track my5 local/master &&
test_must_fail git config branch.my5.remote &&
test_must_fail git config branch.my5.merge
fatal: Cannot setup tracking information; starting point 'local/master' is not a branch.
ok 73 - tracking setup fails on non-matching refspec
expecting success:
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/master || git fetch local) &&
git branch my3 local/master &&
test $(git config branch.my3.remote) = local &&
test $(git config branch.my3.merge) = refs/heads/master
Branch 'my3' set up to track remote branch 'master' from 'local'.
ok 74 - test tracking setup via config
expecting success:
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/master || git fetch local) &&
git branch --no-track my2 local/master &&
git config branch.autosetupmerge false &&
! test "$(git config branch.my2.remote)" = local &&
! test "$(git config branch.my2.merge)" = refs/heads/master
ok 75 - test overriding tracking setup via --no-track
expecting success:
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 76 - no tracking without .fetch entries
expecting success:
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 77 - test tracking setup via --track but deeper
expecting success:
git branch -d my7 &&
test -z "$(git config branch.my7.remote)" &&
test -z "$(git config branch.my7.merge)"
Deleted branch my7 (was 2de47d1).
ok 78 - test deleting branch deletes branch config
expecting success:
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 79 - test deleting branch without config
expecting success:
git worktree add -b my7 my7 &&
test_must_fail git -C my7 branch -d my7 &&
test_must_fail git branch -d my7
Preparing worktree (new branch 'my7')
HEAD is now at 2de47d1 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 80 - deleting currently checked out branch fails
expecting success:
git branch --track my8 &&
test "$(git config branch.my8.remote)" &&
test "$(git config branch.my8.merge)"
Branch 'my8' set up to track local branch 'master'.
ok 81 - test --track without .fetch entries
expecting success:
git config branch.autosetupmerge always &&
git branch my9 HEAD^ &&
git config branch.autosetupmerge false
ok 82 - branch from non-branch HEAD w/autosetupmerge=always
expecting success:
test_must_fail git branch --track my10 HEAD^
fatal: Cannot setup tracking information; starting point 'HEAD^' is not a branch.
ok 83 - branch from non-branch HEAD w/--track causes failure
expecting success:
git tag foobar &&
test_must_fail git branch --track my11 foobar
fatal: Cannot setup tracking information; starting point 'foobar' is not a branch.
ok 84 - branch from tag w/--track causes failure
expecting success:
test_must_fail git branch --set-upstream-to master a b c
fatal: too many arguments to set new upstream
ok 85 - --set-upstream-to fails on multiple branches
expecting success:
git checkout HEAD^{} &&
test_must_fail git branch --set-upstream-to master &&
git checkout -
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 2de47d1 Second commit.
fatal: could not set upstream of HEAD to master when it does not point to any branch.
Switched to branch 'master'
ok 86 - --set-upstream-to fails on detached HEAD
expecting success:
test_must_fail git branch --set-upstream-to master does-not-exist
fatal: branch 'does-not-exist' does not exist
ok 87 - --set-upstream-to fails on a missing dst branch
expecting success:
test_must_fail git branch --set-upstream-to does-not-exist master
error: the requested upstream branch 'does-not-exist' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.
ok 88 - --set-upstream-to fails on a missing src branch
expecting success:
test_must_fail git branch --set-upstream-to HEAD^{}
fatal: Cannot setup tracking information; starting point 'HEAD^{}' is not a branch.
ok 89 - --set-upstream-to fails on a non-ref
expecting success:
test_when_finished "rm -f .git/config.lock" &&
>.git/config.lock &&
git branch locked &&
test_must_fail git branch --set-upstream-to locked
error: could not lock config file .git/config: File exists
error: Unable to write upstream branch configuration
hint:
hint: After fixing the error cause you may try to fix up
hint: the remote tracking information by invoking
hint: "git branch --set-upstream-to=locked".
ok 90 - --set-upstream-to fails on locked config
expecting success:
test_config branch.master.remote foo &&
test_config branch.master.merge foo &&
git branch my12 &&
git branch --set-upstream-to my12 &&
test "$(git config branch.master.remote)" = "." &&
test "$(git config branch.master.merge)" = "refs/heads/my12"
Branch 'master' set up to track local branch 'my12'.
ok 91 - use --set-upstream-to modify HEAD
expecting success:
git branch my13 &&
git branch --set-upstream-to master my13 &&
test_when_finished "git branch --unset-upstream my13" &&
test "$(git config branch.my13.remote)" = "." &&
test "$(git config branch.my13.merge)" = "refs/heads/master"
Branch 'my13' set up to track local branch 'master'.
ok 92 - use --set-upstream-to modify a particular branch
expecting success:
test_must_fail git branch --unset-upstream i-dont-exist
fatal: Branch 'i-dont-exist' has no upstream information
ok 93 - --unset-upstream should fail if given a non-existent branch
expecting success:
test_when_finished "rm -f .git/config.lock" &&
git branch --set-upstream-to locked &&
>.git/config.lock &&
test_must_fail git branch --unset-upstream
Branch 'master' set up to track local branch 'locked'.
error: could not lock config file .git/config: File exists
fatal: could not unset 'branch.master.remote'
ok 94 - --unset-upstream should fail if config is locked
expecting success:
git branch my14 &&
test_config branch.master.remote foo &&
test_config branch.master.merge foo &&
git branch --set-upstream-to my14 &&
git branch --unset-upstream &&
test_must_fail git config branch.master.remote &&
test_must_fail git config branch.master.merge &&
# fail for a branch without upstream set
test_must_fail git branch --unset-upstream
Branch 'master' set up to track local branch 'my14'.
fatal: Branch 'master' has no upstream information
ok 95 - test --unset-upstream on HEAD
expecting success:
test_must_fail git branch --unset-upstream a b c
fatal: too many arguments to unset upstream
ok 96 - --unset-upstream should fail on multiple branches
expecting success:
git checkout HEAD^{} &&
test_must_fail git branch --unset-upstream &&
git checkout -
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 2de47d1 Second commit.
fatal: could not unset upstream of HEAD when it does not point to any branch.
Switched to branch 'master'
ok 97 - --unset-upstream should fail on detached HEAD
expecting success:
git branch my15 &&
git branch --set-upstream-to master 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 'master'.
ok 98 - test --unset-upstream on a particular branch
expecting success:
test_must_fail git branch --set-upstream origin/master
fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
ok 99 - disabled option --set-upstream fails
expecting success:
git branch --set-upstream-to refs/heads/my13 my13 2>actual &&
cat >expected <<-\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 expected actual
ok 100 - --set-upstream-to notices an error to set branch as own upstream
expecting success:
GIT_COMMITTER_DATE="2005-05-26 23:30" \
git checkout -b g/h/i -l master &&
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 101 - git checkout -b g/h/i -l should create a branch and a log
expecting success:
git checkout master &&
git config --unset core.logAllRefUpdates &&
git checkout -b alpha &&
git rev-parse --verify alpha@{0}
Switched to branch 'master'
Switched to a new branch 'alpha'
2de47d145b8b77391256afac7a93c66b0f5f7701
ok 102 - checkout -b makes reflog by default
expecting success:
git checkout master &&
git config core.logAllRefUpdates false &&
git checkout -b beta &&
test_must_fail git rev-parse --verify beta@{0}
Switched to branch 'master'
Switched to a new branch 'beta'
fatal: Needed a single revision
ok 103 - checkout -b does not make reflog when core.logAllRefUpdates = false
expecting success:
git checkout master &&
git checkout -lb gamma &&
git config --unset core.logAllRefUpdates &&
git rev-parse --verify gamma@{0}
Switched to branch 'master'
Switched to a new branch 'gamma'
2de47d145b8b77391256afac7a93c66b0f5f7701
ok 104 - checkout -b with -l makes reflog when core.logAllRefUpdates = false
expecting success:
git config branch.autosetupmerge true &&
git config remote.ambi1.url lalala &&
git config remote.ambi1.fetch refs/heads/lalala:refs/heads/master &&
git config remote.ambi2.url lilili &&
git config remote.ambi2.fetch refs/heads/lilili:refs/heads/master &&
test_must_fail git branch all1 master &&
test -z "$(git config branch.all1.merge)"
fatal: Not tracking: ambiguous information for ref refs/heads/master
ok 105 - avoid ambiguous track
expecting success:
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 106 - autosetuprebase local on a tracked local branch
expecting success:
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 107 - autosetuprebase always on a tracked local branch
expecting success:
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 108 - autosetuprebase remote on a tracked local branch
expecting success:
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 109 - autosetuprebase never on a tracked local branch
expecting success:
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/master || git fetch local) &&
git branch --track myr5 local/master &&
test "$(git config branch.myr5.remote)" = local &&
test "$(git config branch.myr5.merge)" = refs/heads/master &&
! test "$(git config branch.myr5.rebase)" = true
Branch 'myr5' set up to track remote branch 'master' from 'local'.
ok 110 - autosetuprebase local on a tracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --track myr6 local/master &&
test "$(git config branch.myr6.remote)" = local &&
test "$(git config branch.myr6.merge)" = refs/heads/master &&
! test "$(git config branch.myr6.rebase)" = true
Branch 'myr6' set up to track remote branch 'master' from 'local'.
ok 111 - autosetuprebase never on a tracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --track myr7 local/master &&
test "$(git config branch.myr7.remote)" = local &&
test "$(git config branch.myr7.merge)" = refs/heads/master &&
test "$(git config branch.myr7.rebase)" = true
Branch 'myr7' set up to track remote branch 'master' from 'local' by rebasing.
ok 112 - autosetuprebase remote on a tracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --track myr8 local/master &&
test "$(git config branch.myr8.remote)" = local &&
test "$(git config branch.myr8.merge)" = refs/heads/master &&
test "$(git config branch.myr8.rebase)" = true
Branch 'myr8' set up to track remote branch 'master' from 'local' by rebasing.
ok 113 - autosetuprebase always on a tracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --track myr9 local/master &&
test "$(git config branch.myr9.remote)" = local &&
test "$(git config branch.myr9.merge)" = refs/heads/master &&
test "z$(git config branch.myr9.rebase)" = z
Branch 'myr9' set up to track remote branch 'master' from 'local'.
ok 114 - autosetuprebase unconfigured on a tracked remote branch
expecting success:
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 115 - autosetuprebase unconfigured on a tracked local branch
expecting success:
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/master || 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 116 - autosetuprebase unconfigured on untracked local branch
expecting success:
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/master || git fetch local) &&
git branch --no-track myr12 local/master &&
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 117 - autosetuprebase unconfigured on untracked remote branch
expecting success:
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/master || 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 118 - autosetuprebase never on an untracked local branch
expecting success:
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/master || 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 119 - autosetuprebase local on an untracked local branch
expecting success:
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/master || 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 120 - autosetuprebase remote on an untracked local branch
expecting success:
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/master || 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 121 - autosetuprebase always on an untracked local branch
expecting success:
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/master || git fetch local) &&
git branch --no-track myr17 local/master &&
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 122 - autosetuprebase never on an untracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --no-track myr18 local/master &&
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 123 - autosetuprebase local on an untracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --no-track myr19 local/master &&
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 124 - autosetuprebase remote on an untracked remote branch
expecting success:
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/master || git fetch local) &&
git branch --no-track myr20 local/master &&
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 125 - autosetuprebase always on an untracked remote branch
expecting success:
git config branch.autosetupmerge always &&
test_when_finished git checkout master &&
git checkout HEAD^0 &&
git branch my11 &&
test -z "$(git config branch.my11.remote)" &&
test -z "$(git config branch.my11.merge)"
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 2de47d1 Second commit.
Switched to branch 'master'
ok 126 - autosetuprebase always on detached HEAD
expecting success:
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 127 - detect misconfigured autosetuprebase (bad value)
expecting success:
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 128 - detect misconfigured autosetuprebase (no value)
expecting success:
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 129 - attempt to delete a branch without base and unmerged to HEAD
expecting success:
# 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 master that already has my8
git config branch.my8.merge refs/heads/master &&
git branch -d my8
warning: deleting branch 'my8' that has been merged to
'refs/heads/master', but not yet merged to HEAD.
Deleted branch my8 (was 2de47d1).
ok 130 - attempt to delete a branch merged to its base
expecting success:
git checkout master &&
echo Third >>A &&
git commit -m "Third commit" A &&
git branch -t my10 my9 &&
git branch -f my10 HEAD^ &&
# we are on master 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 'master'
[master 64d9e1f] 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 131 - attempt to delete a branch merged to its base
expecting success:
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 EDITOR_OUTPUT expect
ok 132 - use --edit-description
expecting success:
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 133 - detect typo in branch name when using --edit-description
expecting success:
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.
ok 134 - refuse --edit-description on unborn branch for now
expecting success:
test_must_fail git branch --merged 0000000000000000000000000000000000000000
error: option `merged' must point to a commit
ok 135 - --merged catches invalid object names
expecting success:
test_must_fail git branch --merged HEAD --no-merged HEAD
fatal: malformed object name HEAD
ok 136 - --merged is incompatible with --no-merged
expecting success:
test_when_finished "reset_rebase" &&
git checkout master &&
FAKE_LINES="1 edit 2" &&
export FAKE_LINES &&
set_fake_editor &&
git rebase -i HEAD~2 &&
git branch --list >actual &&
test_i18ngrep "rebasing master" actual
Switched to branch 'master'
rebase -i script before editing:
pick 2de47d1 Second commit.
pick 64d9e1f Third commit
rebase -i script after editing:
pick 2de47d1 Second commit.
edit 64d9e1f Third commit
Rebasing (2/2)
Stopped at 64d9e1f... 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 master)
HEAD is now at 64d9e1f Third commit
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 expected
Removing fake-editor.sh
Removing real-u
ok 137 - --list during rebase
expecting success:
test_when_finished "reset_rebase && git checkout master" &&
git checkout master^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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 64d9e1f Third commit
rebase -i script before editing:
pick 2de47d1 Second commit.
pick 64d9e1f Third commit
rebase -i script after editing:
pick 2de47d1 Second commit.
edit 64d9e1f Third commit
Rebasing (2/2)
Stopped at 64d9e1f... 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 64d9e1f)
HEAD is now at 64d9e1f Third commit
Removing actual
Removing fake-editor.sh
Switched to branch 'master'
ok 138 - --list during rebase from detached HEAD
expecting success:
rm -rf a b c d &&
git init a &&
(
cd a &&
test_commit a
) &&
git init b &&
(
cd b &&
test_commit b
) &&
git init c &&
(
cd c &&
test_commit c &&
git remote add a ../a &&
git remote add b ../b &&
git fetch --all
) &&
git init 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/master remotes/a/master &&
test "$(git config branch.local/a/master.remote)" = "c" &&
test "$(git config branch.local/a/master.merge)" = "refs/remotes/a/master" &&
git rev-parse --verify a >expect &&
git rev-parse --verify local/a/master >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/a/.git/
[master (root-commit) ce450c7] 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/
[master (root-commit) 19acec0] 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/
[master (root-commit) ea1ac38] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Fetching a
warning: no common commits
From ../a
* [new branch] master -> a/master
* [new tag] a -> a
Fetching b
warning: no common commits
From ../b
* [new branch] master -> b/master
* [new tag] b -> b
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/d/.git/
From ../c
* [new ref] a/master -> a/master
* [new ref] b/master -> b/master
* [new tag] a -> a
* [new tag] b -> b
Branch 'local/a/master' set up to track remote ref 'refs/remotes/a/master'.
ok 139 - tracking with unexpected .fetch refspec
# passed all 139 test(s)
1..139
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:
mkdir "$count" &&
(
cd "$count" &&
create_repo "$count"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3302-notes-index-expensive/10/.git/
ok 1 - setup 10
expecting success:
(
cd "$count" &&
test_notes "$count"
)
ok 2 - notes work
checking prerequisite: USR_BIN_TIME
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test -x /usr/bin/time
)
prerequisite USR_BIN_TIME not satisfied
skipping test: notes timing with /usr/bin/time
(
cd "$count" &&
time_notes 100
)
ok 3 # skip notes timing with /usr/bin/time (missing USR_BIN_TIME)
checking prerequisite: EXPENSIVE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test -n "$GIT_TEST_LONG"
)
prerequisite EXPENSIVE not satisfied
skipping test: setup 100
mkdir "$count" &&
(
cd "$count" &&
create_repo "$count"
)
ok 4 # skip setup 100 (missing EXPENSIVE)
skipping test: notes work
(
cd "$count" &&
test_notes "$count"
)
ok 5 # skip notes work (missing EXPENSIVE)
skipping test: notes timing with /usr/bin/time
(
cd "$count" &&
time_notes 100
)
ok 6 # skip notes timing with /usr/bin/time (missing EXPENSIVE,USR_BIN_TIME of USR_BIN_TIME,EXPENSIVE)
skipping test: setup 1000
mkdir "$count" &&
(
cd "$count" &&
create_repo "$count"
)
ok 7 # skip setup 1000 (missing EXPENSIVE)
skipping test: notes work
(
cd "$count" &&
test_notes "$count"
)
ok 8 # skip notes work (missing EXPENSIVE)
skipping test: notes timing with /usr/bin/time
(
cd "$count" &&
time_notes 100
)
ok 9 # skip notes timing with /usr/bin/time (missing EXPENSIVE,USR_BIN_TIME of USR_BIN_TIME,EXPENSIVE)
skipping test: setup 10000
mkdir "$count" &&
(
cd "$count" &&
create_repo "$count"
)
ok 10 # skip setup 10000 (missing EXPENSIVE)
skipping test: notes work
(
cd "$count" &&
test_notes "$count"
)
ok 11 # skip notes work (missing EXPENSIVE)
skipping test: notes timing with /usr/bin/time
(
cd "$count" &&
time_notes 100
)
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'
*** t3301-notes.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3301-notes/.git/
expecting success:
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:
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:
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:
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:
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:
test_expect_code 1 git notes show
error: no note found for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691.
ok 6 - handle empty notes gracefully
expecting success:
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:
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 &&
test "b4" = "$(git notes show)" &&
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:
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:
cat <<-EOF >expect &&
a1d8fa6 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:
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 &&
test "b3" = "$(git notes show)" &&
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:
test "b3" = "$(git notes --ref commits^{tree} show)" &&
test "b4" = "$(git notes --ref commits@{1} show)"
ok 12 - show notes from treeish
expecting success:
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:
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 &&
test "b3" = "$(git notes show)" &&
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:
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 &&
test "b1" = "$(git notes show)" &&
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:
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 &&
test "b2" = "$(git notes show)" &&
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:
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 &&
test "b1" = "$(git notes show)" &&
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:
cat >expect <<-EOF &&
commit 7a4ca6ee52a974a66cbaa78e33214535dff1d691
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 | grep b1) &&
git log -1 >actual &&
test_cmp expect actual
ok 18 - show notes
expecting success:
test_commit 3rd &&
MSG="b3${LF}c3c3c3c3${LF}d3d3d3" git notes add &&
cat >expect-multiline <<-EOF &&
commit d07d62e5208f22eb5695e7eb47667dc8b9860290
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:
test_commit 4th &&
echo "xyzzy" >note5 &&
git notes add -F note5 &&
cat >expect-F <<-EOF &&
commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
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:
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:
cat >expect <<-EOF &&
commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
tree 05ac65288c4c4b3b709a020ae94b2ece2f2201ae
parent d07d62e5208f22eb5695e7eb47667dc8b9860290
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:
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:
git log -1 --no-notes >actual &&
! grep xyzzy actual
ok 24 - git log --no-notes
expecting success:
git format-patch -1 --stdout >actual &&
! grep xyzzy actual
ok 25 - git format-patch does not show notes
expecting success:
git format-patch --show-notes -1 --stdout >actual &&
grep xyzzy actual
xyzzy
ok 26 - git format-patch --show-notes does show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
xyzzy
ok 27 - git show does show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 28 - git show --pretty does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 29 - git show --pretty=raw does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 30 - git show --pretty=short does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 31 - git show --pretty=medium does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 32 - git show --pretty=full does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 33 - git show --pretty=fuller does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 34 - git show --pretty=format:%s does not show notes
expecting success:
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 35 - git show --oneline does not show notes
expecting success:
git notes --ref=alternate add -m alternate
ok 36 - setup alternate notes ref
expecting success:
git log -1 --notes >actual &&
grep xyzzy actual &&
! grep alternate actual
xyzzy
ok 37 - git log --notes shows default notes
expecting success:
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:
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:
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:
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:
test_commit 5th &&
git notes add -m spam -m "foo${LF}bar${LF}baz" &&
cat >expect-m <<-EOF &&
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
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:
git notes add -f -F /dev/null &&
cat >expect-rm-F <<-EOF &&
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
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:
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:
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:
git notes remove HEAD^ &&
git notes remove &&
cat >expect-rm-remove <<-EOF &&
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
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:
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:
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:
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:
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:
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:
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:
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:
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:
cat >expect <<-EOF &&
c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 7a4ca6ee52a974a66cbaa78e33214535dff1d691
c18dc024e14f08d18d14eea0d747ff692d66d6a3 d07d62e5208f22eb5695e7eb47667dc8b9860290
EOF
git notes list >actual &&
test_cmp expect actual
ok 55 - list notes with "git notes list"
expecting success:
git notes >actual &&
test_cmp expect actual
ok 56 - list notes with "git notes"
expecting success:
cat >expect <<-EOF &&
c18dc024e14f08d18d14eea0d747ff692d66d6a3
EOF
git notes list HEAD^^ >actual &&
test_cmp expect actual
ok 57 - list specific note with "git notes list <object>"
expecting success:
cat >expect <<-EOF &&
EOF
test_must_fail git notes list HEAD >actual &&
test_cmp expect actual
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
ok 58 - listing non-existing notes fails
expecting success:
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:
cat >expect_list <<-EOF &&
c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 7a4ca6ee52a974a66cbaa78e33214535dff1d691
4b6ad22357cc8a1296720574b8d2fbc22fab0671 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
c18dc024e14f08d18d14eea0d747ff692d66d6a3 d07d62e5208f22eb5695e7eb47667dc8b9860290
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:
git notes append -m "" &&
git notes show >actual &&
test_cmp expect actual
ok 61 - appending empty string does not change existing note
expecting success:
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:
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:
test_commit 6th &&
GIT_NOTES_REF="refs/notes/other" git notes add -m "other note" &&
cat >expect-not-other <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
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:
git log -1 >actual &&
test_cmp expect-not-other actual
ok 65 - Do not show note on other ref by default
expecting success:
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:
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:
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:
cat >expect-both <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
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 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
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:
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:
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:
cat >expect-both-reversed <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
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:
GIT_NOTES_DISPLAY_REF=refs/notes/commits:refs/notes/other \
git log -2 >actual &&
test_cmp expect-both actual
ok 73 - GIT_NOTES_DISPLAY_REF works
expecting success:
cat >expect-none <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
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 74 - GIT_NOTES_DISPLAY_REF overrides config
expecting success:
GIT_NOTES_REF= GIT_NOTES_DISPLAY_REF= git log --show-notes=* -2 >actual &&
test_cmp expect-both actual
ok 75 - --show-notes=* adds to GIT_NOTES_DISPLAY_REF
expecting success:
cat >expect-commits <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
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 76 - --no-standard-notes
expecting success:
test_config notes.displayRef "refs/notes/*" &&
git log --no-standard-notes --show-notes=commits \
--standard-notes -2 >actual &&
test_cmp expect-both actual
ok 77 - --standard-notes
expecting success:
git log --show-notes=other --show-notes=commits \
--no-standard-notes -1 >actual &&
test_cmp expect-both-reversed actual
ok 78 - --show-notes=ref accumulates
expecting success:
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 &&
filename=$(git ls-tree --name-only HEAD | head -n1) &&
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 79 - Allow notes on non-commits (trees, blobs, tags)
expecting success:
cat >expect <<-EOF &&
commit fb01e0ca8c33b6cc0c6451dde747f97df567cb5c
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
${indent}7th
Notes:
${indent}order test
EOF
test_commit 7th &&
git notes add -C $(git notes list HEAD^) &&
git log -1 >actual &&
test_cmp expect actual &&
test "$(git notes list HEAD)" = "$(git notes list HEAD^)"
[master fb01e0c] 7th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 7th.t
ok 80 - create note from other note with "git notes add -C"
expecting success:
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 81 - create note from non-existing note with "git notes add -C" fails
expecting success:
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 82 - create note from non-blob with "git notes add -C" fails
expecting success:
cat >expect <<-EOF &&
commit 9a4c31c7f722b5d517e92c64e932dd751e1413bf
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
blob=$(echo "This is a blob object" | git hash-object -w --stdin) &&
git notes add -C $blob &&
git log -1 >actual &&
test_cmp expect actual &&
test "$(git notes list HEAD)" = "$blob"
ok 83 - create note from blob with "git notes add -C" reuses blob id
expecting success:
cat >expect <<-EOF &&
commit 2e0db4bc649e174d667a1cde19e725cf897a5bd2
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
${indent}9th
Notes:
${indent}yet another note
EOF
test_commit 9th &&
MSG="yet another note" git notes add -c $(git notes list HEAD^^) &&
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 84 - create note from other note with "git notes add -c"
expecting success:
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 85 - create note from non-existing note with "git notes add -c" fails
expecting success:
cat >expect <<-EOF &&
commit 2e0db4bc649e174d667a1cde19e725cf897a5bd2
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
git notes append -C $(git notes list HEAD^) HEAD^ &&
git log -1 HEAD^ >actual &&
test_cmp expect actual
ok 86 - append to note from other note with "git notes append -C"
expecting success:
cat >expect <<-EOF &&
commit 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
${indent}10th
Notes:
${indent}other note
EOF
MSG="other note" git notes append -c $(git notes list HEAD^) &&
git log -1 >actual &&
test_cmp expect actual
other note
ok 87 - create note from other note with "git notes append -c"
expecting success:
cat >expect <<-EOF &&
commit 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406
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
MSG="yet another note" git notes append -c $(git notes list HEAD) &&
git log -1 >actual &&
test_cmp expect actual
yet another note
ok 88 - append to note from other note with "git notes append -c"
expecting success:
cat >expect <<-EOF &&
commit a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
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
test_commit 11th &&
git notes copy HEAD^ HEAD &&
git log -1 >actual &&
test_cmp expect actual &&
test "$(git notes list HEAD)" = "$(git notes list HEAD^)"
[master a446fff] 11th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 11th.t
ok 89 - copy note with "git notes copy"
expecting success:
test_must_fail git notes copy HEAD~2 HEAD &&
git log -1 >actual &&
test_cmp expect actual &&
test "$(git notes list HEAD)" = "$(git notes list HEAD^)"
error: Cannot copy notes. Found existing notes for object a446fff8777efdc6eb8f4b7c8a5ff699484df0d5. Use '-f' to overwrite existing notes
ok 90 - prevent overwrite with "git notes copy"
expecting success:
cat >expect <<-EOF &&
commit a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
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 HEAD &&
git log -1 >actual &&
test_cmp expect actual &&
test "$(git notes list HEAD)" = "$(git notes list HEAD~2)"
Overwriting existing notes for object a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
ok 91 - allow overwrite with "git notes copy -f"
expecting success:
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 92 - cannot copy note from object without notes
expecting success:
cat >expect <<-EOF &&
commit e871aa61182b1d95d0a6fb75445d891722863b6b
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 65e263ded02ae4e8839bc151095113737579dc12
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
(echo $(git rev-parse HEAD~3) $(git rev-parse HEAD^); \
echo $(git rev-parse HEAD~2) $(git rev-parse HEAD)) |
git notes copy --stdin &&
git log -2 >actual &&
test_cmp expect actual &&
test "$(git notes list HEAD)" = "$(git notes list HEAD~2)" &&
test "$(git notes list HEAD^)" = "$(git notes list HEAD~3)"
ok 93 - git notes copy --stdin
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
commit 07c85d77059393ed0154b8c96906547a59dfcddd
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
${indent}14th
EOF
test_commit 14th &&
test_commit 15th &&
(echo $(git rev-parse HEAD~3) $(git rev-parse HEAD^); \
echo $(git rev-parse HEAD~2) $(git rev-parse HEAD)) |
git notes copy --for-rewrite=foo &&
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 94 - git notes copy --for-rewrite (unconfigured)
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
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 07c85d77059393ed0154b8c96906547a59dfcddd
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/*" &&
(echo $(git rev-parse HEAD~3) $(git rev-parse HEAD^); \
echo $(git rev-parse HEAD~2) $(git rev-parse HEAD)) |
git notes copy --for-rewrite=foo &&
git log -2 >actual &&
test_cmp expect actual
ok 95 - git notes copy --for-rewrite (enabled)
expecting success:
test_config notes.rewrite.bar false &&
echo $(git rev-parse HEAD~3) $(git rev-parse HEAD) |
git notes copy --for-rewrite=bar &&
git log -2 >actual &&
test_cmp expect actual
ok 96 - git notes copy --for-rewrite (disabled)
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
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/*" &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 97 - git notes copy --for-rewrite (overwrite)
expecting success:
test_config notes.rewriteMode ignore &&
test_config notes.rewriteRef "refs/notes/*" &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
ok 98 - git notes copy --for-rewrite (ignore)
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
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/*" &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 99 - git notes copy --for-rewrite (append)
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
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/*" &&
(echo $(git rev-parse HEAD^) $(git rev-parse HEAD);
echo $(git rev-parse HEAD^^) $(git rev-parse HEAD)) |
git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
Overwriting existing notes for object e871aa61182b1d95d0a6fb75445d891722863b6b
ok 100 - git notes copy --for-rewrite (append two to one)
expecting success:
git notes remove HEAD^ &&
test_config notes.rewriteMode concatenate &&
test_config notes.rewriteRef "refs/notes/*" &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
Removing note for object HEAD^
ok 101 - git notes copy --for-rewrite (append empty)
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
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^ &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
GIT_NOTES_REWRITE_MODE=overwrite git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
ok 102 - GIT_NOTES_REWRITE_MODE works
expecting success:
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
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 &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
GIT_NOTES_REWRITE_REF=refs/notes/commits:refs/notes/other \
git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 103 - GIT_NOTES_REWRITE_REF works
expecting success:
git notes add -f -m"replacement note 3" HEAD^ &&
test_config notes.rewriteMode overwrite &&
test_config notes.rewriteRef refs/notes/other &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
GIT_NOTES_REWRITE_REF= git notes copy --for-rewrite=foo &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 104 - GIT_NOTES_REWRITE_REF overrides config
expecting success:
test_must_fail git notes copy &&
test_must_fail git notes copy one two three
error: too few parameters
usage: git notes copy [<options>] <from-object> <to-object>
or: git notes copy --stdin [<from-object> <to-object>]...
-f, --force replace existing notes
--stdin read objects from stdin
--for-rewrite <command>
load rewriting config for <command> (implies --stdin)
error: too many parameters
usage: git notes copy [<options>] <from-object> <to-object>
or: git notes copy --stdin [<from-object> <to-object>]...
-f, --force replace existing notes
--stdin read objects from stdin
--for-rewrite <command>
load rewriting config for <command> (implies --stdin)
ok 105 - git notes copy diagnoses too many or too few parameters
expecting success:
test_unconfig core.notesRef &&
sane_unset GIT_NOTES_REF &&
test "$(git notes --ref=refs/heads/master get-ref)" = "refs/notes/refs/heads/master"
ok 106 - git notes get-ref expands refs/heads/master to refs/notes/refs/heads/master
expecting success:
test_unconfig core.notesRef &&
sane_unset GIT_NOTES_REF &&
test "$(git notes get-ref)" = "refs/notes/commits"
ok 107 - git notes get-ref (no overrides)
expecting success:
test_config core.notesRef refs/notes/foo &&
test "$(git notes get-ref)" = "refs/notes/foo"
ok 108 - git notes get-ref (core.notesRef)
expecting success:
test "$(GIT_NOTES_REF=refs/notes/bar git notes get-ref)" = "refs/notes/bar"
ok 109 - git notes get-ref (GIT_NOTES_REF)
expecting success:
test "$(GIT_NOTES_REF=refs/notes/bar git notes --ref=baz get-ref)" = "refs/notes/baz"
ok 110 - git notes get-ref (--ref)
expecting success:
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 111 - setup testing of empty notes
expecting success:
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 112 - 'git notes add' removes empty note
expecting success:
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 113 - 'git notes add --allow-empty' stores empty note
expecting success:
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 114 - 'git notes add -F /dev/null' removes empty note
expecting success:
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 115 - 'git notes add -F /dev/null --allow-empty' stores empty note
expecting success:
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 116 - 'git notes add -m ""' removes empty note
expecting success:
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 117 - 'git notes add -m "" --allow-empty' stores empty note
expecting success:
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 118 - 'git notes add -c "$empty_blob"' removes empty note
expecting success:
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 119 - 'git notes add -c "$empty_blob" --allow-empty' stores empty note
expecting success:
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 120 - 'git notes add -C "$empty_blob"' removes empty note
expecting success:
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 121 - 'git notes add -C "$empty_blob" --allow-empty' stores empty note
expecting success:
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 122 - 'git notes append' removes empty note
expecting success:
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 123 - 'git notes append --allow-empty' stores empty note
expecting success:
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 124 - 'git notes append -F /dev/null' removes empty note
expecting success:
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 125 - 'git notes append -F /dev/null --allow-empty' stores empty note
expecting success:
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 126 - 'git notes append -m ""' removes empty note
expecting success:
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 127 - 'git notes append -m "" --allow-empty' stores empty note
expecting success:
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 128 - 'git notes append -c "$empty_blob"' removes empty note
expecting success:
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 129 - 'git notes append -c "$empty_blob" --allow-empty' stores empty note
expecting success:
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 130 - 'git notes append -C "$empty_blob"' removes empty note
expecting success:
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 131 - 'git notes append -C "$empty_blob" --allow-empty' stores empty note
expecting success:
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 132 - 'git notes edit' removes empty note
expecting success:
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 133 - 'git notes edit --allow-empty' stores empty note
expecting success:
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 134 - empty notes are displayed by git log
# passed all 134 test(s)
1..134
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:
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:
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:
git log | grep "^ " > actual &&
test_cmp expect actual
ok 3 - verify contents of notes
expecting success:
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:
test_tick &&
git notes add -f -m "foo bar"
Overwriting existing notes for object 5f8b8322f6a2c6d36eb6d42312d2393900ab7b81
ok 5 - git-notes preserves non-notes
expecting success:
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'
*** t2013-checkout-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/.git/
expecting success:
mkdir submodule &&
(cd submodule &&
git init &&
test_commit first) &&
git add submodule &&
test_tick &&
git commit -m superproject &&
(cd submodule &&
test_commit second) &&
git add submodule &&
test_tick &&
git commit -m updated.superproject
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule/.git/
[master (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
warning: adding embedded git repository: submodule
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> submodule
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached submodule
hint:
hint: See "git help submodule" for more information.
[master (root-commit) 1844aa5] superproject
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 160000 submodule
[master d662100] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 second.t
[master 14e674f] updated.superproject
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
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:
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
ok 3 - "checkout <submodule>" updates the index only
expecting success:
git config diff.ignoreSubmodules dirty &&
echo x> submodule/untracked &&
git checkout HEAD >actual 2>&1 &&
! test -s actual
ok 4 - "checkout <submodule>" honors diff.ignoreSubmodules
expecting success:
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 -s actual
ok 5 - "checkout <submodule>" honors submodule.*.ignore from .gitmodules
expecting success:
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 -s actual
ok 6 - "checkout <submodule>" honors submodule.*.ignore from .git/config
expecting success:
prolog &&
reset_work_tree_to_interested no_submodule &&
(
cd submodule_update &&
git branch -t add_sub1 origin/add_sub1 &&
$command add_sub1 &&
test_superproject_content origin/add_sub1 &&
test_submodule_content sub1 origin/add_sub1
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1/.git/
[master (root-commit) f401f36] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub2/.git/
[master (root-commit) f2c1bb9] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/.git/
[master (root-commit) 3950f7e] Base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Switched to a new branch 'add_sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 30024d7] Add sub1
Author: A U Thor <author@example.com>
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Switched to a new branch 'remove_sub1'
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:
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:
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 9 - git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead
expecting success:
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 10 - git checkout --recurse-submodules: replace tracked file with submodule checks out submodule
expecting success:
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 11 - git checkout --recurse-submodules: replace directory with submodule
expecting success:
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
)
Cloning into 'submodule_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:
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:
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:
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:
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 16 - git checkout --recurse-submodules: modified submodule updates submodule work tree
expecting success:
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 &&
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'.
fatal: failed to unpack tree object 0123456789012345678901234567890123456789
error: Cannot update submodule:
sub1
Aborting
ok 17 - git checkout --recurse-submodules: updating to a missing submodule commit fails
expecting success:
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 18 - git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name
expecting success:
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 19 - git checkout --recurse-submodules: added submodule removes an untracked ignored file
checking known breakage:
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 20 - git checkout --recurse-submodules: replace submodule with a directory # TODO known breakage
checking known breakage:
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 21 - git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage
expecting success:
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 22 - git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule
expecting success:
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 23 - git -c submodule.recurse=true checkout: modified submodule updates submodule work tree
expecting success:
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 24 - git checkout --recurse-submodules: modified submodule updates submodule recursively
expecting success:
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 25 - git checkout -f --recurse-submodules: added submodule is checked out
expecting success:
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 26 - git checkout -f --recurse-submodules: added submodule is checked out in empty dir
expecting success:
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 27 - git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead
expecting success:
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 28 - git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule
expecting success:
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 29 - git checkout -f --recurse-submodules: replace directory with submodule
expecting success:
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
)
Cloning into 'submodule_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 30 - git checkout -f --recurse-submodules: removed submodule removes submodules working tree
expecting success:
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 31 - git checkout -f --recurse-submodules: removed submodule absorbs submodules .git directory
expecting success:
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 32 - git checkout -f --recurse-submodules: replace submodule with a file
checking known breakage:
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 33 - git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage
expecting success:
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 34 - git checkout -f --recurse-submodules: modified submodule updates submodule work tree
expecting success:
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 &&
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'.
fatal: failed to unpack tree object 0123456789012345678901234567890123456789
error: Submodule 'sub1' cannot checkout new HEAD.
ok 35 - git checkout -f --recurse-submodules: updating to a missing submodule commit fails
expecting success:
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 36 - git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced
expecting success:
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 37 - git checkout -f --recurse-submodules: replace submodule with a directory
expecting success:
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_submodule_content sub1 origin/modify_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 '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'.
Submodule sub1 is not populated
ok 38 - git checkout -f --recurse-submodules: replace submodule containing a .git directory with a directory must fail
expecting success:
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 39 - git checkout -f --recurse-submodules: replace submodule with a file ignoring ignored files
expecting success:
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 40 - git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit
expecting success:
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 41 - git checkout -f --recurse-submodules: updating submodules fixes .git links
expecting success:
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 42 - git checkout -f --recurse-submodules: changed submodule worktree is reset
expecting success:
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 43 - git checkout: added submodule creates empty directory
expecting success:
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 44 - git checkout: added submodule leaves existing empty directory alone
expecting success:
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 45 - git checkout: replace tracked file with submodule creates empty directory
expecting success:
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 46 - git checkout: replace directory with submodule
expecting success:
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 47 - git checkout: removed submodule leaves submodule directory and its contents in place
expecting success:
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 48 - git checkout: removed submodule leaves submodule containing a .git directory alone
expecting success:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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 49 - git checkout: replace submodule with a directory must fail
expecting success:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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 50 - git checkout: replace submodule containing a .git directory with a directory must fail
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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 51 - git checkout: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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 52 - git checkout: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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 53 - git checkout: modified submodule does not update submodule work tree
expecting success:
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'.
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 54 - git checkout: modified submodule does not update submodule work tree to invalid commit
expecting success:
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 55 - git checkout: modified submodule does not update submodule work tree from invalid commit
expecting success:
prolog &&
reset_work_tree_to 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 56 - git checkout: added submodule doesn't remove untracked unignored file with same name
expecting success:
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 57 - git checkout -f: added submodule creates empty directory
expecting success:
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 58 - git checkout -f: added submodule leaves existing empty directory alone
expecting success:
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 59 - git checkout -f: replace tracked file with submodule creates empty directory
expecting success:
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 60 - git checkout -f: replace directory with submodule
expecting success:
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 61 - git checkout -f: removed submodule leaves submodule directory and its contents in place
expecting success:
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 62 - git checkout -f: removed submodule leaves submodule containing a .git directory alone
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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 63 - git checkout -f: replace submodule with a directory must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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 64 - git checkout -f: replace submodule containing a .git directory with a directory must fail # TODO known breakage
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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 65 - git checkout -f: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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 66 - git checkout -f: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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 67 - git checkout -f: modified submodule does not update submodule work tree
expecting success:
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'.
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 68 - git checkout -f: modified submodule does not update submodule work tree to invalid commit
expecting success:
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 69 - git checkout -f: modified submodule does not update submodule work tree from invalid commit
expecting success:
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 70 - git checkout -f: added submodule does remove untracked unignored file with same name when forced
# still have 10 known breakage(s)
# passed all remaining 60 test(s)
1..70
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:
: > file1 &&
git add file1 &&
test_tick &&
git commit -m 1st &&
git notes add -m "Note #1" &&
: > file2 &&
git add file2 &&
test_tick &&
git commit -m 2nd &&
git notes add -m "Note #2" &&
: > file3 &&
git add file3 &&
test_tick &&
git commit -m 3rd &&
COMMIT_FILE=.git/objects/5e/e1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
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:
git log > actual &&
test_cmp expect actual
ok 2 - verify commits and notes
expecting success:
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:
test_must_fail git cat-file -p 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
git cat-file -p 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git cat-file -p ab5f302035f2e7aaf04265f08b42034c23256e1f
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:
git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
Note #3
Note #2
Note #1
ok 5 - verify that notes are still present
expecting success:
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:
git notes prune -n > actual &&
test_cmp expect actual
ok 7 - prune -n lists prunable notes
expecting success:
git notes prune
ok 8 - prune notes
expecting success:
test_must_fail git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
error: no note found for object 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29.
Note #2
Note #1
ok 9 - verify that notes are gone
expecting success:
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:
git notes prune -v > actual &&
test_cmp expect actual
ok 11 - prune -v notes
expecting success:
test_must_fail git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
test_must_fail git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
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:
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:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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/*
[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:
verify_notes x
ok 2 - verify initial notes (x)
expecting success:
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:
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:
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:
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:
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:
# 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:
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:
verify_notes y
ok 10 - verify changed notes on other notes ref (y)
expecting success:
verify_notes x
ok 11 - verify unchanged notes on original notes ref (x)
expecting success:
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:
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:
# 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_cmp /dev/null 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:
# 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:
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:
git notes merge y &&
verify_notes x &&
verify_notes y
ok 17 - merge y into x => Non-conflicting 3-way merge
expecting success:
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:
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:
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
[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:
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: verify_notes x x
ok 3 - verify state of merge base (x)
expecting success:
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: verify_notes y y
ok 5 - verify state of local branch (y)
expecting success:
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: verify_notes z z
ok 7 - verify state of remote branch (z)
expecting success:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
(
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: test_sha1_based "s|^..|&/|"
ok 2 - test notes in 2/38-fanout
expecting success: verify_notes
ok 3 - verify notes in 2/38-fanout
expecting success: test_sha1_based "s|^\(..\)\(..\)|\1/\2/|"
ok 4 - test notes in 2/2/36-fanout
expecting success: verify_notes
ok 5 - verify notes in 2/2/36-fanout
expecting success: test_sha1_based "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|"
ok 6 - test notes in 2/2/2/34-fanout
expecting success: verify_notes
ok 7 - verify notes in 2/2/2/34-fanout
expecting success: test_same_notes "s|^..|&/|" ""
ok 8 - test same notes in no fanout and 2/38-fanout
expecting success: verify_notes
ok 9 - verify same notes in no fanout and 2/38-fanout
expecting success: test_same_notes "s|^\(..\)\(..\)|\1/\2/|" ""
ok 10 - test same notes in no fanout and 2/2/36-fanout
expecting success: verify_notes
ok 11 - verify same notes in no fanout and 2/2/36-fanout
expecting success: test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"
ok 12 - test same notes in 2/38-fanout and 2/2/36-fanout
expecting success: verify_notes
ok 13 - verify same notes in 2/38-fanout and 2/2/36-fanout
expecting success: 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: verify_notes
ok 15 - verify same notes in 2/2/2/34-fanout and 2/2/36-fanout
expecting success: test_concatenated_notes "s|^..|&/|" ""
ok 16 - test notes in no fanout concatenated with 2/38-fanout
expecting success: verify_concatenated_notes
ok 17 - verify notes in no fanout concatenated with 2/38-fanout
expecting success: test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" ""
ok 18 - test notes in no fanout concatenated with 2/2/36-fanout
expecting success: verify_concatenated_notes
ok 19 - verify notes in no fanout concatenated with 2/2/36-fanout
expecting success: test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"
ok 20 - test notes in 2/38-fanout concatenated with 2/2/36-fanout
expecting success: verify_concatenated_notes
ok 21 - verify notes in 2/38-fanout concatenated with 2/2/36-fanout
expecting success: 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: 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:
test_commit 1st &&
test_commit 2nd &&
test_commit 3rd &&
test_commit 4th &&
test_commit 5th
[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:
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:
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:
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:
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 5 - merge z into m (== y) with default ("manual") resolver => Conflicting 3-way merge
expecting success:
git notes --ref z append -m "More z notes on 4th commit" 4th &&
verify_notes z
ok 6 - change notes in z
expecting success:
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:
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:
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:
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:
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:
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:
# 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 &&
# No .git/NOTES_MERGE_* files left
test_might_fail ls .git/NOTES_MERGE_* >output 2>/dev/null &&
test_cmp /dev/null output &&
# 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:
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:
git notes merge --abort &&
# No .git/NOTES_MERGE_* files left
test_might_fail ls .git/NOTES_MERGE_* >output 2>/dev/null &&
test_cmp /dev/null output &&
# 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:
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:
# 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 &&
# No .git/NOTES_MERGE_* files left
test_might_fail ls .git/NOTES_MERGE_* >output 2>/dev/null &&
test_cmp /dev/null output &&
# 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:
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:
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:
# 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
grep -q "refs/notes/m" output &&
grep -q "$(git rev-parse refs/notes/m)" output &&
grep -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:
git notes merge --abort &&
# No .git/NOTES_MERGE_* files left
test_might_fail ls .git/NOTES_MERGE_* >output 2>/dev/null &&
test_cmp /dev/null output &&
# 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:
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:
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:
git config core.notesRef refs/notes/x &&
git notes add -m "x notes on tantrum" tantrum
ok 2 - setup notes ref (x)
expecting success:
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:
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:
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:
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:
git config core.notesRef refs/notes/y &&
test_must_fail git notes merge z &&
echo "ref: refs/notes/y" >expect &&
test_cmp .git/NOTES_MERGE_REF expect
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:
(
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.
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:
(
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 .git/worktrees/worktree2/NOTES_MERGE_REF expect
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'
*** t3305-notes-fanout.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3305-notes-fanout/.git/
expecting success:
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 1 - creating many notes with git-notes
expecting success:
git log | grep "^ " > output &&
i=300 &&
while test $i -gt 0
do
echo " commit #$i" &&
echo " note #$i" &&
i=$(($i - 1));
done > expect &&
test_cmp expect output
ok 2 - many notes created correctly with git-notes
expecting success:
# Expect entire notes tree to have a fanout == 1
git ls-tree -r --name-only refs/notes/commits |
while read path
do
case "$path" in
??/??????????????????????????????????????)
: true
;;
*)
echo "Invalid path \"$path\"" &&
return 1
;;
esac
done
ok 3 - many notes created with git-notes triggers fanout
expecting success:
num_notes=250 &&
i=0 &&
git rev-list HEAD |
while test $i -lt $num_notes && read sha1
do
i=$(($i + 1)) &&
test_tick &&
git notes remove "$sha1" ||
exit 1
done
Removing note for object 854fb20b9d7dcaa80548bb9c8c3d8c3f6b0719d4
Removing note for object 200fae4018757111c0a8a5a92f363f20be7decc3
Removing note for object 7d219e25b693893b9d3808a38a0156a8fd225422
Removing note for object 8cae25a6a918d5f7e6d46fa93456a4c1251c6141
Removing note for object 1d0676baebb69788e6c92a458e69b6f2398795f6
Removing note for object 49564c28ac6df710aee85cba0cd6f926f6c7e453
Removing note for object 639a535bf80e6dd9d31bd60679de5bbf5f105d49
Removing note for object 624297b32f29ba1f4f943bd1991d9e28105d4b16
Removing note for object 947e5312513a5f368ac9f1ac84fa95a82365027f
Removing note for object 08cadb1987ea288fcb9fc8e50ab2db73031aa687
Removing note for object 39820b7c24dfdc2ce40c5ecfff5571a80e4c5f47
Removing note for object 5ee4152ac768ed7ad39636ac9fa6365abfe5b346
Removing note for object 385ea09d67fee0b88413bdc5aa9be3718938d022
Removing note for object e900f033cef5fb6f4148c507e1c5f0bd6fabcf48
Removing note for object fd85b59dd4b733d5efad4949e55865798e32a2e8
Removing note for object 9255f5214f6621e4e65172a3b451e1352f9c46d7
Removing note for object 7a4395a549bcabe028edf23408cfffcc11543e12
Removing note for object f324af807a75532bc567e84ff68621b9133830d2
Removing note for object e1e1a803687cc6b143e5940299a84400d94dec9a
Removing note for object 06af34e983844b389c7baed5f6e501c8185e990e
Removing note for object abe5beb280907a2887f37a860035436aed83ccf1
Removing note for object 0314f267e210671b1e3feff2f0af3d4935adf60a
Removing note for object c04519ee674bc0b92ac66cfba80e8f475b3fc386
Removing note for object b88db8824a2bf2dd452828b04c7d018bcb9589d5
Removing note for object a19f1a613ba01f69161de278f9ac914bdff88eab
Removing note for object a828af33c56b650725b709b5e3f701d8466e3b4a
Removing note for object 4b6ebf1f33b72a4dc49886fb89b0738530e6b634
Removing note for object e4f2d464bd3c5f85840d2e11af506f80f7f6e2a8
Removing note for object 580ab2e48c71a4ec87359b16b4b8590613676182
Removing note for object 7b6ec1d3969ea440bb83740f38cd69fdd5574793
Removing note for object ce60e6913571e1e6d20e03ec9c22db9a37bf8321
Removing note for object 1c3fad1c59de999bb6e21f9d49f90cc143974a83
Removing note for object fc6c354c992b4bbc9be797b08db9589793d213bc
Removing note for object d1f96781fe35c3384553726974c6077f8e274315
Removing note for object 5414ccb72e8f8a134a93a5e1615430fa4c5cea2a
Removing note for object c3ba6ecef5ca2aa7ff04a0a65d2afa47f5e1de12
Removing note for object 4bcf332903c4766e6602eec79fbba41db694aeb9
Removing note for object 5b1f9f2c09a25aca558c9e0cb37e351d674c440d
Removing note for object aac25280221d50de418b254851eece2dfebff969
Removing note for object c3705f05305eda98c99ee22de1e9e33c589097f8
Removing note for object 2d5e918dbc8c4892c24ba25ee2807f51f446611b
Removing note for object 0408a5712291f0db8f45430c1b585cabe45b4224
Removing note for object 3a9c6fce2183d03bcb0551f8bf81a41ce8fbd534
Removing note for object 1f88e10aa3a1d395e0543bfa59bbf05220c71db4
Removing note for object 25ff66539025aa98823d9ee038f6cb4892bf1fb5
Removing note for object 0da364524c240e0089baa38f16c711b35240fd57
Removing note for object 7bc603c4f23e35a0d82d3921408eececb05d671e
Removing note for object 40578788b551ff0dd9b9eee4bf00244a3e82fae4
Removing note for object ba037d4f7b23d892ddf3fb69f65daa7b1ce04419
Removing note for object 16b1618654b1b2f2036e510294edaf37145f5e17
Removing note for object 4e775bd4d8a7ef0381e55414046717ae0bca2128
Removing note for object 93e4d12470610c01d9585b03d7c08326c6fb1a8f
Removing note for object 90e80cd3c184dac514093c22fbfcb0a3870040f6
Removing note for object e144c821ba6b3b44fcd1633895072636537c933a
Removing note for object 55f1721c25adc31182d341d82b7289c34ecd4eb2
Removing note for object 978493ba09b63142bcd98617c67fc6c970ca302c
Removing note for object 8b321a102e20a4bddca37566663b6ec9e246ac64
Removing note for object 29ccbf44f205cd5ff48aca4072d6fd845b6c4716
Removing note for object 9a92477f30bbf5248212a031c3e910813b1a2db3
Removing note for object cc4ecd1f77a4e41df92a1d6597dd5122dc0b46a6
Removing note for object 963216b27d8d471c216f4c903c049e5ce5fdac47
Removing note for object fbdbb1b550acb25e4ce7c3bc6f65cbc91de44241
Removing note for object f7f1084ed7006d8843433333ef5055b2adfb5bb1
Removing note for object c87766b583ae086abd511f9e88821d41da3896d5
Removing note for object 33be48ce21601027fb8cde3c6e2d187fcea55571
Removing note for object 8031f54641552a3ad7dd038675834eadba5d7a38
Removing note for object 5526de2cf7102d43882cad71a0575df9c3ce236c
Removing note for object 1db1e2a43118764daf9190e3cad8c1796a71b3b6
Removing note for object b50b64c167ee83ff8a9566e71c6461c148d30582
Removing note for object 95772a637e6cc1d320564d23e879c6567682f59a
Removing note for object 3c63c8dc7def3d6a4b22743c8ed09cef8d4147c2
Removing note for object fb69d1d419d3e88876b2e677bbf8ccd7da8f01d2
Removing note for object df866016f9cd23fe3a8d96f4bca6d5b6776b1095
Removing note for object ec9330714addd1f3f1325166e373cbec7798faa0
Removing note for object ddb1318c0e9b02d7f5ada5b57d5d99690db58347
Removing note for object 0f010abe8ac41027fdd82b5d97d8d20968230f38
Removing note for object 10c04d4b6d6192116238ab18357460223136c73a
Removing note for object 9045e926f3cdf5b6d1915b88cbf388bbde0ad31a
Removing note for object 226e5fdf42381dc26a88f4984821e99b4e404137
Removing note for object be34f41e8d8bacf2ea4f0872bfb8348284b34130
Removing note for object 4d97cd50b4de11a36634454d555b89816af10a17
Removing note for object 85e625d2d7fc35cadec822f54867c684b63a7d71
Removing note for object 90efba6c53df64c07ffc07e7ce2a4f23e352eb88
Removing note for object 469093795f6f0fe36312a14df3b7ab1ccc0c35bf
Removing note for object cba3d318fe07b42721e7593b17f1c449e5c2f240
Removing note for object 056cdb6bdb72c1534f49feab5010b194ccba9dc8
Removing note for object e0d990e2fd3338f16956b9a2e72e73045bd745ab
Removing note for object 1b2fedd64114e8ebf7d8471cda4c324dfffc3c85
Removing note for object 993c654ef73a0e4ed802c6b0e29745d2299508ee
Removing note for object c31cd7d4c6dfae5e044e3c11bca7ed66d7197dcc
Removing note for object 7fe600f3692b9d97dadde89a2f1d08a0ffcc3602
Removing note for object 2f59d1fb1cd8df54d4000e91c50d27c555c245a6
Removing note for object 0110473cfeb6a4894b0457b6aca75543797e0ed3
Removing note for object dbf4ab2a968e38fe629b73331d194678ebd14036
Removing note for object f4c49ddff2b799959eeae06b6a640874beb60fd0
Removing note for object c1711837dcf0bcf93cccb7416ac28ef0cea04b50
Removing note for object 19e4e436c159d353664d6ecbc0e7f5b79b9d3d26
Removing note for object 2691dfa681eaf0e85480b0a3b77c998decf1c01a
Removing note for object f0f0538057240cc979517475b7cf8cb710f9899d
Removing note for object c0945c99795662e0e55e188d3ab36f599b92aa8c
Removing note for object a1591c0212bc193cd6c8b1e38fa214078fad6533
Removing note for object 485e2fa969f41fe446bfcc690d40eef68cc9658c
Removing note for object 380fbe740d51646342dedd80455e677efeab2606
Removing note for object caf193eed10e30dd698b64dff9ba95806daafeae
Removing note for object 4f7bcc29fe25fd03d0afe5122d2f23a494c2de92
Removing note for object 9875586f495475e0e2fe207ca60195ab1e4940bb
Removing note for object bbadc53dcdce0f607d09db9e301f118cf237a5c9
Removing note for object b235894482a0797fcecfe914ca809bd3d255ae71
Removing note for object 93014e8e87513c4c558a587e1c7d2660634ab631
Removing note for object acbd6300f13fee70a9367c9309f0c146a3262b85
Removing note for object 8177b71f61145307c45925d05b6a26c93671d84b
Removing note for object 7add7e518355f216f1f6cddbcbe5f9fa4dc77d6b
Removing note for object 1ef81327895ea6e4f19fc4132285728f8ea9a61f
Removing note for object 73c20b17fe7874494e3c77c21275c898d56f193d
Removing note for object d8972d68d0e3db75ce9aaf8c54ba5abdc496b6fd
Removing note for object 9f89917ff75e84e3e858585f2da4319cec352d81
Removing note for object 6a89826cac65ff99275d8901dc4c25e492982af3
Removing note for object 8bb15e65b3991d361f5c8b300993fb47ab5d84e8
Removing note for object d16b7b8a64a6b7f041215854711b3bf2c72a77f0
Removing note for object 4cfa50d5d4837bc47ddfb0a8304447534769c169
Removing note for object 14fdf2369ba07615c54aa799c639041cb0851572
Removing note for object d26fc2348f9457757a0f1d0d67e7bcfee25c7631
Removing note for object 0c2d2f03d0600d5eaccd2dbed6717274ba8d43a2
Removing note for object 3c1d753e385fa868514c439438e94de3da1473c4
Removing note for object cc8047bae109bb33b1b67a5e9c6198a0f71178e6
Removing note for object 5ae9ca25b6fc42e14aa0695a2678065afc3db3f4
Removing note for object 989815f696ed2ee03e461bc4aedce119cccbdb67
Removing note for object 6742814c2a98f4c2de209034e9f06bfcf4b9e563
Removing note for object 659c73affbf54496483ef3b88fb099872ff2c6c3
Removing note for object 4bb6de84877eb87d499d9ad9a8ee0ab3b3cc02e3
Removing note for object f7b11911f4739b270cb2147aeeef10454234817f
Removing note for object 4aa6bf04bdc1a050c658b9ed7a463285302531a5
Removing note for object 798b896992bd4432404bcc77476b5664a73a4fd5
Removing note for object ff7d168602a59c57ece46da1fd8cc6f12c9de54b
Removing note for object 9f027ed6e69c7b0067303a3bf57977f0c90c693c
Removing note for object d726ae3816b7977b48b19bfdd1d1cb51b645b418
Removing note for object 048de3e70ecf601e0e3038f1435eb7a6591effc0
Removing note for object 61357f089446a216f83d1e926e2fa2bfea6c8e01
Removing note for object d44207e76cfdfa5f111a7a3ed6cad3989e627bdf
Removing note for object 2ad68764e49946ef164b5bccd452428096f61174
Removing note for object 13897d2b6067286c9904cbea9d03fff5755a46b3
Removing note for object 58ce609a332186c88af1324ae30ff11490c59595
Removing note for object 43af7ee63538db2151a1341b71a9f77de73aee67
Removing note for object 9f9992f0edd96c5ea639acf77d9e5b34d7b5ee86
Removing note for object 9e55ec3cc97444141551079f461c5166c4f490b8
Removing note for object 3284ff763e2cb720085cf0ce868f3e5fb92b489b
Removing note for object 9d7d752892d8e0e8b8f9f1978e5987388003f039
Removing note for object 97ebdcc0635a179a2a610c41edda8a79197757dd
Removing note for object 5de5ca14df95545379cb2c270977c7169b5d8e00
Removing note for object 15ce6550074713a3779b0faee4c91c7788f2b8d0
Removing note for object 4c9c25c1c9231a38d7fd72574f0c18096fa08778
Removing note for object 1ab52ac18c59bff8c14a04b68b6ae1dc5d3500af
Removing note for object b5016129acfddf7f6b6c7b38b846c73904e8d730
Removing note for object 2604195b51dd30fdfb0735d7a75e28f6a83750d6
Removing note for object 88647f9a79013152b0f22d19bf65a26428199dcd
Removing note for object eb172f669f5ab6afeff671a04ebbe1ff73b23b5b
Removing note for object f7fc92137d90956060ca13be2b51d606074e8bad
Removing note for object b8734aad512081134bb2d2c7beb30886a526750b
Removing note for object 3ced41967bcc7724cbe8b20fdb5dbb68d2d5b737
Removing note for object 2e27720e46e1a55de5d19437ff9efcc34dc4ea31
Removing note for object 82c68076b3ad95450772a3fcd5d637b4ce6c771b
Removing note for object 4fe43a72413f0480b78c7d2f429190f260cf8322
Removing note for object 43d64298e033e7f2e13d8e481dd5daa0116e07ef
Removing note for object a648f0737cfa015e29f067edca76d783681c4a85
Removing note for object 64fe931feaf50a6b1faa2cc2e33d193b7d1b84ca
Removing note for object 2ca4619fe11731a2b91f5dffc6f40ea568d16c9f
Removing note for object 8fc47225e1642ef62782a484248e5f9616fb1f44
Removing note for object ca9a31a763907e395d7a4e18336933a56e26d2f6
Removing note for object 907b908cd3d9b08d2622734acb5a609b4c28e725
Removing note for object 5518deeb20ed2e51705967f65ab6bafc51724a6a
Removing note for object 53d4c9839624d3781a7715bf748ca74b65e594ec
Removing note for object 8ec05e9f1292feb78fbddb75abdc832080e3c81a
Removing note for object 052dc1876538654b80b4b2accad5802c1ba2e989
Removing note for object ab54081944bdc0c75584c0abb73e68a652cc1061
Removing note for object ce5880a3135a30a6ddf964d6cd42ca46a282d214
Removing note for object f6918e5940e3141d1673ca7df7e6cf0045dcaec0
Removing note for object 848b6059f11ca83d3d46366bf6530065ddd639a4
Removing note for object bea0c28c009f310c2ba45833c0e32d84a86215ce
Removing note for object 04fc9a8e454da77881614184c95bb931398584d5
Removing note for object 05033398c05e56c4bee8b9fb5a9964b418c3fe53
Removing note for object 4338039a875b7a347faf47e0125b3bd521ec37b1
Removing note for object 53fb7902d8eb93a97c4c468e0a9ec26e02181094
Removing note for object 492fb8bd8e511f684cf4814163968ba41f21bd6a
Removing note for object 34238bfe26b514f16d3642360e06e2f8caf93d01
Removing note for object a662cb6d2bf390f731cb48b4b5b9fc255704bd51
Removing note for object 994bf981ffdb4aec475cf4698071f4e5bc9a5f5c
Removing note for object fd1833ffb225f021e6b780ade6719dedfdac03f7
Removing note for object 1e008ec90a144c1a55d67d4182546f2a76f5aaf4
Removing note for object 28c48c82afe4d61f7ffb90a0d0525fcd12a6b733
Removing note for object b23a388efbde108d2ff7b49e7d713248f6b13934
Removing note for object 7a18c00c2fd401cbd5a173627bf8a323fa5093b1
Removing note for object e141ba47d7bc5af5494826f331dcf478f515c832
Removing note for object 501c5a2632fe9b5910bbd36b7e10f21939112cd5
Removing note for object fa72dea14c026dadb9a6a5478b1c66e1753d7387
Removing note for object 3e8a170967bf4d0f1175761fb9e83fe457e1490c
Removing note for object 224d2db2986a7a1e23059bbd0c13d9f38d24b5ad
Removing note for object 69120f7a0bd6104a678d99f0622af9a5afeaa4a1
Removing note for object 87317dba836b40f673606bc458cfcb32f6444b77
Removing note for object c3fe4ddece9187a9b48e2e8a1d91c36d68a361a5
Removing note for object 37c6de9471b2b749fc14c943b27b4f49578bd709
Removing note for object 5604fa1ee57e2caed9fa477488e882ecbe760d4d
Removing note for object 7dae2e0002c87a78e8f4bd9874ed40f0c63d5ac2
Removing note for object ce653ed06af737ed15666e87968d6d62150bdbc3
Removing note for object b8ccff7802b95043ac522363ef387d15b8024708
Removing note for object 6e508180802c403e32d37352623fc7d430484fd4
Removing note for object 976918c7ebcbbfeaf6c7a4089093a4684c53d7a7
Removing note for object 6c422f13003f2cfc5be8d515711009c31c02b189
Removing note for object 9a04cd31480e2602f44a1e74c33ae5c605ac5147
Removing note for object 957391d2c69845865b4f122f079900fbf823c2b7
Removing note for object 0cd299e45bb4709ea1cb36f7aa67ec00488a0b7e
Removing note for object c34b5de2070bd5f59dc615ed22a045fc24209d68
Removing note for object 679b38877386a772d1fb54e55b74973ff5fadf26
Removing note for object c426f6599dc64f513890687cee6659e9f2326e03
Removing note for object 32f64a7a74308a88f26076eb863d7e1cc25db7ed
Removing note for object c515cdc10146949a121ec7d5a333c757e4ef2504
Removing note for object cfc4917130f2cc2681956507da1e1fe4b2f15527
Removing note for object 887a830a1766dc64123467ef38c1a1f809c2cefe
Removing note for object 34481f2ed4378c94bcdccfc1456e59d179e244a9
Removing note for object 2eb6a7cd807a4293fd35648c75044216ccc6ae80
Removing note for object 172059174199b4e733e3223b94adfe1ba0214952
Removing note for object 2ea9f2ed864e157d1c0e6048777c57a0ac2e54d3
Removing note for object 95a216b87992cc1c0f9fbf9fcb8a79e1586d195c
Removing note for object c2a2268ec9f704fcc2a006504fc5ec7bfe76e94e
Removing note for object 343c6341ea84792314deda891657ed8739e3fada
Removing note for object 849eb8f361d17186b71830fbe22b79586058eb74
Removing note for object 7835bffb91c2a59efb1bdabc64404985c235d09f
Removing note for object 0ef965de1ea8542ee31d00d15786e2b94410221e
Removing note for object b68e409dd76226bd14f7dcaddeb437f827a318e2
Removing note for object 988c9859a3b58b94be180a5a563aca9df5b79a37
Removing note for object 7b305811b52ca742180d3fd835f2bbae83c04eec
Removing note for object f131f5a4bc07b251f6e9267c9100610cb3ca5559
Removing note for object 83e55281b21b8461ac450f9ce29cf0939abf5cfc
Removing note for object 601bc579d928b5220982f41ec9a3d732363bdaba
Removing note for object f4744725293c0fb2a7f9c9445fd24adc8f88d5b1
Removing note for object 8a835fbbd02d3ab4f84e6597549382bc195ff397
Removing note for object f391efbe8795fa919a06c97e7c233c331ffb0316
Removing note for object 0df0388f3e81567589dd986e41d615356de703d7
Removing note for object 8ac95266183ec39c83f380a140e3abac5f33725a
Removing note for object c4720417ad9d861573974413a6215765dfab901c
Removing note for object 8d4fc83d3fdb22818f90e6ea7d88979474f49f02
Removing note for object edbea587c93ce562ba9ab42ff6d308daf84894e8
Removing note for object 450aa4b2a6e7238f5ef8a18930e9574ecc570ad0
Removing note for object 23567c85eb402f9b30792bfc0bbb82d295b498bb
Removing note for object 5260386902a703f76811d1bf0a794cf9fb0ac999
Removing note for object 8021bdbd7fd57e8dcb8644b85909739ccfe98e36
Removing note for object 2d537957e4d7a68077c05cb626afadccd1328158
Removing note for object cee1681393ad01c2c9c6f3f701570ec46237453b
Removing note for object cbb9ea240225a17164edb02ffdbaf7e23b8a0786
Removing note for object 392e37fca867d463085bd2345a112cdb157a8369
Removing note for object d8793dcb744793954696daf2188c04060523a1c0
ok 4 - deleting most notes with git-notes
expecting success:
git log HEAD~250 | grep "^ " > output &&
i=50 &&
while test $i -gt 0
do
echo " commit #$i" &&
echo " note #$i" &&
i=$(($i - 1));
done > expect &&
test_cmp expect output
ok 5 - most notes deleted correctly with git-notes
expecting success:
# Expect entire notes tree to have a fanout == 0
git ls-tree -r --name-only refs/notes/commits |
while read path
do
case "$path" in
????????????????????????????????????????)
: true
;;
*)
echo "Invalid path \"$path\"" &&
return 1
;;
esac
done
ok 6 - deleting most notes triggers fanout consolidation
# passed all 6 test(s)
1..6
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" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test_have_prereq EXPENSIVE || test_have_prereq !MINGW,!CYGWIN
)
checking prerequisite: EXPENSIVE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test -n "$GIT_TEST_LONG"
)
prerequisite EXPENSIVE not satisfied
prerequisite EXPENSIVE_ON_WINDOWS ok
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 1 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' 'foo'
ok 3 - wildmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 4 - wildmatch (via ls-files): match 'foo' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' 'foo'
ok 5 - iwildmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 6 - iwildmatch (via ls-files): match 'foo' 'foo'
expecting success:
test-tool wildmatch pathmatch 'foo' 'foo'
ok 7 - pathmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 8 - pathmatch (via ls-files): match 'foo' 'foo'
expecting success:
test-tool wildmatch ipathmatch 'foo' 'foo'
ok 9 - ipathmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 10 - ipathmatch (via ls-files): match 'foo' 'foo'
expecting success:
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 expect.err
Removing foo
ok 11 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' 'bar'
ok 13 - wildmatch: no match 'foo' 'bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 14 - wildmatch (via ls-files): no match 'bar' 'foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo' 'bar'
ok 15 - iwildmatch: no match 'foo' 'bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 16 - iwildmatch (via ls-files): no match 'bar' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' 'bar'
ok 17 - pathmatch: no match 'foo' 'bar'
expecting success:
>expect &&
git ls-files -z -- 'bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 18 - pathmatch (via ls-files): no match 'bar' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' 'bar'
ok 19 - ipathmatch: no match 'foo' 'bar'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 20 - ipathmatch (via ls-files): no match 'bar' 'foo'
expecting success:
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 expect.err
Removing foo
ok 21 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '' ''
ok 23 - wildmatch: match '' ''
checking known breakage: false
not ok 24 - wildmatch (via ls-files): match skip '' '' # TODO known breakage
expecting success:
test-tool wildmatch iwildmatch '' ''
ok 25 - iwildmatch: match '' ''
checking known breakage: false
not ok 26 - iwildmatch (via ls-files): match skip '' '' # TODO known breakage
expecting success:
test-tool wildmatch pathmatch '' ''
ok 27 - pathmatch: match '' ''
checking known breakage: false
not ok 28 - pathmatch (via ls-files): match skip '' '' # TODO known breakage
expecting success:
test-tool wildmatch ipathmatch '' ''
ok 29 - ipathmatch: match '' ''
checking known breakage: false
not ok 30 - ipathmatch (via ls-files): match skip '' '' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 31 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' '???'
ok 33 - wildmatch: match 'foo' '???'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 34 - wildmatch (via ls-files): match '???' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' '???'
ok 35 - iwildmatch: match 'foo' '???'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 36 - iwildmatch (via ls-files): match '???' 'foo'
expecting success:
test-tool wildmatch pathmatch 'foo' '???'
ok 37 - pathmatch: match 'foo' '???'
expecting success:
printf '%s' 'foo' >expect &&
git ls-files -z -- '???' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 38 - pathmatch (via ls-files): match '???' 'foo'
expecting success:
test-tool wildmatch ipathmatch 'foo' '???'
ok 39 - ipathmatch: match 'foo' '???'
expecting success:
printf '%s' 'foo' >expect &&
git --icase-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 40 - ipathmatch (via ls-files): match '???' 'foo'
expecting success:
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 expect.err
Removing foo
ok 41 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' '??'
ok 43 - wildmatch: no match 'foo' '??'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 44 - wildmatch (via ls-files): no match '??' 'foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo' '??'
ok 45 - iwildmatch: no match 'foo' '??'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 46 - iwildmatch (via ls-files): no match '??' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' '??'
ok 47 - pathmatch: no match 'foo' '??'
expecting success:
>expect &&
git ls-files -z -- '??' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 48 - pathmatch (via ls-files): no match '??' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' '??'
ok 49 - ipathmatch: no match 'foo' '??'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 50 - ipathmatch (via ls-files): no match '??' 'foo'
expecting success:
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 expect.err
Removing foo
ok 51 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' '*'
ok 53 - wildmatch: match 'foo' '*'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 54 - wildmatch (via ls-files): match '*' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' '*'
ok 55 - iwildmatch: match 'foo' '*'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 56 - iwildmatch (via ls-files): match '*' 'foo'
expecting success:
test-tool wildmatch pathmatch 'foo' '*'
ok 57 - pathmatch: match 'foo' '*'
expecting success:
printf '%s' 'foo' >expect &&
git ls-files -z -- '*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 58 - pathmatch (via ls-files): match '*' 'foo'
expecting success:
test-tool wildmatch ipathmatch 'foo' '*'
ok 59 - ipathmatch: match 'foo' '*'
expecting success:
printf '%s' 'foo' >expect &&
git --icase-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 60 - ipathmatch (via ls-files): match '*' 'foo'
expecting success:
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 expect.err
Removing foo
ok 61 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' 'f*'
ok 63 - wildmatch: match 'foo' 'f*'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 64 - wildmatch (via ls-files): match 'f*' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' 'f*'
ok 65 - iwildmatch: match 'foo' 'f*'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 66 - iwildmatch (via ls-files): match 'f*' 'foo'
expecting success:
test-tool wildmatch pathmatch 'foo' 'f*'
ok 67 - pathmatch: match 'foo' 'f*'
expecting success:
printf '%s' 'foo' >expect &&
git ls-files -z -- 'f*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 68 - pathmatch (via ls-files): match 'f*' 'foo'
expecting success:
test-tool wildmatch ipathmatch 'foo' 'f*'
ok 69 - ipathmatch: match 'foo' 'f*'
expecting success:
printf '%s' 'foo' >expect &&
git --icase-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 70 - ipathmatch (via ls-files): match 'f*' 'foo'
expecting success:
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 expect.err
Removing foo
ok 71 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' '*f'
ok 73 - wildmatch: no match 'foo' '*f'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 74 - wildmatch (via ls-files): no match '*f' 'foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo' '*f'
ok 75 - iwildmatch: no match 'foo' '*f'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 76 - iwildmatch (via ls-files): no match '*f' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' '*f'
ok 77 - pathmatch: no match 'foo' '*f'
expecting success:
>expect &&
git ls-files -z -- '*f' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 78 - pathmatch (via ls-files): no match '*f' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' '*f'
ok 79 - ipathmatch: no match 'foo' '*f'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 80 - ipathmatch (via ls-files): no match '*f' 'foo'
expecting success:
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 expect.err
Removing foo
ok 81 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' '*foo*'
ok 83 - wildmatch: match 'foo' '*foo*'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 84 - wildmatch (via ls-files): match '*foo*' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' '*foo*'
ok 85 - iwildmatch: match 'foo' '*foo*'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 86 - iwildmatch (via ls-files): match '*foo*' 'foo'
expecting success:
test-tool wildmatch pathmatch 'foo' '*foo*'
ok 87 - pathmatch: match 'foo' '*foo*'
expecting success:
printf '%s' 'foo' >expect &&
git ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 88 - pathmatch (via ls-files): match '*foo*' 'foo'
expecting success:
test-tool wildmatch ipathmatch 'foo' '*foo*'
ok 89 - ipathmatch: match 'foo' '*foo*'
expecting success:
printf '%s' 'foo' >expect &&
git --icase-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 90 - ipathmatch (via ls-files): match '*foo*' 'foo'
expecting success:
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 expect.err
Removing foo
ok 91 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foobar' '*ob*a*r*'
ok 93 - wildmatch: match 'foobar' '*ob*a*r*'
expecting success:
printf '%s' 'foobar' >expect &&
git --glob-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 94 - wildmatch (via ls-files): match '*ob*a*r*' 'foobar'
expecting success:
test-tool wildmatch iwildmatch 'foobar' '*ob*a*r*'
ok 95 - iwildmatch: match 'foobar' '*ob*a*r*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 96 - iwildmatch (via ls-files): match '*ob*a*r*' 'foobar'
expecting success:
test-tool wildmatch pathmatch 'foobar' '*ob*a*r*'
ok 97 - pathmatch: match 'foobar' '*ob*a*r*'
expecting success:
printf '%s' 'foobar' >expect &&
git ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 98 - pathmatch (via ls-files): match '*ob*a*r*' 'foobar'
expecting success:
test-tool wildmatch ipathmatch 'foobar' '*ob*a*r*'
ok 99 - ipathmatch: match 'foobar' '*ob*a*r*'
expecting success:
printf '%s' 'foobar' >expect &&
git --icase-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 100 - ipathmatch (via ls-files): match '*ob*a*r*' 'foobar'
expecting success:
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 expect.err
Removing foobar
ok 101 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'aaaaaaabababab' '*ab'
ok 103 - wildmatch: match 'aaaaaaabababab' '*ab'
expecting success:
printf '%s' 'aaaaaaabababab' >expect &&
git --glob-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 104 - wildmatch (via ls-files): match '*ab' 'aaaaaaabababab'
expecting success:
test-tool wildmatch iwildmatch 'aaaaaaabababab' '*ab'
ok 105 - iwildmatch: match 'aaaaaaabababab' '*ab'
expecting success:
printf '%s' 'aaaaaaabababab' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 106 - iwildmatch (via ls-files): match '*ab' 'aaaaaaabababab'
expecting success:
test-tool wildmatch pathmatch 'aaaaaaabababab' '*ab'
ok 107 - pathmatch: match 'aaaaaaabababab' '*ab'
expecting success:
printf '%s' 'aaaaaaabababab' >expect &&
git ls-files -z -- '*ab' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 108 - pathmatch (via ls-files): match '*ab' 'aaaaaaabababab'
expecting success:
test-tool wildmatch ipathmatch 'aaaaaaabababab' '*ab'
ok 109 - ipathmatch: match 'aaaaaaabababab' '*ab'
expecting success:
printf '%s' 'aaaaaaabababab' >expect &&
git --icase-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 110 - ipathmatch (via ls-files): match '*ab' 'aaaaaaabababab'
expecting success:
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
Removing expect.err
ok 111 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo*' 'foo\*'
ok 113 - wildmatch: match 'foo*' 'foo\*'
expecting success:
printf '%s' 'foo*' >expect &&
git --glob-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 114 - wildmatch (via ls-files): match 'foo\*' 'foo*'
expecting success:
test-tool wildmatch iwildmatch 'foo*' 'foo\*'
ok 115 - iwildmatch: match 'foo*' 'foo\*'
expecting success:
printf '%s' 'foo*' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 116 - iwildmatch (via ls-files): match 'foo\*' 'foo*'
expecting success:
test-tool wildmatch pathmatch 'foo*' 'foo\*'
ok 117 - pathmatch: match 'foo*' 'foo\*'
expecting success:
printf '%s' 'foo*' >expect &&
git ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 118 - pathmatch (via ls-files): match 'foo\*' 'foo*'
expecting success:
test-tool wildmatch ipathmatch 'foo*' 'foo\*'
ok 119 - ipathmatch: match 'foo*' 'foo\*'
expecting success:
printf '%s' 'foo*' >expect &&
git --icase-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 120 - ipathmatch (via ls-files): match 'foo\*' 'foo*'
expecting success:
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 expect.err
Removing foo*
ok 121 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foobar' 'foo\*bar'
ok 123 - wildmatch: no match 'foobar' 'foo\*bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 124 - wildmatch (via ls-files): no match 'foo\*bar' 'foobar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foobar' 'foo\*bar'
ok 125 - iwildmatch: no match 'foobar' 'foo\*bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 126 - iwildmatch (via ls-files): no match 'foo\*bar' 'foobar'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foobar' 'foo\*bar'
ok 127 - pathmatch: no match 'foobar' 'foo\*bar'
expecting success:
>expect &&
git ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 128 - pathmatch (via ls-files): no match 'foo\*bar' 'foobar'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foobar' 'foo\*bar'
ok 129 - ipathmatch: no match 'foobar' 'foo\*bar'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 130 - ipathmatch (via ls-files): no match 'foo\*bar' 'foobar'
expecting success:
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 expect.err
Removing foobar
ok 131 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'f\oo' 'f\\oo'
ok 133 - wildmatch: match 'f\oo' 'f\\oo'
expecting success:
printf '%s' 'f\oo' >expect &&
git --glob-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 134 - wildmatch (via ls-files): match 'f\\oo' 'f\oo'
expecting success:
test-tool wildmatch iwildmatch 'f\oo' 'f\\oo'
ok 135 - iwildmatch: match 'f\oo' 'f\\oo'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 136 - iwildmatch (via ls-files): match 'f\\oo' 'f\oo'
expecting success:
test-tool wildmatch pathmatch 'f\oo' 'f\\oo'
ok 137 - pathmatch: match 'f\oo' 'f\\oo'
expecting success:
printf '%s' 'f\oo' >expect &&
git ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 138 - pathmatch (via ls-files): match 'f\\oo' 'f\oo'
expecting success:
test-tool wildmatch ipathmatch 'f\oo' 'f\\oo'
ok 139 - ipathmatch: match 'f\oo' 'f\\oo'
expecting success:
printf '%s' 'f\oo' >expect &&
git --icase-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 140 - ipathmatch (via ls-files): match 'f\\oo' 'f\oo'
expecting success:
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 expect.err
Removing "f\\oo"
ok 141 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'ball' '*[al]?'
ok 143 - wildmatch: match 'ball' '*[al]?'
expecting success:
printf '%s' 'ball' >expect &&
git --glob-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 144 - wildmatch (via ls-files): match '*[al]?' 'ball'
expecting success:
test-tool wildmatch iwildmatch 'ball' '*[al]?'
ok 145 - iwildmatch: match 'ball' '*[al]?'
expecting success:
printf '%s' 'ball' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 146 - iwildmatch (via ls-files): match '*[al]?' 'ball'
expecting success:
test-tool wildmatch pathmatch 'ball' '*[al]?'
ok 147 - pathmatch: match 'ball' '*[al]?'
expecting success:
printf '%s' 'ball' >expect &&
git ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 148 - pathmatch (via ls-files): match '*[al]?' 'ball'
expecting success:
test-tool wildmatch ipathmatch 'ball' '*[al]?'
ok 149 - ipathmatch: match 'ball' '*[al]?'
expecting success:
printf '%s' 'ball' >expect &&
git --icase-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 150 - ipathmatch (via ls-files): match '*[al]?' 'ball'
expecting success:
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
Removing expect.err
ok 151 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ten' '[ten]'
ok 153 - wildmatch: no match 'ten' '[ten]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 154 - wildmatch (via ls-files): no match '[ten]' 'ten'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ten' '[ten]'
ok 155 - iwildmatch: no match 'ten' '[ten]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 156 - iwildmatch (via ls-files): no match '[ten]' 'ten'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ten' '[ten]'
ok 157 - pathmatch: no match 'ten' '[ten]'
expecting success:
>expect &&
git ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 158 - pathmatch (via ls-files): no match '[ten]' 'ten'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ten' '[ten]'
ok 159 - ipathmatch: no match 'ten' '[ten]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 160 - ipathmatch (via ls-files): no match '[ten]' 'ten'
expecting success:
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 expect.err
Removing ten
ok 161 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ten' '**[!te]'
ok 163 - wildmatch: no match 'ten' '**[!te]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 164 - wildmatch (via ls-files): no match '**[!te]' 'ten'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ten' '**[!te]'
ok 165 - iwildmatch: no match 'ten' '**[!te]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 166 - iwildmatch (via ls-files): no match '**[!te]' 'ten'
expecting success:
test-tool wildmatch pathmatch 'ten' '**[!te]'
ok 167 - pathmatch: match 'ten' '**[!te]'
expecting success:
printf '%s' 'ten' >expect &&
git ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 168 - pathmatch (via ls-files): match '**[!te]' 'ten'
expecting success:
test-tool wildmatch ipathmatch 'ten' '**[!te]'
ok 169 - ipathmatch: match 'ten' '**[!te]'
expecting success:
printf '%s' 'ten' >expect &&
git --icase-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 170 - ipathmatch (via ls-files): match '**[!te]' 'ten'
expecting success:
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 expect.err
Removing ten
ok 171 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ten' '**[!ten]'
ok 173 - wildmatch: no match 'ten' '**[!ten]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 174 - wildmatch (via ls-files): no match '**[!ten]' 'ten'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ten' '**[!ten]'
ok 175 - iwildmatch: no match 'ten' '**[!ten]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 176 - iwildmatch (via ls-files): no match '**[!ten]' 'ten'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ten' '**[!ten]'
ok 177 - pathmatch: no match 'ten' '**[!ten]'
expecting success:
>expect &&
git ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 178 - pathmatch (via ls-files): no match '**[!ten]' 'ten'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ten' '**[!ten]'
ok 179 - ipathmatch: no match 'ten' '**[!ten]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 180 - ipathmatch (via ls-files): no match '**[!ten]' 'ten'
expecting success:
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 expect.err
Removing ten
ok 181 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'ten' 't[a-g]n'
ok 183 - wildmatch: match 'ten' 't[a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 184 - wildmatch (via ls-files): match 't[a-g]n' 'ten'
expecting success:
test-tool wildmatch iwildmatch 'ten' 't[a-g]n'
ok 185 - iwildmatch: match 'ten' 't[a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 186 - iwildmatch (via ls-files): match 't[a-g]n' 'ten'
expecting success:
test-tool wildmatch pathmatch 'ten' 't[a-g]n'
ok 187 - pathmatch: match 'ten' 't[a-g]n'
expecting success:
printf '%s' 'ten' >expect &&
git ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 188 - pathmatch (via ls-files): match 't[a-g]n' 'ten'
expecting success:
test-tool wildmatch ipathmatch 'ten' 't[a-g]n'
ok 189 - ipathmatch: match 'ten' 't[a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 190 - ipathmatch (via ls-files): match 't[a-g]n' 'ten'
expecting success:
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 expect.err
Removing ten
ok 191 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ten' 't[!a-g]n'
ok 193 - wildmatch: no match 'ten' 't[!a-g]n'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 194 - wildmatch (via ls-files): no match 't[!a-g]n' 'ten'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ten' 't[!a-g]n'
ok 195 - iwildmatch: no match 'ten' 't[!a-g]n'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 196 - iwildmatch (via ls-files): no match 't[!a-g]n' 'ten'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ten' 't[!a-g]n'
ok 197 - pathmatch: no match 'ten' 't[!a-g]n'
expecting success:
>expect &&
git ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 198 - pathmatch (via ls-files): no match 't[!a-g]n' 'ten'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ten' 't[!a-g]n'
ok 199 - ipathmatch: no match 'ten' 't[!a-g]n'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 200 - ipathmatch (via ls-files): no match 't[!a-g]n' 'ten'
expecting success:
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 expect.err
Removing ten
ok 201 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'ton' 't[!a-g]n'
ok 203 - wildmatch: match 'ton' 't[!a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 204 - wildmatch (via ls-files): match 't[!a-g]n' 'ton'
expecting success:
test-tool wildmatch iwildmatch 'ton' 't[!a-g]n'
ok 205 - iwildmatch: match 'ton' 't[!a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 206 - iwildmatch (via ls-files): match 't[!a-g]n' 'ton'
expecting success:
test-tool wildmatch pathmatch 'ton' 't[!a-g]n'
ok 207 - pathmatch: match 'ton' 't[!a-g]n'
expecting success:
printf '%s' 'ton' >expect &&
git ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 208 - pathmatch (via ls-files): match 't[!a-g]n' 'ton'
expecting success:
test-tool wildmatch ipathmatch 'ton' 't[!a-g]n'
ok 209 - ipathmatch: match 'ton' 't[!a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 210 - ipathmatch (via ls-files): match 't[!a-g]n' 'ton'
expecting success:
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 expect.err
Removing ton
ok 211 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'ton' 't[^a-g]n'
ok 213 - wildmatch: match 'ton' 't[^a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 214 - wildmatch (via ls-files): match 't[^a-g]n' 'ton'
expecting success:
test-tool wildmatch iwildmatch 'ton' 't[^a-g]n'
ok 215 - iwildmatch: match 'ton' 't[^a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 216 - iwildmatch (via ls-files): match 't[^a-g]n' 'ton'
expecting success:
test-tool wildmatch pathmatch 'ton' 't[^a-g]n'
ok 217 - pathmatch: match 'ton' 't[^a-g]n'
expecting success:
printf '%s' 'ton' >expect &&
git ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 218 - pathmatch (via ls-files): match 't[^a-g]n' 'ton'
expecting success:
test-tool wildmatch ipathmatch 'ton' 't[^a-g]n'
ok 219 - ipathmatch: match 'ton' 't[^a-g]n'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 220 - ipathmatch (via ls-files): match 't[^a-g]n' 'ton'
expecting success:
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 expect.err
Removing ton
ok 221 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a]b' 'a[]]b'
ok 223 - wildmatch: match 'a]b' 'a[]]b'
expecting success:
printf '%s' 'a]b' >expect &&
git --glob-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 224 - wildmatch (via ls-files): match 'a[]]b' 'a]b'
expecting success:
test-tool wildmatch iwildmatch 'a]b' 'a[]]b'
ok 225 - iwildmatch: match 'a]b' 'a[]]b'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 226 - iwildmatch (via ls-files): match 'a[]]b' 'a]b'
expecting success:
test-tool wildmatch pathmatch 'a]b' 'a[]]b'
ok 227 - pathmatch: match 'a]b' 'a[]]b'
expecting success:
printf '%s' 'a]b' >expect &&
git ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 228 - pathmatch (via ls-files): match 'a[]]b' 'a]b'
expecting success:
test-tool wildmatch ipathmatch 'a]b' 'a[]]b'
ok 229 - ipathmatch: match 'a]b' 'a[]]b'
expecting success:
printf '%s' 'a]b' >expect &&
git --icase-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 230 - ipathmatch (via ls-files): match 'a[]]b' 'a]b'
expecting success:
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
Removing expect.err
ok 231 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a-b' 'a[]-]b'
ok 233 - wildmatch: match 'a-b' 'a[]-]b'
expecting success:
printf '%s' 'a-b' >expect &&
git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 234 - wildmatch (via ls-files): match 'a[]-]b' 'a-b'
expecting success:
test-tool wildmatch iwildmatch 'a-b' 'a[]-]b'
ok 235 - iwildmatch: match 'a-b' 'a[]-]b'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 236 - iwildmatch (via ls-files): match 'a[]-]b' 'a-b'
expecting success:
test-tool wildmatch pathmatch 'a-b' 'a[]-]b'
ok 237 - pathmatch: match 'a-b' 'a[]-]b'
expecting success:
printf '%s' 'a-b' >expect &&
git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 238 - pathmatch (via ls-files): match 'a[]-]b' 'a-b'
expecting success:
test-tool wildmatch ipathmatch 'a-b' 'a[]-]b'
ok 239 - ipathmatch: match 'a-b' 'a[]-]b'
expecting success:
printf '%s' 'a-b' >expect &&
git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 240 - ipathmatch (via ls-files): match 'a[]-]b' 'a-b'
expecting success:
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
Removing expect.err
ok 241 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a]b' 'a[]-]b'
ok 243 - wildmatch: match 'a]b' 'a[]-]b'
expecting success:
printf '%s' 'a]b' >expect &&
git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 244 - wildmatch (via ls-files): match 'a[]-]b' 'a]b'
expecting success:
test-tool wildmatch iwildmatch 'a]b' 'a[]-]b'
ok 245 - iwildmatch: match 'a]b' 'a[]-]b'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 246 - iwildmatch (via ls-files): match 'a[]-]b' 'a]b'
expecting success:
test-tool wildmatch pathmatch 'a]b' 'a[]-]b'
ok 247 - pathmatch: match 'a]b' 'a[]-]b'
expecting success:
printf '%s' 'a]b' >expect &&
git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 248 - pathmatch (via ls-files): match 'a[]-]b' 'a]b'
expecting success:
test-tool wildmatch ipathmatch 'a]b' 'a[]-]b'
ok 249 - ipathmatch: match 'a]b' 'a[]-]b'
expecting success:
printf '%s' 'a]b' >expect &&
git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 250 - ipathmatch (via ls-files): match 'a[]-]b' 'a]b'
expecting success:
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
Removing expect.err
ok 251 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'aab' 'a[]-]b'
ok 253 - wildmatch: no match 'aab' 'a[]-]b'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 254 - wildmatch (via ls-files): no match 'a[]-]b' 'aab'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'aab' 'a[]-]b'
ok 255 - iwildmatch: no match 'aab' 'a[]-]b'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 256 - iwildmatch (via ls-files): no match 'a[]-]b' 'aab'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'aab' 'a[]-]b'
ok 257 - pathmatch: no match 'aab' 'a[]-]b'
expecting success:
>expect &&
git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 258 - pathmatch (via ls-files): no match 'a[]-]b' 'aab'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'aab' 'a[]-]b'
ok 259 - ipathmatch: no match 'aab' 'a[]-]b'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 260 - ipathmatch (via ls-files): no match 'a[]-]b' 'aab'
expecting success:
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
Removing expect.err
ok 261 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'aab' 'a[]a-]b'
ok 263 - wildmatch: match 'aab' 'a[]a-]b'
expecting success:
printf '%s' 'aab' >expect &&
git --glob-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 264 - wildmatch (via ls-files): match 'a[]a-]b' 'aab'
expecting success:
test-tool wildmatch iwildmatch 'aab' 'a[]a-]b'
ok 265 - iwildmatch: match 'aab' 'a[]a-]b'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 266 - iwildmatch (via ls-files): match 'a[]a-]b' 'aab'
expecting success:
test-tool wildmatch pathmatch 'aab' 'a[]a-]b'
ok 267 - pathmatch: match 'aab' 'a[]a-]b'
expecting success:
printf '%s' 'aab' >expect &&
git ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 268 - pathmatch (via ls-files): match 'a[]a-]b' 'aab'
expecting success:
test-tool wildmatch ipathmatch 'aab' 'a[]a-]b'
ok 269 - ipathmatch: match 'aab' 'a[]a-]b'
expecting success:
printf '%s' 'aab' >expect &&
git --icase-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 270 - ipathmatch (via ls-files): match 'a[]a-]b' 'aab'
expecting success:
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
Removing expect.err
ok 271 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ']' ']'
ok 273 - wildmatch: match ']' ']'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 274 - wildmatch (via ls-files): match ']' ']'
expecting success:
test-tool wildmatch iwildmatch ']' ']'
ok 275 - iwildmatch: match ']' ']'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 276 - iwildmatch (via ls-files): match ']' ']'
expecting success:
test-tool wildmatch pathmatch ']' ']'
ok 277 - pathmatch: match ']' ']'
expecting success:
printf '%s' ']' >expect &&
git ls-files -z -- ']' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 278 - pathmatch (via ls-files): match ']' ']'
expecting success:
test-tool wildmatch ipathmatch ']' ']'
ok 279 - ipathmatch: match ']' ']'
expecting success:
printf '%s' ']' >expect &&
git --icase-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 280 - ipathmatch (via ls-files): match ']' ']'
expecting success:
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
Removing expect.err
ok 281 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/baz/bar' 'foo*bar'
ok 283 - wildmatch: no match 'foo/baz/bar' 'foo*bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 284 - wildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo*bar'
ok 285 - iwildmatch: no match 'foo/baz/bar' 'foo*bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 286 - iwildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/baz/bar' 'foo*bar'
ok 287 - pathmatch: match 'foo/baz/bar' 'foo*bar'
expecting success:
printf '%s' 'foo/baz/bar' >expect &&
git ls-files -z -- 'foo*bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 288 - pathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo*bar'
ok 289 - ipathmatch: match 'foo/baz/bar' 'foo*bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 290 - ipathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'
expecting success:
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 expect.err
Removing foo/
ok 291 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/baz/bar' 'foo**bar'
ok 293 - wildmatch: no match 'foo/baz/bar' 'foo**bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 294 - wildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo**bar'
ok 295 - iwildmatch: no match 'foo/baz/bar' 'foo**bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 296 - iwildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/baz/bar' 'foo**bar'
ok 297 - pathmatch: match 'foo/baz/bar' 'foo**bar'
expecting success:
printf '%s' 'foo/baz/bar' >expect &&
git ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 298 - pathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo**bar'
ok 299 - ipathmatch: match 'foo/baz/bar' 'foo**bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 300 - ipathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'
expecting success:
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 expect.err
Removing foo/
ok 301 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foobazbar' 'foo**bar'
ok 303 - wildmatch: no match 'foobazbar' 'foo**bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 304 - wildmatch (via ls-files): no match 'foo**bar' 'foobazbar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foobazbar' 'foo**bar'
ok 305 - iwildmatch: no match 'foobazbar' 'foo**bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 306 - iwildmatch (via ls-files): no match 'foo**bar' 'foobazbar'
expecting success:
test-tool wildmatch pathmatch 'foobazbar' 'foo**bar'
ok 307 - pathmatch: match 'foobazbar' 'foo**bar'
expecting success:
printf '%s' 'foobazbar' >expect &&
git ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 308 - pathmatch (via ls-files): match 'foo**bar' 'foobazbar'
expecting success:
test-tool wildmatch ipathmatch 'foobazbar' 'foo**bar'
ok 309 - ipathmatch: match 'foobazbar' 'foo**bar'
expecting success:
printf '%s' 'foobazbar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 310 - ipathmatch (via ls-files): match 'foo**bar' 'foobazbar'
expecting success:
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 expect.err
Removing foobazbar
ok 311 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/baz/bar' 'foo/**/bar'
ok 313 - wildmatch: match 'foo/baz/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 314 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo/**/bar'
ok 315 - iwildmatch: match 'foo/baz/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 316 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/baz/bar' 'foo/**/bar'
ok 317 - pathmatch: match 'foo/baz/bar' 'foo/**/bar'
expecting success:
printf '%s' 'foo/baz/bar' >expect &&
git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 318 - pathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo/**/bar'
ok 319 - ipathmatch: match 'foo/baz/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 320 - ipathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'
expecting success:
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 expect.err
Removing foo/
ok 321 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/baz/bar' 'foo/**/**/bar'
ok 323 - wildmatch: match 'foo/baz/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 324 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo/**/**/bar'
ok 325 - iwildmatch: match 'foo/baz/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 326 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo/baz/bar' 'foo/**/**/bar'
ok 327 - pathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'
expecting success:
>expect &&
git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 328 - pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo/**/**/bar'
ok 329 - ipathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 330 - ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'
expecting success:
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 expect.err
Removing foo/
ok 331 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/b/a/z/bar' 'foo/**/bar'
ok 333 - wildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 334 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/b/a/z/bar' 'foo/**/bar'
ok 335 - iwildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 336 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/b/a/z/bar' 'foo/**/bar'
ok 337 - pathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 338 - pathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/b/a/z/bar' 'foo/**/bar'
ok 339 - ipathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 340 - ipathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'
expecting success:
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 expect.err
Removing foo/
ok 341 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
ok 343 - wildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 344 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
ok 345 - iwildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 346 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
ok 347 - pathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 348 - pathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/b/a/z/bar' 'foo/**/**/bar'
ok 349 - ipathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 350 - ipathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'
expecting success:
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 expect.err
Removing foo/
ok 351 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bar' 'foo/**/bar'
ok 353 - wildmatch: match 'foo/bar' 'foo/**/bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 354 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/bar' 'foo/**/bar'
ok 355 - iwildmatch: match 'foo/bar' 'foo/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 356 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo/bar' 'foo/**/bar'
ok 357 - pathmatch: no match 'foo/bar' 'foo/**/bar'
expecting success:
>expect &&
git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 358 - pathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo/bar' 'foo/**/bar'
ok 359 - ipathmatch: no match 'foo/bar' 'foo/**/bar'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 360 - ipathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 361 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bar' 'foo/**/**/bar'
ok 363 - wildmatch: match 'foo/bar' 'foo/**/**/bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --glob-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 364 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/bar' 'foo/**/**/bar'
ok 365 - iwildmatch: match 'foo/bar' 'foo/**/**/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 366 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo/bar' 'foo/**/**/bar'
ok 367 - pathmatch: no match 'foo/bar' 'foo/**/**/bar'
expecting success:
>expect &&
git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 368 - pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo/bar' 'foo/**/**/bar'
ok 369 - ipathmatch: no match 'foo/bar' 'foo/**/**/bar'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 370 - ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 371 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo?bar'
ok 373 - wildmatch: no match 'foo/bar' 'foo?bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 374 - wildmatch (via ls-files): no match 'foo?bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo?bar'
ok 375 - iwildmatch: no match 'foo/bar' 'foo?bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 376 - iwildmatch (via ls-files): no match 'foo?bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo?bar'
ok 377 - pathmatch: match 'foo/bar' 'foo?bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 378 - pathmatch (via ls-files): match 'foo?bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo?bar'
ok 379 - ipathmatch: match 'foo/bar' 'foo?bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 380 - ipathmatch (via ls-files): match 'foo?bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 381 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo[/]bar'
ok 383 - wildmatch: no match 'foo/bar' 'foo[/]bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 384 - wildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo[/]bar'
ok 385 - iwildmatch: no match 'foo/bar' 'foo[/]bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 386 - iwildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo[/]bar'
ok 387 - pathmatch: match 'foo/bar' 'foo[/]bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 388 - pathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo[/]bar'
ok 389 - ipathmatch: match 'foo/bar' 'foo[/]bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 390 - ipathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 391 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 394 - wildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'
expecting success:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 396 - iwildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo[^a-z]bar'
ok 397 - pathmatch: match 'foo/bar' 'foo[^a-z]bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 398 - pathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo[^a-z]bar'
ok 399 - ipathmatch: match 'foo/bar' 'foo[^a-z]bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 400 - ipathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 401 - cleanup after previous file test
expecting success:
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:
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:
>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 &&
>expect.err &&
test_cmp expect.err 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:
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:
>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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 408 - pathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'
expecting success:
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:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 410 - ipathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 411 - cleanup after previous file test
expecting success:
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:
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:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 414 - wildmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'
expecting success:
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:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 416 - iwildmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'
expecting success:
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:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 418 - pathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'
expecting success:
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:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 420 - ipathmatch (via ls-files): match 'f[^eiu][^eiu][^eiu][^eiu][^eiu]r' 'foo-bar'
expecting success:
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 expect.err
Removing foo-bar
ok 421 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' '**/foo'
ok 423 - wildmatch: match 'foo' '**/foo'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 424 - wildmatch (via ls-files): match '**/foo' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' '**/foo'
ok 425 - iwildmatch: match 'foo' '**/foo'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 426 - iwildmatch (via ls-files): match '**/foo' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' '**/foo'
ok 427 - pathmatch: no match 'foo' '**/foo'
expecting success:
>expect &&
git ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 428 - pathmatch (via ls-files): no match '**/foo' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' '**/foo'
ok 429 - ipathmatch: no match 'foo' '**/foo'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 430 - ipathmatch (via ls-files): no match '**/foo' 'foo'
expecting success:
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 expect.err
Removing foo
ok 431 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'XXX/foo' '**/foo'
ok 433 - wildmatch: match 'XXX/foo' '**/foo'
expecting success:
printf '%s' 'XXX/foo' >expect &&
git --glob-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 434 - wildmatch (via ls-files): match '**/foo' 'XXX/foo'
expecting success:
test-tool wildmatch iwildmatch 'XXX/foo' '**/foo'
ok 435 - iwildmatch: match 'XXX/foo' '**/foo'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 436 - iwildmatch (via ls-files): match '**/foo' 'XXX/foo'
expecting success:
test-tool wildmatch pathmatch 'XXX/foo' '**/foo'
ok 437 - pathmatch: match 'XXX/foo' '**/foo'
expecting success:
printf '%s' 'XXX/foo' >expect &&
git ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 438 - pathmatch (via ls-files): match '**/foo' 'XXX/foo'
expecting success:
test-tool wildmatch ipathmatch 'XXX/foo' '**/foo'
ok 439 - ipathmatch: match 'XXX/foo' '**/foo'
expecting success:
printf '%s' 'XXX/foo' >expect &&
git --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 440 - ipathmatch (via ls-files): match '**/foo' 'XXX/foo'
expecting success:
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
Removing expect.err
ok 441 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'bar/baz/foo' '**/foo'
ok 443 - wildmatch: match 'bar/baz/foo' '**/foo'
expecting success:
printf '%s' 'bar/baz/foo' >expect &&
git --glob-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 444 - wildmatch (via ls-files): match '**/foo' 'bar/baz/foo'
expecting success:
test-tool wildmatch iwildmatch 'bar/baz/foo' '**/foo'
ok 445 - iwildmatch: match 'bar/baz/foo' '**/foo'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 446 - iwildmatch (via ls-files): match '**/foo' 'bar/baz/foo'
expecting success:
test-tool wildmatch pathmatch 'bar/baz/foo' '**/foo'
ok 447 - pathmatch: match 'bar/baz/foo' '**/foo'
expecting success:
printf '%s' 'bar/baz/foo' >expect &&
git ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 448 - pathmatch (via ls-files): match '**/foo' 'bar/baz/foo'
expecting success:
test-tool wildmatch ipathmatch 'bar/baz/foo' '**/foo'
ok 449 - ipathmatch: match 'bar/baz/foo' '**/foo'
expecting success:
printf '%s' 'bar/baz/foo' >expect &&
git --icase-pathspecs ls-files -z -- '**/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 450 - ipathmatch (via ls-files): match '**/foo' 'bar/baz/foo'
expecting success:
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
Removing expect.err
ok 451 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'bar/baz/foo' '*/foo'
ok 453 - wildmatch: no match 'bar/baz/foo' '*/foo'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 454 - wildmatch (via ls-files): no match '*/foo' 'bar/baz/foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'bar/baz/foo' '*/foo'
ok 455 - iwildmatch: no match 'bar/baz/foo' '*/foo'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 456 - iwildmatch (via ls-files): no match '*/foo' 'bar/baz/foo'
expecting success:
test-tool wildmatch pathmatch 'bar/baz/foo' '*/foo'
ok 457 - pathmatch: match 'bar/baz/foo' '*/foo'
expecting success:
printf '%s' 'bar/baz/foo' >expect &&
git ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 458 - pathmatch (via ls-files): match '*/foo' 'bar/baz/foo'
expecting success:
test-tool wildmatch ipathmatch 'bar/baz/foo' '*/foo'
ok 459 - ipathmatch: match 'bar/baz/foo' '*/foo'
expecting success:
printf '%s' 'bar/baz/foo' >expect &&
git --icase-pathspecs ls-files -z -- '*/foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 460 - ipathmatch (via ls-files): match '*/foo' 'bar/baz/foo'
expecting success:
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
Removing expect.err
ok 461 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar/baz' '**/bar*'
ok 463 - wildmatch: no match 'foo/bar/baz' '**/bar*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 464 - wildmatch (via ls-files): no match '**/bar*' 'foo/bar/baz'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar/baz' '**/bar*'
ok 465 - iwildmatch: no match 'foo/bar/baz' '**/bar*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 466 - iwildmatch (via ls-files): no match '**/bar*' 'foo/bar/baz'
expecting success:
test-tool wildmatch pathmatch 'foo/bar/baz' '**/bar*'
ok 467 - pathmatch: match 'foo/bar/baz' '**/bar*'
expecting success:
printf '%s' 'foo/bar/baz' >expect &&
git ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 468 - pathmatch (via ls-files): match '**/bar*' 'foo/bar/baz'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar/baz' '**/bar*'
ok 469 - ipathmatch: match 'foo/bar/baz' '**/bar*'
expecting success:
printf '%s' 'foo/bar/baz' >expect &&
git --icase-pathspecs ls-files -z -- '**/bar*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 470 - ipathmatch (via ls-files): match '**/bar*' 'foo/bar/baz'
expecting success:
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 expect.err
Removing foo/
ok 471 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'deep/foo/bar/baz' '**/bar/*'
ok 473 - wildmatch: match 'deep/foo/bar/baz' '**/bar/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 474 - wildmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'
expecting success:
test-tool wildmatch iwildmatch 'deep/foo/bar/baz' '**/bar/*'
ok 475 - iwildmatch: match 'deep/foo/bar/baz' '**/bar/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 476 - iwildmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'
expecting success:
test-tool wildmatch pathmatch 'deep/foo/bar/baz' '**/bar/*'
ok 477 - pathmatch: match 'deep/foo/bar/baz' '**/bar/*'
expecting success:
printf '%s' 'deep/foo/bar/baz' >expect &&
git ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 478 - pathmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'
expecting success:
test-tool wildmatch ipathmatch 'deep/foo/bar/baz' '**/bar/*'
ok 479 - ipathmatch: match 'deep/foo/bar/baz' '**/bar/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 480 - ipathmatch (via ls-files): match '**/bar/*' 'deep/foo/bar/baz'
expecting success:
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
Removing expect.err
ok 481 - cleanup after previous file test
expecting success:
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:
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: false
not ok 484 - wildmatch (via ls-files): no match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
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: false
not ok 486 - iwildmatch (via ls-files): no match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
test-tool wildmatch pathmatch 'deep/foo/bar/baz/' '**/bar/*'
ok 487 - pathmatch: match 'deep/foo/bar/baz/' '**/bar/*'
checking known breakage: false
not ok 488 - pathmatch (via ls-files): match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
test-tool wildmatch ipathmatch 'deep/foo/bar/baz/' '**/bar/*'
ok 489 - ipathmatch: match 'deep/foo/bar/baz/' '**/bar/*'
checking known breakage: false
not ok 490 - ipathmatch (via ls-files): match skip '**/bar/*' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 491 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'deep/foo/bar/baz/' '**/bar/**'
ok 493 - wildmatch: match 'deep/foo/bar/baz/' '**/bar/**'
checking known breakage: false
not ok 494 - wildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
test-tool wildmatch iwildmatch 'deep/foo/bar/baz/' '**/bar/**'
ok 495 - iwildmatch: match 'deep/foo/bar/baz/' '**/bar/**'
checking known breakage: false
not ok 496 - iwildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
test-tool wildmatch pathmatch 'deep/foo/bar/baz/' '**/bar/**'
ok 497 - pathmatch: match 'deep/foo/bar/baz/' '**/bar/**'
checking known breakage: false
not ok 498 - pathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
test-tool wildmatch ipathmatch 'deep/foo/bar/baz/' '**/bar/**'
ok 499 - ipathmatch: match 'deep/foo/bar/baz/' '**/bar/**'
checking known breakage: false
not ok 500 - ipathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/baz/' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 501 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'deep/foo/bar' '**/bar/*'
ok 503 - wildmatch: no match 'deep/foo/bar' '**/bar/*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 504 - wildmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'deep/foo/bar' '**/bar/*'
ok 505 - iwildmatch: no match 'deep/foo/bar' '**/bar/*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 506 - iwildmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'deep/foo/bar' '**/bar/*'
ok 507 - pathmatch: no match 'deep/foo/bar' '**/bar/*'
expecting success:
>expect &&
git ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 508 - pathmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'deep/foo/bar' '**/bar/*'
ok 509 - ipathmatch: no match 'deep/foo/bar' '**/bar/*'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '**/bar/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 510 - ipathmatch (via ls-files): no match '**/bar/*' 'deep/foo/bar'
expecting success:
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
Removing expect.err
ok 511 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'deep/foo/bar/' '**/bar/**'
ok 513 - wildmatch: match 'deep/foo/bar/' '**/bar/**'
checking known breakage: false
not ok 514 - wildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage
expecting success:
test-tool wildmatch iwildmatch 'deep/foo/bar/' '**/bar/**'
ok 515 - iwildmatch: match 'deep/foo/bar/' '**/bar/**'
checking known breakage: false
not ok 516 - iwildmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage
expecting success:
test-tool wildmatch pathmatch 'deep/foo/bar/' '**/bar/**'
ok 517 - pathmatch: match 'deep/foo/bar/' '**/bar/**'
checking known breakage: false
not ok 518 - pathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage
expecting success:
test-tool wildmatch ipathmatch 'deep/foo/bar/' '**/bar/**'
ok 519 - ipathmatch: match 'deep/foo/bar/' '**/bar/**'
checking known breakage: false
not ok 520 - ipathmatch (via ls-files): match skip '**/bar/**' 'deep/foo/bar/' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 521 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar/baz' '**/bar**'
ok 523 - wildmatch: no match 'foo/bar/baz' '**/bar**'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 524 - wildmatch (via ls-files): no match '**/bar**' 'foo/bar/baz'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar/baz' '**/bar**'
ok 525 - iwildmatch: no match 'foo/bar/baz' '**/bar**'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 526 - iwildmatch (via ls-files): no match '**/bar**' 'foo/bar/baz'
expecting success:
test-tool wildmatch pathmatch 'foo/bar/baz' '**/bar**'
ok 527 - pathmatch: match 'foo/bar/baz' '**/bar**'
expecting success:
printf '%s' 'foo/bar/baz' >expect &&
git ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 528 - pathmatch (via ls-files): match '**/bar**' 'foo/bar/baz'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar/baz' '**/bar**'
ok 529 - ipathmatch: match 'foo/bar/baz' '**/bar**'
expecting success:
printf '%s' 'foo/bar/baz' >expect &&
git --icase-pathspecs ls-files -z -- '**/bar**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 530 - ipathmatch (via ls-files): match '**/bar**' 'foo/bar/baz'
expecting success:
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 expect.err
Removing foo/
ok 531 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bar/baz/x' '*/bar/**'
ok 533 - wildmatch: match 'foo/bar/baz/x' '*/bar/**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 534 - wildmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'
expecting success:
test-tool wildmatch iwildmatch 'foo/bar/baz/x' '*/bar/**'
ok 535 - iwildmatch: match 'foo/bar/baz/x' '*/bar/**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 536 - iwildmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'
expecting success:
test-tool wildmatch pathmatch 'foo/bar/baz/x' '*/bar/**'
ok 537 - pathmatch: match 'foo/bar/baz/x' '*/bar/**'
expecting success:
printf '%s' 'foo/bar/baz/x' >expect &&
git ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 538 - pathmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar/baz/x' '*/bar/**'
ok 539 - ipathmatch: match 'foo/bar/baz/x' '*/bar/**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 540 - ipathmatch (via ls-files): match '*/bar/**' 'foo/bar/baz/x'
expecting success:
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 expect.err
Removing foo/
ok 541 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 544 - wildmatch (via ls-files): no match '*/bar/**' 'deep/foo/bar/baz/x'
expecting success:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 546 - iwildmatch (via ls-files): no match '*/bar/**' 'deep/foo/bar/baz/x'
expecting success:
test-tool wildmatch pathmatch 'deep/foo/bar/baz/x' '*/bar/**'
ok 547 - pathmatch: match 'deep/foo/bar/baz/x' '*/bar/**'
expecting success:
printf '%s' 'deep/foo/bar/baz/x' >expect &&
git ls-files -z -- '*/bar/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 548 - pathmatch (via ls-files): match '*/bar/**' 'deep/foo/bar/baz/x'
expecting success:
test-tool wildmatch ipathmatch 'deep/foo/bar/baz/x' '*/bar/**'
ok 549 - ipathmatch: match 'deep/foo/bar/baz/x' '*/bar/**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 550 - ipathmatch (via ls-files): match '*/bar/**' 'deep/foo/bar/baz/x'
expecting success:
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
Removing expect.err
ok 551 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
ok 553 - wildmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 554 - wildmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'
expecting success:
test-tool wildmatch iwildmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
ok 555 - iwildmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 556 - iwildmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'
expecting success:
test-tool wildmatch pathmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
ok 557 - pathmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'
expecting success:
printf '%s' 'deep/foo/bar/baz/x' >expect &&
git ls-files -z -- '**/bar/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 558 - pathmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'
expecting success:
test-tool wildmatch ipathmatch 'deep/foo/bar/baz/x' '**/bar/*/*'
ok 559 - ipathmatch: match 'deep/foo/bar/baz/x' '**/bar/*/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 560 - ipathmatch (via ls-files): match '**/bar/*/*' 'deep/foo/bar/baz/x'
expecting success:
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
Removing expect.err
ok 561 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'acrt' 'a[c-c]st'
ok 563 - wildmatch: no match 'acrt' 'a[c-c]st'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 564 - wildmatch (via ls-files): no match 'a[c-c]st' 'acrt'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'acrt' 'a[c-c]st'
ok 565 - iwildmatch: no match 'acrt' 'a[c-c]st'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 566 - iwildmatch (via ls-files): no match 'a[c-c]st' 'acrt'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'acrt' 'a[c-c]st'
ok 567 - pathmatch: no match 'acrt' 'a[c-c]st'
expecting success:
>expect &&
git ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 568 - pathmatch (via ls-files): no match 'a[c-c]st' 'acrt'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'acrt' 'a[c-c]st'
ok 569 - ipathmatch: no match 'acrt' 'a[c-c]st'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'a[c-c]st' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 570 - ipathmatch (via ls-files): no match 'a[c-c]st' 'acrt'
expecting success:
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
Removing expect.err
ok 571 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'acrt' 'a[c-c]rt'
ok 573 - wildmatch: match 'acrt' 'a[c-c]rt'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 574 - wildmatch (via ls-files): match 'a[c-c]rt' 'acrt'
expecting success:
test-tool wildmatch iwildmatch 'acrt' 'a[c-c]rt'
ok 575 - iwildmatch: match 'acrt' 'a[c-c]rt'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 576 - iwildmatch (via ls-files): match 'a[c-c]rt' 'acrt'
expecting success:
test-tool wildmatch pathmatch 'acrt' 'a[c-c]rt'
ok 577 - pathmatch: match 'acrt' 'a[c-c]rt'
expecting success:
printf '%s' 'acrt' >expect &&
git ls-files -z -- 'a[c-c]rt' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 578 - pathmatch (via ls-files): match 'a[c-c]rt' 'acrt'
expecting success:
test-tool wildmatch ipathmatch 'acrt' 'a[c-c]rt'
ok 579 - ipathmatch: match 'acrt' 'a[c-c]rt'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 580 - ipathmatch (via ls-files): match 'a[c-c]rt' 'acrt'
expecting success:
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
Removing expect.err
ok 581 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch ']' '[!]-]'
ok 583 - wildmatch: no match ']' '[!]-]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 584 - wildmatch (via ls-files): no match '[!]-]' ']'
expecting success:
test_must_fail test-tool wildmatch iwildmatch ']' '[!]-]'
ok 585 - iwildmatch: no match ']' '[!]-]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 586 - iwildmatch (via ls-files): no match '[!]-]' ']'
expecting success:
test_must_fail test-tool wildmatch pathmatch ']' '[!]-]'
ok 587 - pathmatch: no match ']' '[!]-]'
expecting success:
>expect &&
git ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 588 - pathmatch (via ls-files): no match '[!]-]' ']'
expecting success:
test_must_fail test-tool wildmatch ipathmatch ']' '[!]-]'
ok 589 - ipathmatch: no match ']' '[!]-]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 590 - ipathmatch (via ls-files): no match '[!]-]' ']'
expecting success:
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
Removing expect.err
ok 591 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a' '[!]-]'
ok 593 - wildmatch: match 'a' '[!]-]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 594 - wildmatch (via ls-files): match '[!]-]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[!]-]'
ok 595 - iwildmatch: match 'a' '[!]-]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 596 - iwildmatch (via ls-files): match '[!]-]' 'a'
expecting success:
test-tool wildmatch pathmatch 'a' '[!]-]'
ok 597 - pathmatch: match 'a' '[!]-]'
expecting success:
printf '%s' 'a' >expect &&
git ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 598 - pathmatch (via ls-files): match '[!]-]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[!]-]'
ok 599 - ipathmatch: match 'a' '[!]-]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[!]-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 600 - ipathmatch (via ls-files): match '[!]-]' 'a'
expecting success:
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
Removing expect.err
ok 601 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '' '\'
ok 603 - wildmatch: no match '' '\'
checking known breakage: false
not ok 604 - wildmatch (via ls-files): no match skip '\' '' # TODO known breakage
expecting success:
test_must_fail test-tool wildmatch iwildmatch '' '\'
ok 605 - iwildmatch: no match '' '\'
checking known breakage: false
not ok 606 - iwildmatch (via ls-files): no match skip '\' '' # TODO known breakage
expecting success:
test_must_fail test-tool wildmatch pathmatch '' '\'
ok 607 - pathmatch: no match '' '\'
checking known breakage: false
not ok 608 - pathmatch (via ls-files): no match skip '\' '' # TODO known breakage
expecting success:
test_must_fail test-tool wildmatch ipathmatch '' '\'
ok 609 - ipathmatch: no match '' '\'
checking known breakage: false
not ok 610 - ipathmatch (via ls-files): no match skip '\' '' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 611 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '\' '\'
ok 613 - wildmatch: no match '\' '\'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs ls-files -z -- '\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 614 - wildmatch (via ls-files): match '\' '\'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '\' '\'
ok 615 - iwildmatch: no match '\' '\'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 616 - iwildmatch (via ls-files): match '\' '\'
expecting success:
test_must_fail test-tool wildmatch pathmatch '\' '\'
ok 617 - pathmatch: no match '\' '\'
expecting success:
printf '%s' '\' >expect &&
git ls-files -z -- '\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 618 - pathmatch (via ls-files): match '\' '\'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '\' '\'
ok 619 - ipathmatch: no match '\' '\'
expecting success:
printf '%s' '\' >expect &&
git --icase-pathspecs ls-files -z -- '\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 620 - ipathmatch (via ls-files): match '\' '\'
expecting success:
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
Removing expect.err
ok 621 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'XXX/\' '*/\'
ok 623 - wildmatch: no match 'XXX/\' '*/\'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*/\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 624 - wildmatch (via ls-files): no match '*/\' 'XXX/\'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'XXX/\' '*/\'
ok 625 - iwildmatch: no match 'XXX/\' '*/\'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 626 - iwildmatch (via ls-files): no match '*/\' 'XXX/\'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'XXX/\' '*/\'
ok 627 - pathmatch: no match 'XXX/\' '*/\'
expecting success:
>expect &&
git ls-files -z -- '*/\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 628 - pathmatch (via ls-files): no match '*/\' 'XXX/\'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'XXX/\' '*/\'
ok 629 - ipathmatch: no match 'XXX/\' '*/\'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '*/\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 630 - ipathmatch (via ls-files): no match '*/\' 'XXX/\'
expecting success:
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
Removing expect.err
ok 631 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'XXX/\' '*/\\'
ok 633 - wildmatch: match 'XXX/\' '*/\\'
expecting success:
printf '%s' 'XXX/\' >expect &&
git --glob-pathspecs ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 634 - wildmatch (via ls-files): match '*/\\' 'XXX/\'
expecting success:
test-tool wildmatch iwildmatch 'XXX/\' '*/\\'
ok 635 - iwildmatch: match 'XXX/\' '*/\\'
expecting success:
printf '%s' 'XXX/\' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 636 - iwildmatch (via ls-files): match '*/\\' 'XXX/\'
expecting success:
test-tool wildmatch pathmatch 'XXX/\' '*/\\'
ok 637 - pathmatch: match 'XXX/\' '*/\\'
expecting success:
printf '%s' 'XXX/\' >expect &&
git ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 638 - pathmatch (via ls-files): match '*/\\' 'XXX/\'
expecting success:
test-tool wildmatch ipathmatch 'XXX/\' '*/\\'
ok 639 - ipathmatch: match 'XXX/\' '*/\\'
expecting success:
printf '%s' 'XXX/\' >expect &&
git --icase-pathspecs ls-files -z -- '*/\\' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 640 - ipathmatch (via ls-files): match '*/\\' 'XXX/\'
expecting success:
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
Removing expect.err
ok 641 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo' 'foo'
ok 643 - wildmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 644 - wildmatch (via ls-files): match 'foo' 'foo'
expecting success:
test-tool wildmatch iwildmatch 'foo' 'foo'
ok 645 - iwildmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 646 - iwildmatch (via ls-files): match 'foo' 'foo'
expecting success:
test-tool wildmatch pathmatch 'foo' 'foo'
ok 647 - pathmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 648 - pathmatch (via ls-files): match 'foo' 'foo'
expecting success:
test-tool wildmatch ipathmatch 'foo' 'foo'
ok 649 - ipathmatch: match 'foo' 'foo'
expecting success:
printf '%s' 'foo' >expect &&
git --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 650 - ipathmatch (via ls-files): match 'foo' 'foo'
expecting success:
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 expect.err
Removing foo
ok 651 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '@foo' '@foo'
ok 653 - wildmatch: match '@foo' '@foo'
expecting success:
printf '%s' '@foo' >expect &&
git --glob-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 654 - wildmatch (via ls-files): match '@foo' '@foo'
expecting success:
test-tool wildmatch iwildmatch '@foo' '@foo'
ok 655 - iwildmatch: match '@foo' '@foo'
expecting success:
printf '%s' '@foo' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 656 - iwildmatch (via ls-files): match '@foo' '@foo'
expecting success:
test-tool wildmatch pathmatch '@foo' '@foo'
ok 657 - pathmatch: match '@foo' '@foo'
expecting success:
printf '%s' '@foo' >expect &&
git ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 658 - pathmatch (via ls-files): match '@foo' '@foo'
expecting success:
test-tool wildmatch ipathmatch '@foo' '@foo'
ok 659 - ipathmatch: match '@foo' '@foo'
expecting success:
printf '%s' '@foo' >expect &&
git --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 660 - ipathmatch (via ls-files): match '@foo' '@foo'
expecting success:
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
Removing expect.err
ok 661 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' '@foo'
ok 663 - wildmatch: no match 'foo' '@foo'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 664 - wildmatch (via ls-files): no match '@foo' 'foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo' '@foo'
ok 665 - iwildmatch: no match 'foo' '@foo'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 666 - iwildmatch (via ls-files): no match '@foo' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' '@foo'
ok 667 - pathmatch: no match 'foo' '@foo'
expecting success:
>expect &&
git ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 668 - pathmatch (via ls-files): no match '@foo' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' '@foo'
ok 669 - ipathmatch: no match 'foo' '@foo'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '@foo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 670 - ipathmatch (via ls-files): no match '@foo' 'foo'
expecting success:
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 expect.err
Removing foo
ok 671 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[ab]' '\[ab]'
ok 673 - wildmatch: match '[ab]' '\[ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 674 - wildmatch (via ls-files): match '\[ab]' '[ab]'
expecting success:
test-tool wildmatch iwildmatch '[ab]' '\[ab]'
ok 675 - iwildmatch: match '[ab]' '\[ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 676 - iwildmatch (via ls-files): match '\[ab]' '[ab]'
expecting success:
test-tool wildmatch pathmatch '[ab]' '\[ab]'
ok 677 - pathmatch: match '[ab]' '\[ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 678 - pathmatch (via ls-files): match '\[ab]' '[ab]'
expecting success:
test-tool wildmatch ipathmatch '[ab]' '\[ab]'
ok 679 - ipathmatch: match '[ab]' '\[ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --icase-pathspecs ls-files -z -- '\[ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 680 - ipathmatch (via ls-files): match '\[ab]' '[ab]'
expecting success:
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
Removing expect.err
ok 681 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[ab]' '[[]ab]'
ok 683 - wildmatch: match '[ab]' '[[]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 684 - wildmatch (via ls-files): match '[[]ab]' '[ab]'
expecting success:
test-tool wildmatch iwildmatch '[ab]' '[[]ab]'
ok 685 - iwildmatch: match '[ab]' '[[]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 686 - iwildmatch (via ls-files): match '[[]ab]' '[ab]'
expecting success:
test-tool wildmatch pathmatch '[ab]' '[[]ab]'
ok 687 - pathmatch: match '[ab]' '[[]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 688 - pathmatch (via ls-files): match '[[]ab]' '[ab]'
expecting success:
test-tool wildmatch ipathmatch '[ab]' '[[]ab]'
ok 689 - ipathmatch: match '[ab]' '[[]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --icase-pathspecs ls-files -z -- '[[]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 690 - ipathmatch (via ls-files): match '[[]ab]' '[ab]'
expecting success:
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
Removing expect.err
ok 691 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[ab]' '[[:]ab]'
ok 693 - wildmatch: match '[ab]' '[[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 694 - wildmatch (via ls-files): match '[[:]ab]' '[ab]'
expecting success:
test-tool wildmatch iwildmatch '[ab]' '[[:]ab]'
ok 695 - iwildmatch: match '[ab]' '[[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 696 - iwildmatch (via ls-files): match '[[:]ab]' '[ab]'
expecting success:
test-tool wildmatch pathmatch '[ab]' '[[:]ab]'
ok 697 - pathmatch: match '[ab]' '[[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 698 - pathmatch (via ls-files): match '[[:]ab]' '[ab]'
expecting success:
test-tool wildmatch ipathmatch '[ab]' '[[:]ab]'
ok 699 - ipathmatch: match '[ab]' '[[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --icase-pathspecs ls-files -z -- '[[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 700 - ipathmatch (via ls-files): match '[[:]ab]' '[ab]'
expecting success:
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
Removing expect.err
ok 701 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '[ab]' '[[::]ab]'
ok 703 - wildmatch: no match '[ab]' '[[::]ab]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 704 - wildmatch (via ls-files): no match '[[::]ab]' '[ab]'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '[ab]' '[[::]ab]'
ok 705 - iwildmatch: no match '[ab]' '[[::]ab]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 706 - iwildmatch (via ls-files): no match '[[::]ab]' '[ab]'
expecting success:
test_must_fail test-tool wildmatch pathmatch '[ab]' '[[::]ab]'
ok 707 - pathmatch: no match '[ab]' '[[::]ab]'
expecting success:
>expect &&
git ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 708 - pathmatch (via ls-files): no match '[[::]ab]' '[ab]'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '[ab]' '[[::]ab]'
ok 709 - ipathmatch: no match '[ab]' '[[::]ab]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[[::]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 710 - ipathmatch (via ls-files): no match '[[::]ab]' '[ab]'
expecting success:
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
Removing expect.err
ok 711 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[ab]' '[[:digit]ab]'
ok 713 - wildmatch: match '[ab]' '[[:digit]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 714 - wildmatch (via ls-files): match '[[:digit]ab]' '[ab]'
expecting success:
test-tool wildmatch iwildmatch '[ab]' '[[:digit]ab]'
ok 715 - iwildmatch: match '[ab]' '[[:digit]ab]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 716 - iwildmatch (via ls-files): match '[[:digit]ab]' '[ab]'
expecting success:
test-tool wildmatch pathmatch '[ab]' '[[:digit]ab]'
ok 717 - pathmatch: match '[ab]' '[[:digit]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 718 - pathmatch (via ls-files): match '[[:digit]ab]' '[ab]'
expecting success:
test-tool wildmatch ipathmatch '[ab]' '[[:digit]ab]'
ok 719 - ipathmatch: match '[ab]' '[[:digit]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --icase-pathspecs ls-files -z -- '[[:digit]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 720 - ipathmatch (via ls-files): match '[[:digit]ab]' '[ab]'
expecting success:
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
Removing expect.err
ok 721 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[ab]' '[\[:]ab]'
ok 723 - wildmatch: match '[ab]' '[\[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 724 - wildmatch (via ls-files): match '[\[:]ab]' '[ab]'
expecting success:
test-tool wildmatch iwildmatch '[ab]' '[\[:]ab]'
ok 725 - iwildmatch: match '[ab]' '[\[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 726 - iwildmatch (via ls-files): match '[\[:]ab]' '[ab]'
expecting success:
test-tool wildmatch pathmatch '[ab]' '[\[:]ab]'
ok 727 - pathmatch: match '[ab]' '[\[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 728 - pathmatch (via ls-files): match '[\[:]ab]' '[ab]'
expecting success:
test-tool wildmatch ipathmatch '[ab]' '[\[:]ab]'
ok 729 - ipathmatch: match '[ab]' '[\[:]ab]'
expecting success:
printf '%s' '[ab]' >expect &&
git --icase-pathspecs ls-files -z -- '[\[:]ab]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 730 - ipathmatch (via ls-files): match '[\[:]ab]' '[ab]'
expecting success:
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
Removing expect.err
ok 731 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '?a?b' '\??\?b'
ok 733 - wildmatch: match '?a?b' '\??\?b'
expecting success:
printf '%s' '?a?b' >expect &&
git --glob-pathspecs ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 734 - wildmatch (via ls-files): match '\??\?b' '?a?b'
expecting success:
test-tool wildmatch iwildmatch '?a?b' '\??\?b'
ok 735 - iwildmatch: match '?a?b' '\??\?b'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 736 - iwildmatch (via ls-files): match '\??\?b' '?a?b'
expecting success:
test-tool wildmatch pathmatch '?a?b' '\??\?b'
ok 737 - pathmatch: match '?a?b' '\??\?b'
expecting success:
printf '%s' '?a?b' >expect &&
git ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 738 - pathmatch (via ls-files): match '\??\?b' '?a?b'
expecting success:
test-tool wildmatch ipathmatch '?a?b' '\??\?b'
ok 739 - ipathmatch: match '?a?b' '\??\?b'
expecting success:
printf '%s' '?a?b' >expect &&
git --icase-pathspecs ls-files -z -- '\??\?b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 740 - ipathmatch (via ls-files): match '\??\?b' '?a?b'
expecting success:
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
Removing expect.err
ok 741 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'abc' '\a\b\c'
ok 743 - wildmatch: match 'abc' '\a\b\c'
expecting success:
printf '%s' 'abc' >expect &&
git --glob-pathspecs ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 744 - wildmatch (via ls-files): match '\a\b\c' 'abc'
expecting success:
test-tool wildmatch iwildmatch 'abc' '\a\b\c'
ok 745 - iwildmatch: match 'abc' '\a\b\c'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 746 - iwildmatch (via ls-files): match '\a\b\c' 'abc'
expecting success:
test-tool wildmatch pathmatch 'abc' '\a\b\c'
ok 747 - pathmatch: match 'abc' '\a\b\c'
expecting success:
printf '%s' 'abc' >expect &&
git ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 748 - pathmatch (via ls-files): match '\a\b\c' 'abc'
expecting success:
test-tool wildmatch ipathmatch 'abc' '\a\b\c'
ok 749 - ipathmatch: match 'abc' '\a\b\c'
expecting success:
printf '%s' 'abc' >expect &&
git --icase-pathspecs ls-files -z -- '\a\b\c' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 750 - ipathmatch (via ls-files): match '\a\b\c' 'abc'
expecting success:
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
Removing expect.err
ok 751 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' ''
ok 753 - wildmatch: no match 'foo' ''
expecting success:
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:
test_must_fail test-tool wildmatch iwildmatch 'foo' ''
ok 755 - iwildmatch: no match 'foo' ''
expecting success:
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:
test_must_fail test-tool wildmatch pathmatch 'foo' ''
ok 757 - pathmatch: no match 'foo' ''
expecting success:
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:
test_must_fail test-tool wildmatch ipathmatch 'foo' ''
ok 759 - ipathmatch: no match 'foo' ''
expecting success:
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:
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:
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:
test-tool wildmatch wildmatch 'foo/bar/baz/to' '**/t[o]'
ok 763 - wildmatch: match 'foo/bar/baz/to' '**/t[o]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 764 - wildmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'
expecting success:
test-tool wildmatch iwildmatch 'foo/bar/baz/to' '**/t[o]'
ok 765 - iwildmatch: match 'foo/bar/baz/to' '**/t[o]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 766 - iwildmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'
expecting success:
test-tool wildmatch pathmatch 'foo/bar/baz/to' '**/t[o]'
ok 767 - pathmatch: match 'foo/bar/baz/to' '**/t[o]'
expecting success:
printf '%s' 'foo/bar/baz/to' >expect &&
git ls-files -z -- '**/t[o]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 768 - pathmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar/baz/to' '**/t[o]'
ok 769 - ipathmatch: match 'foo/bar/baz/to' '**/t[o]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 770 - ipathmatch (via ls-files): match '**/t[o]' 'foo/bar/baz/to'
expecting success:
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 expect.err
Removing foo/
ok 771 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
ok 773 - wildmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
expecting success:
printf '%s' 'a1B' >expect &&
git --glob-pathspecs ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 774 - wildmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'
expecting success:
test-tool wildmatch iwildmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
ok 775 - iwildmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 776 - iwildmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'
expecting success:
test-tool wildmatch pathmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
ok 777 - pathmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
expecting success:
printf '%s' 'a1B' >expect &&
git ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 778 - pathmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'
expecting success:
test-tool wildmatch ipathmatch 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
ok 779 - ipathmatch: match 'a1B' '[[:alpha:]][[:digit:]][[:upper:]]'
expecting success:
printf '%s' 'a1B' >expect &&
git --icase-pathspecs ls-files -z -- '[[:alpha:]][[:digit:]][[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 780 - ipathmatch (via ls-files): match '[[:alpha:]][[:digit:]][[:upper:]]' 'a1B'
expecting success:
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
Removing expect.err
ok 781 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'a' '[[:digit:][:upper:][:space:]]'
ok 783 - wildmatch: no match 'a' '[[:digit:][:upper:][:space:]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 784 - wildmatch (via ls-files): no match '[[:digit:][:upper:][:space:]]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[[:digit:][:upper:][:space:]]'
ok 785 - iwildmatch: match 'a' '[[:digit:][:upper:][:space:]]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 786 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'a'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'a' '[[:digit:][:upper:][:space:]]'
ok 787 - pathmatch: no match 'a' '[[:digit:][:upper:][:space:]]'
expecting success:
>expect &&
git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 788 - pathmatch (via ls-files): no match '[[:digit:][:upper:][:space:]]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[[:digit:][:upper:][:space:]]'
ok 789 - ipathmatch: match 'a' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 790 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'a'
expecting success:
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
Removing expect.err
ok 791 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'A' '[[:digit:][:upper:][:space:]]'
ok 793 - wildmatch: match 'A' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' 'A' >expect &&
git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 794 - wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[[:digit:][:upper:][:space:]]'
ok 795 - iwildmatch: match 'A' '[[:digit:][:upper:][:space:]]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 796 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'
expecting success:
test-tool wildmatch pathmatch 'A' '[[:digit:][:upper:][:space:]]'
ok 797 - pathmatch: match 'A' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' 'A' >expect &&
git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 798 - pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[[:digit:][:upper:][:space:]]'
ok 799 - ipathmatch: match 'A' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 800 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' 'A'
expecting success:
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
Removing expect.err
ok 801 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '1' '[[:digit:][:upper:][:space:]]'
ok 803 - wildmatch: match '1' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' '1' >expect &&
git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 804 - wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'
expecting success:
test-tool wildmatch iwildmatch '1' '[[:digit:][:upper:][:space:]]'
ok 805 - iwildmatch: match '1' '[[:digit:][:upper:][:space:]]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 806 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'
expecting success:
test-tool wildmatch pathmatch '1' '[[:digit:][:upper:][:space:]]'
ok 807 - pathmatch: match '1' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' '1' >expect &&
git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 808 - pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'
expecting success:
test-tool wildmatch ipathmatch '1' '[[:digit:][:upper:][:space:]]'
ok 809 - ipathmatch: match '1' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' '1' >expect &&
git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 810 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' '1'
expecting success:
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
Removing expect.err
ok 811 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '1' '[[:digit:][:upper:][:spaci:]]'
ok 813 - wildmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 814 - wildmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '1' '[[:digit:][:upper:][:spaci:]]'
ok 815 - iwildmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 816 - iwildmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'
expecting success:
test_must_fail test-tool wildmatch pathmatch '1' '[[:digit:][:upper:][:spaci:]]'
ok 817 - pathmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'
expecting success:
>expect &&
git ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 818 - pathmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '1' '[[:digit:][:upper:][:spaci:]]'
ok 819 - ipathmatch: no match '1' '[[:digit:][:upper:][:spaci:]]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:spaci:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 820 - ipathmatch (via ls-files): no match '[[:digit:][:upper:][:spaci:]]' '1'
expecting success:
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
Removing expect.err
ok 821 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ' ' '[[:digit:][:upper:][:space:]]'
ok 823 - wildmatch: match ' ' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' ' ' >expect &&
git --glob-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 824 - wildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '
expecting success:
test-tool wildmatch iwildmatch ' ' '[[:digit:][:upper:][:space:]]'
ok 825 - iwildmatch: match ' ' '[[:digit:][:upper:][:space:]]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 826 - iwildmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '
expecting success:
test-tool wildmatch pathmatch ' ' '[[:digit:][:upper:][:space:]]'
ok 827 - pathmatch: match ' ' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' ' ' >expect &&
git ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 828 - pathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '
expecting success:
test-tool wildmatch ipathmatch ' ' '[[:digit:][:upper:][:space:]]'
ok 829 - ipathmatch: match ' ' '[[:digit:][:upper:][:space:]]'
expecting success:
printf '%s' ' ' >expect &&
git --icase-pathspecs ls-files -z -- '[[:digit:][:upper:][:space:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 830 - ipathmatch (via ls-files): match '[[:digit:][:upper:][:space:]]' ' '
expecting success:
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
Removing expect.err
ok 831 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '.' '[[:digit:][:upper:][:space:]]'
ok 833 - wildmatch: no match '.' '[[:digit:][:upper:][:space:]]'
checking known breakage: false
not ok 834 - wildmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage
expecting success:
test_must_fail test-tool wildmatch iwildmatch '.' '[[:digit:][:upper:][:space:]]'
ok 835 - iwildmatch: no match '.' '[[:digit:][:upper:][:space:]]'
checking known breakage: false
not ok 836 - iwildmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage
expecting success:
test_must_fail test-tool wildmatch pathmatch '.' '[[:digit:][:upper:][:space:]]'
ok 837 - pathmatch: no match '.' '[[:digit:][:upper:][:space:]]'
checking known breakage: false
not ok 838 - pathmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage
expecting success:
test_must_fail test-tool wildmatch ipathmatch '.' '[[:digit:][:upper:][:space:]]'
ok 839 - ipathmatch: no match '.' '[[:digit:][:upper:][:space:]]'
checking known breakage: false
not ok 840 - ipathmatch (via ls-files): no match skip '[[:digit:][:upper:][:space:]]' '.' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 841 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '.' '[[:digit:][:punct:][:space:]]'
ok 843 - wildmatch: match '.' '[[:digit:][:punct:][:space:]]'
checking known breakage: false
not ok 844 - wildmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage
expecting success:
test-tool wildmatch iwildmatch '.' '[[:digit:][:punct:][:space:]]'
ok 845 - iwildmatch: match '.' '[[:digit:][:punct:][:space:]]'
checking known breakage: false
not ok 846 - iwildmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage
expecting success:
test-tool wildmatch pathmatch '.' '[[:digit:][:punct:][:space:]]'
ok 847 - pathmatch: match '.' '[[:digit:][:punct:][:space:]]'
checking known breakage: false
not ok 848 - pathmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage
expecting success:
test-tool wildmatch ipathmatch '.' '[[:digit:][:punct:][:space:]]'
ok 849 - ipathmatch: match '.' '[[:digit:][:punct:][:space:]]'
checking known breakage: false
not ok 850 - ipathmatch (via ls-files): match skip '[[:digit:][:punct:][:space:]]' '.' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 851 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '5' '[[:xdigit:]]'
ok 853 - wildmatch: match '5' '[[:xdigit:]]'
expecting success:
printf '%s' '5' >expect &&
git --glob-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 854 - wildmatch (via ls-files): match '[[:xdigit:]]' '5'
expecting success:
test-tool wildmatch iwildmatch '5' '[[:xdigit:]]'
ok 855 - iwildmatch: match '5' '[[:xdigit:]]'
expecting success:
printf '%s' '5' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 856 - iwildmatch (via ls-files): match '[[:xdigit:]]' '5'
expecting success:
test-tool wildmatch pathmatch '5' '[[:xdigit:]]'
ok 857 - pathmatch: match '5' '[[:xdigit:]]'
expecting success:
printf '%s' '5' >expect &&
git ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 858 - pathmatch (via ls-files): match '[[:xdigit:]]' '5'
expecting success:
test-tool wildmatch ipathmatch '5' '[[:xdigit:]]'
ok 859 - ipathmatch: match '5' '[[:xdigit:]]'
expecting success:
printf '%s' '5' >expect &&
git --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 860 - ipathmatch (via ls-files): match '[[:xdigit:]]' '5'
expecting success:
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
Removing expect.err
ok 861 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'f' '[[:xdigit:]]'
ok 863 - wildmatch: match 'f' '[[:xdigit:]]'
expecting success:
printf '%s' 'f' >expect &&
git --glob-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 864 - wildmatch (via ls-files): match '[[:xdigit:]]' 'f'
expecting success:
test-tool wildmatch iwildmatch 'f' '[[:xdigit:]]'
ok 865 - iwildmatch: match 'f' '[[:xdigit:]]'
expecting success:
printf '%s' 'f' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 866 - iwildmatch (via ls-files): match '[[:xdigit:]]' 'f'
expecting success:
test-tool wildmatch pathmatch 'f' '[[:xdigit:]]'
ok 867 - pathmatch: match 'f' '[[:xdigit:]]'
expecting success:
printf '%s' 'f' >expect &&
git ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 868 - pathmatch (via ls-files): match '[[:xdigit:]]' 'f'
expecting success:
test-tool wildmatch ipathmatch 'f' '[[:xdigit:]]'
ok 869 - ipathmatch: match 'f' '[[:xdigit:]]'
expecting success:
printf '%s' 'f' >expect &&
git --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 870 - ipathmatch (via ls-files): match '[[:xdigit:]]' 'f'
expecting success:
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 expect.err
Removing f
ok 871 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'D' '[[:xdigit:]]'
ok 873 - wildmatch: match 'D' '[[:xdigit:]]'
expecting success:
printf '%s' 'D' >expect &&
git --glob-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 874 - wildmatch (via ls-files): match '[[:xdigit:]]' 'D'
expecting success:
test-tool wildmatch iwildmatch 'D' '[[:xdigit:]]'
ok 875 - iwildmatch: match 'D' '[[:xdigit:]]'
expecting success:
printf '%s' 'D' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 876 - iwildmatch (via ls-files): match '[[:xdigit:]]' 'D'
expecting success:
test-tool wildmatch pathmatch 'D' '[[:xdigit:]]'
ok 877 - pathmatch: match 'D' '[[:xdigit:]]'
expecting success:
printf '%s' 'D' >expect &&
git ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 878 - pathmatch (via ls-files): match '[[:xdigit:]]' 'D'
expecting success:
test-tool wildmatch ipathmatch 'D' '[[:xdigit:]]'
ok 879 - ipathmatch: match 'D' '[[:xdigit:]]'
expecting success:
printf '%s' 'D' >expect &&
git --icase-pathspecs ls-files -z -- '[[:xdigit:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 880 - ipathmatch (via ls-files): match '[[:xdigit:]]' 'D'
expecting success:
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
Removing expect.err
ok 881 - cleanup after previous file test
expecting success:
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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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
Removing expect.err
ok 891 - cleanup after previous file test
expecting success:
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:
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: false
not ok 894 - wildmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage
expecting success:
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: false
not ok 896 - iwildmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage
expecting success:
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: false
not ok 898 - pathmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage
expecting success:
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: false
not ok 900 - ipathmatch (via ls-files): match skip '[^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]' '.' # TODO known breakage
expecting success:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 901 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '5' '[a-c[:digit:]x-z]'
ok 903 - wildmatch: match '5' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 904 - wildmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'
expecting success:
test-tool wildmatch iwildmatch '5' '[a-c[:digit:]x-z]'
ok 905 - iwildmatch: match '5' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 906 - iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'
expecting success:
test-tool wildmatch pathmatch '5' '[a-c[:digit:]x-z]'
ok 907 - pathmatch: match '5' '[a-c[:digit:]x-z]'
expecting success:
printf '%s' '5' >expect &&
git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 908 - pathmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'
expecting success:
test-tool wildmatch ipathmatch '5' '[a-c[:digit:]x-z]'
ok 909 - ipathmatch: match '5' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 910 - ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' '5'
expecting success:
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
Removing expect.err
ok 911 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'b' '[a-c[:digit:]x-z]'
ok 913 - wildmatch: match 'b' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 914 - wildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'
expecting success:
test-tool wildmatch iwildmatch 'b' '[a-c[:digit:]x-z]'
ok 915 - iwildmatch: match 'b' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 916 - iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'
expecting success:
test-tool wildmatch pathmatch 'b' '[a-c[:digit:]x-z]'
ok 917 - pathmatch: match 'b' '[a-c[:digit:]x-z]'
expecting success:
printf '%s' 'b' >expect &&
git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 918 - pathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'
expecting success:
test-tool wildmatch ipathmatch 'b' '[a-c[:digit:]x-z]'
ok 919 - ipathmatch: match 'b' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 920 - ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'b'
expecting success:
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
Removing expect.err
ok 921 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'y' '[a-c[:digit:]x-z]'
ok 923 - wildmatch: match 'y' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 924 - wildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'
expecting success:
test-tool wildmatch iwildmatch 'y' '[a-c[:digit:]x-z]'
ok 925 - iwildmatch: match 'y' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 926 - iwildmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'
expecting success:
test-tool wildmatch pathmatch 'y' '[a-c[:digit:]x-z]'
ok 927 - pathmatch: match 'y' '[a-c[:digit:]x-z]'
expecting success:
printf '%s' 'y' >expect &&
git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 928 - pathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'
expecting success:
test-tool wildmatch ipathmatch 'y' '[a-c[:digit:]x-z]'
ok 929 - ipathmatch: match 'y' '[a-c[:digit:]x-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 930 - ipathmatch (via ls-files): match '[a-c[:digit:]x-z]' 'y'
expecting success:
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 expect.err
Removing y
ok 931 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 934 - wildmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'
expecting success:
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:
>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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 936 - iwildmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'
expecting success:
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:
>expect &&
git ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 938 - pathmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'
expecting success:
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:
>expect &&
git --icase-pathspecs ls-files -z -- '[a-c[:digit:]x-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 940 - ipathmatch (via ls-files): no match '[a-c[:digit:]x-z]' 'q'
expecting success:
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 expect.err
Removing q
ok 941 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ']' '[\\-^]'
ok 943 - wildmatch: match ']' '[\\-^]'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 944 - wildmatch (via ls-files): match '[\\-^]' ']'
expecting success:
test-tool wildmatch iwildmatch ']' '[\\-^]'
ok 945 - iwildmatch: match ']' '[\\-^]'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 946 - iwildmatch (via ls-files): match '[\\-^]' ']'
expecting success:
test-tool wildmatch pathmatch ']' '[\\-^]'
ok 947 - pathmatch: match ']' '[\\-^]'
expecting success:
printf '%s' ']' >expect &&
git ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 948 - pathmatch (via ls-files): match '[\\-^]' ']'
expecting success:
test-tool wildmatch ipathmatch ']' '[\\-^]'
ok 949 - ipathmatch: match ']' '[\\-^]'
expecting success:
printf '%s' ']' >expect &&
git --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 950 - ipathmatch (via ls-files): match '[\\-^]' ']'
expecting success:
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
Removing expect.err
ok 951 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '[' '[\\-^]'
ok 953 - wildmatch: no match '[' '[\\-^]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 954 - wildmatch (via ls-files): no match '[\\-^]' '['
expecting success:
test_must_fail test-tool wildmatch iwildmatch '[' '[\\-^]'
ok 955 - iwildmatch: no match '[' '[\\-^]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 956 - iwildmatch (via ls-files): no match '[\\-^]' '['
expecting success:
test_must_fail test-tool wildmatch pathmatch '[' '[\\-^]'
ok 957 - pathmatch: no match '[' '[\\-^]'
expecting success:
>expect &&
git ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 958 - pathmatch (via ls-files): no match '[\\-^]' '['
expecting success:
test_must_fail test-tool wildmatch ipathmatch '[' '[\\-^]'
ok 959 - ipathmatch: no match '[' '[\\-^]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[\\-^]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 960 - ipathmatch (via ls-files): no match '[\\-^]' '['
expecting success:
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
Removing expect.err
ok 961 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[\-_]'
ok 963 - wildmatch: match '-' '[\-_]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 964 - wildmatch (via ls-files): match '[\-_]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[\-_]'
ok 965 - iwildmatch: match '-' '[\-_]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 966 - iwildmatch (via ls-files): match '[\-_]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[\-_]'
ok 967 - pathmatch: match '-' '[\-_]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 968 - pathmatch (via ls-files): match '[\-_]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[\-_]'
ok 969 - ipathmatch: match '-' '[\-_]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[\-_]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 970 - ipathmatch (via ls-files): match '[\-_]' '-'
expecting success:
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
Removing expect.err
ok 971 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ']' '[\]]'
ok 973 - wildmatch: match ']' '[\]]'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 974 - wildmatch (via ls-files): match '[\]]' ']'
expecting success:
test-tool wildmatch iwildmatch ']' '[\]]'
ok 975 - iwildmatch: match ']' '[\]]'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 976 - iwildmatch (via ls-files): match '[\]]' ']'
expecting success:
test-tool wildmatch pathmatch ']' '[\]]'
ok 977 - pathmatch: match ']' '[\]]'
expecting success:
printf '%s' ']' >expect &&
git ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 978 - pathmatch (via ls-files): match '[\]]' ']'
expecting success:
test-tool wildmatch ipathmatch ']' '[\]]'
ok 979 - ipathmatch: match ']' '[\]]'
expecting success:
printf '%s' ']' >expect &&
git --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 980 - ipathmatch (via ls-files): match '[\]]' ']'
expecting success:
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
Removing expect.err
ok 981 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '\]' '[\]]'
ok 983 - wildmatch: no match '\]' '[\]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 984 - wildmatch (via ls-files): no match '[\]]' '\]'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '\]' '[\]]'
ok 985 - iwildmatch: no match '\]' '[\]]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 986 - iwildmatch (via ls-files): no match '[\]]' '\]'
expecting success:
test_must_fail test-tool wildmatch pathmatch '\]' '[\]]'
ok 987 - pathmatch: no match '\]' '[\]]'
expecting success:
>expect &&
git ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 988 - pathmatch (via ls-files): no match '[\]]' '\]'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '\]' '[\]]'
ok 989 - ipathmatch: no match '\]' '[\]]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 990 - ipathmatch (via ls-files): no match '[\]]' '\]'
expecting success:
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
Removing expect.err
ok 991 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '\' '[\]]'
ok 993 - wildmatch: no match '\' '[\]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 994 - wildmatch (via ls-files): no match '[\]]' '\'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '\' '[\]]'
ok 995 - iwildmatch: no match '\' '[\]]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 996 - iwildmatch (via ls-files): no match '[\]]' '\'
expecting success:
test_must_fail test-tool wildmatch pathmatch '\' '[\]]'
ok 997 - pathmatch: no match '\' '[\]]'
expecting success:
>expect &&
git ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 998 - pathmatch (via ls-files): no match '[\]]' '\'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '\' '[\]]'
ok 999 - ipathmatch: no match '\' '[\]]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1000 - ipathmatch (via ls-files): no match '[\]]' '\'
expecting success:
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
Removing expect.err
ok 1001 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ab' 'a[]b'
ok 1003 - wildmatch: no match 'ab' 'a[]b'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1004 - wildmatch (via ls-files): no match 'a[]b' 'ab'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ab' 'a[]b'
ok 1005 - iwildmatch: no match 'ab' 'a[]b'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1006 - iwildmatch (via ls-files): no match 'a[]b' 'ab'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ab' 'a[]b'
ok 1007 - pathmatch: no match 'ab' 'a[]b'
expecting success:
>expect &&
git ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1008 - pathmatch (via ls-files): no match 'a[]b' 'ab'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ab' 'a[]b'
ok 1009 - ipathmatch: no match 'ab' 'a[]b'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1010 - ipathmatch (via ls-files): no match 'a[]b' 'ab'
expecting success:
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
Removing expect.err
ok 1011 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'a[]b' 'a[]b'
ok 1013 - wildmatch: no match 'a[]b' 'a[]b'
expecting success:
printf '%s' 'a[]b' >expect &&
git --glob-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1014 - wildmatch (via ls-files): match 'a[]b' 'a[]b'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'a[]b' 'a[]b'
ok 1015 - iwildmatch: no match 'a[]b' 'a[]b'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1016 - iwildmatch (via ls-files): match 'a[]b' 'a[]b'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'a[]b' 'a[]b'
ok 1017 - pathmatch: no match 'a[]b' 'a[]b'
expecting success:
printf '%s' 'a[]b' >expect &&
git ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1018 - pathmatch (via ls-files): match 'a[]b' 'a[]b'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'a[]b' 'a[]b'
ok 1019 - ipathmatch: no match 'a[]b' 'a[]b'
expecting success:
printf '%s' 'a[]b' >expect &&
git --icase-pathspecs ls-files -z -- 'a[]b' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1020 - ipathmatch (via ls-files): match 'a[]b' 'a[]b'
expecting success:
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
Removing expect.err
ok 1021 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ab[' 'ab['
ok 1023 - wildmatch: no match 'ab[' 'ab['
expecting success:
printf '%s' 'ab[' >expect &&
git --glob-pathspecs ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1024 - wildmatch (via ls-files): match 'ab[' 'ab['
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ab[' 'ab['
ok 1025 - iwildmatch: no match 'ab[' 'ab['
expecting success:
printf '%s' 'ab[' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1026 - iwildmatch (via ls-files): match 'ab[' 'ab['
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ab[' 'ab['
ok 1027 - pathmatch: no match 'ab[' 'ab['
expecting success:
printf '%s' 'ab[' >expect &&
git ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1028 - pathmatch (via ls-files): match 'ab[' 'ab['
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ab[' 'ab['
ok 1029 - ipathmatch: no match 'ab[' 'ab['
expecting success:
printf '%s' 'ab[' >expect &&
git --icase-pathspecs ls-files -z -- 'ab[' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1030 - ipathmatch (via ls-files): match 'ab[' 'ab['
expecting success:
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
Removing expect.err
ok 1031 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ab' '[!'
ok 1033 - wildmatch: no match 'ab' '[!'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[!' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1034 - wildmatch (via ls-files): no match '[!' 'ab'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ab' '[!'
ok 1035 - iwildmatch: no match 'ab' '[!'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1036 - iwildmatch (via ls-files): no match '[!' 'ab'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ab' '[!'
ok 1037 - pathmatch: no match 'ab' '[!'
expecting success:
>expect &&
git ls-files -z -- '[!' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1038 - pathmatch (via ls-files): no match '[!' 'ab'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ab' '[!'
ok 1039 - ipathmatch: no match 'ab' '[!'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[!' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1040 - ipathmatch (via ls-files): no match '[!' 'ab'
expecting success:
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
Removing expect.err
ok 1041 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'ab' '[-'
ok 1043 - wildmatch: no match 'ab' '[-'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1044 - wildmatch (via ls-files): no match '[-' 'ab'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'ab' '[-'
ok 1045 - iwildmatch: no match 'ab' '[-'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1046 - iwildmatch (via ls-files): no match '[-' 'ab'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'ab' '[-'
ok 1047 - pathmatch: no match 'ab' '[-'
expecting success:
>expect &&
git ls-files -z -- '[-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1048 - pathmatch (via ls-files): no match '[-' 'ab'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'ab' '[-'
ok 1049 - ipathmatch: no match 'ab' '[-'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1050 - ipathmatch (via ls-files): no match '[-' 'ab'
expecting success:
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
Removing expect.err
ok 1051 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[-]'
ok 1053 - wildmatch: match '-' '[-]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1054 - wildmatch (via ls-files): match '[-]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[-]'
ok 1055 - iwildmatch: match '-' '[-]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1056 - iwildmatch (via ls-files): match '[-]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[-]'
ok 1057 - pathmatch: match '-' '[-]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1058 - pathmatch (via ls-files): match '[-]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[-]'
ok 1059 - ipathmatch: match '-' '[-]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[-]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1060 - ipathmatch (via ls-files): match '[-]' '-'
expecting success:
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
Removing expect.err
ok 1061 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '-' '[a-'
ok 1063 - wildmatch: no match '-' '[a-'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1064 - wildmatch (via ls-files): no match '[a-' '-'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '-' '[a-'
ok 1065 - iwildmatch: no match '-' '[a-'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1066 - iwildmatch (via ls-files): no match '[a-' '-'
expecting success:
test_must_fail test-tool wildmatch pathmatch '-' '[a-'
ok 1067 - pathmatch: no match '-' '[a-'
expecting success:
>expect &&
git ls-files -z -- '[a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1068 - pathmatch (via ls-files): no match '[a-' '-'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '-' '[a-'
ok 1069 - ipathmatch: no match '-' '[a-'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1070 - ipathmatch (via ls-files): no match '[a-' '-'
expecting success:
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
Removing expect.err
ok 1071 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '-' '[!a-'
ok 1073 - wildmatch: no match '-' '[!a-'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1074 - wildmatch (via ls-files): no match '[!a-' '-'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '-' '[!a-'
ok 1075 - iwildmatch: no match '-' '[!a-'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1076 - iwildmatch (via ls-files): no match '[!a-' '-'
expecting success:
test_must_fail test-tool wildmatch pathmatch '-' '[!a-'
ok 1077 - pathmatch: no match '-' '[!a-'
expecting success:
>expect &&
git ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1078 - pathmatch (via ls-files): no match '[!a-' '-'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '-' '[!a-'
ok 1079 - ipathmatch: no match '-' '[!a-'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[!a-' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1080 - ipathmatch (via ls-files): no match '[!a-' '-'
expecting success:
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
Removing expect.err
ok 1081 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[--A]'
ok 1083 - wildmatch: match '-' '[--A]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1084 - wildmatch (via ls-files): match '[--A]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[--A]'
ok 1085 - iwildmatch: match '-' '[--A]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1086 - iwildmatch (via ls-files): match '[--A]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[--A]'
ok 1087 - pathmatch: match '-' '[--A]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1088 - pathmatch (via ls-files): match '[--A]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[--A]'
ok 1089 - ipathmatch: match '-' '[--A]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1090 - ipathmatch (via ls-files): match '[--A]' '-'
expecting success:
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
Removing expect.err
ok 1091 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '5' '[--A]'
ok 1093 - wildmatch: match '5' '[--A]'
expecting success:
printf '%s' '5' >expect &&
git --glob-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1094 - wildmatch (via ls-files): match '[--A]' '5'
expecting success:
test-tool wildmatch iwildmatch '5' '[--A]'
ok 1095 - iwildmatch: match '5' '[--A]'
expecting success:
printf '%s' '5' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1096 - iwildmatch (via ls-files): match '[--A]' '5'
expecting success:
test-tool wildmatch pathmatch '5' '[--A]'
ok 1097 - pathmatch: match '5' '[--A]'
expecting success:
printf '%s' '5' >expect &&
git ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1098 - pathmatch (via ls-files): match '[--A]' '5'
expecting success:
test-tool wildmatch ipathmatch '5' '[--A]'
ok 1099 - ipathmatch: match '5' '[--A]'
expecting success:
printf '%s' '5' >expect &&
git --icase-pathspecs ls-files -z -- '[--A]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1100 - ipathmatch (via ls-files): match '[--A]' '5'
expecting success:
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
Removing expect.err
ok 1101 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ' ' '[ --]'
ok 1103 - wildmatch: match ' ' '[ --]'
expecting success:
printf '%s' ' ' >expect &&
git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1104 - wildmatch (via ls-files): match '[ --]' ' '
expecting success:
test-tool wildmatch iwildmatch ' ' '[ --]'
ok 1105 - iwildmatch: match ' ' '[ --]'
expecting success:
printf '%s' ' ' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1106 - iwildmatch (via ls-files): match '[ --]' ' '
expecting success:
test-tool wildmatch pathmatch ' ' '[ --]'
ok 1107 - pathmatch: match ' ' '[ --]'
expecting success:
printf '%s' ' ' >expect &&
git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1108 - pathmatch (via ls-files): match '[ --]' ' '
expecting success:
test-tool wildmatch ipathmatch ' ' '[ --]'
ok 1109 - ipathmatch: match ' ' '[ --]'
expecting success:
printf '%s' ' ' >expect &&
git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1110 - ipathmatch (via ls-files): match '[ --]' ' '
expecting success:
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
Removing expect.err
ok 1111 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '$' '[ --]'
ok 1113 - wildmatch: match '$' '[ --]'
expecting success:
printf '%s' '$' >expect &&
git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1114 - wildmatch (via ls-files): match '[ --]' '$'
expecting success:
test-tool wildmatch iwildmatch '$' '[ --]'
ok 1115 - iwildmatch: match '$' '[ --]'
expecting success:
printf '%s' '$' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1116 - iwildmatch (via ls-files): match '[ --]' '$'
expecting success:
test-tool wildmatch pathmatch '$' '[ --]'
ok 1117 - pathmatch: match '$' '[ --]'
expecting success:
printf '%s' '$' >expect &&
git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1118 - pathmatch (via ls-files): match '[ --]' '$'
expecting success:
test-tool wildmatch ipathmatch '$' '[ --]'
ok 1119 - ipathmatch: match '$' '[ --]'
expecting success:
printf '%s' '$' >expect &&
git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1120 - ipathmatch (via ls-files): match '[ --]' '$'
expecting success:
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
Removing expect.err
ok 1121 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[ --]'
ok 1123 - wildmatch: match '-' '[ --]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1124 - wildmatch (via ls-files): match '[ --]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[ --]'
ok 1125 - iwildmatch: match '-' '[ --]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1126 - iwildmatch (via ls-files): match '[ --]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[ --]'
ok 1127 - pathmatch: match '-' '[ --]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1128 - pathmatch (via ls-files): match '[ --]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[ --]'
ok 1129 - ipathmatch: match '-' '[ --]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1130 - ipathmatch (via ls-files): match '[ --]' '-'
expecting success:
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
Removing expect.err
ok 1131 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '0' '[ --]'
ok 1133 - wildmatch: no match '0' '[ --]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1134 - wildmatch (via ls-files): no match '[ --]' '0'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '0' '[ --]'
ok 1135 - iwildmatch: no match '0' '[ --]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1136 - iwildmatch (via ls-files): no match '[ --]' '0'
expecting success:
test_must_fail test-tool wildmatch pathmatch '0' '[ --]'
ok 1137 - pathmatch: no match '0' '[ --]'
expecting success:
>expect &&
git ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1138 - pathmatch (via ls-files): no match '[ --]' '0'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '0' '[ --]'
ok 1139 - ipathmatch: no match '0' '[ --]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[ --]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1140 - ipathmatch (via ls-files): no match '[ --]' '0'
expecting success:
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
Removing expect.err
ok 1141 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[---]'
ok 1143 - wildmatch: match '-' '[---]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[---]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1144 - wildmatch (via ls-files): match '[---]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[---]'
ok 1145 - iwildmatch: match '-' '[---]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[---]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1146 - iwildmatch (via ls-files): match '[---]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[---]'
ok 1147 - pathmatch: match '-' '[---]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[---]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1148 - pathmatch (via ls-files): match '[---]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[---]'
ok 1149 - ipathmatch: match '-' '[---]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[---]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1150 - ipathmatch (via ls-files): match '[---]' '-'
expecting success:
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
Removing expect.err
ok 1151 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[------]'
ok 1153 - wildmatch: match '-' '[------]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1154 - wildmatch (via ls-files): match '[------]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[------]'
ok 1155 - iwildmatch: match '-' '[------]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1156 - iwildmatch (via ls-files): match '[------]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[------]'
ok 1157 - pathmatch: match '-' '[------]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1158 - pathmatch (via ls-files): match '[------]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[------]'
ok 1159 - ipathmatch: match '-' '[------]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1160 - ipathmatch (via ls-files): match '[------]' '-'
expecting success:
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
Removing expect.err
ok 1161 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'j' '[a-e-n]'
ok 1163 - wildmatch: no match 'j' '[a-e-n]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1164 - wildmatch (via ls-files): no match '[a-e-n]' 'j'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'j' '[a-e-n]'
ok 1165 - iwildmatch: no match 'j' '[a-e-n]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1166 - iwildmatch (via ls-files): no match '[a-e-n]' 'j'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'j' '[a-e-n]'
ok 1167 - pathmatch: no match 'j' '[a-e-n]'
expecting success:
>expect &&
git ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1168 - pathmatch (via ls-files): no match '[a-e-n]' 'j'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'j' '[a-e-n]'
ok 1169 - ipathmatch: no match 'j' '[a-e-n]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1170 - ipathmatch (via ls-files): no match '[a-e-n]' 'j'
expecting success:
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 expect.err
Removing j
ok 1171 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[a-e-n]'
ok 1173 - wildmatch: match '-' '[a-e-n]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1174 - wildmatch (via ls-files): match '[a-e-n]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[a-e-n]'
ok 1175 - iwildmatch: match '-' '[a-e-n]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1176 - iwildmatch (via ls-files): match '[a-e-n]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[a-e-n]'
ok 1177 - pathmatch: match '-' '[a-e-n]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1178 - pathmatch (via ls-files): match '[a-e-n]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[a-e-n]'
ok 1179 - ipathmatch: match '-' '[a-e-n]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[a-e-n]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1180 - ipathmatch (via ls-files): match '[a-e-n]' '-'
expecting success:
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
Removing expect.err
ok 1181 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a' '[!------]'
ok 1183 - wildmatch: match 'a' '[!------]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1184 - wildmatch (via ls-files): match '[!------]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[!------]'
ok 1185 - iwildmatch: match 'a' '[!------]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1186 - iwildmatch (via ls-files): match '[!------]' 'a'
expecting success:
test-tool wildmatch pathmatch 'a' '[!------]'
ok 1187 - pathmatch: match 'a' '[!------]'
expecting success:
printf '%s' 'a' >expect &&
git ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1188 - pathmatch (via ls-files): match '[!------]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[!------]'
ok 1189 - ipathmatch: match 'a' '[!------]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[!------]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1190 - ipathmatch (via ls-files): match '[!------]' 'a'
expecting success:
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
Removing expect.err
ok 1191 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '[' '[]-a]'
ok 1193 - wildmatch: no match '[' '[]-a]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1194 - wildmatch (via ls-files): no match '[]-a]' '['
expecting success:
test_must_fail test-tool wildmatch iwildmatch '[' '[]-a]'
ok 1195 - iwildmatch: no match '[' '[]-a]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1196 - iwildmatch (via ls-files): no match '[]-a]' '['
expecting success:
test_must_fail test-tool wildmatch pathmatch '[' '[]-a]'
ok 1197 - pathmatch: no match '[' '[]-a]'
expecting success:
>expect &&
git ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1198 - pathmatch (via ls-files): no match '[]-a]' '['
expecting success:
test_must_fail test-tool wildmatch ipathmatch '[' '[]-a]'
ok 1199 - ipathmatch: no match '[' '[]-a]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1200 - ipathmatch (via ls-files): no match '[]-a]' '['
expecting success:
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
Removing expect.err
ok 1201 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '^' '[]-a]'
ok 1203 - wildmatch: match '^' '[]-a]'
expecting success:
printf '%s' '^' >expect &&
git --glob-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1204 - wildmatch (via ls-files): match '[]-a]' '^'
expecting success:
test-tool wildmatch iwildmatch '^' '[]-a]'
ok 1205 - iwildmatch: match '^' '[]-a]'
expecting success:
printf '%s' '^' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1206 - iwildmatch (via ls-files): match '[]-a]' '^'
expecting success:
test-tool wildmatch pathmatch '^' '[]-a]'
ok 1207 - pathmatch: match '^' '[]-a]'
expecting success:
printf '%s' '^' >expect &&
git ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1208 - pathmatch (via ls-files): match '[]-a]' '^'
expecting success:
test-tool wildmatch ipathmatch '^' '[]-a]'
ok 1209 - ipathmatch: match '^' '[]-a]'
expecting success:
printf '%s' '^' >expect &&
git --icase-pathspecs ls-files -z -- '[]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1210 - ipathmatch (via ls-files): match '[]-a]' '^'
expecting success:
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
Removing expect.err
ok 1211 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '^' '[!]-a]'
ok 1213 - wildmatch: no match '^' '[!]-a]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1214 - wildmatch (via ls-files): no match '[!]-a]' '^'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '^' '[!]-a]'
ok 1215 - iwildmatch: no match '^' '[!]-a]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1216 - iwildmatch (via ls-files): no match '[!]-a]' '^'
expecting success:
test_must_fail test-tool wildmatch pathmatch '^' '[!]-a]'
ok 1217 - pathmatch: no match '^' '[!]-a]'
expecting success:
>expect &&
git ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1218 - pathmatch (via ls-files): no match '[!]-a]' '^'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '^' '[!]-a]'
ok 1219 - ipathmatch: no match '^' '[!]-a]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1220 - ipathmatch (via ls-files): no match '[!]-a]' '^'
expecting success:
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
Removing expect.err
ok 1221 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[' '[!]-a]'
ok 1223 - wildmatch: match '[' '[!]-a]'
expecting success:
printf '%s' '[' >expect &&
git --glob-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1224 - wildmatch (via ls-files): match '[!]-a]' '['
expecting success:
test-tool wildmatch iwildmatch '[' '[!]-a]'
ok 1225 - iwildmatch: match '[' '[!]-a]'
expecting success:
printf '%s' '[' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1226 - iwildmatch (via ls-files): match '[!]-a]' '['
expecting success:
test-tool wildmatch pathmatch '[' '[!]-a]'
ok 1227 - pathmatch: match '[' '[!]-a]'
expecting success:
printf '%s' '[' >expect &&
git ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1228 - pathmatch (via ls-files): match '[!]-a]' '['
expecting success:
test-tool wildmatch ipathmatch '[' '[!]-a]'
ok 1229 - ipathmatch: match '[' '[!]-a]'
expecting success:
printf '%s' '[' >expect &&
git --icase-pathspecs ls-files -z -- '[!]-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1230 - ipathmatch (via ls-files): match '[!]-a]' '['
expecting success:
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
Removing expect.err
ok 1231 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '^' '[a^bc]'
ok 1233 - wildmatch: match '^' '[a^bc]'
expecting success:
printf '%s' '^' >expect &&
git --glob-pathspecs ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1234 - wildmatch (via ls-files): match '[a^bc]' '^'
expecting success:
test-tool wildmatch iwildmatch '^' '[a^bc]'
ok 1235 - iwildmatch: match '^' '[a^bc]'
expecting success:
printf '%s' '^' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1236 - iwildmatch (via ls-files): match '[a^bc]' '^'
expecting success:
test-tool wildmatch pathmatch '^' '[a^bc]'
ok 1237 - pathmatch: match '^' '[a^bc]'
expecting success:
printf '%s' '^' >expect &&
git ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1238 - pathmatch (via ls-files): match '[a^bc]' '^'
expecting success:
test-tool wildmatch ipathmatch '^' '[a^bc]'
ok 1239 - ipathmatch: match '^' '[a^bc]'
expecting success:
printf '%s' '^' >expect &&
git --icase-pathspecs ls-files -z -- '[a^bc]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1240 - ipathmatch (via ls-files): match '[a^bc]' '^'
expecting success:
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
Removing expect.err
ok 1241 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-b]' '[a-]b]'
ok 1243 - wildmatch: match '-b]' '[a-]b]'
expecting success:
printf '%s' '-b]' >expect &&
git --glob-pathspecs ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1244 - wildmatch (via ls-files): match '[a-]b]' '-b]'
expecting success:
test-tool wildmatch iwildmatch '-b]' '[a-]b]'
ok 1245 - iwildmatch: match '-b]' '[a-]b]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1246 - iwildmatch (via ls-files): match '[a-]b]' '-b]'
expecting success:
test-tool wildmatch pathmatch '-b]' '[a-]b]'
ok 1247 - pathmatch: match '-b]' '[a-]b]'
expecting success:
printf '%s' '-b]' >expect &&
git ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1248 - pathmatch (via ls-files): match '[a-]b]' '-b]'
expecting success:
test-tool wildmatch ipathmatch '-b]' '[a-]b]'
ok 1249 - ipathmatch: match '-b]' '[a-]b]'
expecting success:
printf '%s' '-b]' >expect &&
git --icase-pathspecs ls-files -z -- '[a-]b]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1250 - ipathmatch (via ls-files): match '[a-]b]' '-b]'
expecting success:
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
Removing expect.err
ok 1251 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '\' '[\]'
ok 1253 - wildmatch: no match '\' '[\]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1254 - wildmatch (via ls-files): no match '[\]' '\'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '\' '[\]'
ok 1255 - iwildmatch: no match '\' '[\]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1256 - iwildmatch (via ls-files): no match '[\]' '\'
expecting success:
test_must_fail test-tool wildmatch pathmatch '\' '[\]'
ok 1257 - pathmatch: no match '\' '[\]'
expecting success:
>expect &&
git ls-files -z -- '[\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1258 - pathmatch (via ls-files): no match '[\]' '\'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '\' '[\]'
ok 1259 - ipathmatch: no match '\' '[\]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1260 - ipathmatch (via ls-files): no match '[\]' '\'
expecting success:
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
Removing expect.err
ok 1261 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '\' '[\\]'
ok 1263 - wildmatch: match '\' '[\\]'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1264 - wildmatch (via ls-files): match '[\\]' '\'
expecting success:
test-tool wildmatch iwildmatch '\' '[\\]'
ok 1265 - iwildmatch: match '\' '[\\]'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1266 - iwildmatch (via ls-files): match '[\\]' '\'
expecting success:
test-tool wildmatch pathmatch '\' '[\\]'
ok 1267 - pathmatch: match '\' '[\\]'
expecting success:
printf '%s' '\' >expect &&
git ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1268 - pathmatch (via ls-files): match '[\\]' '\'
expecting success:
test-tool wildmatch ipathmatch '\' '[\\]'
ok 1269 - ipathmatch: match '\' '[\\]'
expecting success:
printf '%s' '\' >expect &&
git --icase-pathspecs ls-files -z -- '[\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1270 - ipathmatch (via ls-files): match '[\\]' '\'
expecting success:
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
Removing expect.err
ok 1271 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '\' '[!\\]'
ok 1273 - wildmatch: no match '\' '[!\\]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1274 - wildmatch (via ls-files): no match '[!\\]' '\'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '\' '[!\\]'
ok 1275 - iwildmatch: no match '\' '[!\\]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1276 - iwildmatch (via ls-files): no match '[!\\]' '\'
expecting success:
test_must_fail test-tool wildmatch pathmatch '\' '[!\\]'
ok 1277 - pathmatch: no match '\' '[!\\]'
expecting success:
>expect &&
git ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1278 - pathmatch (via ls-files): no match '[!\\]' '\'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '\' '[!\\]'
ok 1279 - ipathmatch: no match '\' '[!\\]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[!\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1280 - ipathmatch (via ls-files): no match '[!\\]' '\'
expecting success:
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
Removing expect.err
ok 1281 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'G' '[A-\\]'
ok 1283 - wildmatch: match 'G' '[A-\\]'
expecting success:
printf '%s' 'G' >expect &&
git --glob-pathspecs ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1284 - wildmatch (via ls-files): match '[A-\\]' 'G'
expecting success:
test-tool wildmatch iwildmatch 'G' '[A-\\]'
ok 1285 - iwildmatch: match 'G' '[A-\\]'
expecting success:
printf '%s' 'G' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1286 - iwildmatch (via ls-files): match '[A-\\]' 'G'
expecting success:
test-tool wildmatch pathmatch 'G' '[A-\\]'
ok 1287 - pathmatch: match 'G' '[A-\\]'
expecting success:
printf '%s' 'G' >expect &&
git ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1288 - pathmatch (via ls-files): match '[A-\\]' 'G'
expecting success:
test-tool wildmatch ipathmatch 'G' '[A-\\]'
ok 1289 - ipathmatch: match 'G' '[A-\\]'
expecting success:
printf '%s' 'G' >expect &&
git --icase-pathspecs ls-files -z -- '[A-\\]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1290 - ipathmatch (via ls-files): match '[A-\\]' 'G'
expecting success:
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
Removing expect.err
ok 1291 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'aaabbb' 'b*a'
ok 1293 - wildmatch: no match 'aaabbb' 'b*a'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1294 - wildmatch (via ls-files): no match 'b*a' 'aaabbb'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'aaabbb' 'b*a'
ok 1295 - iwildmatch: no match 'aaabbb' 'b*a'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1296 - iwildmatch (via ls-files): no match 'b*a' 'aaabbb'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'aaabbb' 'b*a'
ok 1297 - pathmatch: no match 'aaabbb' 'b*a'
expecting success:
>expect &&
git ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1298 - pathmatch (via ls-files): no match 'b*a' 'aaabbb'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'aaabbb' 'b*a'
ok 1299 - ipathmatch: no match 'aaabbb' 'b*a'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'b*a' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1300 - ipathmatch (via ls-files): no match 'b*a' 'aaabbb'
expecting success:
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
Removing expect.err
ok 1301 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'aabcaa' '*ba*'
ok 1303 - wildmatch: no match 'aabcaa' '*ba*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1304 - wildmatch (via ls-files): no match '*ba*' 'aabcaa'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'aabcaa' '*ba*'
ok 1305 - iwildmatch: no match 'aabcaa' '*ba*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1306 - iwildmatch (via ls-files): no match '*ba*' 'aabcaa'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'aabcaa' '*ba*'
ok 1307 - pathmatch: no match 'aabcaa' '*ba*'
expecting success:
>expect &&
git ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1308 - pathmatch (via ls-files): no match '*ba*' 'aabcaa'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'aabcaa' '*ba*'
ok 1309 - ipathmatch: no match 'aabcaa' '*ba*'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '*ba*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1310 - ipathmatch (via ls-files): no match '*ba*' 'aabcaa'
expecting success:
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
Removing expect.err
ok 1311 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ',' '[,]'
ok 1313 - wildmatch: match ',' '[,]'
expecting success:
printf '%s' ',' >expect &&
git --glob-pathspecs ls-files -z -- '[,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1314 - wildmatch (via ls-files): match '[,]' ','
expecting success:
test-tool wildmatch iwildmatch ',' '[,]'
ok 1315 - iwildmatch: match ',' '[,]'
expecting success:
printf '%s' ',' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1316 - iwildmatch (via ls-files): match '[,]' ','
expecting success:
test-tool wildmatch pathmatch ',' '[,]'
ok 1317 - pathmatch: match ',' '[,]'
expecting success:
printf '%s' ',' >expect &&
git ls-files -z -- '[,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1318 - pathmatch (via ls-files): match '[,]' ','
expecting success:
test-tool wildmatch ipathmatch ',' '[,]'
ok 1319 - ipathmatch: match ',' '[,]'
expecting success:
printf '%s' ',' >expect &&
git --icase-pathspecs ls-files -z -- '[,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1320 - ipathmatch (via ls-files): match '[,]' ','
expecting success:
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
Removing expect.err
ok 1321 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ',' '[\\,]'
ok 1323 - wildmatch: match ',' '[\\,]'
expecting success:
printf '%s' ',' >expect &&
git --glob-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1324 - wildmatch (via ls-files): match '[\\,]' ','
expecting success:
test-tool wildmatch iwildmatch ',' '[\\,]'
ok 1325 - iwildmatch: match ',' '[\\,]'
expecting success:
printf '%s' ',' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1326 - iwildmatch (via ls-files): match '[\\,]' ','
expecting success:
test-tool wildmatch pathmatch ',' '[\\,]'
ok 1327 - pathmatch: match ',' '[\\,]'
expecting success:
printf '%s' ',' >expect &&
git ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1328 - pathmatch (via ls-files): match '[\\,]' ','
expecting success:
test-tool wildmatch ipathmatch ',' '[\\,]'
ok 1329 - ipathmatch: match ',' '[\\,]'
expecting success:
printf '%s' ',' >expect &&
git --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1330 - ipathmatch (via ls-files): match '[\\,]' ','
expecting success:
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
Removing expect.err
ok 1331 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '\' '[\\,]'
ok 1333 - wildmatch: match '\' '[\\,]'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1334 - wildmatch (via ls-files): match '[\\,]' '\'
expecting success:
test-tool wildmatch iwildmatch '\' '[\\,]'
ok 1335 - iwildmatch: match '\' '[\\,]'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1336 - iwildmatch (via ls-files): match '[\\,]' '\'
expecting success:
test-tool wildmatch pathmatch '\' '[\\,]'
ok 1337 - pathmatch: match '\' '[\\,]'
expecting success:
printf '%s' '\' >expect &&
git ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1338 - pathmatch (via ls-files): match '[\\,]' '\'
expecting success:
test-tool wildmatch ipathmatch '\' '[\\,]'
ok 1339 - ipathmatch: match '\' '[\\,]'
expecting success:
printf '%s' '\' >expect &&
git --icase-pathspecs ls-files -z -- '[\\,]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1340 - ipathmatch (via ls-files): match '[\\,]' '\'
expecting success:
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
Removing expect.err
ok 1341 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '-' '[,-.]'
ok 1343 - wildmatch: match '-' '[,-.]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1344 - wildmatch (via ls-files): match '[,-.]' '-'
expecting success:
test-tool wildmatch iwildmatch '-' '[,-.]'
ok 1345 - iwildmatch: match '-' '[,-.]'
expecting success:
printf '%s' '-' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1346 - iwildmatch (via ls-files): match '[,-.]' '-'
expecting success:
test-tool wildmatch pathmatch '-' '[,-.]'
ok 1347 - pathmatch: match '-' '[,-.]'
expecting success:
printf '%s' '-' >expect &&
git ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1348 - pathmatch (via ls-files): match '[,-.]' '-'
expecting success:
test-tool wildmatch ipathmatch '-' '[,-.]'
ok 1349 - ipathmatch: match '-' '[,-.]'
expecting success:
printf '%s' '-' >expect &&
git --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1350 - ipathmatch (via ls-files): match '[,-.]' '-'
expecting success:
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
Removing expect.err
ok 1351 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '+' '[,-.]'
ok 1353 - wildmatch: no match '+' '[,-.]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1354 - wildmatch (via ls-files): no match '[,-.]' '+'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '+' '[,-.]'
ok 1355 - iwildmatch: no match '+' '[,-.]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1356 - iwildmatch (via ls-files): no match '[,-.]' '+'
expecting success:
test_must_fail test-tool wildmatch pathmatch '+' '[,-.]'
ok 1357 - pathmatch: no match '+' '[,-.]'
expecting success:
>expect &&
git ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1358 - pathmatch (via ls-files): no match '[,-.]' '+'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '+' '[,-.]'
ok 1359 - ipathmatch: no match '+' '[,-.]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1360 - ipathmatch (via ls-files): no match '[,-.]' '+'
expecting success:
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
Removing expect.err
ok 1361 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '-.]' '[,-.]'
ok 1363 - wildmatch: no match '-.]' '[,-.]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1364 - wildmatch (via ls-files): no match '[,-.]' '-.]'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '-.]' '[,-.]'
ok 1365 - iwildmatch: no match '-.]' '[,-.]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1366 - iwildmatch (via ls-files): no match '[,-.]' '-.]'
expecting success:
test_must_fail test-tool wildmatch pathmatch '-.]' '[,-.]'
ok 1367 - pathmatch: no match '-.]' '[,-.]'
expecting success:
>expect &&
git ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1368 - pathmatch (via ls-files): no match '[,-.]' '-.]'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '-.]' '[,-.]'
ok 1369 - ipathmatch: no match '-.]' '[,-.]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[,-.]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1370 - ipathmatch (via ls-files): no match '[,-.]' '-.]'
expecting success:
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
Removing expect.err
ok 1371 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '2' '[\1-\3]'
ok 1373 - wildmatch: match '2' '[\1-\3]'
expecting success:
printf '%s' '2' >expect &&
git --glob-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1374 - wildmatch (via ls-files): match '[\1-\3]' '2'
expecting success:
test-tool wildmatch iwildmatch '2' '[\1-\3]'
ok 1375 - iwildmatch: match '2' '[\1-\3]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1376 - iwildmatch (via ls-files): match '[\1-\3]' '2'
expecting success:
test-tool wildmatch pathmatch '2' '[\1-\3]'
ok 1377 - pathmatch: match '2' '[\1-\3]'
expecting success:
printf '%s' '2' >expect &&
git ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1378 - pathmatch (via ls-files): match '[\1-\3]' '2'
expecting success:
test-tool wildmatch ipathmatch '2' '[\1-\3]'
ok 1379 - ipathmatch: match '2' '[\1-\3]'
expecting success:
printf '%s' '2' >expect &&
git --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1380 - ipathmatch (via ls-files): match '[\1-\3]' '2'
expecting success:
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
Removing expect.err
ok 1381 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '3' '[\1-\3]'
ok 1383 - wildmatch: match '3' '[\1-\3]'
expecting success:
printf '%s' '3' >expect &&
git --glob-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1384 - wildmatch (via ls-files): match '[\1-\3]' '3'
expecting success:
test-tool wildmatch iwildmatch '3' '[\1-\3]'
ok 1385 - iwildmatch: match '3' '[\1-\3]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1386 - iwildmatch (via ls-files): match '[\1-\3]' '3'
expecting success:
test-tool wildmatch pathmatch '3' '[\1-\3]'
ok 1387 - pathmatch: match '3' '[\1-\3]'
expecting success:
printf '%s' '3' >expect &&
git ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1388 - pathmatch (via ls-files): match '[\1-\3]' '3'
expecting success:
test-tool wildmatch ipathmatch '3' '[\1-\3]'
ok 1389 - ipathmatch: match '3' '[\1-\3]'
expecting success:
printf '%s' '3' >expect &&
git --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1390 - ipathmatch (via ls-files): match '[\1-\3]' '3'
expecting success:
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
Removing expect.err
ok 1391 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '4' '[\1-\3]'
ok 1393 - wildmatch: no match '4' '[\1-\3]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1394 - wildmatch (via ls-files): no match '[\1-\3]' '4'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '4' '[\1-\3]'
ok 1395 - iwildmatch: no match '4' '[\1-\3]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1396 - iwildmatch (via ls-files): no match '[\1-\3]' '4'
expecting success:
test_must_fail test-tool wildmatch pathmatch '4' '[\1-\3]'
ok 1397 - pathmatch: no match '4' '[\1-\3]'
expecting success:
>expect &&
git ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1398 - pathmatch (via ls-files): no match '[\1-\3]' '4'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '4' '[\1-\3]'
ok 1399 - ipathmatch: no match '4' '[\1-\3]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[\1-\3]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1400 - ipathmatch (via ls-files): no match '[\1-\3]' '4'
expecting success:
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
Removing expect.err
ok 1401 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '\' '[[-\]]'
ok 1403 - wildmatch: match '\' '[[-\]]'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1404 - wildmatch (via ls-files): match '[[-\]]' '\'
expecting success:
test-tool wildmatch iwildmatch '\' '[[-\]]'
ok 1405 - iwildmatch: match '\' '[[-\]]'
expecting success:
printf '%s' '\' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1406 - iwildmatch (via ls-files): match '[[-\]]' '\'
expecting success:
test-tool wildmatch pathmatch '\' '[[-\]]'
ok 1407 - pathmatch: match '\' '[[-\]]'
expecting success:
printf '%s' '\' >expect &&
git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1408 - pathmatch (via ls-files): match '[[-\]]' '\'
expecting success:
test-tool wildmatch ipathmatch '\' '[[-\]]'
ok 1409 - ipathmatch: match '\' '[[-\]]'
expecting success:
printf '%s' '\' >expect &&
git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1410 - ipathmatch (via ls-files): match '[[-\]]' '\'
expecting success:
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
Removing expect.err
ok 1411 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch '[' '[[-\]]'
ok 1413 - wildmatch: match '[' '[[-\]]'
expecting success:
printf '%s' '[' >expect &&
git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1414 - wildmatch (via ls-files): match '[[-\]]' '['
expecting success:
test-tool wildmatch iwildmatch '[' '[[-\]]'
ok 1415 - iwildmatch: match '[' '[[-\]]'
expecting success:
printf '%s' '[' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1416 - iwildmatch (via ls-files): match '[[-\]]' '['
expecting success:
test-tool wildmatch pathmatch '[' '[[-\]]'
ok 1417 - pathmatch: match '[' '[[-\]]'
expecting success:
printf '%s' '[' >expect &&
git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1418 - pathmatch (via ls-files): match '[[-\]]' '['
expecting success:
test-tool wildmatch ipathmatch '[' '[[-\]]'
ok 1419 - ipathmatch: match '[' '[[-\]]'
expecting success:
printf '%s' '[' >expect &&
git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1420 - ipathmatch (via ls-files): match '[[-\]]' '['
expecting success:
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
Removing expect.err
ok 1421 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch ']' '[[-\]]'
ok 1423 - wildmatch: match ']' '[[-\]]'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1424 - wildmatch (via ls-files): match '[[-\]]' ']'
expecting success:
test-tool wildmatch iwildmatch ']' '[[-\]]'
ok 1425 - iwildmatch: match ']' '[[-\]]'
expecting success:
printf '%s' ']' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1426 - iwildmatch (via ls-files): match '[[-\]]' ']'
expecting success:
test-tool wildmatch pathmatch ']' '[[-\]]'
ok 1427 - pathmatch: match ']' '[[-\]]'
expecting success:
printf '%s' ']' >expect &&
git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1428 - pathmatch (via ls-files): match '[[-\]]' ']'
expecting success:
test-tool wildmatch ipathmatch ']' '[[-\]]'
ok 1429 - ipathmatch: match ']' '[[-\]]'
expecting success:
printf '%s' ']' >expect &&
git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1430 - ipathmatch (via ls-files): match '[[-\]]' ']'
expecting success:
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
Removing expect.err
ok 1431 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch '-' '[[-\]]'
ok 1433 - wildmatch: no match '-' '[[-\]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1434 - wildmatch (via ls-files): no match '[[-\]]' '-'
expecting success:
test_must_fail test-tool wildmatch iwildmatch '-' '[[-\]]'
ok 1435 - iwildmatch: no match '-' '[[-\]]'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1436 - iwildmatch (via ls-files): no match '[[-\]]' '-'
expecting success:
test_must_fail test-tool wildmatch pathmatch '-' '[[-\]]'
ok 1437 - pathmatch: no match '-' '[[-\]]'
expecting success:
>expect &&
git ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1438 - pathmatch (via ls-files): no match '[[-\]]' '-'
expecting success:
test_must_fail test-tool wildmatch ipathmatch '-' '[[-\]]'
ok 1439 - ipathmatch: no match '-' '[[-\]]'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '[[-\]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1440 - ipathmatch (via ls-files): no match '[[-\]]' '-'
expecting success:
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
Removing expect.err
ok 1441 - cleanup after previous file test
expecting success:
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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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
Removing expect.err
ok 1451 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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
Removing expect.err
ok 1461 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git --icase-pathspecs ls-files -z -- '-*-*-*-*-*-*-12-*-*-*-m-*-*-*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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
Removing expect.err
ok 1471 - cleanup after previous file test
expecting success:
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:
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: 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:
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: 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:
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: 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:
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: 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:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 1481 - cleanup after previous file test
expecting success:
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:
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: 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:
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: 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:
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: 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:
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: 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:
if test -e .git/created_test_file
then
git reset &&
git clean -df
fi
ok 1491 - cleanup after previous file test
expecting success:
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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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:
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 &&
>expect.err &&
test_cmp expect.err 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:
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
Removing expect.err
ok 1501 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>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 &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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:
>expect &&
git --icase-pathspecs ls-files -z -- '**/*a*b*g*n*t' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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:
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
Removing expect.err
ok 1511 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' '*/*/*'
ok 1513 - wildmatch: no match 'foo' '*/*/*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1514 - wildmatch (via ls-files): no match '*/*/*' 'foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo' '*/*/*'
ok 1515 - iwildmatch: no match 'foo' '*/*/*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1516 - iwildmatch (via ls-files): no match '*/*/*' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' '*/*/*'
ok 1517 - pathmatch: no match 'foo' '*/*/*'
expecting success:
>expect &&
git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1518 - pathmatch (via ls-files): no match '*/*/*' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' '*/*/*'
ok 1519 - ipathmatch: no match 'foo' '*/*/*'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1520 - ipathmatch (via ls-files): no match '*/*/*' 'foo'
expecting success:
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 expect.err
Removing foo
ok 1521 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar' '*/*/*'
ok 1523 - wildmatch: no match 'foo/bar' '*/*/*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1524 - wildmatch (via ls-files): no match '*/*/*' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar' '*/*/*'
ok 1525 - iwildmatch: no match 'foo/bar' '*/*/*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1526 - iwildmatch (via ls-files): no match '*/*/*' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo/bar' '*/*/*'
ok 1527 - pathmatch: no match 'foo/bar' '*/*/*'
expecting success:
>expect &&
git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1528 - pathmatch (via ls-files): no match '*/*/*' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo/bar' '*/*/*'
ok 1529 - ipathmatch: no match 'foo/bar' '*/*/*'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1530 - ipathmatch (via ls-files): no match '*/*/*' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 1531 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bba/arr' '*/*/*'
ok 1533 - wildmatch: match 'foo/bba/arr' '*/*/*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1534 - wildmatch (via ls-files): match '*/*/*' 'foo/bba/arr'
expecting success:
test-tool wildmatch iwildmatch 'foo/bba/arr' '*/*/*'
ok 1535 - iwildmatch: match 'foo/bba/arr' '*/*/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1536 - iwildmatch (via ls-files): match '*/*/*' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' '*/*/*'
ok 1537 - pathmatch: match 'foo/bba/arr' '*/*/*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1538 - pathmatch (via ls-files): match '*/*/*' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' '*/*/*'
ok 1539 - ipathmatch: match 'foo/bba/arr' '*/*/*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1540 - ipathmatch (via ls-files): match '*/*/*' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1541 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bb/aa/rr' '*/*/*'
ok 1543 - wildmatch: no match 'foo/bb/aa/rr' '*/*/*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1544 - wildmatch (via ls-files): no match '*/*/*' 'foo/bb/aa/rr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bb/aa/rr' '*/*/*'
ok 1545 - iwildmatch: no match 'foo/bb/aa/rr' '*/*/*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1546 - iwildmatch (via ls-files): no match '*/*/*' 'foo/bb/aa/rr'
expecting success:
test-tool wildmatch pathmatch 'foo/bb/aa/rr' '*/*/*'
ok 1547 - pathmatch: match 'foo/bb/aa/rr' '*/*/*'
expecting success:
printf '%s' 'foo/bb/aa/rr' >expect &&
git ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1548 - pathmatch (via ls-files): match '*/*/*' 'foo/bb/aa/rr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bb/aa/rr' '*/*/*'
ok 1549 - ipathmatch: match 'foo/bb/aa/rr' '*/*/*'
expecting success:
printf '%s' 'foo/bb/aa/rr' >expect &&
git --icase-pathspecs ls-files -z -- '*/*/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1550 - ipathmatch (via ls-files): match '*/*/*' 'foo/bb/aa/rr'
expecting success:
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 expect.err
Removing foo/
ok 1551 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bb/aa/rr' '**/**/**'
ok 1553 - wildmatch: match 'foo/bb/aa/rr' '**/**/**'
expecting success:
printf '%s' 'foo/bb/aa/rr' >expect &&
git --glob-pathspecs ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1554 - wildmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'
expecting success:
test-tool wildmatch iwildmatch 'foo/bb/aa/rr' '**/**/**'
ok 1555 - iwildmatch: match 'foo/bb/aa/rr' '**/**/**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1556 - iwildmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'
expecting success:
test-tool wildmatch pathmatch 'foo/bb/aa/rr' '**/**/**'
ok 1557 - pathmatch: match 'foo/bb/aa/rr' '**/**/**'
expecting success:
printf '%s' 'foo/bb/aa/rr' >expect &&
git ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1558 - pathmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bb/aa/rr' '**/**/**'
ok 1559 - ipathmatch: match 'foo/bb/aa/rr' '**/**/**'
expecting success:
printf '%s' 'foo/bb/aa/rr' >expect &&
git --icase-pathspecs ls-files -z -- '**/**/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1560 - ipathmatch (via ls-files): match '**/**/**' 'foo/bb/aa/rr'
expecting success:
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 expect.err
Removing foo/
ok 1561 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'abcXdefXghi' '*X*i'
ok 1563 - wildmatch: match 'abcXdefXghi' '*X*i'
expecting success:
printf '%s' 'abcXdefXghi' >expect &&
git --glob-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1564 - wildmatch (via ls-files): match '*X*i' 'abcXdefXghi'
expecting success:
test-tool wildmatch iwildmatch 'abcXdefXghi' '*X*i'
ok 1565 - iwildmatch: match 'abcXdefXghi' '*X*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1566 - iwildmatch (via ls-files): match '*X*i' 'abcXdefXghi'
expecting success:
test-tool wildmatch pathmatch 'abcXdefXghi' '*X*i'
ok 1567 - pathmatch: match 'abcXdefXghi' '*X*i'
expecting success:
printf '%s' 'abcXdefXghi' >expect &&
git ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1568 - pathmatch (via ls-files): match '*X*i' 'abcXdefXghi'
expecting success:
test-tool wildmatch ipathmatch 'abcXdefXghi' '*X*i'
ok 1569 - ipathmatch: match 'abcXdefXghi' '*X*i'
expecting success:
printf '%s' 'abcXdefXghi' >expect &&
git --icase-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1570 - ipathmatch (via ls-files): match '*X*i' 'abcXdefXghi'
expecting success:
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
Removing expect.err
ok 1571 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1574 - wildmatch (via ls-files): no match '*X*i' 'ab/cXd/efXg/hi'
expecting success:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1576 - iwildmatch (via ls-files): no match '*X*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '*X*i'
ok 1577 - pathmatch: match 'ab/cXd/efXg/hi' '*X*i'
expecting success:
printf '%s' 'ab/cXd/efXg/hi' >expect &&
git ls-files -z -- '*X*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1578 - pathmatch (via ls-files): match '*X*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '*X*i'
ok 1579 - ipathmatch: match 'ab/cXd/efXg/hi' '*X*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1580 - ipathmatch (via ls-files): match '*X*i' 'ab/cXd/efXg/hi'
expecting success:
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
Removing expect.err
ok 1581 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
ok 1583 - wildmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1584 - wildmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch iwildmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
ok 1585 - iwildmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1586 - iwildmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
ok 1587 - pathmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'
expecting success:
printf '%s' 'ab/cXd/efXg/hi' >expect &&
git ls-files -z -- '*/*X*/*/*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1588 - pathmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '*/*X*/*/*i'
ok 1589 - ipathmatch: match 'ab/cXd/efXg/hi' '*/*X*/*/*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1590 - ipathmatch (via ls-files): match '*/*X*/*/*i' 'ab/cXd/efXg/hi'
expecting success:
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
Removing expect.err
ok 1591 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
ok 1593 - wildmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1594 - wildmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch iwildmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
ok 1595 - iwildmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1596 - iwildmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
ok 1597 - pathmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'
expecting success:
printf '%s' 'ab/cXd/efXg/hi' >expect &&
git ls-files -z -- '**/*X*/**/*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1598 - pathmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '**/*X*/**/*i'
ok 1599 - ipathmatch: match 'ab/cXd/efXg/hi' '**/*X*/**/*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1600 - ipathmatch (via ls-files): match '**/*X*/**/*i' 'ab/cXd/efXg/hi'
expecting success:
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
Removing expect.err
ok 1601 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo' 'fo'
ok 1603 - wildmatch: no match 'foo' 'fo'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'fo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1604 - wildmatch (via ls-files): no match 'fo' 'foo'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo' 'fo'
ok 1605 - iwildmatch: no match 'foo' 'fo'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'fo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1606 - iwildmatch (via ls-files): no match 'fo' 'foo'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo' 'fo'
ok 1607 - pathmatch: no match 'foo' 'fo'
expecting success:
>expect &&
git ls-files -z -- 'fo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1608 - pathmatch (via ls-files): no match 'fo' 'foo'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo' 'fo'
ok 1609 - ipathmatch: no match 'foo' 'fo'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'fo' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1610 - ipathmatch (via ls-files): no match 'fo' 'foo'
expecting success:
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 expect.err
Removing foo
ok 1611 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bar' 'foo/bar'
ok 1613 - wildmatch: match 'foo/bar' 'foo/bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --glob-pathspecs ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1614 - wildmatch (via ls-files): match 'foo/bar' 'foo/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/bar' 'foo/bar'
ok 1615 - iwildmatch: match 'foo/bar' 'foo/bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1616 - iwildmatch (via ls-files): match 'foo/bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo/bar'
ok 1617 - pathmatch: match 'foo/bar' 'foo/bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1618 - pathmatch (via ls-files): match 'foo/bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo/bar'
ok 1619 - ipathmatch: match 'foo/bar' 'foo/bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo/bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1620 - ipathmatch (via ls-files): match 'foo/bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 1621 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bar' 'foo/*'
ok 1623 - wildmatch: match 'foo/bar' 'foo/*'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --glob-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1624 - wildmatch (via ls-files): match 'foo/*' 'foo/bar'
expecting success:
test-tool wildmatch iwildmatch 'foo/bar' 'foo/*'
ok 1625 - iwildmatch: match 'foo/bar' 'foo/*'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1626 - iwildmatch (via ls-files): match 'foo/*' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo/*'
ok 1627 - pathmatch: match 'foo/bar' 'foo/*'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1628 - pathmatch (via ls-files): match 'foo/*' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo/*'
ok 1629 - ipathmatch: match 'foo/bar' 'foo/*'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1630 - ipathmatch (via ls-files): match 'foo/*' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 1631 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/*'
ok 1633 - wildmatch: no match 'foo/bba/arr' 'foo/*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1634 - wildmatch (via ls-files): no match 'foo/*' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/*'
ok 1635 - iwildmatch: no match 'foo/bba/arr' 'foo/*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1636 - iwildmatch (via ls-files): no match 'foo/*' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/*'
ok 1637 - pathmatch: match 'foo/bba/arr' 'foo/*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1638 - pathmatch (via ls-files): match 'foo/*' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/*'
ok 1639 - ipathmatch: match 'foo/bba/arr' 'foo/*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --icase-pathspecs ls-files -z -- 'foo/*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1640 - ipathmatch (via ls-files): match 'foo/*' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1641 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/**'
ok 1643 - wildmatch: match 'foo/bba/arr' 'foo/**'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --glob-pathspecs ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1644 - wildmatch (via ls-files): match 'foo/**' 'foo/bba/arr'
expecting success:
test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/**'
ok 1645 - iwildmatch: match 'foo/bba/arr' 'foo/**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1646 - iwildmatch (via ls-files): match 'foo/**' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/**'
ok 1647 - pathmatch: match 'foo/bba/arr' 'foo/**'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1648 - pathmatch (via ls-files): match 'foo/**' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/**'
ok 1649 - ipathmatch: match 'foo/bba/arr' 'foo/**'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --icase-pathspecs ls-files -z -- 'foo/**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1650 - ipathmatch (via ls-files): match 'foo/**' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1651 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo*'
ok 1653 - wildmatch: no match 'foo/bba/arr' 'foo*'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1654 - wildmatch (via ls-files): no match 'foo*' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo*'
ok 1655 - iwildmatch: no match 'foo/bba/arr' 'foo*'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1656 - iwildmatch (via ls-files): no match 'foo*' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' 'foo*'
ok 1657 - pathmatch: match 'foo/bba/arr' 'foo*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1658 - pathmatch (via ls-files): match 'foo*' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo*'
ok 1659 - ipathmatch: match 'foo/bba/arr' 'foo*'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --icase-pathspecs ls-files -z -- 'foo*' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1660 - ipathmatch (via ls-files): match 'foo*' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1661 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo**'
ok 1663 - wildmatch: no match 'foo/bba/arr' 'foo**'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --glob-pathspecs ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1664 - wildmatch (via ls-files): match 'foo**' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo**'
ok 1665 - iwildmatch: no match 'foo/bba/arr' 'foo**'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1666 - iwildmatch (via ls-files): match 'foo**' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' 'foo**'
ok 1667 - pathmatch: match 'foo/bba/arr' 'foo**'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1668 - pathmatch (via ls-files): match 'foo**' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo**'
ok 1669 - ipathmatch: match 'foo/bba/arr' 'foo**'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git --icase-pathspecs ls-files -z -- 'foo**' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1670 - ipathmatch (via ls-files): match 'foo**' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1671 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/*arr'
ok 1673 - wildmatch: no match 'foo/bba/arr' 'foo/*arr'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1674 - wildmatch (via ls-files): no match 'foo/*arr' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/*arr'
ok 1675 - iwildmatch: no match 'foo/bba/arr' 'foo/*arr'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1676 - iwildmatch (via ls-files): no match 'foo/*arr' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/*arr'
ok 1677 - pathmatch: match 'foo/bba/arr' 'foo/*arr'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- 'foo/*arr' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1678 - pathmatch (via ls-files): match 'foo/*arr' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/*arr'
ok 1679 - ipathmatch: match 'foo/bba/arr' 'foo/*arr'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1680 - ipathmatch (via ls-files): match 'foo/*arr' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1681 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/**arr'
ok 1683 - wildmatch: no match 'foo/bba/arr' 'foo/**arr'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1684 - wildmatch (via ls-files): no match 'foo/**arr' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/**arr'
ok 1685 - iwildmatch: no match 'foo/bba/arr' 'foo/**arr'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1686 - iwildmatch (via ls-files): no match 'foo/**arr' 'foo/bba/arr'
expecting success:
test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/**arr'
ok 1687 - pathmatch: match 'foo/bba/arr' 'foo/**arr'
expecting success:
printf '%s' 'foo/bba/arr' >expect &&
git ls-files -z -- 'foo/**arr' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1688 - pathmatch (via ls-files): match 'foo/**arr' 'foo/bba/arr'
expecting success:
test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/**arr'
ok 1689 - ipathmatch: match 'foo/bba/arr' 'foo/**arr'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1690 - ipathmatch (via ls-files): match 'foo/**arr' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1691 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/*z'
ok 1693 - wildmatch: no match 'foo/bba/arr' 'foo/*z'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1694 - wildmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/*z'
ok 1695 - iwildmatch: no match 'foo/bba/arr' 'foo/*z'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1696 - iwildmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/*z'
ok 1697 - pathmatch: no match 'foo/bba/arr' 'foo/*z'
expecting success:
>expect &&
git ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1698 - pathmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/*z'
ok 1699 - ipathmatch: no match 'foo/bba/arr' 'foo/*z'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'foo/*z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1700 - ipathmatch (via ls-files): no match 'foo/*z' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1701 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bba/arr' 'foo/**z'
ok 1703 - wildmatch: no match 'foo/bba/arr' 'foo/**z'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1704 - wildmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bba/arr' 'foo/**z'
ok 1705 - iwildmatch: no match 'foo/bba/arr' 'foo/**z'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1706 - iwildmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'foo/bba/arr' 'foo/**z'
ok 1707 - pathmatch: no match 'foo/bba/arr' 'foo/**z'
expecting success:
>expect &&
git ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1708 - pathmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'
expecting success:
test_must_fail test-tool wildmatch ipathmatch 'foo/bba/arr' 'foo/**z'
ok 1709 - ipathmatch: no match 'foo/bba/arr' 'foo/**z'
expecting success:
>expect &&
git --icase-pathspecs ls-files -z -- 'foo/**z' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1710 - ipathmatch (via ls-files): no match 'foo/**z' 'foo/bba/arr'
expecting success:
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 expect.err
Removing foo/
ok 1711 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo?bar'
ok 1713 - wildmatch: no match 'foo/bar' 'foo?bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1714 - wildmatch (via ls-files): no match 'foo?bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo?bar'
ok 1715 - iwildmatch: no match 'foo/bar' 'foo?bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1716 - iwildmatch (via ls-files): no match 'foo?bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo?bar'
ok 1717 - pathmatch: match 'foo/bar' 'foo?bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1718 - pathmatch (via ls-files): match 'foo?bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo?bar'
ok 1719 - ipathmatch: match 'foo/bar' 'foo?bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo?bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1720 - ipathmatch (via ls-files): match 'foo?bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 1721 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'foo/bar' 'foo[/]bar'
ok 1723 - wildmatch: no match 'foo/bar' 'foo[/]bar'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1724 - wildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'
expecting success:
test_must_fail test-tool wildmatch iwildmatch 'foo/bar' 'foo[/]bar'
ok 1725 - iwildmatch: no match 'foo/bar' 'foo[/]bar'
expecting success:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1726 - iwildmatch (via ls-files): no match 'foo[/]bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo[/]bar'
ok 1727 - pathmatch: match 'foo/bar' 'foo[/]bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1728 - pathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo[/]bar'
ok 1729 - ipathmatch: match 'foo/bar' 'foo[/]bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git --icase-pathspecs ls-files -z -- 'foo[/]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1730 - ipathmatch (via ls-files): match 'foo[/]bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 1731 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1734 - wildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'
expecting success:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1736 - iwildmatch (via ls-files): no match 'foo[^a-z]bar' 'foo/bar'
expecting success:
test-tool wildmatch pathmatch 'foo/bar' 'foo[^a-z]bar'
ok 1737 - pathmatch: match 'foo/bar' 'foo[^a-z]bar'
expecting success:
printf '%s' 'foo/bar' >expect &&
git ls-files -z -- 'foo[^a-z]bar' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1738 - pathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'
expecting success:
test-tool wildmatch ipathmatch 'foo/bar' 'foo[^a-z]bar'
ok 1739 - ipathmatch: match 'foo/bar' 'foo[^a-z]bar'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1740 - ipathmatch (via ls-files): match 'foo[^a-z]bar' 'foo/bar'
expecting success:
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 expect.err
Removing foo/
ok 1741 - cleanup after previous file test
expecting success:
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:
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:
>expect &&
git --glob-pathspecs ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1744 - wildmatch (via ls-files): no match '*Xg*i' 'ab/cXd/efXg/hi'
expecting success:
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:
>expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1746 - iwildmatch (via ls-files): no match '*Xg*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch pathmatch 'ab/cXd/efXg/hi' '*Xg*i'
ok 1747 - pathmatch: match 'ab/cXd/efXg/hi' '*Xg*i'
expecting success:
printf '%s' 'ab/cXd/efXg/hi' >expect &&
git ls-files -z -- '*Xg*i' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1748 - pathmatch (via ls-files): match '*Xg*i' 'ab/cXd/efXg/hi'
expecting success:
test-tool wildmatch ipathmatch 'ab/cXd/efXg/hi' '*Xg*i'
ok 1749 - ipathmatch: match 'ab/cXd/efXg/hi' '*Xg*i'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1750 - ipathmatch (via ls-files): match '*Xg*i' 'ab/cXd/efXg/hi'
expecting success:
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
Removing expect.err
ok 1751 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'a' '[A-Z]'
ok 1753 - wildmatch: no match 'a' '[A-Z]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1754 - wildmatch (via ls-files): no match '[A-Z]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[A-Z]'
ok 1755 - iwildmatch: match 'a' '[A-Z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1756 - iwildmatch (via ls-files): match '[A-Z]' 'a'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'a' '[A-Z]'
ok 1757 - pathmatch: no match 'a' '[A-Z]'
expecting success:
>expect &&
git ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1758 - pathmatch (via ls-files): no match '[A-Z]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[A-Z]'
ok 1759 - ipathmatch: match 'a' '[A-Z]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1760 - ipathmatch (via ls-files): match '[A-Z]' 'a'
expecting success:
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
Removing expect.err
ok 1761 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'A' '[A-Z]'
ok 1763 - wildmatch: match 'A' '[A-Z]'
expecting success:
printf '%s' 'A' >expect &&
git --glob-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1764 - wildmatch (via ls-files): match '[A-Z]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[A-Z]'
ok 1765 - iwildmatch: match 'A' '[A-Z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1766 - iwildmatch (via ls-files): match '[A-Z]' 'A'
expecting success:
test-tool wildmatch pathmatch 'A' '[A-Z]'
ok 1767 - pathmatch: match 'A' '[A-Z]'
expecting success:
printf '%s' 'A' >expect &&
git ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1768 - pathmatch (via ls-files): match '[A-Z]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[A-Z]'
ok 1769 - ipathmatch: match 'A' '[A-Z]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[A-Z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1770 - ipathmatch (via ls-files): match '[A-Z]' 'A'
expecting success:
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
Removing expect.err
ok 1771 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'A' '[a-z]'
ok 1773 - wildmatch: no match 'A' '[a-z]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1774 - wildmatch (via ls-files): no match '[a-z]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[a-z]'
ok 1775 - iwildmatch: match 'A' '[a-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1776 - iwildmatch (via ls-files): match '[a-z]' 'A'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'A' '[a-z]'
ok 1777 - pathmatch: no match 'A' '[a-z]'
expecting success:
>expect &&
git ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1778 - pathmatch (via ls-files): no match '[a-z]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[a-z]'
ok 1779 - ipathmatch: match 'A' '[a-z]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1780 - ipathmatch (via ls-files): match '[a-z]' 'A'
expecting success:
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
Removing expect.err
ok 1781 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a' '[a-z]'
ok 1783 - wildmatch: match 'a' '[a-z]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1784 - wildmatch (via ls-files): match '[a-z]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[a-z]'
ok 1785 - iwildmatch: match 'a' '[a-z]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1786 - iwildmatch (via ls-files): match '[a-z]' 'a'
expecting success:
test-tool wildmatch pathmatch 'a' '[a-z]'
ok 1787 - pathmatch: match 'a' '[a-z]'
expecting success:
printf '%s' 'a' >expect &&
git ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1788 - pathmatch (via ls-files): match '[a-z]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[a-z]'
ok 1789 - ipathmatch: match 'a' '[a-z]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[a-z]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1790 - ipathmatch (via ls-files): match '[a-z]' 'a'
expecting success:
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
Removing expect.err
ok 1791 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'a' '[[:upper:]]'
ok 1793 - wildmatch: no match 'a' '[[:upper:]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1794 - wildmatch (via ls-files): no match '[[:upper:]]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[[:upper:]]'
ok 1795 - iwildmatch: match 'a' '[[:upper:]]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1796 - iwildmatch (via ls-files): match '[[:upper:]]' 'a'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'a' '[[:upper:]]'
ok 1797 - pathmatch: no match 'a' '[[:upper:]]'
expecting success:
>expect &&
git ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1798 - pathmatch (via ls-files): no match '[[:upper:]]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[[:upper:]]'
ok 1799 - ipathmatch: match 'a' '[[:upper:]]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1800 - ipathmatch (via ls-files): match '[[:upper:]]' 'a'
expecting success:
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
Removing expect.err
ok 1801 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'A' '[[:upper:]]'
ok 1803 - wildmatch: match 'A' '[[:upper:]]'
expecting success:
printf '%s' 'A' >expect &&
git --glob-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1804 - wildmatch (via ls-files): match '[[:upper:]]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[[:upper:]]'
ok 1805 - iwildmatch: match 'A' '[[:upper:]]'
expecting success:
printf '%s' 'A' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1806 - iwildmatch (via ls-files): match '[[:upper:]]' 'A'
expecting success:
test-tool wildmatch pathmatch 'A' '[[:upper:]]'
ok 1807 - pathmatch: match 'A' '[[:upper:]]'
expecting success:
printf '%s' 'A' >expect &&
git ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1808 - pathmatch (via ls-files): match '[[:upper:]]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[[:upper:]]'
ok 1809 - ipathmatch: match 'A' '[[:upper:]]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[[:upper:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1810 - ipathmatch (via ls-files): match '[[:upper:]]' 'A'
expecting success:
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
Removing expect.err
ok 1811 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'A' '[[:lower:]]'
ok 1813 - wildmatch: no match 'A' '[[:lower:]]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1814 - wildmatch (via ls-files): no match '[[:lower:]]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[[:lower:]]'
ok 1815 - iwildmatch: match 'A' '[[:lower:]]'
expecting success:
printf '%s' 'A' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1816 - iwildmatch (via ls-files): match '[[:lower:]]' 'A'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'A' '[[:lower:]]'
ok 1817 - pathmatch: no match 'A' '[[:lower:]]'
expecting success:
>expect &&
git ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1818 - pathmatch (via ls-files): no match '[[:lower:]]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[[:lower:]]'
ok 1819 - ipathmatch: match 'A' '[[:lower:]]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1820 - ipathmatch (via ls-files): match '[[:lower:]]' 'A'
expecting success:
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
Removing expect.err
ok 1821 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a' '[[:lower:]]'
ok 1823 - wildmatch: match 'a' '[[:lower:]]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1824 - wildmatch (via ls-files): match '[[:lower:]]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[[:lower:]]'
ok 1825 - iwildmatch: match 'a' '[[:lower:]]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1826 - iwildmatch (via ls-files): match '[[:lower:]]' 'a'
expecting success:
test-tool wildmatch pathmatch 'a' '[[:lower:]]'
ok 1827 - pathmatch: match 'a' '[[:lower:]]'
expecting success:
printf '%s' 'a' >expect &&
git ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1828 - pathmatch (via ls-files): match '[[:lower:]]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[[:lower:]]'
ok 1829 - ipathmatch: match 'a' '[[:lower:]]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[[:lower:]]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1830 - ipathmatch (via ls-files): match '[[:lower:]]' 'a'
expecting success:
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
Removing expect.err
ok 1831 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'A' '[B-Za]'
ok 1833 - wildmatch: no match 'A' '[B-Za]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1834 - wildmatch (via ls-files): no match '[B-Za]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[B-Za]'
ok 1835 - iwildmatch: match 'A' '[B-Za]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1836 - iwildmatch (via ls-files): match '[B-Za]' 'A'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'A' '[B-Za]'
ok 1837 - pathmatch: no match 'A' '[B-Za]'
expecting success:
>expect &&
git ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1838 - pathmatch (via ls-files): no match '[B-Za]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[B-Za]'
ok 1839 - ipathmatch: match 'A' '[B-Za]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1840 - ipathmatch (via ls-files): match '[B-Za]' 'A'
expecting success:
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
Removing expect.err
ok 1841 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a' '[B-Za]'
ok 1843 - wildmatch: match 'a' '[B-Za]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1844 - wildmatch (via ls-files): match '[B-Za]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[B-Za]'
ok 1845 - iwildmatch: match 'a' '[B-Za]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1846 - iwildmatch (via ls-files): match '[B-Za]' 'a'
expecting success:
test-tool wildmatch pathmatch 'a' '[B-Za]'
ok 1847 - pathmatch: match 'a' '[B-Za]'
expecting success:
printf '%s' 'a' >expect &&
git ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1848 - pathmatch (via ls-files): match '[B-Za]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[B-Za]'
ok 1849 - ipathmatch: match 'a' '[B-Za]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[B-Za]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1850 - ipathmatch (via ls-files): match '[B-Za]' 'a'
expecting success:
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
Removing expect.err
ok 1851 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'A' '[B-a]'
ok 1853 - wildmatch: no match 'A' '[B-a]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1854 - wildmatch (via ls-files): no match '[B-a]' 'A'
expecting success:
test-tool wildmatch iwildmatch 'A' '[B-a]'
ok 1855 - iwildmatch: match 'A' '[B-a]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1856 - iwildmatch (via ls-files): match '[B-a]' 'A'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'A' '[B-a]'
ok 1857 - pathmatch: no match 'A' '[B-a]'
expecting success:
>expect &&
git ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1858 - pathmatch (via ls-files): no match '[B-a]' 'A'
expecting success:
test-tool wildmatch ipathmatch 'A' '[B-a]'
ok 1859 - ipathmatch: match 'A' '[B-a]'
expecting success:
printf '%s' 'A' >expect &&
git --icase-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1860 - ipathmatch (via ls-files): match '[B-a]' 'A'
expecting success:
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
Removing expect.err
ok 1861 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'a' '[B-a]'
ok 1863 - wildmatch: match 'a' '[B-a]'
expecting success:
printf '%s' 'a' >expect &&
git --glob-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1864 - wildmatch (via ls-files): match '[B-a]' 'a'
expecting success:
test-tool wildmatch iwildmatch 'a' '[B-a]'
ok 1865 - iwildmatch: match 'a' '[B-a]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1866 - iwildmatch (via ls-files): match '[B-a]' 'a'
expecting success:
test-tool wildmatch pathmatch 'a' '[B-a]'
ok 1867 - pathmatch: match 'a' '[B-a]'
expecting success:
printf '%s' 'a' >expect &&
git ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1868 - pathmatch (via ls-files): match '[B-a]' 'a'
expecting success:
test-tool wildmatch ipathmatch 'a' '[B-a]'
ok 1869 - ipathmatch: match 'a' '[B-a]'
expecting success:
printf '%s' 'a' >expect &&
git --icase-pathspecs ls-files -z -- '[B-a]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1870 - ipathmatch (via ls-files): match '[B-a]' 'a'
expecting success:
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
Removing expect.err
ok 1871 - cleanup after previous file test
expecting success:
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:
test_must_fail test-tool wildmatch wildmatch 'z' '[Z-y]'
ok 1873 - wildmatch: no match 'z' '[Z-y]'
expecting success:
>expect &&
git --glob-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1874 - wildmatch (via ls-files): no match '[Z-y]' 'z'
expecting success:
test-tool wildmatch iwildmatch 'z' '[Z-y]'
ok 1875 - iwildmatch: match 'z' '[Z-y]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1876 - iwildmatch (via ls-files): match '[Z-y]' 'z'
expecting success:
test_must_fail test-tool wildmatch pathmatch 'z' '[Z-y]'
ok 1877 - pathmatch: no match 'z' '[Z-y]'
expecting success:
>expect &&
git ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1878 - pathmatch (via ls-files): no match '[Z-y]' 'z'
expecting success:
test-tool wildmatch ipathmatch 'z' '[Z-y]'
ok 1879 - ipathmatch: match 'z' '[Z-y]'
expecting success:
printf '%s' 'z' >expect &&
git --icase-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1880 - ipathmatch (via ls-files): match '[Z-y]' 'z'
expecting success:
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 expect.err
Removing z
ok 1881 - cleanup after previous file test
expecting success:
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:
test-tool wildmatch wildmatch 'Z' '[Z-y]'
ok 1883 - wildmatch: match 'Z' '[Z-y]'
expecting success:
printf '%s' 'Z' >expect &&
git --glob-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1884 - wildmatch (via ls-files): match '[Z-y]' 'Z'
expecting success:
test-tool wildmatch iwildmatch 'Z' '[Z-y]'
ok 1885 - iwildmatch: match 'Z' '[Z-y]'
expecting success:
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 &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1886 - iwildmatch (via ls-files): match '[Z-y]' 'Z'
expecting success:
test-tool wildmatch pathmatch 'Z' '[Z-y]'
ok 1887 - pathmatch: match 'Z' '[Z-y]'
expecting success:
printf '%s' 'Z' >expect &&
git ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err actual.err &&
test_cmp expect actual
ok 1888 - pathmatch (via ls-files): match '[Z-y]' 'Z'
expecting success:
test-tool wildmatch ipathmatch 'Z' '[Z-y]'
ok 1889 - ipathmatch: match 'Z' '[Z-y]'
expecting success:
printf '%s' 'Z' >expect &&
git --icase-pathspecs ls-files -z -- '[Z-y]' >actual.raw 2>actual.err &&
tr -d '\0' <actual.raw >actual &&
>expect.err &&
test_cmp expect.err 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'
*** t3402-rebase-merge.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3402-rebase-merge/.git/
expecting success:
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) f76dd49] initial
Author: A U Thor <author@example.com>
1 file changed, 20 insertions(+)
create mode 100644 original
[master e76a5c7] master updates a bit.
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
[master 5ab0ee1] master updates a bit more.
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
Switched to branch 'side'
[side a30e188] side renames and edits.
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
rename original => renamed (90%)
[side 20ad3eb] side edits further.
Author: A U Thor <author@example.com>
1 file changed, 20 insertions(+)
create mode 100644 newfile
[side 84fb201] 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:
git merge -s recursive -m "reference merge" master
Merging:
84fb201 side edits once again.
virtual master
found 1 common ancestor:
f76dd49 initial
Auto-merging renamed
Merge made by the 'recursive' strategy.
renamed | 4 ++++
1 file changed, 4 insertions(+)
ok 2 - reference merge
expecting success:
git checkout test-rebase &&
GIT_TRACE=1 git rebase --merge master
Switched to branch 'test-rebase'
trace: exec: git-rebase --merge master
trace: run_command: git-rebase --merge master
trace: built-in: git rev-parse --parseopt --stuck-long -- --merge master
trace: built-in: git rev-parse --git-dir
trace: built-in: git rev-parse --git-path objects
trace: built-in: git rev-parse --is-bare-repository
trace: built-in: git rev-parse --show-toplevel
trace: built-in: git config --bool rebase.stat
trace: built-in: git config --bool rebase.autostash
trace: built-in: git config --bool rebase.autosquash
trace: built-in: git config --bool commit.gpgsign
trace: built-in: git rev-parse --verify master^0
trace: built-in: git rev-parse --verify master^0
trace: built-in: git symbolic-ref -q HEAD
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git update-index -q --ignore-submodules --refresh
trace: built-in: git diff-files --quiet --ignore-submodules
trace: built-in: git diff-index --cached --quiet --ignore-submodules HEAD --
trace: built-in: git merge-base 5ab0ee1beaa2f1e338535638bbe9ac69727b2fc7 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
trace: built-in: git rev-parse --git-path hooks/pre-rebase
First, rewinding head to replay your work on top of it...
trace: built-in: git checkout -q 5ab0ee1beaa2f1e338535638bbe9ac69727b2fc7^0
trace: built-in: git update-ref ORIG_HEAD 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
trace: built-in: git rev-parse --git-path REBASE_HEAD
trace: built-in: git rev-list --reverse --no-merges 5ab0ee1beaa2f1e338535638bbe9ac69727b2fc7..84fb201fdd767e41457288cc26cbbf0e01c5ce8b
trace: built-in: git update-ref REBASE_HEAD a30e188be2c205eaad82355688b4d52df326f482
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git rev-parse --verify --quiet a30e188be2c205eaad82355688b4d52df326f482^
trace: built-in: git merge-recursive f76dd49ce910ca7496585e40a7ebcb6331c90342 -- 5ab0ee1beaa2f1e338535638bbe9ac69727b2fc7 a30e188be2c205eaad82355688b4d52df326f482
Merging master with HEAD~2
Merging:
5ab0ee1 master updates a bit more.
a30e188 side renames and edits.
found 1 common ancestor:
f76dd49 initial
Auto-merging renamed
trace: built-in: git ls-files -u
trace: built-in: git diff-index --quiet --ignore-submodules HEAD --
trace: built-in: git commit --no-verify -C a30e188be2c205eaad82355688b4d52df326f482
trace: run_command: git gc --auto
trace: built-in: git gc --auto
[detached HEAD e1eea67] side renames and edits.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:44 2018 +0000
1 file changed, 2 insertions(+)
rename original => renamed (92%)
Committed: 0001 trace: built-in: git rev-parse HEAD^0
trace: built-in: git log '--format=%s' -1 a30e188be2c205eaad82355688b4d52df326f482
side renames and edits.
trace: built-in: git update-ref REBASE_HEAD 20ad3ebf305be087f0a157f526b5bf73c40c3aad
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git rev-parse --verify --quiet 20ad3ebf305be087f0a157f526b5bf73c40c3aad^
trace: built-in: git merge-recursive a30e188be2c205eaad82355688b4d52df326f482 -- e1eea67566961ef9058d6116133c01ad92972835 20ad3ebf305be087f0a157f526b5bf73c40c3aad
Merging master with HEAD~1
Merging:
e1eea67 side renames and edits.
20ad3eb side edits further.
found 1 common ancestor:
a30e188 side renames and edits.
trace: built-in: git ls-files -u
trace: built-in: git diff-index --quiet --ignore-submodules HEAD --
trace: built-in: git commit --no-verify -C 20ad3ebf305be087f0a157f526b5bf73c40c3aad
trace: run_command: git gc --auto
trace: built-in: git gc --auto
[detached HEAD a057761] side edits further.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:44 2018 +0000
1 file changed, 20 insertions(+)
create mode 100644 newfile
Committed: 0002 trace: built-in: git rev-parse HEAD^0
trace: built-in: git log '--format=%s' -1 20ad3ebf305be087f0a157f526b5bf73c40c3aad
side edits further.
trace: built-in: git update-ref REBASE_HEAD 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git rev-parse --verify --quiet 84fb201fdd767e41457288cc26cbbf0e01c5ce8b^
trace: built-in: git merge-recursive 20ad3ebf305be087f0a157f526b5bf73c40c3aad -- a0577617b6cf5b781748d36a816bedeb36e43dbc 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
Merging master with HEAD~0
Merging:
a057761 side edits further.
84fb201 side edits once again.
found 1 common ancestor:
20ad3eb side edits further.
trace: built-in: git ls-files -u
trace: built-in: git diff-index --quiet --ignore-submodules HEAD --
trace: built-in: git commit --no-verify -C 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
trace: run_command: git gc --auto
trace: built-in: git gc --auto
[detached HEAD e231d7c] side edits once again.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:44 2018 +0000
1 file changed, 20 insertions(+), 20 deletions(-)
rewrite newfile (100%)
Committed: 0003 trace: built-in: git rev-parse HEAD^0
trace: built-in: git log '--format=%s' -1 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
side edits once again.
trace: built-in: git rev-parse HEAD
trace: built-in: git update-ref -m 'rebase finished: refs/heads/test-rebase onto 5ab0ee1beaa2f1e338535638bbe9ac69727b2fc7' refs/heads/test-rebase e231d7c8d811f863271807ccbd684769354770fd 84fb201fdd767e41457288cc26cbbf0e01c5ce8b
trace: built-in: git symbolic-ref -m 'rebase finished: returning to refs/heads/test-rebase' HEAD refs/heads/test-rebase
trace: built-in: git notes copy --for-rewrite=rebase
trace: built-in: git rev-parse --git-path hooks/post-rewrite
All done.
trace: built-in: git rev-parse --git-path REBASE_HEAD
trace: built-in: git gc --auto
ok 3 - rebase
expecting success:
test $PRE_REBASE = $(git rev-parse test-rebase@{1})
ok 4 - test-rebase@{1} is pre rebase
expecting success:
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:
git reset --hard master &&
git rebase --merge side
HEAD is now at 5ab0ee1 master updates a bit more.
First, rewinding head to replay your work on top of it...
Merging side with HEAD~1
Merging:
84fb201 side edits once again.
e76a5c7 master updates a bit.
found 1 common ancestor:
f76dd49 initial
Auto-merging renamed
[detached HEAD b151fbe] master updates a bit.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:43 2018 +0000
1 file changed, 2 insertions(+)
Committed: 0001 master updates a bit.
Merging side with HEAD~0
Merging:
b151fbe master updates a bit.
5ab0ee1 master updates a bit more.
found 1 common ancestor:
e76a5c7 master updates a bit.
Auto-merging renamed
[detached HEAD 77fa352] master updates a bit more.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:43 2018 +0000
1 file changed, 2 insertions(+)
Committed: 0002 master updates a bit more.
All done.
ok 6 - rebase the other way
expecting success:
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 c44ed82] conflicting
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
First, rewinding head to replay your work on top of it...
Merging master with HEAD~0
Merging:
5ab0ee1 master updates a bit more.
c44ed82 conflicting
found 1 common ancestor:
f76dd49 initial
Auto-merging original
[detached HEAD 72aa2dc] conflicting
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:48 2018 +0000
1 file changed, 1 insertion(+), 3 deletions(-)
Committed: 0001 conflicting
All done.
AB A quick brown fox
ok 7 - rebase -Xtheirs
expecting success:
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) 24034d7] orphan-conflicting
Author: A U Thor <author@example.com>
1 file changed, 22 insertions(+)
create mode 100644 original
First, rewinding head to replay your work on top of it...
Merging master with HEAD~0
Merging:
5ab0ee1 master updates a bit more.
24034d7 orphan-conflicting
found 0 common ancestors:
Auto-merging original
[detached HEAD 78a7c31] orphan-conflicting
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:49 2018 +0000
1 file changed, 1 insertion(+), 3 deletions(-)
Committed: 0001 orphan-conflicting
All done.
AB A quick brown fox
ok 8 - rebase -Xtheirs from orphan
expecting success:
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:
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 84fb201 side edits once again.
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
5ab0ee1 master updates a bit more.
20ad3eb side edits further.
found 1 common ancestor:
a30e188 side renames and edits.
Skipped original (merged same as existing)
[detached HEAD 98abc42] side edits further.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:44 2018 +0000
1 file changed, 20 insertions(+)
create mode 100644 newfile
Committed: 0001 side edits further.
Merging master with HEAD~0
Merging:
98abc42 side edits further.
84fb201 side edits once again.
found 1 common ancestor:
20ad3eb side edits further.
Skipped original (merged same as existing)
[detached HEAD d4d41d0] side edits once again.
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:44 2018 +0000
1 file changed, 20 insertions(+), 20 deletions(-)
rewrite newfile (100%)
Committed: 0002 side edits once again.
All done.
happy
happy
ok 10 - picking rebase
expecting success:
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 d4d41d0 side edits once again.
Switched to a new branch 'test-funny'
[test-funny 2e92d8c] funny
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 funny.t
First, rewinding head to replay your work on top of it...
Merging master with HEAD~0
Merging:
5ab0ee1 master updates a bit more.
2e92d8c funny
found 1 common ancestor:
e76a5c7 master updates a bit.
[detached HEAD fc01960] funny
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 funny.t
Committed: 0001 funny
All done.
ok 11 - rebase -s funny -Xopt
expecting success:
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 4990255] edit conflicting with side
Author: A U Thor <author@example.com>
1 file changed, 20 insertions(+), 20 deletions(-)
rewrite newfile (100%)
[second-side d18d7b3] another edit conflicting with side
Author: A U Thor <author@example.com>
1 file changed, 20 insertions(+), 20 deletions(-)
rewrite newfile (100%)
First, rewinding head to replay your work on top of it...
Merging test-conflicts with HEAD~1
Merging:
84fb201 side edits once again.
4990255 edit conflicting with side
found 1 common ancestor:
20ad3eb side edits further.
Auto-merging newfile
CONFLICT (content): Merge conflict in newfile
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".
Merging test-conflicts with HEAD~0
Merging:
84fb201 side edits once again.
d18d7b3 another edit conflicting with side
found 1 common ancestor:
4990255 edit conflicting with side
Auto-merging newfile
CONFLICT (content): Merge conflict in newfile
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".
All done.
ok 12 - rebase --skip works with two conflicts in a row
# passed all 12 test(s)
1..12
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:
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) fbec2a7] 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 c9f2db7] Add Y.
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 Y
Switched to a new branch 'filemove'
[filemove 55c7c11] 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 628f035] Add B.
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 B
Switched to branch 'master'
[master e60f542] Modify A.
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
Switched to a new branch 'side'
[side a9c8ad6] 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:
echo dirty >>A &&
test_must_fail git rebase master
Cannot rebase: You have unstaged changes.
Please commit or stash them.
ok 2 - rebase on dirty worktree
expecting success:
git add A &&
test_must_fail git rebase master
Cannot rebase: Your index contains uncommitted changes.
Please commit or stash them.
ok 3 - rebase on dirty cache
expecting success:
git reset --hard HEAD &&
git rebase master
HEAD is now at 628f035 Add B.
First, rewinding head to replay your work on top of it...
Applying: Add B.
ok 4 - rebase against master
expecting success:
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'
First, rewinding head to replay your work on top of it...
HEAD is now at e60f542 Modify A.
First, rewinding head to replay your work on top of it...
Switched to branch 'my-topic-branch'
Deleted branch torebase (was fbec2a7).
ok 5 - rebase, with <onto> and <upstream> specified as :/quuxery
expecting success:
! (git log | grep "Author:" | grep "<>")
ok 6 - the rebase operation should not have destroyed author information
expecting success:
git log -1 |
grep 'Author: author@name <bogus@email@address>'
Author: author@name <bogus@email@address>
ok 7 - the rebase operation should not have destroyed author information (2)
expecting success:
test $(git rev-parse HEAD@{1}) != $(git rev-parse my-topic-branch@{1})
ok 8 - HEAD was detached during rebase
expecting success:
git checkout -b topic side &&
git rebase master
Switched to a new branch 'topic'
First, rewinding head to replay your work on top of it...
Applying: Add B.
Applying: Add C
ok 9 - rebase from ambiguous branch name
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at fbec2a7 Add A.
Switched to branch 'master'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at fbec2a7 Add A.
ok 10 - rebase off of the previous branch using "-"
expecting success:
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 7006ef0).
[master 4175e93] prepare
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 X
Switched to a new branch 'modechange'
[modechange 783f6de] modechange
Author: author@name <bogus@email@address>
2 files changed, 1 insertion(+)
mode change 100644 => 100755 A
create mode 100644 X
trace: exec: git-rebase master
trace: run_command: git-rebase master
trace: built-in: git rev-parse --parseopt --stuck-long -- master
trace: built-in: git rev-parse --git-dir
trace: built-in: git rev-parse --git-path objects
trace: built-in: git rev-parse --is-bare-repository
trace: built-in: git rev-parse --show-toplevel
trace: built-in: git config --bool rebase.stat
trace: built-in: git config --bool rebase.autostash
trace: built-in: git config --bool rebase.autosquash
trace: built-in: git config --bool commit.gpgsign
trace: built-in: git rev-parse --verify master^0
trace: built-in: git rev-parse --verify master^0
trace: built-in: git symbolic-ref -q HEAD
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git update-index -q --ignore-submodules --refresh
trace: built-in: git diff-files --quiet --ignore-submodules
trace: built-in: git diff-index --cached --quiet --ignore-submodules HEAD --
trace: built-in: git merge-base 4175e93777fdad92ba1480cfd91fa87fe6470bdf 783f6de676ad1403a7e2f38caecc54d86e39c31d
trace: built-in: git rev-parse --git-path hooks/pre-rebase
First, rewinding head to replay your work on top of it...
trace: built-in: git checkout -q 4175e93777fdad92ba1480cfd91fa87fe6470bdf^0
trace: built-in: git update-ref ORIG_HEAD 783f6de676ad1403a7e2f38caecc54d86e39c31d
trace: built-in: git format-patch -k --stdout --full-index --cherry-pick --right-only --src-prefix=a/ --dst-prefix=b/ --no-renames --no-cover-letter --pretty=mboxrd 4175e93777fdad92ba1480cfd91fa87fe6470bdf...783f6de676ad1403a7e2f38caecc54d86e39c31d
trace: built-in: git am --rebasing '--resolvemsg=
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".
' --patch-format=mboxrd
trace: run_command: git mailsplit -d4 -o.git/rebase-apply -b --mboxrd --
trace: built-in: git mailsplit -d4 -o.git/rebase-apply -b --mboxrd --
trace: run_command: git apply --build-fake-ancestor=.git/rebase-apply/patch-merge-index .git/rebase-apply/patch
Applying: modechange
trace: built-in: git apply --build-fake-ancestor=.git/rebase-apply/patch-merge-index .git/rebase-apply/patch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
4175e93 prepare
virtual modechange
found 1 common ancestor:
virtual 20d8b2c6c42a40f913517c72113d9d08e124064a
trace: built-in: git rev-parse HEAD
trace: built-in: git update-ref -m 'rebase finished: refs/heads/modechange onto 4175e93777fdad92ba1480cfd91fa87fe6470bdf' refs/heads/modechange 601af7aaf627b0382e2b384eee10e87a57158445 783f6de676ad1403a7e2f38caecc54d86e39c31d
trace: built-in: git symbolic-ref -m 'rebase finished: returning to refs/heads/modechange' HEAD refs/heads/modechange
trace: built-in: git rev-parse --git-path REBASE_HEAD
trace: built-in: git gc --auto
ok 11 - rebase a single mode change
expecting success:
test_config diff.renames copies &&
git checkout filemove &&
GIT_TRACE=1 git rebase force-3way
Switched to branch 'filemove'
trace: exec: git-rebase force-3way
trace: run_command: git-rebase force-3way
trace: built-in: git rev-parse --parseopt --stuck-long -- force-3way
trace: built-in: git rev-parse --git-dir
trace: built-in: git rev-parse --git-path objects
trace: built-in: git rev-parse --is-bare-repository
trace: built-in: git rev-parse --show-toplevel
trace: built-in: git config --bool rebase.stat
trace: built-in: git config --bool rebase.autostash
trace: built-in: git config --bool rebase.autosquash
trace: built-in: git config --bool commit.gpgsign
trace: built-in: git rev-parse --verify force-3way^0
trace: built-in: git rev-parse --verify force-3way^0
trace: built-in: git symbolic-ref -q HEAD
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git rev-parse --verify HEAD
trace: built-in: git update-index -q --ignore-submodules --refresh
trace: built-in: git diff-files --quiet --ignore-submodules
trace: built-in: git diff-index --cached --quiet --ignore-submodules HEAD --
trace: built-in: git merge-base c9f2db763221f5f79ff3dfa756c355331c6d3b0b 55c7c115f3688fdb27980f327ec1654385fb077a
trace: built-in: git rev-parse --git-path hooks/pre-rebase
First, rewinding head to replay your work on top of it...
trace: built-in: git checkout -q c9f2db763221f5f79ff3dfa756c355331c6d3b0b^0
trace: built-in: git update-ref ORIG_HEAD 55c7c115f3688fdb27980f327ec1654385fb077a
trace: built-in: git format-patch -k --stdout --full-index --cherry-pick --right-only --src-prefix=a/ --dst-prefix=b/ --no-renames --no-cover-letter --pretty=mboxrd c9f2db763221f5f79ff3dfa756c355331c6d3b0b...55c7c115f3688fdb27980f327ec1654385fb077a
trace: built-in: git am --rebasing '--resolvemsg=
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".
' --patch-format=mboxrd
trace: run_command: git mailsplit -d4 -o.git/rebase-apply -b --mboxrd --
trace: built-in: git mailsplit -d4 -o.git/rebase-apply -b --mboxrd --
trace: run_command: git apply --build-fake-ancestor=.git/rebase-apply/patch-merge-index .git/rebase-apply/patch
Applying: Move A.
trace: built-in: git apply --build-fake-ancestor=.git/rebase-apply/patch-merge-index .git/rebase-apply/patch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
c9f2db7 Add Y.
virtual Move A.
found 1 common ancestor:
virtual 26395c6fe842cd8894b5dde87a6fb53cccfabc06
trace: built-in: git rev-parse HEAD
trace: built-in: git update-ref -m 'rebase finished: refs/heads/filemove onto c9f2db763221f5f79ff3dfa756c355331c6d3b0b' refs/heads/filemove 0a2c9a8e16a060474c0f058c9c388fdb690df110 55c7c115f3688fdb27980f327ec1654385fb077a
trace: built-in: git symbolic-ref -m 'rebase finished: returning to refs/heads/filemove' HEAD refs/heads/filemove
trace: built-in: git rev-parse --git-path REBASE_HEAD
trace: built-in: git gc --auto
ok 12 - rebase is not broken by diff.renames
expecting success:
test_might_fail git rebase --abort &&
git reset --hard &&
git checkout modechange
No rebase in progress?
HEAD is now at 0a2c9a8 Move A.
Switched to branch 'modechange'
ok 13 - setup: recover
expecting success:
>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 14 - Show verbose error when HEAD could not be detached
expecting success:
git checkout topic &&
test_must_fail git rebase
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 628f035 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 15 - fail when upstream arg is missing and not on branch
expecting success:
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 16 - fail when upstream arg is missing and not configured
expecting success:
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 &&
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 &&
git rev-parse --verify default-base >expect &&
git rev-parse default~1 >actual &&
test_cmp expect actual
Switched to a new branch 'default-base'
Switched to a new branch 'default'
First, rewinding head to replay your work on top of it...
Applying: Add B.
Switched to branch 'default-base'
HEAD is now at e60f542 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 17 - default to common base in @{upstream}s reflog if no upstream arg
expecting success:
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 A expect &&
echo "Final B" >expect &&
test_cmp B expect &&
echo C >expect &&
test_cmp C expect &&
echo D >expect &&
test_cmp D expect
Switched to branch 'default-base'
[default-base 6e6f1a4] Modify A.
Author: author@name <bogus@email@address>
Date: Sun Jun 24 06:06:32 2018 +0000
1 file changed, 1 insertion(+), 1 deletion(-)
[default-base 25a5b84] B
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 B
[default-base c8de8dc] new_B
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+), 1 deletion(-)
[default-base bdc13a7] 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 e60f542 Modify A.
[default 20f1390] D
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 D
[default df38b1f] 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 db26162] 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 b4f77c0] final_B
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+), 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: D
Applying: final_B
ok 18 - cherry-picked commits and fork-point work together
expecting success:
git checkout -b quiet topic &&
git rebase -q master >output.out 2>&1 &&
test_must_be_empty output.out
Switched to a new branch 'quiet'
ok 19 - rebase -q is quiet
expecting success:
(
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 e2fcf1f] A file with a line with CR
Author: author@name <bogus@email@address>
1 file changed, 5 insertions(+)
create mode 100644 CR
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at e2fcf1f A file with a line with CR
First, rewinding head to replay your work on top of it...
Applying: A file with a line with CR
ok 20 - Rebase a commit that sprinkles CRs in
expecting success:
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 bf24a20] n1
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 n1.t
[detached HEAD d3e08d5] n2
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 n2.t
[detached HEAD 630183d] n3
Author: author@name <bogus@email@address>
1 file changed, 1 insertion(+)
create mode 100644 n3.t
First, rewinding head to replay your work on top of it...
Applying: n3
ok 21 - rebase can copy notes
expecting success:
git reset --hard n3 &&
git rebase -m --onto n1 n2 &&
test "a note" = "$(git notes show HEAD)"
HEAD is now at 630183d n3
First, rewinding head to replay your work on top of it...
Merging n1 with HEAD~0
Merging:
bf24a20 n1
630183d n3
found 1 common ancestor:
d3e08d5 n2
[detached HEAD d469e10] n3
Author: author@name <bogus@email@address>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 n3.t
Committed: 0001 n3
All done.
ok 22 - rebase -m can copy notes
expecting success:
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 d469e10 n3
[detached HEAD f701e7c] 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 c0ff251] 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 663d4e0] 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
First, rewinding head to replay your work on top of it...
Applying: Old three
author author@name <bogus@email@address> 34567 +0600
ok 23 - rebase commit with an ancient timestamp
expecting success:
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:
fa823a6 Old three
f701e7c Old one
d469e10 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> fa823a6
Switched to a new branch 'preserve-from'
[preserve-from d2a7187] 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_
First, rewinding head to replay your work on top of it...
Applying: Somebody embedded an mbox in a commit message
ok 24 - rebase with "From " line in commit message
expecting success:
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 --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.
Patch failed at 0001 two
Use 'git am --show-current-patch' to see the failed patch
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 25 - rebase--am.sh and --show-current-patch
expecting success:
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(+)
First, rewinding head to replay your work on top of it...
Merging init with HEAD~0
Merging:
080fbe0 init
1bf3d8f two
found 1 common ancestor:
61e26c1 one
Auto-merging init.t
CONFLICT (content): Merge conflict in init.t
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: built-in: git show REBASE_HEAD --
ok 26 - rebase--merge.sh and --show-current-patch
# passed all 26 test(s)
1..26
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:
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 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) 7179d68] hello
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 hello
[master df53b4f] hello world
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master 697b4cd] goodbye
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'skip-reference'
[skip-reference f585303] we should skip this
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[skip-reference c5a809c] 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:
test_must_fail git rebase master
First, rewinding head to replay your work on top of it...
Applying: we should skip this
Using index info to reconstruct a base tree...
M hello
Falling back to patching base and 3-way merge...
Merging:
697b4cd goodbye
virtual we should skip this
found 1 common ancestor:
virtual b4d01e9b0c4a9356736dfddf8830ba9a54f5271c
Auto-merging hello
CONFLICT (content): Merge conflict in hello
error: Failed to merge in the changes.
Patch failed at 0001 we should skip this
Use 'git am --show-current-patch' to see the failed patch
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 with git am -3 (default)
expecting success:
test_must_fail git rebase -v --skip &&
test_must_fail git rebase --skip -v
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
ok 3 - rebase --skip can not be used with other options
expecting success:
git rebase --skip
Applying: this should not be skipped
ok 4 - rebase --skip with am -3
expecting success:
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 c5a809c this should not be skipped
First, rewinding head to replay your work on top of it...
Applying: we should skip this
Using index info to reconstruct a base tree...
M hello
Falling back to patching base and 3-way merge...
Merging:
697b4cd goodbye
virtual we should skip this
found 1 common ancestor:
virtual b4d01e9b0c4a9356736dfddf8830ba9a54f5271c
Auto-merging hello
CONFLICT (content): Merge conflict in hello
error: Failed to merge in the changes.
Patch failed at 0001 we should skip this
Use 'git am --show-current-patch' to see the failed patch
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: we should skip this
Applying: this should not be skipped
HEAD is now at ed4f36e this should not be skipped
ok 5 - rebase moves back to skip-reference
expecting success: git checkout -f skip-merge
Switched to branch 'skip-merge'
ok 6 - checkout skip-merge
expecting success:
test_must_fail git rebase --merge master
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
697b4cd goodbye
f585303 we should skip this
found 1 common ancestor:
7179d68 hello
Auto-merging hello
CONFLICT (content): Merge conflict in hello
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 7 - rebase with --merge
expecting success:
git rebase --skip
Merging master with HEAD~0
Merging:
697b4cd goodbye
c5a809c this should not be skipped
found 1 common ancestor:
f585303 we should skip this
[detached HEAD 01e5bed] this should not be skipped
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:06:58 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 cow
Committed: 0002 this should not be skipped
All done.
ok 8 - rebase --skip with --merge
expecting success:
test -z "$(git diff-tree skip-merge skip-reference)"
ok 9 - merge and reference trees equal
expecting success:
test refs/heads/skip-merge = $(git symbolic-ref HEAD)
ok 10 - moved back to branch correctly
# passed all 10 test(s)
1..10
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:
>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:
git rebase master multi-line-subject &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >F1 &&
test_cmp F0 F1 &&
test_cmp F F0
First, rewinding head to replay your work on top of it...
Applying: This is an example of a commit log message
ok 2 - rebase commit with multi-line subject
expecting success:
git rebase master diff-in-message &&
git cat-file commit HEAD | sed -e "1,/^$/d" >G1 &&
test_cmp G0 G1 &&
test_cmp G G0
First, rewinding head to replay your work on top of it...
Applying: commit log message containing a diff
ok 3 - rebase commit with diff in message
expecting success:
test_must_fail git rebase -m master empty-message-merge &&
git rebase --abort &&
git rebase -m --allow-empty-message master empty-message-merge
First, rewinding head to replay your work on top of it...
Merging master with HEAD~0
Merging:
d5181bc Second commit
942c0ff found 1 common ancestor:
a8d727e Initial commit
Aborting commit due to empty commit message.
Commit failed, please do not call "git commit"
directly, but instead do one of the following:
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".
First, rewinding head to replay your work on top of it...
Merging master with HEAD~0
Merging:
d5181bc Second commit
942c0ff found 1 common ancestor:
a8d727e Initial commit
[detached HEAD 9118f83]
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 file3
Committed: 0001
All done.
ok 4 - rebase -m commit with empty message
expecting success:
git checkout diff-in-message &&
set_fake_editor &&
test_must_fail env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
git rebase -i HEAD^ &&
git rebase --abort &&
FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
git rebase -i --allow-empty-message 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
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)
[detached HEAD 9528954]
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 2 insertions(+)
Successfully rebased and updated refs/heads/diff-in-message.
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:
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:
git rebase -m master >report &&
sed -n -e "/^Already applied: /p" \
-e "/^Committed: /p" report >actual &&
test_cmp expect actual
ok 2 - rebase -m
expecting success:
git rebase master >out &&
test_i18ngrep "Current branch topic is up to date" out
Current branch topic is up to date.
ok 3 - rebase against master twice
expecting success:
git rebase --force-rebase 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:
git checkout topic^ &&
git rebase master topic >out &&
test_i18ngrep "Current branch topic is up to date" out
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 545b0d0 Y
Current branch topic is up to date.
ok 5 - rebase against master twice from another branch
expecting success:
git checkout topic^ &&
git rebase topic >out &&
test_i18ngrep "Fast-forwarded HEAD to topic" out
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 545b0d0 Y
Fast-forwarded HEAD to topic.
ok 6 - rebase fast-forward to master
expecting success:
git reset --hard start &&
git rebase --stat master >diffstat.txt &&
grep "^ fileX | *1 +$" diffstat.txt
HEAD is now at dd88760 Z
fileX | 1 +
ok 7 - rebase --stat
expecting success:
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
fileX | 1 +
ok 8 - rebase w/config rebase.stat
expecting success:
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
ok 9 - rebase -n overrides config rebase.stat config
expecting success:
test_must_fail git rebase --onto invalid-ref HEAD HEAD 2>err &&
test_i18ngrep "invalid-ref" err
Does not point to a valid commit: invalid-ref
ok 10 - rebase --onto outputs the invalid ref
# passed all 10 test(s)
1..10
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:
>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:
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'
First, rewinding head to replay your work on top of it...
Applying: A sample commit log message that has a long
ok 2 - rebase
expecting success:
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'
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'
*** t3407-rebase-abort.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3407-rebase-abort/.git/
expecting success:
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3407-rebase-abort/test dir/.git/
[master (root-commit) e0e6191] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[master 8d95acf] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master be3f7bb] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'to-rebase'
[to-rebase 862d0b8] merge should fail on this
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[to-rebase cf64e88] 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:
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 cf64e88 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:
be3f7bb 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.
Patch failed at 0001 merge should fail on this
Use 'git am --show-current-patch' to see the failed patch
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 --abort
expecting success:
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 cf64e88 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:
be3f7bb 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.
Patch failed at 0001 merge should fail on this
Use 'git am --show-current-patch' to see the failed patch
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:
be3f7bb 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.
Patch failed at 0002 merge should fail on this, too
Use 'git am --show-current-patch' to see the failed patch
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 --abort after --skip
expecting success:
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 cf64e88 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:
be3f7bb 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.
Patch failed at 0001 merge should fail on this
Use 'git am --show-current-patch' to see the failed patch
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:
39d1042 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.
Patch failed at 0002 merge should fail on this, too
Use 'git am --show-current-patch' to see the failed patch
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 --abort after --continue
expecting success:
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 cf64e88 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:
be3f7bb 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.
Patch failed at 0001 merge should fail on this
Use 'git am --show-current-patch' to see the failed patch
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 --abort does not update reflog
expecting success:
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 cf64e88 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:
be3f7bb 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.
Patch failed at 0001 merge should fail on this
Use 'git am --show-current-patch' to see the failed patch
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>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
ok 6 - rebase --abort can not be used with other options
expecting success:
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 cf64e88 merge should fail on this, too
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
be3f7bb c
862d0b8 merge should fail on this
found 1 common ancestor:
e0e6191 a
Auto-merging a
CONFLICT (content): Merge conflict in a
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 7 - rebase --merge --abort
expecting success:
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 cf64e88 merge should fail on this, too
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
be3f7bb c
862d0b8 merge should fail on this
found 1 common ancestor:
e0e6191 a
Auto-merging a
CONFLICT (content): Merge conflict in a
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".
Merging master with HEAD~0
Merging:
be3f7bb c
cf64e88 merge should fail on this, too
found 1 common ancestor:
862d0b8 merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
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 8 - rebase --merge --abort after --skip
expecting success:
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 cf64e88 merge should fail on this, too
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
be3f7bb c
862d0b8 merge should fail on this
found 1 common ancestor:
e0e6191 a
Auto-merging a
CONFLICT (content): Merge conflict in a
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".
[detached HEAD 9780a29] merge should fail on this
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:07:10 2018 +0000
1 file changed, 1 insertion(+)
Committed: 0001 merge should fail on this
Merging master with HEAD~0
Merging:
9780a29 merge should fail on this
cf64e88 merge should fail on this, too
found 1 common ancestor:
862d0b8 merge should fail on this
Auto-merging a
CONFLICT (content): Merge conflict in a
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 9 - rebase --merge --abort after --continue
expecting success:
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 cf64e88 merge should fail on this, too
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
be3f7bb c
862d0b8 merge should fail on this
found 1 common ancestor:
e0e6191 a
Auto-merging a
CONFLICT (content): Merge conflict in a
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 10 - rebase --merge --abort does not update reflog
expecting success:
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 cf64e88 merge should fail on this, too
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
be3f7bb c
862d0b8 merge should fail on this
found 1 common ancestor:
e0e6191 a
Auto-merging a
CONFLICT (content): Merge conflict in a
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>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
ok 11 - rebase --abort can not be used with other options
expecting success:
cd "$work_dir" &&
# Clean up the state from the previous one
git reset --hard pre-rebase &&
test_must_fail git rebase 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 cf64e88 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:
be3f7bb 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.
Patch failed at 0001 merge should fail on this
Use 'git am --show-current-patch' to see the failed patch
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 --quit
expecting success:
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 cf64e88 merge should fail on this, too
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
be3f7bb c
862d0b8 merge should fail on this
found 1 common ancestor:
e0e6191 a
Auto-merging a
CONFLICT (content): Merge conflict in a
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 13 - rebase --merge --quit
# passed all 13 test(s)
1..13
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/
expecting success: 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) d7fa737] 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 d3f622d] Add B1
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
create mode 100644 B
Switched to branch 'master'
[master 1a7e393] Modify A2
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
[master 9a7be0b] 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:
d3f622d Add B1
virtual origin/master
found 1 common ancestor:
d7fa737 Add A1
Auto-merging B
CONFLICT (add/add): Merge conflict in B
Automatic merge failed; fix conflicts and then commit the result.
[topic 5b6da11] 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 77d1f35] 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:
d3f622d Add B1
virtual topic2
found 1 common ancestor:
d3f622d 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 77d1f35] 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:
d3f622d Add B1
virtual topic2
found 1 common ancestor:
d3f622d Add B1
Merge made by the 'recursive' strategy.
A | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'topic'
[topic 4d4aab1] Modify B2
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
ok 1 - setup for merge-preserving rebase
expecting success:
(
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/./.
d3f622d..4d4aab1 topic -> origin/topic
Rebasing (1/1)
Merging:
4d4aab1 Modify B2
virtual 9a7be0b99dca35f8fee29e0f5ea6e59216e7d2aa
found 1 common ancestor:
d7fa737 Add A1
Auto-merging B
CONFLICT (add/add): Merge conflict in B
Automatic merge failed; fix conflicts and then commit the result.
Error redoing merge 5b6da11f6a33c83ead2939ebbc64688fb9df477a
B: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add
@@@ -1,1 -1,1 +1,1 @@@
[detached HEAD 97f7ac6] 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:
(
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/./.
d3f622d..4d4aab1 topic -> origin/topic
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/topic.
ok 3 - rebase -p preserves no-ff merges
expecting success:
(
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/./.
d3f622d..4d4aab1 topic -> origin/topic
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'
*** t3311-notes-merge-fanout.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3311-notes-merge-fanout/.git/
expecting success:
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
ok 1 - setup a few initial commits with notes (notes ref: x)
expecting success:
verify_notes x commit5 &&
verify_no_fanout x
ok 2 - sanity check (x)
expecting success:
git update-ref refs/notes/y refs/notes/x &&
git config core.notesRef refs/notes/y &&
i=5 &&
while test $i -lt $num
do
i=$(($i + 1)) &&
test_commit "commit$i" >/dev/null &&
git notes add -m "notes for commit$i" || return 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
ok 3 - Add a few hundred commits w/notes to trigger fanout (x -> y)
expecting success: verify_fanout y
ok 4 - notes tree has fanout (y)
expecting success:
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:
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:
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: verify_no_fanout z
ok 8 - notes tree has no fanout (z)
expecting success:
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: verify_fanout m
ok 10 - notes tree still has fanout after merge (m)
expecting success:
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:
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: verify_fanout m
ok 13 - notes tree still has fanout after merge (m)
expecting success:
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: verify_fanout m
ok 15 - notes tree still has fanout after merge (m)
expecting success:
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: verify_fanout m
ok 17 - notes tree still has fanout after merge (m)
expecting success:
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: verify_fanout m
ok 19 - notes tree still has fanout after merge (m)
expecting success:
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: verify_fanout m
ok 21 - notes tree still has fanout after merge (m)
expecting success:
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:
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: verify_fanout m
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'
*** t3410-rebase-preserve-dropped-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3410-rebase-preserve-dropped-merges/.git/
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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
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:
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
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
[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'
*** t3411-rebase-preserve-around-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3411-rebase-preserve-around-merges/.git/
expecting success:
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:
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
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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
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'
*** t3413-rebase-hook.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3413-rebase-hook/.git/
expecting success:
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:
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
First, rewinding head to replay your work on top of it...
Applying: side
ok 2 - rebase
expecting success:
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:
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:
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
First, rewinding head to replay your work on top of it...
Applying: side
ok 5 - pre-rebase hook gets correct input (1)
expecting success:
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
First, rewinding head to replay your work on top of it...
Applying: side
ok 6 - pre-rebase hook gets correct input (2)
expecting success:
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'
First, rewinding head to replay your work on top of it...
Applying: side
ok 7 - pre-rebase hook gets correct input (3)
expecting success:
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:
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:
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:
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:
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
The pre-rebase hook refused to rebase.
ok 12 - pre-rebase hook stops rebase (1)
expecting success:
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
The pre-rebase hook refused to rebase.
ok 13 - pre-rebase hook stops rebase (2)
expecting success:
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
First, rewinding head to replay your work on top of it...
Applying: side
ok 14 - rebase --no-verify overrides pre-rebase (1)
expecting success:
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/
expecting success:
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:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 52308dd G1
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:
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
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 3 - rebase from E1 onto H1
expecting success:
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
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'
*** t3412-rebase-root.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3412-rebase-root/.git/
expecting success:
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:
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>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
ok 2 - rebase --root fails with too many args
expecting success:
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:
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'
First, rewinding head to replay your work on top of it...
Applying: 3
Applying: 4
ok 4 - rebase --root --onto <newbase>
expecting success:
test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,
ok 5 - pre-rebase got correct input (1)
expecting success:
git branch work2 other &&
git rebase --root --onto master work2 &&
git log --pretty=tformat:"%s" > rebased2 &&
test_cmp expect rebased2
First, rewinding head to replay your work on top of it...
Applying: 3
Applying: 4
ok 6 - rebase --root --onto <newbase> <branch>
expecting success:
test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,work2
ok 7 - pre-rebase got correct input (2)
expecting success:
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:
test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,
ok 9 - pre-rebase got correct input (3)
expecting success:
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:
test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,work4
ok 11 - pre-rebase got correct input (4)
expecting success:
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'
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/work5.
ok 12 - rebase -i -p with linear history
expecting success:
test "z$(cat .git/PRE-REBASE-INPUT)" = z--root,
ok 13 - pre-rebase got correct input (5)
expecting success:
git checkout other^ &&
git checkout -b side &&
test_commit 5 C &&
git checkout other &&
git merge side
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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:
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'
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:
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:
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'
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:
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:
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'
The pre-rebase hook refused to rebase.
ok 19 - pre-rebase hook stops rebase
expecting success:
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'
The pre-rebase hook refused to rebase.
ok 20 - pre-rebase hook stops rebase -i
expecting success:
rm -f .git/hooks/pre-rebase
ok 21 - remove pre-rebase hook
expecting success:
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:
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'
First, rewinding head to replay your work on top of it...
Applying: 3
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
f80eebe conflict
virtual 3
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging B
CONFLICT (add/add): Merge conflict in B
error: Failed to merge in the changes.
Patch failed at 0001 3
Use 'git am --show-current-patch' to see the failed patch
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".
100644 9b1719f5cf069568785080a0bbabbe7c377e22ae 2 B
100644 00750edc07d6415dcc07ae0351e9397b0222b7ba 3 B
ok 23 - rebase --root with conflict (first part)
expecting success:
echo 3 > B &&
git add B
ok 24 - fix the conflict
expecting success:
git rebase --continue &&
git log --pretty=tformat:"%s" > conflict1 &&
test_cmp expect-conflict conflict1
Applying: 3
Applying: 4
Applying: 5
Applying: 6
ok 25 - rebase --root with conflict (second part)
expecting success:
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)
Auto-merging B
CONFLICT (add/add): Merge conflict in 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 apply 2c64091... 3
100644 9b1719f5cf069568785080a0bbabbe7c377e22ae 2 B
100644 00750edc07d6415dcc07ae0351e9397b0222b7ba 3 B
ok 26 - rebase -i --root with conflict (first part)
expecting success:
echo 3 > B &&
git add B
ok 27 - fix the conflict
expecting success:
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:
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'
Rebasing (1/6)
Auto-merging B
CONFLICT (add/add): Merge conflict in 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:
echo 3 > B &&
git add B
ok 30 - fix the conflict
expecting success:
git rebase --continue &&
log_with_names conflict3 >out &&
test_cmp expect-conflict-p out
[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'
*** t3416-rebase-onto-threedots.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3416-rebase-onto-threedots/.git/
expecting success:
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:
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
First, rewinding head to replay your work on top of it...
Applying: G
ok 2 - rebase --onto master...topic
expecting success:
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
First, rewinding head to replay your work on top of it...
Applying: G
ok 3 - rebase --onto master...
expecting success:
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
master...side: there are more than one merge bases
ok 4 - rebase --onto master...side
expecting success:
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:
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:
git reset --hard &&
git checkout side &&
git reset --hard K &&
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
master...side: there are more than one merge bases
ok 7 - rebase -i --onto master...side
# passed all 7 test(s)
1..7
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:
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 file expect-second
[master (root-commit) a4cf90d] Initial empty commit
Author: A U Thor <author@example.com>
[master 45ba981] first
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
create mode 100644 file
[master d1e7d13] second
Author: A U Thor <author@example.com>
1 file changed, 7 insertions(+)
Current branch master is up to date, rebase forced.
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:
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 expect-third
[master ad98560] third
Author: A U Thor <author@example.com>
1 file changed, 7 insertions(+)
Current branch master is up to date, rebase forced.
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:
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 fe7724d second
[master ab3ed69] third
Author: A U Thor <author@example.com>
1 file changed, 7 insertions(+)
Current branch master is up to date, rebase forced.
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:
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 file expect-beginning
[master c95fb50] beginning
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+), 13 deletions(-)
[master 8e69d12] more
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
Current branch master is up to date, rebase forced.
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'
*** t3419-rebase-patch-id.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3419-rebase-patch-id/.git/
expecting success:
git commit --allow-empty -m initial &&
git tag root
[master (root-commit) 1b70308] initial
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success:
rm -f .gitattributes &&
git checkout -q -f master &&
git reset --hard root &&
count 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 1b70308 initial
ok 2 - setup: 500 lines
expecting success:
echo 'file binary' >.gitattributes
ok 3 - setup attributes
expecting success:
git checkout -q master &&
scramble file &&
git add file &&
git commit -q -m "change big file again" &&
git checkout -q other^{} &&
git rebase master &&
test_must_fail test -n "$(git rev-list master...HEAD~)"
First, rewinding head to replay your work on top of it...
Applying: add small file
ok 4 - detect upstream patch
expecting success:
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 &&
rm -rf .git/rebase-apply
First, rewinding head to replay your work on top of it...
Applying: add small file
Applying: change big file
warning: Cannot merge binary files: file (HEAD vs. change big file)
Using index info to reconstruct a base tree...
M file
Falling back to patching base and 3-way merge...
Merging:
e6fe53f add small file
virtual change big file
found 1 common ancestor:
virtual e5dcc7c81f494dce9da11f93c6ea59bdc75c6013
Auto-merging file
CONFLICT (content): Merge conflict in file
error: Failed to merge in the changes.
Patch failed at 0002 change big file
Use 'git am --show-current-patch' to see the failed patch
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 - do not drop patch
checking prerequisite: EXPENSIVE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test -n "$GIT_TEST_LONG"
)
prerequisite EXPENSIVE not satisfied
skipping test: setup: 50000 lines
rm -f .gitattributes &&
git checkout -q -f master &&
git reset --hard root &&
count 50000 >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
ok 6 # skip setup: 50000 lines (missing EXPENSIVE)
skipping test: setup attributes
echo 'file binary' >.gitattributes
ok 7 # skip setup attributes (missing EXPENSIVE)
skipping test: 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 &&
test_must_fail test -n "$(git rev-list master...HEAD~)"
ok 8 # skip detect upstream patch (missing EXPENSIVE)
skipping test: 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 &&
rm -rf .git/rebase-apply
ok 9 # skip do not drop patch (missing EXPENSIVE)
# passed all 9 test(s)
1..9
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:
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:
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:
git config rebase.autosquash true &&
test_auto_fixup final-fixup-config-true &&
test_must_fail test_auto_fixup fixup-config-true-no --no-autosquash &&
git config rebase.autosquash false &&
test_must_fail 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.
test_line_count: line count for actual != 3
03041cb fixup! first
f0c2a7e second commit
244a0fe first commit
d78c915 initial commit
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.
test_line_count: line count for actual != 3
bee11d3 fixup! first
f0c2a7e second commit
244a0fe first commit
d78c915 initial commit
ok 3 - auto fixup (config)
expecting success:
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:
git config rebase.autosquash true &&
test_auto_squash final-squash-config-true &&
test_must_fail test_auto_squash squash-config-true-no --no-autosquash &&
git config rebase.autosquash false &&
test_must_fail 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.
test_line_count: line count for actual != 3
fc8ff6e squash! first
f0c2a7e second commit
244a0fe first commit
d78c915 initial commit
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.
test_line_count: line count for actual != 3
336ee2b squash! first
f0c2a7e second commit
244a0fe first commit
d78c915 initial commit
ok 5 - auto squash (config)
expecting success:
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 &&
test 0 = $(git rev-list final-missquash...HEAD | wc -l)
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:
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 &&
test 1 = "$(git cat-file blob HEAD^^:file1)" &&
test 2 = $(git cat-file commit HEAD^^ | grep first | wc -l) &&
test 1 = $(git cat-file commit HEAD | grep first | wc -l)
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:
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 &&
test 0 = "$(git cat-file blob HEAD^^:file1)" &&
test 1 = "$(git cat-file blob HEAD^:file1)" &&
test 1 = $(git cat-file commit HEAD | grep third | wc -l) &&
test 1 = $(git cat-file commit HEAD^ | grep third | wc -l)
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:
git reset --hard base &&
echo 1 >file1 &&
git add -u &&
test_tick &&
git commit -m "squash! $(git rev-parse --short HEAD^)" &&
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 &&
test 1 = "$(git cat-file blob HEAD^:file1)" &&
test 1 = $(git cat-file commit HEAD^ | grep squash | wc -l)
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:
git reset --hard base &&
echo 1 >file1 &&
git add -u &&
test_tick &&
git commit -m "squash! $(git rev-parse --short=11 HEAD^)" &&
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 &&
test 1 = "$(git cat-file blob HEAD^:file1)" &&
test 1 = $(git cat-file commit HEAD^ | grep squash | wc -l)
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:
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:
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
expecting success:
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(-)
Could not execute editor
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated refs/heads/master.
ok 13 - fixup! fixup!
expecting success:
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(-)
Could not execute editor
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated refs/heads/master.
ok 14 - fixup! squash!
expecting success:
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(-)
Could not execute 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:
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(-)
Could not execute 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:
git reset --hard base &&
git config --add rebase.instructionFormat "[%an @ %ar] %s" &&
echo 2 >file1 &&
git add -u &&
test_tick &&
git commit -m "squash! $(git rev-parse --short HEAD^)" &&
echo 1 >file1 &&
git add -u &&
test_tick &&
git commit -m "squash! $(git log -n 1 --format=%s HEAD~2)" &&
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 &&
test 1 = "$(git cat-file blob HEAD^:file1)" &&
test 2 = $(git cat-file commit HEAD^ | grep squash | wc -l)
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:
git reset --hard base &&
test_commit empty-instructionFormat-test &&
(
set_cat_todo_editor &&
test_must_fail git -c rebase.instructionFormat= \
rebase --autosquash --force -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
Could not execute editor
ok 18 - autosquash with empty custom instructionFormat
expecting success:
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/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/master.
# pick 57d336ec506cd26f9ae698f8800eb63788ef86fe [A U Thor @ 13 years ago] empty2
ok 19 - autosquash with multiple empty patches
expecting success:
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 e70b585] to-fixup
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 to-fixup.t
[master 0b5a07e] 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:
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 8785f39] To fixup
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 wrapped
[master c4fe568] 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
# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3418-rebase-continue.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3418-rebase-continue/.git/
expecting success:
test_commit "commit-new-file-F1" F1 1 &&
test_commit "commit-new-file-F2" F2 2 &&
git checkout -b topic HEAD^ &&
test_commit "commit-new-file-F2-on-topic-branch" F2 22 &&
git checkout master
[master (root-commit) dac1376] commit-new-file-F1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F1
[master 953b3db] commit-new-file-F2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F2
Switched to a new branch 'topic'
[topic 24c5d85] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F2
Switched to branch 'master'
ok 1 - setup
expecting success:
rm -fr .git/rebase-* &&
git reset --hard &&
git checkout master &&
FAKE_LINES="edit 1" git rebase -i HEAD^ &&
test-tool chmtime =-60 F1 &&
git rebase --continue
HEAD is now at 953b3db commit-new-file-F2
Already on 'master'
rebase -i script before editing:
pick 953b3db commit-new-file-F2
rebase -i script after editing:
edit 953b3db commit-new-file-F2
Rebasing (1/1)
Stopped at 953b3db... commit-new-file-F2
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Successfully rebased and updated refs/heads/master.
ok 2 - interactive rebase --continue works with touched file
expecting success:
rm -fr .git/rebase-* &&
git reset --hard &&
git checkout master &&
test_must_fail git rebase --onto master master topic &&
echo "Resolved" >F2 &&
git add F2 &&
test-tool chmtime =-60 F1 &&
git rebase --continue
HEAD is now at 953b3db commit-new-file-F2
Already on 'master'
First, rewinding head to replay your work on top of it...
Applying: commit-new-file-F2-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
953b3db commit-new-file-F2
virtual commit-new-file-F2-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: Failed to merge in the changes.
Patch failed at 0001 commit-new-file-F2-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F2-on-topic-branch
ok 3 - non-interactive rebase --continue works with touched file
expecting success:
test_must_fail git rebase -v --continue &&
test_must_fail git rebase --continue -v
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--autostash automatically stash/stash pop before and after
--fork-point use 'merge-base --fork-point' to refine upstream
--onto ... rebase onto given branch instead of upstream
-r, --rebase-merges[=...]
try to rebase merges instead of skipping them
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
--allow-empty-message
allow rebasing commits with empty messages
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--signoff passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
-S, --gpg-sign[=...] GPG-sign commits
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
--quit abort but keep HEAD where it is
--show-current-patch show the patch file being applied or merged
ok 4 - rebase --continue can not be used with other options
expecting success:
rm -fr .git/rebase-* &&
git reset --hard commit-new-file-F2-on-topic-branch &&
test_commit "commit-new-file-F3-on-topic-branch" F3 32 &&
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 &&
(
PATH=./test-bin:$PATH
test_must_fail git rebase -s funny -Xopt master topic
) &&
test -f funny.was.run &&
rm funny.was.run &&
echo "Resolved" >F2 &&
git add F2 &&
(
PATH=./test-bin:$PATH
git rebase --continue
) &&
test -f funny.was.run
HEAD is now at 24c5d85 commit-new-file-F2-on-topic-branch
[topic 39de9a1] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F3
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
953b3db commit-new-file-F2
24c5d85 commit-new-file-F2-on-topic-branch
found 1 common ancestor:
dac1376 commit-new-file-F1
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
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".
[detached HEAD 6396a51] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0001 commit-new-file-F2-on-topic-branch
Merging master with HEAD~0
Merging:
6396a51 commit-new-file-F2-on-topic-branch
39de9a1 commit-new-file-F3-on-topic-branch
found 1 common ancestor:
24c5d85 commit-new-file-F2-on-topic-branch
[detached HEAD 07d5098] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 F3
Committed: 0002 commit-new-file-F3-on-topic-branch
All done.
ok 5 - rebase --continue remembers merge strategy and options
expecting success:
rm -fr .git/rebase-* &&
git reset --hard commit-new-file-F3-on-topic-branch &&
test_commit theirs-to-merge &&
git reset --hard HEAD^ &&
test_commit some-commit &&
test_tick &&
git merge --no-ff theirs-to-merge &&
FAKE_LINES="1 edit 2 3" git rebase -i -f -p -m \
-s recursive --strategy-option=theirs HEAD~2 &&
test_commit force-change &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
[topic 42deb54] theirs-to-merge
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 theirs-to-merge.t
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
[topic 27a6bd3] some-commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 some-commit.t
Merging:
27a6bd3 some-commit
virtual theirs-to-merge
found 1 common ancestor:
39de9a1 commit-new-file-F3-on-topic-branch
Merge made by the 'recursive' strategy.
theirs-to-merge.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 theirs-to-merge.t
rebase -i script before editing:
pick 27a6bd3 some-commit
pick 42deb54 theirs-to-merge
pick 51eeea0 Merge tag 'theirs-to-merge' into topic
rebase -i script after editing:
pick 27a6bd3 some-commit
edit 42deb54 theirs-to-merge
pick 51eeea0 Merge tag 'theirs-to-merge' into topic
Rebasing (1/3)
Rebasing (2/3)
Stopped at 42deb54... theirs-to-merge
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
[detached HEAD ff72cfe] force-change
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 force-change.t
Rebasing (3/3)
Successfully rebased and updated refs/heads/topic.
ok 6 - rebase passes merge strategy options correctly
expecting success:
test_when_finished "test_might_fail git rebase --abort" &&
git checkout -b with-conflicting-fixup &&
test_commit wants-fixup &&
test_commit "fixup! wants-fixup" wants-fixup.t 1 wants-fixup-1 &&
test_commit "fixup! wants-fixup" wants-fixup.t 2 wants-fixup-2 &&
test_commit "fixup! wants-fixup" wants-fixup.t 3 wants-fixup-3 &&
test_must_fail env FAKE_LINES="1 fixup 2 squash 4" \
git rebase -i HEAD~4 &&
: now there is a conflict, and comments in the commit message &&
git show HEAD >out &&
grep "fixup! wants-fixup" out &&
: skip and continue &&
echo "cp \"\$1\" .git/copy.txt" | write_script copy-editor.sh &&
(test_set_editor "$PWD/copy-editor.sh" && git rebase --skip) &&
: the user should not have had to edit the commit message &&
test_path_is_missing .git/copy.txt &&
: now the comments in the commit message should have been cleaned up &&
git show HEAD >out &&
! grep "fixup! wants-fixup" out &&
: now, let us ensure that "squash" is handled correctly &&
git reset --hard wants-fixup-3 &&
test_must_fail env FAKE_LINES="1 squash 4 squash 2 squash 4" \
git rebase -i HEAD~4 &&
: the first squash failed, but there are two more in the chain &&
(test_set_editor "$PWD/copy-editor.sh" &&
test_must_fail git rebase --skip) &&
: not the final squash, no need to edit the commit message &&
test_path_is_missing .git/copy.txt &&
: The first squash was skipped, therefore: &&
git show HEAD >out &&
test_i18ngrep "# This is a combination of 2 commits" out &&
(test_set_editor "$PWD/copy-editor.sh" && git rebase --skip) &&
git show HEAD >out &&
test_i18ngrep ! "# This is a combination" out &&
: Final squash failed, but there was still a squash &&
test_i18ngrep "# This is a combination of 2 commits" .git/copy.txt
Switched to a new branch 'with-conflicting-fixup'
[with-conflicting-fixup e906305] wants-fixup
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 wants-fixup.t
[with-conflicting-fixup 04afd79] fixup! wants-fixup
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[with-conflicting-fixup 5d841b0] fixup! wants-fixup
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[with-conflicting-fixup e961648] fixup! wants-fixup
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
rebase -i script before editing:
pick e906305 wants-fixup
pick 04afd79 fixup! wants-fixup
pick 5d841b0 fixup! wants-fixup
pick e961648 fixup! wants-fixup
rebase -i script after editing:
pick e906305 wants-fixup
fixup 04afd79 fixup! wants-fixup
squash e961648 fixup! wants-fixup
Rebasing (2/3)
Rebasing (3/3)
Auto-merging wants-fixup.t
CONFLICT (content): Merge conflict in wants-fixup.t
error: could not apply e961648... fixup! wants-fixup
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 e961648... fixup! wants-fixup
# fixup! wants-fixup
Successfully rebased and updated refs/heads/with-conflicting-fixup.
HEAD is now at e961648 fixup! wants-fixup
rebase -i script before editing:
pick e906305 wants-fixup
pick 04afd79 fixup! wants-fixup
pick 5d841b0 fixup! wants-fixup
pick e961648 fixup! wants-fixup
rebase -i script after editing:
pick e906305 wants-fixup
squash e961648 fixup! wants-fixup
squash 04afd79 fixup! wants-fixup
squash e961648 fixup! wants-fixup
Rebasing (2/4)
Auto-merging wants-fixup.t
CONFLICT (content): Merge conflict in wants-fixup.t
error: could not apply e961648... fixup! wants-fixup
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 e961648... fixup! wants-fixup
Rebasing (3/4)
Rebasing (4/4)
Auto-merging wants-fixup.t
CONFLICT (content): Merge conflict in wants-fixup.t
error: could not apply e961648... fixup! wants-fixup
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 e961648... fixup! wants-fixup
# This is a combination of 2 commits.
[detached HEAD 6f4b305] wants-fixup
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 wants-fixup.t
Successfully rebased and updated refs/heads/with-conflicting-fixup.
# This is a combination of 2 commits.
No rebase in progress?
ok 7 - --skip after failed fixup cleans commit message
expecting success:
rm -fr .git/rebase-* &&
git reset --hard commit-new-file-F3-on-topic-branch &&
git checkout master &&
test_commit "commit-new-file-F3" F3 3 &&
test_config rerere.enabled true &&
test_must_fail git rebase -m master topic &&
echo "Resolved" >F2 &&
cp F2 expected-F2 &&
git add F2 &&
test_must_fail git rebase --continue &&
echo "Resolved" >F3 &&
cp F3 expected-F3 &&
git add F3 &&
git rebase --continue &&
git reset --hard topic@{1}
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
[master 544942a] commit-new-file-F3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F3
First, rewinding head to replay your work on top of it...
Merging master with HEAD~4
Merging:
544942a commit-new-file-F3
24c5d85 commit-new-file-F2-on-topic-branch
found 1 common ancestor:
dac1376 commit-new-file-F1
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Recorded preimage for 'F2'
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".
Recorded resolution for 'F2'.
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0001 commit-new-file-F2-on-topic-branch
Merging master with HEAD~3
Merging:
eea28ba commit-new-file-F2-on-topic-branch
39de9a1 commit-new-file-F3-on-topic-branch
found 1 common ancestor:
24c5d85 commit-new-file-F2-on-topic-branch
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Recorded preimage for 'F3'
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".
Recorded resolution for 'F3'.
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0002 commit-new-file-F3-on-topic-branch
Merging master with HEAD~2
Merging:
6cb54c7 commit-new-file-F3-on-topic-branch
42deb54 theirs-to-merge
found 1 common ancestor:
39de9a1 commit-new-file-F3-on-topic-branch
[detached HEAD 9b382be] theirs-to-merge
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs-to-merge.t
Committed: 0003 theirs-to-merge
Merging master with HEAD~1
Merging:
9b382be theirs-to-merge
27a6bd3 some-commit
found 1 common ancestor:
39de9a1 commit-new-file-F3-on-topic-branch
[detached HEAD 9c5dac9] some-commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 some-commit.t
Committed: 0004 some-commit
Merging master with HEAD~0
Merging:
9c5dac9 some-commit
ff72cfe force-change
found 1 common ancestor:
42deb54 theirs-to-merge
[detached HEAD b1cfac3] force-change
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:20:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 force-change.t
Committed: 0005 force-change
All done.
HEAD is now at 03df9c4 Merge tag 'theirs-to-merge' into topic
ok 8 - setup rerere database
expecting success:
prepare &&
test_must_fail git rebase $action --rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
First, rewinding head to replay your work on top of it...
Applying: commit-new-file-F2-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
544942a commit-new-file-F3
virtual commit-new-file-F2-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Staged 'F2' using previous resolution.
error: Failed to merge in the changes.
Patch failed at 0001 commit-new-file-F2-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F2-on-topic-branch
Applying: commit-new-file-F3-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
eea28ba commit-new-file-F2-on-topic-branch
virtual commit-new-file-F3-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Staged 'F3' using previous resolution.
error: Failed to merge in the changes.
Patch failed at 0002 commit-new-file-F3-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F3-on-topic-branch
ok 9 - rebase --continue remembers --rerere-autoupdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
First, rewinding head to replay your work on top of it...
Applying: commit-new-file-F2-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
544942a commit-new-file-F3
virtual commit-new-file-F2-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Staged 'F2' using previous resolution.
error: Failed to merge in the changes.
Patch failed at 0001 commit-new-file-F2-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F2-on-topic-branch
Applying: commit-new-file-F3-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
eea28ba commit-new-file-F2-on-topic-branch
virtual commit-new-file-F3-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Staged 'F3' using previous resolution.
error: Failed to merge in the changes.
Patch failed at 0002 commit-new-file-F3-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F3-on-topic-branch
ok 10 - rebase --continue honors rerere.autoUpdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action --no-rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
test_must_fail git diff-files --quiet &&
git add F2 &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
test_must_fail git diff-files --quiet &&
git add F3 &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
First, rewinding head to replay your work on top of it...
Applying: commit-new-file-F2-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
544942a commit-new-file-F3
virtual commit-new-file-F2-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Resolved 'F2' using previous resolution.
error: Failed to merge in the changes.
Patch failed at 0001 commit-new-file-F2-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F2-on-topic-branch
Applying: commit-new-file-F3-on-topic-branch
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
eea28ba commit-new-file-F2-on-topic-branch
virtual commit-new-file-F3-on-topic-branch
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Resolved 'F3' using previous resolution.
error: Failed to merge in the changes.
Patch failed at 0002 commit-new-file-F3-on-topic-branch
Use 'git am --show-current-patch' to see the failed patch
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: commit-new-file-F3-on-topic-branch
ok 11 - rebase --continue remembers --no-rerere-autoupdate
expecting success:
prepare &&
test_must_fail git rebase $action --rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
544942a commit-new-file-F3
24c5d85 commit-new-file-F2-on-topic-branch
found 1 common ancestor:
dac1376 commit-new-file-F1
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Staged 'F2' using previous resolution.
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".
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0001 commit-new-file-F2-on-topic-branch
Merging master with HEAD~0
Merging:
eea28ba commit-new-file-F2-on-topic-branch
39de9a1 commit-new-file-F3-on-topic-branch
found 1 common ancestor:
24c5d85 commit-new-file-F2-on-topic-branch
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Staged 'F3' using previous resolution.
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".
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0002 commit-new-file-F3-on-topic-branch
All done.
ok 12 - rebase -m --continue remembers --rerere-autoupdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
544942a commit-new-file-F3
24c5d85 commit-new-file-F2-on-topic-branch
found 1 common ancestor:
dac1376 commit-new-file-F1
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Staged 'F2' using previous resolution.
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".
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0001 commit-new-file-F2-on-topic-branch
Merging master with HEAD~0
Merging:
eea28ba commit-new-file-F2-on-topic-branch
39de9a1 commit-new-file-F3-on-topic-branch
found 1 common ancestor:
24c5d85 commit-new-file-F2-on-topic-branch
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Staged 'F3' using previous resolution.
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".
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0002 commit-new-file-F3-on-topic-branch
All done.
ok 13 - rebase -m --continue honors rerere.autoUpdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action --no-rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
test_must_fail git diff-files --quiet &&
git add F2 &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
test_must_fail git diff-files --quiet &&
git add F3 &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
544942a commit-new-file-F3
24c5d85 commit-new-file-F2-on-topic-branch
found 1 common ancestor:
dac1376 commit-new-file-F1
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
Resolved 'F2' using previous resolution.
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".
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0001 commit-new-file-F2-on-topic-branch
Merging master with HEAD~0
Merging:
eea28ba commit-new-file-F2-on-topic-branch
39de9a1 commit-new-file-F3-on-topic-branch
found 1 common ancestor:
24c5d85 commit-new-file-F2-on-topic-branch
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
Resolved 'F3' using previous resolution.
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".
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Committed: 0002 commit-new-file-F3-on-topic-branch
All done.
ok 14 - rebase -m --continue remembers --no-rerere-autoupdate
expecting success:
prepare &&
test_must_fail git rebase $action --rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
Rebasing (1/2)
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: could not apply 24c5d85... commit-new-file-F2-on-topic-branch
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".
Staged 'F2' using previous resolution.
Could not apply 24c5d85... commit-new-file-F2-on-topic-branch
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
error: could not apply 39de9a1... commit-new-file-F3-on-topic-branch
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".
Staged 'F3' using previous resolution.
Could not apply 39de9a1... commit-new-file-F3-on-topic-branch
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/topic.
ok 15 - rebase -i --continue remembers --rerere-autoupdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
Rebasing (1/2)
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: could not apply 24c5d85... commit-new-file-F2-on-topic-branch
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".
Staged 'F2' using previous resolution.
Could not apply 24c5d85... commit-new-file-F2-on-topic-branch
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
error: could not apply 39de9a1... commit-new-file-F3-on-topic-branch
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".
Staged 'F3' using previous resolution.
Could not apply 39de9a1... commit-new-file-F3-on-topic-branch
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/topic.
ok 16 - rebase -i --continue honors rerere.autoUpdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action --no-rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
test_must_fail git diff-files --quiet &&
git add F2 &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
test_must_fail git diff-files --quiet &&
git add F3 &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
Rebasing (1/2)
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: could not apply 24c5d85... commit-new-file-F2-on-topic-branch
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".
Resolved 'F2' using previous resolution.
Could not apply 24c5d85... commit-new-file-F2-on-topic-branch
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
error: could not apply 39de9a1... commit-new-file-F3-on-topic-branch
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".
Resolved 'F3' using previous resolution.
Could not apply 39de9a1... commit-new-file-F3-on-topic-branch
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/topic.
ok 17 - rebase -i --continue remembers --no-rerere-autoupdate
expecting success:
prepare &&
test_must_fail git rebase $action --rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
Rebasing (1/2)
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: could not apply 24c5d85... commit-new-file-F2-on-topic-branch
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".
Staged 'F2' using previous resolution.
Could not pick 24c5d85f362d6c25d316c040586afc3e0548165a
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
error: could not apply 39de9a1... commit-new-file-F3-on-topic-branch
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".
Staged 'F3' using previous resolution.
Could not pick 39de9a17650c52c96f2d6848fba0d846df88a78f
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Successfully rebased and updated refs/heads/topic.
ok 18 - rebase --preserve-merges --continue remembers --rerere-autoupdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action master topic &&
test_cmp expected-F2 F2 &&
git diff-files --quiet &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
git diff-files --quiet &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
Rebasing (1/2)
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: could not apply 24c5d85... commit-new-file-F2-on-topic-branch
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".
Staged 'F2' using previous resolution.
Could not pick 24c5d85f362d6c25d316c040586afc3e0548165a
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
error: could not apply 39de9a1... commit-new-file-F3-on-topic-branch
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".
Staged 'F3' using previous resolution.
Could not pick 39de9a17650c52c96f2d6848fba0d846df88a78f
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Successfully rebased and updated refs/heads/topic.
ok 19 - rebase --preserve-merges --continue honors rerere.autoUpdate
expecting success:
prepare &&
test_config rerere.autoupdate true &&
test_must_fail git rebase $action --no-rerere-autoupdate master topic &&
test_cmp expected-F2 F2 &&
test_must_fail git diff-files --quiet &&
git add F2 &&
test_must_fail git rebase --continue &&
test_cmp expected-F3 F3 &&
test_must_fail git diff-files --quiet &&
git add F3 &&
git rebase --continue
HEAD is now at 39de9a1 commit-new-file-F3-on-topic-branch
Switched to branch 'master'
Rebasing (1/2)
Auto-merging F2
CONFLICT (add/add): Merge conflict in F2
error: could not apply 24c5d85... commit-new-file-F2-on-topic-branch
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".
Resolved 'F2' using previous resolution.
Could not pick 24c5d85f362d6c25d316c040586afc3e0548165a
[detached HEAD eea28ba] commit-new-file-F2-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Auto-merging F3
CONFLICT (add/add): Merge conflict in F3
error: could not apply 39de9a1... commit-new-file-F3-on-topic-branch
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".
Resolved 'F3' using previous resolution.
Could not pick 39de9a17650c52c96f2d6848fba0d846df88a78f
[detached HEAD 6cb54c7] commit-new-file-F3-on-topic-branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Successfully rebased and updated refs/heads/topic.
ok 20 - rebase --preserve-merges --continue remembers --no-rerere-autoupdate
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3420-rebase-autostash.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3420-rebase-autostash/.git/
expecting success:
echo hello-world >file0 &&
git add . &&
test_tick &&
git commit -m "initial commit" &&
git checkout -b feature-branch &&
echo another-hello >file1 &&
echo goodbye >file2 &&
git add . &&
test_tick &&
git commit -m "second commit" &&
echo final-goodbye >file3 &&
git add . &&
test_tick &&
git commit -m "third commit" &&
git checkout -b unrelated-onto-branch master &&
echo unrelated >file4 &&
git add . &&
test_tick &&
git commit -m "unrelated commit" &&
git checkout -b related-onto-branch master &&
echo conflicting-change >file2 &&
git add . &&
test_tick &&
git commit -m "related commit"
[master (root-commit) bfa4f02] initial commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file0
Switched to a new branch 'feature-branch'
[feature-branch 6fe95e2] second commit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 file1
create mode 100644 file2
[feature-branch 0c4d2f1] third commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file3
Switched to a new branch 'unrelated-onto-branch'
[unrelated-onto-branch 4aede2f] unrelated commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file4
Switched to a new branch 'related-onto-branch'
[related-onto-branch c57d250] related commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
ok 1 - setup
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b behind-feature-branch feature-branch~1 &&
test_when_finished git branch -D behind-feature-branch &&
echo dirty >>file1 &&
git rebase feature-branch &&
grep dirty file1 &&
git checkout feature-branch
HEAD is now at c57d250 related commit
Switched to a new branch 'behind-feature-branch'
Created autostash: 9a740dd
HEAD is now at 6fe95e2 second commit
First, rewinding head to replay your work on top of it...
Fast-forwarded behind-feature-branch to feature-branch.
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file1
Deleted branch behind-feature-branch (was 0c4d2f1).
ok 2 - rebase: fast-forward rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b same-feature-branch feature-branch &&
test_when_finished git branch -D same-feature-branch &&
echo dirty >>file1 &&
git rebase feature-branch &&
grep dirty file1 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'same-feature-branch'
Created autostash: 37616bd
HEAD is now at 0c4d2f1 third commit
Current branch same-feature-branch is up to date.
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file1
Deleted branch same-feature-branch (was 0c4d2f1).
ok 3 - rebase: noop rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
test_when_finished git checkout feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type --no-autostash unrelated-onto-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Cannot rebase: You have unstaged changes.
Please commit or stash them.
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 4 - rebase: dirty worktree, --no-autostash
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
echo dirty >>file3 &&
git rebase$type unrelated-onto-branch >actual 2>&1 &&
grep unrelated file4 &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
unrelated
dirty
Switched to branch 'feature-branch'
M file3
ok 5 - rebase: dirty worktree, non-conflicting rebase
expecting success:
test_when_finished git branch -D rebased-feature-branch &&
suffix=${type#\ --} && suffix=${suffix:-am} &&
create_expected_success_$suffix &&
test_i18ncmp expected actual
Deleted branch rebased-feature-branch (was b607b14).
ok 6 - rebase --autostash: check output
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
git add file3 &&
git rebase$type unrelated-onto-branch &&
grep unrelated file4 &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: e9af673
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Applying: third commit
Applied autostash.
unrelated
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was b607b14).
ok 7 - rebase: dirty index, non-conflicting rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
rm -rf $dotest &&
git reset --hard &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
c57d250 related commit
virtual second commit
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: Failed to merge in the changes.
Patch failed at 0001 second commit
Use 'git am --show-current-patch' to see the failed patch
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".
grep: file3: No such file or directory
HEAD is now at c57d250 related commit
Previous HEAD position was c57d250 related commit
Switched to branch 'feature-branch'
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 8 - rebase: conflicting rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
echo "conflicting-plus-goodbye" >file2 &&
git add file2 &&
git rebase --continue &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
c57d250 related commit
virtual second commit
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: Failed to merge in the changes.
Patch failed at 0001 second commit
Use 'git am --show-current-patch' to see the failed patch
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".
grep: file3: No such file or directory
Applying: second commit
Applying: third commit
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 51f2c81).
ok 9 - rebase: --continue
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
git rebase --skip &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
c57d250 related commit
virtual second commit
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: Failed to merge in the changes.
Patch failed at 0001 second commit
Use 'git am --show-current-patch' to see the failed patch
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".
grep: file3: No such file or directory
Applying: third commit
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was fa02356).
ok 10 - rebase: --skip
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
git rebase --abort &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
c57d250 related commit
virtual second commit
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: Failed to merge in the changes.
Patch failed at 0001 second commit
Use 'git am --show-current-patch' to see the failed patch
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".
grep: file3: No such file or directory
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 11 - rebase: --abort
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
echo dirty >file4 &&
git add file4 &&
git rebase$type unrelated-onto-branch >actual 2>&1 &&
test_path_is_missing $dotest &&
git reset --hard &&
grep unrelated file4 &&
! grep dirty file4 &&
git checkout feature-branch &&
git stash pop &&
grep dirty file4
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
HEAD is now at b607b14 third commit
unrelated
Switched to branch 'feature-branch'
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 28566cc718f43a597c158e8411c19d7048328a85
On branch feature-branch
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file4
Untracked files:
(use "git add <file>..." to include in what will be committed)
actual
expected
Dropped refs/stash@{0} (de4e47a31ead4744c6d223df2e4638effc5ff8b7)
dirty
ok 12 - rebase: non-conflicting rebase, conflicting stash
expecting success:
test_when_finished git branch -D rebased-feature-branch &&
suffix=${type#\ --} && suffix=${suffix:-am} &&
create_expected_failure_$suffix &&
test_i18ncmp expected actual
Deleted branch rebased-feature-branch (was b607b14).
ok 13 - rebase: check output with conflicting stash
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
test_when_finished git checkout feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type --no-autostash unrelated-onto-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Cannot rebase: You have unstaged changes.
Please commit or stash them.
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 14 - rebase --merge: dirty worktree, --no-autostash
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
echo dirty >>file3 &&
git rebase$type unrelated-onto-branch >actual 2>&1 &&
grep unrelated file4 &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
unrelated
dirty
Switched to branch 'feature-branch'
M file3
ok 15 - rebase --merge: dirty worktree, non-conflicting rebase
expecting success:
test_when_finished git branch -D rebased-feature-branch &&
suffix=${type#\ --} && suffix=${suffix:-am} &&
create_expected_success_$suffix &&
test_i18ncmp expected actual
Deleted branch rebased-feature-branch (was b607b14).
ok 16 - rebase --merge --autostash: check output
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
git add file3 &&
git rebase$type unrelated-onto-branch &&
grep unrelated file4 &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: e9af673
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Merging unrelated-onto-branch with HEAD~1
Merging:
4aede2f unrelated commit
6fe95e2 second commit
found 1 common ancestor:
bfa4f02 initial commit
[detached HEAD 54abd5c] second 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
Committed: 0001 second commit
Merging unrelated-onto-branch with HEAD~0
Merging:
54abd5c second commit
0c4d2f1 third commit
found 1 common ancestor:
6fe95e2 second commit
[detached HEAD b607b14] third commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 file3
Committed: 0002 third commit
All done.
Applied autostash.
unrelated
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was b607b14).
ok 17 - rebase --merge: dirty index, non-conflicting rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
rm -rf $dotest &&
git reset --hard &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Merging related-onto-branch with HEAD~1
Merging:
c57d250 related commit
6fe95e2 second commit
found 1 common ancestor:
bfa4f02 initial commit
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
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".
grep: file3: No such file or directory
HEAD is now at c57d250 related commit
Previous HEAD position was c57d250 related commit
Switched to branch 'feature-branch'
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 18 - rebase --merge: conflicting rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
echo "conflicting-plus-goodbye" >file2 &&
git add file2 &&
git rebase --continue &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Merging related-onto-branch with HEAD~1
Merging:
c57d250 related commit
6fe95e2 second commit
found 1 common ancestor:
bfa4f02 initial commit
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
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".
grep: file3: No such file or directory
[detached HEAD 62edf38] second commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 file1
Committed: 0001 second commit
Merging related-onto-branch with HEAD~0
Merging:
62edf38 second commit
0c4d2f1 third commit
found 1 common ancestor:
6fe95e2 second commit
[detached HEAD 51f2c81] third commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 file3
Committed: 0002 third commit
All done.
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 51f2c81).
ok 19 - rebase --merge: --continue
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
git rebase --skip &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Merging related-onto-branch with HEAD~1
Merging:
c57d250 related commit
6fe95e2 second commit
found 1 common ancestor:
bfa4f02 initial commit
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
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".
grep: file3: No such file or directory
Merging related-onto-branch with HEAD~0
Merging:
c57d250 related commit
0c4d2f1 third commit
found 1 common ancestor:
6fe95e2 second commit
[detached HEAD fa02356] third commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 file3
Committed: 0002 third commit
All done.
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was fa02356).
ok 20 - rebase --merge: --skip
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
git rebase --abort &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
First, rewinding head to replay your work on top of it...
Merging related-onto-branch with HEAD~1
Merging:
c57d250 related commit
6fe95e2 second commit
found 1 common ancestor:
bfa4f02 initial commit
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
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".
grep: file3: No such file or directory
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 21 - rebase --merge: --abort
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
echo dirty >file4 &&
git add file4 &&
git rebase$type unrelated-onto-branch >actual 2>&1 &&
test_path_is_missing $dotest &&
git reset --hard &&
grep unrelated file4 &&
! grep dirty file4 &&
git checkout feature-branch &&
git stash pop &&
grep dirty file4
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
HEAD is now at b607b14 third commit
unrelated
Switched to branch 'feature-branch'
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 28566cc718f43a597c158e8411c19d7048328a85
On branch feature-branch
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file4
Untracked files:
(use "git add <file>..." to include in what will be committed)
actual
expected
Dropped refs/stash@{0} (de4e47a31ead4744c6d223df2e4638effc5ff8b7)
dirty
ok 22 - rebase --merge: non-conflicting rebase, conflicting stash
expecting success:
test_when_finished git branch -D rebased-feature-branch &&
suffix=${type#\ --} && suffix=${suffix:-am} &&
create_expected_failure_$suffix &&
test_i18ncmp expected actual
Deleted branch rebased-feature-branch (was b607b14).
ok 23 - rebase --merge: check output with conflicting stash
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
test_when_finished git checkout feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type --no-autostash unrelated-onto-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Cannot rebase: You have unstaged changes.
Please commit or stash them.
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 24 - rebase --interactive: dirty worktree, --no-autostash
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
echo dirty >>file3 &&
git rebase$type unrelated-onto-branch >actual 2>&1 &&
grep unrelated file4 &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
unrelated
dirty
Switched to branch 'feature-branch'
M file3
ok 25 - rebase --interactive: dirty worktree, non-conflicting rebase
expecting success:
test_when_finished git branch -D rebased-feature-branch &&
suffix=${type#\ --} && suffix=${suffix:-am} &&
create_expected_success_$suffix &&
test_i18ncmp expected actual
Deleted branch rebased-feature-branch (was b607b14).
ok 26 - rebase --interactive --autostash: check output
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
git add file3 &&
git rebase$type unrelated-onto-branch &&
grep unrelated file4 &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: e9af673
HEAD is now at 0c4d2f1 third commit
Rebasing (1/2)
Rebasing (2/2)
Applied autostash.
Successfully rebased and updated refs/heads/rebased-feature-branch.
unrelated
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was b607b14).
ok 27 - rebase --interactive: dirty index, non-conflicting rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
rm -rf $dotest &&
git reset --hard &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
Rebasing (1/2)
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: could not apply 6fe95e2... second commit
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 6fe95e2... second commit
grep: file3: No such file or directory
HEAD is now at c57d250 related commit
Previous HEAD position was c57d250 related commit
Switched to branch 'feature-branch'
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 28 - rebase --interactive: conflicting rebase
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
echo "conflicting-plus-goodbye" >file2 &&
git add file2 &&
git rebase --continue &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
Rebasing (1/2)
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: could not apply 6fe95e2... second commit
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 6fe95e2... second commit
grep: file3: No such file or directory
[detached HEAD 62edf38] second commit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 file1
Rebasing (2/2)
Applied autostash.
Successfully rebased and updated refs/heads/rebased-feature-branch.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 51f2c81).
ok 29 - rebase --interactive: --continue
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
git rebase --skip &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
Rebasing (1/2)
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: could not apply 6fe95e2... second commit
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 6fe95e2... second commit
grep: file3: No such file or directory
Rebasing (2/2)
Applied autostash.
Successfully rebased and updated refs/heads/rebased-feature-branch.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was fa02356).
ok 30 - rebase --interactive: --skip
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type related-onto-branch &&
test_path_is_file $dotest/autostash &&
! grep dirty file3 &&
git rebase --abort &&
test_path_is_missing $dotest/autostash &&
grep dirty file3 &&
git checkout feature-branch
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
Created autostash: cdca6ca
HEAD is now at 0c4d2f1 third commit
Rebasing (1/2)
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
error: could not apply 6fe95e2... second commit
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 6fe95e2... second commit
grep: file3: No such file or directory
Applied autostash.
dirty
Switched to branch 'feature-branch'
M file3
Deleted branch rebased-feature-branch (was 0c4d2f1).
ok 31 - rebase --interactive: --abort
expecting success:
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
echo dirty >file4 &&
git add file4 &&
git rebase$type unrelated-onto-branch >actual 2>&1 &&
test_path_is_missing $dotest &&
git reset --hard &&
grep unrelated file4 &&
! grep dirty file4 &&
git checkout feature-branch &&
git stash pop &&
grep dirty file4
HEAD is now at 0c4d2f1 third commit
Switched to a new branch 'rebased-feature-branch'
HEAD is now at b607b14 third commit
unrelated
Switched to branch 'feature-branch'
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 28566cc718f43a597c158e8411c19d7048328a85
On branch feature-branch
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file4
Untracked files:
(use "git add <file>..." to include in what will be committed)
actual
expected
Dropped refs/stash@{0} (de4e47a31ead4744c6d223df2e4638effc5ff8b7)
dirty
ok 32 - rebase --interactive: non-conflicting rebase, conflicting stash
expecting success:
test_when_finished git branch -D rebased-feature-branch &&
suffix=${type#\ --} && suffix=${suffix:-am} &&
create_expected_failure_$suffix &&
test_i18ncmp expected actual
Deleted branch rebased-feature-branch (was b607b14).
ok 33 - rebase --interactive: check output with conflicting stash
expecting success:
test_when_finished "git reset --hard" &&
echo uncommitted-content >file0 &&
(
write_script abort-editor.sh <<-\EOF &&
echo >"$1"
EOF
test_set_editor "$(pwd)/abort-editor.sh" &&
test_must_fail git rebase -i --autostash HEAD^ &&
rm -f abort-editor.sh
) &&
echo uncommitted-content >expected &&
test_cmp expected file0
Created autostash: 5885b29
HEAD is now at 0c4d2f1 third commit
Applied autostash.
Nothing to do
HEAD is now at 0c4d2f1 third commit
ok 34 - abort rebase -i with --autostash
expecting success:
test_when_finished "git reset --hard" &&
echo uncommitted-content >file0 &&
(
test_set_editor "false" &&
test_must_fail git rebase -i --autostash HEAD^
) &&
echo uncommitted-content >expected &&
test_cmp expected file0
Created autostash: 5cd734b
HEAD is now at 0c4d2f1 third commit
Applied autostash.
Could not execute editor
HEAD is now at 0c4d2f1 third commit
ok 35 - restore autostash on editor failure
expecting success:
test_when_finished "git reset --hard" &&
echo uncommitted-content >file0 &&
(
write_script abort-editor.sh <<-\EOF &&
echo conflicting-content >file0
exit 1
EOF
test_set_editor "$(pwd)/abort-editor.sh" &&
test_must_fail git rebase -i --autostash HEAD^ &&
rm -f abort-editor.sh
) &&
echo conflicting-content >expected &&
test_cmp expected file0 &&
git checkout file0 &&
git stash pop &&
echo uncommitted-content >expected &&
test_cmp expected file0
Created autostash: 5cd734b
HEAD is now at 0c4d2f1 third commit
Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" at any time.
Could not execute editor
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 28566cc718f43a597c158e8411c19d7048328a85
On branch feature-branch
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: file0
Untracked files:
(use "git add <file>..." to include in what will be committed)
actual
expected
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (5cd734b91d271fe3e8dc3da7a91046a5745e404f)
HEAD is now at 0c4d2f1 third commit
ok 36 - autostash is saved on editor failure with conflict
# passed all 36 test(s)
1..36
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:
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
[master (root-commit) 6e62bf8] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
[master 313fe96] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master d0f65f2] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
[master 0547e3f] D
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 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:
git checkout -b emptybranch master &&
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:
git checkout master &&
(
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 master HEAD &&
rm -f touch-*
Switched to branch 'master'
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/master.
ok 3 - rebase -i with the exec command
expecting success:
git checkout master &&
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 'master'
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/master.
ok 4 - rebase -i with the exec command runs from tree root
expecting success:
test_when_finished "rm -rf subdir" &&
test_when_finished "git rebase --abort ||:" &&
git checkout master &&
mkdir subdir && (cd subdir &&
set_fake_editor &&
FAKE_LINES="1 exec_cd_subdir_&&_git_rev-parse_--is-inside-work-tree" \
git rebase -i HEAD^
)
Already on 'master'
rebase -i script before editing:
pick 8f99a4f E
rebase -i script after editing:
pick 8f99a4f E
exec 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/master.
No rebase in progress?
ok 5 - rebase -i with exec allows git commands in subdirs
expecting success:
git checkout master &&
set_fake_editor &&
test_must_fail env FAKE_LINES="exec_echo_foo_>file1 1" git rebase -i HEAD^ &&
test_cmp_rev master^ HEAD &&
git reset --hard &&
git rebase --continue
Already on 'master'
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/master.
ok 6 - rebase -i with the exec command checks tree cleanness
expecting success:
git checkout master &&
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 'master'
ok 7 - rebase -i with exec of inexistent command
expecting success:
git checkout branch2 &&
set_fake_editor &&
git rebase -i F &&
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" &&
test $(git rev-parse I) = $(git rev-parse HEAD)
Switched to branch 'branch2'
Successfully rebased and updated refs/heads/branch2.
ok 8 - no changes are a nop
expecting success:
git checkout -b dead-end &&
git rm file6 &&
git commit -m "stop here" &&
set_fake_editor &&
git rebase -i F branch2 &&
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" &&
test $(git rev-parse I) = $(git rev-parse branch2) &&
test $(git rev-parse I) = $(git rev-parse 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 9 - test the [branch] option
expecting success:
git checkout -b test-onto branch2 &&
set_fake_editor &&
git rebase -i --onto branch1 F &&
test "$(git symbolic-ref -q HEAD)" = "refs/heads/test-onto" &&
test $(git rev-parse HEAD^) = $(git rev-parse branch1) &&
test $(git rev-parse I) = $(git rev-parse branch2)
Switched to a new branch 'test-onto'
Rebasing (1/1)
Successfully rebased and updated refs/heads/test-onto.
ok 10 - test --onto <branch>
expecting success:
git checkout branch1 &&
git tag original-branch1 &&
set_fake_editor &&
git rebase -i branch2 &&
test file6 = $(git diff --name-only original-branch1) &&
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
test $(git rev-parse I) = $(git rev-parse branch2) &&
test $(git rev-parse I) = $(git rev-parse HEAD~2)
Switched to branch 'branch1'
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/branch1.
ok 11 - rebase on top of a non-conflicting commit
expecting success:
test $(git rev-parse branch1@{1}) = $(git rev-parse original-branch1)
ok 12 - reflog for the branch shows state before rebase
expecting success:
printf "rebase -i (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 13 - reflog for the branch shows correct finish message
expecting success:
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)
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 14 - exchange two commits
expecting success:
git tag new-branch1 &&
set_fake_editor &&
test_must_fail git rebase -i master &&
test "$(git rev-parse HEAD~3)" = "$(git rev-parse master)" &&
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)
Auto-merging file1
CONFLICT (content): Merge conflict in file1
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
ok 15 - stop on conflicting pick
expecting success:
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: built-in: git show REBASE_HEAD --
ok 16 - show conflicted patch
expecting success:
git rebase --abort &&
test $(git rev-parse new-branch1) = $(git rev-parse HEAD) &&
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
test_path_is_missing .git/rebase-merge
ok 17 - abort
expecting success:
git rm --cached file1 &&
git commit -m "remove file in base" &&
set_fake_editor &&
test_must_fail git rebase -i master > 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 18 - abort with error when new base cannot be checked out
expecting success:
echo A > file7 &&
git add file7 &&
test_tick &&
GIT_AUTHOR_NAME="Twerp Snog" git commit -m "different author" &&
git tag twerp &&
set_fake_editor &&
git rebase -i --onto master 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 19 - retain authorship
expecting success:
git reset --hard twerp &&
test_commit a conflict a conflict-a &&
git reset --hard twerp &&
GIT_AUTHOR_NAME=AttributeMe \
test_commit b conflict b conflict-b &&
set_fake_editor &&
test_must_fail git rebase -i conflict-a &&
echo resolved >conflict &&
git add conflict &&
git rebase --continue &&
test $(git rev-parse conflict-a^0) = $(git rev-parse 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)
Auto-merging conflict
CONFLICT (add/add): Merge conflict in conflict
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
[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 20 - retain authorship w/ conflicts
expecting success:
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 master HEAD~2 &&
test B = $(cat file7) &&
test $(git rev-parse HEAD^) = $(git rev-parse master)
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 21 - squash
expecting success:
git show HEAD | grep "^Author: Twerp Snog"
Author: Twerp Snog <author@example.com>
ok 22 - retain authorship when squashing
expecting success:
HEAD=$(git rev-parse HEAD) &&
set_fake_editor &&
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)
Rebasing (1/1)
Successfully rebased and updated refs/heads/branch1.
ok 23 - -p handles "no changes" gracefully
checking known breakage:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 4373208 H
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 24 - exchange two commits with -p # TODO known breakage
expecting success:
git checkout -b to-be-preserved master^ &&
: > unrelated-file &&
git add unrelated-file &&
test_tick &&
git commit -m "unrelated" &&
git checkout -b another-branch master &&
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 &&
set_fake_editor &&
git rebase -i -p --onto branch1 master &&
git update-index --refresh &&
git diff-files --quiet &&
git diff-index --quiet --cached HEAD -- &&
test $(git rev-parse HEAD~6) = $(git rev-parse branch1) &&
test $(git rev-parse HEAD~4^2) = $(git rev-parse to-be-preserved) &&
test $(git rev-parse HEAD^^2^) = $(git rev-parse 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 4b3f608] unrelated
Author: AttributeMe <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 unrelated-file
Switched to a new branch 'another-branch'
[another-branch 8e3f1bd] J
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Merging:
8e3f1bd 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 0f839ac] K
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[another-branch 916bd1f] L1
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0f839ac K
[detached HEAD 8fa3ce5] L2
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
Merging:
8fa3ce5 L2
virtual another-branch
found 1 common ancestor:
0f839ac K
Merge made by the 'recursive' strategy.
file1 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD e12d8fb] M
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'to-be-rebased'
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 25 - preserve merges with -p
expecting success:
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
rebase -i script before editing:
pick 60cb1bd L2
pick f2d0f15 L1
pick 8b9d7f7 Merge branch 'another-branch' into HEAD
pick ecf20bb M
rebase -i script after editing:
pick 60cb1bd L2
pick f2d0f15 L1
edit 8b9d7f7 Merge branch 'another-branch' into HEAD
pick ecf20bb M
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Stopped at 8b9d7f7... 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 82f9bab] L2-modified
Author: AttributeMe <author@example.com>
Date: Thu Apr 7 15:43:13 2005 -0700
Rebasing (4/4)
Successfully rebased and updated refs/heads/to-be-rebased.
ok 26 - edit ancestor with -p
expecting success:
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 $(git rev-parse HEAD^) = $(git rev-parse new-branch1) &&
git show HEAD | grep chouette
Rebasing (1/1)
Auto-merging file1
CONFLICT (content): Merge conflict in file1
error: could not apply 23e2f4c... M
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 23e2f4c... M
[detached HEAD be87a39] chouette!
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/to-be-rebased.
chouette!
ok 27 - --continue tries to commit
expecting success:
git reset --hard master@{1} &&
test_tick &&
set_fake_editor &&
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5d18e54 G
Rebasing (1/1)
Auto-merging file1
CONFLICT (content): Merge conflict in file1
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
Successfully rebased and updated refs/heads/to-be-rebased.
file1 | 2 +-
ok 28 - verbose flag is heeded, even after --continue
expecting success:
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 29 - multi-squash only fires up editor once
expecting success:
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 to-be-rebased &&
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 30 - multi-fixup does not fire up editor
expecting success:
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 to-be-rebased &&
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)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[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 31 - commit message used after conflict
expecting success:
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 to-be-rebased &&
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)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[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 32 - commit message retained after conflict
expecting success:
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 to-be-rebased &&
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 33 - squash and fixup generate correct log messages
expecting success:
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 to-be-rebased &&
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 34 - squash ignores comments
expecting success:
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 to-be-rebased &&
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 (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-blank-lines.
Switched to branch 'to-be-rebased'
Deleted branch skip-blank-lines (was f397ac4).
ok 35 - squash ignores blank lines
expecting success:
git checkout -b squash-works no-conflict-branch &&
one=$(git rev-parse HEAD~3) &&
set_fake_editor &&
FAKE_LINES="1 squash 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
squash 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 36 - squash works as expected
expecting success:
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 &&
(echo one; echo two; echo 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)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[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)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[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 37 - interrupted squash works as expected
expecting success:
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 &&
(echo one; echo four) > conflict &&
git add conflict &&
test_must_fail git rebase --continue &&
(echo one; echo two; echo 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)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[detached HEAD d5ff450] four
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Rebasing (2/3)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[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)
Auto-merging conflict
CONFLICT (content): Merge conflict in conflict
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
[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 38 - interrupted squash works as expected (case 2)
expecting success:
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 a2f2c18] unrelated change
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file7
rebase -i script before editing:
pick a2f2c18 unrelated change
rebase -i script after editing:
edit a2f2c18 unrelated change
Rebasing (1/1)
Stopped at a2f2c18... 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 e21c038] chouette!
Author: AttributeMe <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 39 - --continue tries to commit, even for "edit"
expecting success:
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 e21c038 chouette!
rebase -i script after editing:
edit e21c038 chouette!
Rebasing (1/1)
Stopped at e21c038... 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 40 - aborted --continue does not squash commits after "edit"
expecting success:
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 e21c038 chouette!
rebase -i script after editing:
edit e21c038 chouette!
Rebasing (1/1)
Stopped at e21c038... chouette!
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
[detached HEAD eaeb1c6] edited file7 again
Author: AttributeMe <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 41 - auto-amend only edited commits after "edit"
expecting success:
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 e21c038 chouette!
rebase -i script after editing:
pick e21c038 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 42 - clean error after failed "exec"
expecting success:
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: checking out 'e21c03887977d03c35d15a14d5e4dfcf0fb9a5d9'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at e21c038 chouette!
rebase -i script before editing:
pick f26b32e three
pick e21c038 chouette!
rebase -i script after editing:
pick e21c038 chouette!
pick f26b32e three
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 43 - rebase a detached HEAD
expecting success:
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 a0cb87d] doesnt-verify
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
rebase -i script before editing:
pick 88cac94 three
pick a0cb87d doesnt-verify
rebase -i script after editing:
pick a0cb87d doesnt-verify
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 44 - rebase a commit violating pre-commit
expecting success:
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 to-be-rebased &&
test "$(git show -s --pretty=format:%an)" = "Squashed Away"
HEAD is now at 6e49452 doesnt-verify
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
6e49452 doesnt-verify
74714a8 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> 6e49452
Switched to a new branch 'branch3'
[branch3 565f314] Add head
Author: Squashed Away <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 HEAD
[branch3 95bb066] 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 565f314 Add head
pick 95bb066 Add body
rebase -i script after editing:
pick 565f314 Add head
squash 95bb066 Add body
Rebasing (1/2)
Rebasing (2/2)
[detached HEAD 49cebf8] Add head
Author: Squashed Away <author@example.com>
Date: Thu Apr 7 15:57: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 45 - rebase with a file named HEAD in worktree
expecting success:
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) &&
set_fake_editor &&
git rebase -i branch3 &&
test $(git rev-parse branch3) = $(git rev-parse branch4)
Switched to a new branch 'branch4'
[branch4 831ecba] Add head
Author: Somebody else <somebody@else.com>
Date: Thu Apr 7 15:57: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 46 - do "noop" when there is nothing to cherry-pick
expecting success:
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 &&
set_fake_editor &&
git commit -a -m "Three changes submodule"
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 6e62bf8 A
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3404-rebase-interactive/sub/.git/
[master (root-commit) 1030399] submodule initial
Author: AttributeMe <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 b30cbe9] One
Author: AttributeMe <author@example.com>
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 160000 sub
[detached HEAD f0670a3] Two
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master d42c665] submodule second
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
[detached HEAD 772d409] Three changes submodule
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 47 - submodule rebase setup
expecting success:
set_fake_editor &&
FAKE_LINES="1 squash 2 3" git rebase -i A
rebase -i script before editing:
pick b30cbe9 One
pick f0670a3 Two
pick 772d409 Three changes submodule
rebase -i script after editing:
pick b30cbe9 One
squash f0670a3 Two
pick 772d409 Three changes submodule
Rebasing (2/3)
[detached HEAD d409b06] One
Author: AttributeMe <author@example.com>
Date: Thu Apr 7 15:58:13 2005 -0700
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 160000 sub
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 48 - submodule rebase -i
expecting success:
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 c46c3f8 Three changes submodule
HEAD is now at d409b06 One
M sub
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 1030399 submodule initial
[detached HEAD 765c04d] submodule conflict
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
[detached HEAD 577963f] Conflict in submodule
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 49 - submodule conflict setup
expecting success:
set_fake_editor &&
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)
Failed to merge submodule sub (merge following commits not found)
Auto-merging sub
CONFLICT (submodule): Merge conflict in sub
error: could not apply 577963f... 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 577963f... Conflict in submodule
[detached HEAD 81ba0a4] Conflict in submodule
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated detached HEAD.
ok 50 - rebase -i continue with only submodule staged
expecting success:
git checkout submodule-topic &&
git reset --hard &&
set_fake_editor &&
test_must_fail git rebase -i submodule-base &&
git reset &&
git rebase --continue &&
test $(git rev-parse submodule-base) = $(git rev-parse HEAD)
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
81ba0a4 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> 81ba0a4
HEAD is now at 577963f Conflict in submodule
HEAD is now at 577963f Conflict in submodule
Rebasing (1/1)
Failed to merge submodule sub (merge following commits not found)
Auto-merging sub
CONFLICT (submodule): Merge conflict in sub
error: could not apply 577963f... 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 577963f... Conflict in submodule
Unstaged changes after reset:
M sub
Successfully rebased and updated detached HEAD.
ok 51 - rebase -i continue with unstaged submodule
expecting success:
git checkout master &&
git reset --hard &&
test-tool chmtime =123456789 file3 &&
git update-index --refresh &&
HEAD=$(git rev-parse HEAD) &&
set_fake_editor &&
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 c46c3f8 Three changes submodule
Switched to branch 'master'
HEAD is now at 8f99a4f E
Successfully rebased and updated refs/heads/master.
ok 52 - avoid unnecessary reset
expecting success:
git checkout -b reword-branch master &&
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 master) != $(git rev-parse HEAD) &&
test $(git rev-parse master^) = $(git rev-parse 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 reword 2 3 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 d090e5d] 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 d090e5d E changed
rebase -i script after editing:
pick 313fe96 B
pick d0f65f2 C
reword 0547e3f D
pick d090e5d E changed
Rebasing (3/4)
[detached HEAD 3e3c54e] 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 3e3c54e D changed
pick 5538627 E changed
rebase -i script after editing:
reword 313fe96 B
pick d0f65f2 C
pick 3e3c54e D changed
pick 5538627 E changed
Rebasing (1/4)
[detached HEAD 9af66bc] 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 9af66bc B changed
pick 5744507 C
pick 115ebf7 D changed
pick e9c082b E changed
rebase -i script after editing:
pick 9af66bc B changed
reword 5744507 C
pick 115ebf7 D changed
pick e9c082b E changed
Rebasing (2/4)
[detached HEAD 6469cec] 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 53 - reword
expecting success:
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 &&
set_fake_editor &&
git rebase -i --onto n1 n2 &&
test "a note" = "$(git notes show HEAD)"
[reword-branch 355673a] n1
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 n1.t
[reword-branch c56a8e1] n2
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 n2.t
[reword-branch 811f4ad] n3
Author: AttributeMe <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 54 - rebase -i can copy notes
expecting success:
git reset --hard n3 &&
git notes add -m"an earlier note" n2 &&
set_fake_editor &&
GIT_NOTES_REWRITE_MODE=concatenate FAKE_LINES="1 fixup 2" git rebase -i n1 &&
git notes show > output &&
test_cmp expect output
HEAD is now at 811f4ad n3
rebase -i script before editing:
pick c56a8e1 n2
pick 811f4ad n3
rebase -i script after editing:
pick c56a8e1 n2
fixup 811f4ad n3
Rebasing (2/2)
Successfully rebased and updated refs/heads/reword-branch.
ok 55 - rebase -i can copy notes over a fixup
expecting success:
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 355673a n1
pick 4b0cca0 n2
rebase -i script after editing:
pick 4b0cca0 n2
pick 355673a n1
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
fatal: ref HEAD is not a symbolic ref
ok 56 - rebase while detaching HEAD
expecting success:
git checkout no-ff-branch &&
git tag original-no-ff-branch &&
set_fake_editor &&
git rebase -i --no-ff A &&
touch empty &&
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_cmp empty out
done &&
test $(git rev-parse HEAD~3) = $(git rev-parse original-no-ff-branch~3) &&
git diff HEAD~3 original-no-ff-branch~3 > out &&
test_cmp empty out
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
71fdce6 n1
3cf49cf 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> 71fdce6
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 57 - always cherry-pick with --no-ff
expecting success:
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 41686f9] end with slash\
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
[funny 70a77af] something (\000) that looks like octal
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
[funny a1d9038] something (\n) that looks like a newline
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
[funny b3b8705] another commit
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
ok 58 - set up commits with funny messages
expecting success:
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 41686f9 end with slash\
pick 70a77af something (\000) that looks like octal
pick a1d9038 something (\n) that looks like a newline
pick b3b8705 another commit
rebase -i script after editing:
pick 41686f9 end with slash\
pick 70a77af something (\000) that looks like octal
pick a1d9038 something (\n) that looks like a newline
pick b3b8705 another commit
Successfully rebased and updated refs/heads/funny.
ok 59 - rebase-i history with funny messages
expecting success:
git checkout master &&
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 'master'
Switched to a new branch 'execute'
[execute 192c889] one_exec
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 main.txt
[execute 56f4e24] two_exec
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[execute 838c784] three_exec
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 60 - prepare for rebase -i --exec
expecting success:
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 61 - running "git rebase -i --exec git show HEAD"
expecting success:
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 838c784 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 62 - running "git rebase --exec git show HEAD -i"
expecting success:
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 838c784 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 63 - running "git rebase -ix git show HEAD"
expecting success:
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 838c784 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 64 - rebase -ix with several <CMD>
expecting success:
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 838c784 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 65 - rebase -ix with several instances of --exec
expecting success:
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" &&
set_fake_editor &&
(
git checkout -b autosquash_actual &&
git rebase -i --exec "git show HEAD" --autosquash HEAD~4 >actual
) &&
git checkout autosquash &&
(
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 838c784 three_exec
Switched to a new branch 'autosquash'
[autosquash 8d94224] fixup! two_exec
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 second.txt
[autosquash 572ab6b] fixup! two_exec
Author: AttributeMe <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 66 - rebase -ix with --autosquash
expecting success:
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 838c784 three_exec
Successfully rebased and updated refs/heads/autosquash_expected.
ok 67 - rebase --exec works without -i
expecting success:
git reset --hard execute &&
set_fake_editor &&
test_must_fail git rebase -i --exec 2>actual &&
test_i18ngrep "requires a value" actual &&
git checkout master
HEAD is now at 838c784 three_exec
error: option `exec' requires a value
Switched to branch 'master'
ok 68 - rebase -i --exec without <CMD>
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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 69 - rebase -i --root re-order and drop commits
expecting success:
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:
08fa478 E
c9e53e6 B
47dcd31 A
1967d0a 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> 08fa478
HEAD is now at 6e62bf8 A
[detached HEAD 58dccf5] 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 58dccf5 different author
rebase -i script after editing:
pick 58dccf5 different author
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 70 - rebase -i --root retain root commit author and message
expecting success:
git checkout B &&
set_fake_editor &&
test_must_fail env FAKE_LINES="2" git rebase -i --root &&
git cat-file commit HEAD | grep "^tree 4b825dc642cb" &&
git rebase --abort
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
c98c4ec 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> c98c4ec
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)
CONFLICT (modify/delete): file1 deleted in HEAD and modified in 313fe96... B. Version 313fe96... B of file1 left in tree.
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
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
ok 71 - rebase -i --root temporary sentinel commit
expecting success:
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 72 - rebase -i --root fixup root commit
expecting success:
test_when_finished "test_might_fail git rebase --abort" &&
git checkout -b reword-root-branch master &&
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:
bdd3fb6 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> bdd3fb6
Switched to a new branch 'reword-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 2c7b91b] 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-root-branch.
A changed
No rebase in progress?
ok 73 - rebase -i --root reword root commit
expecting success:
git reset --hard &&
git checkout conflict-branch &&
set_fake_editor &&
test_must_fail git rebase --onto HEAD~2 HEAD~ &&
test_must_fail git rebase --edit-todo &&
git rebase --abort
HEAD is now at 5b5ca66 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.
Patch failed at 0001 four
Use 'git am --show-current-patch' to see the failed patch
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".
The --edit-todo action can only be used during interactive rebase.
ok 74 - rebase --edit-todo does not work on non-interactive rebase
expecting success:
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: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
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 75 - rebase --edit-todo can be used to modify todo
expecting success:
git reset --hard &&
git branch -f branch-reflog-test H &&
set_fake_editor &&
git rebase -i --onto I F branch-reflog-test &&
cat >expect <<-\EOF &&
rebase -i (finish): returning to refs/heads/branch-reflog-test
rebase -i (pick): H
rebase -i (pick): G
rebase -i (start): checkout I
EOF
git reflog -n4 HEAD |
sed "s/[^:]*: //" >actual &&
test_cmp expect actual
HEAD is now at e451a0c L
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/branch-reflog-test.
ok 76 - rebase -i produces readable reflog
expecting success:
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 0f12e8b H
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 8f99a4f E
Successfully rebased and updated detached HEAD.
ok 77 - rebase -i respects core.commentchar
expecting success:
test_config core.commentchar auto &&
write_script copy-edit-script.sh <<-\EOF &&
cp "$1" edit-script
EOF
test_set_editor "$(pwd)/copy-edit-script.sh" &&
test_when_finished "git rebase --abort || :" &&
git rebase -i HEAD^ &&
test -z "$(grep -ve "^#" -e "^\$" -e "^pick" edit-script)"
Successfully rebased and updated detached HEAD.
No rebase in progress?
ok 78 - rebase -i respects core.commentchar=auto
expecting success:
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'
First, rewinding head to replay your work on top of it...
Applying: different author
HEAD is now at d2d5ba7 different author
First, rewinding head to replay your work on top of it...
Applying: different author
Switched to branch 'branch1'
Deleted branch torebase (was fecb626).
ok 79 - rebase -i, with <onto> and <upstream> specified as :/quuxery
expecting success:
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 81966f1] one file conflict
Author: AttributeMe <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
Rebasing (1/1)
Successfully rebased and updated refs/heads/conflict-merge-use-theirs.
ok 80 - rebase -i with --strategy and -X
expecting success:
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 e7140c2] breakpoint for interactive mode
Author: AttributeMe <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 breakpoint
[conflict-merge-use-theirs-interrupted 256e9a2] one file conflict
Author: AttributeMe <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
rebase -i script before editing:
pick e7140c2 breakpoint for interactive mode
pick 256e9a2 one file conflict
rebase -i script after editing:
edit e7140c2 breakpoint for interactive mode
pick 256e9a2 one file conflict
Rebasing (1/2)
Stopped at e7140c2... 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 81 - interrupted rebase -i with --strategy and -X
expecting success:
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 a411fb9] TO-REMOVE
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 will-conflict
[conflict-merge-use-theirs-interrupted 8e73c55] \temp
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
CONFLICT (modify/delete): will-conflict deleted in HEAD and modified in 8e73c55... \temp. Version 8e73c55... \temp of will-conflict left in tree.
HEAD is now at c23a270 one file conflict
ok 82 - rebase -i error on commits with \ in message
expecting success:
test_when_finished "git checkout master" &&
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) 4fb2517] collide1
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 collide
[collide bd89cd9] collide2
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[collide c5be427] collide3
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'master'
ok 83 - short SHA-1 setup
expecting success:
test_when_finished "reset_rebase && git checkout master" &&
git checkout collide &&
(
unset test_tick &&
test_tick &&
set_fake_editor &&
FAKE_COMMIT_MESSAGE="collide2 ac4f2ee" \
FAKE_LINES="reword 1 2" git rebase -i HEAD~2
)
Switched to branch 'collide'
rebase -i script before editing:
pick bd89cd9 collide2
pick c5be427 collide3
rebase -i script after editing:
reword bd89cd9 collide2
pick c5be427 collide3
Rebasing (1/2)
[detached HEAD 48768da] collide2 ac4f2ee
Author: AttributeMe <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (2/2)
Successfully rebased and updated refs/heads/collide.
No rebase in progress?
HEAD is now at 80236d2 collide3
Removing actual
Removing actual-squash-fixup
Removing actual.rev
Removing copy-edit-script.sh
Removing edit-script
Removing empty
Removing exec_output
Removing expect
Removing expect-squash-fixup
Removing expect.rev
Removing expect2
Removing expected
Removing fake-editor.sh
Removing out
Removing output
Removing remove-all-but-first.sh
Removing stderr
Removing touch-subdir
Switched to branch 'master'
ok 84 - short SHA-1 collide
expecting success:
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)
Could not execute editor
ok 85 - respect core.abbrev
expecting success:
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/master.
# Rebase 6e62bf890e21..8f99a4f1fbbd onto 6e62bf890e21 (4 commands)
ok 86 - todo count
expecting success:
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 87 - rebase -i commits that overwrite untracked files (pick)
expecting success:
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 actual.rev
Removing expect.rev
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
error: merging of trees eb689cc8eed0e8a6ed5383618d1f03cc48bd9f81 and f9b09c5f252e2ce55ab159967e1595879f4525bd failed
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
Rebasing (3/3)
[detached HEAD 331e6d7185ad] 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 88 - rebase -i commits that overwrite untracked files (squash)
expecting success:
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 actual.rev
Removing expect.rev
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
error: merging of trees eb689cc8eed0e8a6ed5383618d1f03cc48bd9f81 and f9b09c5f252e2ce55ab159967e1595879f4525bd failed
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 89 - rebase -i commits that overwrite untracked files (no ff)
expecting success:
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 9e0564fc961d] seq-X
Author: AttributeMe <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 seq
[commit-to-skip 37cb76b7926c] seq-3
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[commit-to-skip c189bb4988e8] seq-1
Author: AttributeMe <author@example.com>
1 file changed, 2 insertions(+), 2 deletions(-)
HEAD is now at 9e0564fc961d seq-X
Auto-merging seq
[commit-to-skip 6187e523126a] seq-1
Author: AttributeMe <author@example.com>
Date: Thu Apr 7 16:19: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 reset'
interactive rebase in progress; onto c189bb4988e8
Last command done (1 command done):
pick 6187e523126a seq-1
No commands remaining.
You are currently rebasing branch 'commit-to-skip' on 'c189bb4988e8'.
Untracked files:
fake-editor.sh
sub/
nothing added to commit but untracked files present
Could not apply 6187e523126a... seq-1
Successfully rebased and updated refs/heads/commit-to-skip.
ok 90 - rebase --continue removes CHERRY_PICK_HEAD
expecting success:
rebase_setup_and_clean drop-test &&
set_fake_editor &&
FAKE_LINES="1 drop 2 3 drop 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
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/drop-test.
Switched to branch 'master'
Deleted branch drop-test (was 78e7968917a0).
No rebase in progress?
ok 91 - drop
expecting success:
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 'master'
Deleted branch missing-commit (was 0547e3f1350d).
No rebase in progress?
ok 92 - rebase -i respects rebase.missingCommitsCheck = ignore
expecting success:
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 &&
cr_to_nl <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 'master'
Deleted branch missing-commit (was 0547e3f1350d).
No rebase in progress?
ok 93 - rebase -i respects rebase.missingCommitsCheck = warn
expecting success:
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 'master'
Deleted branch missing-commit (was 491b05c4cd85).
No rebase in progress?
ok 94 - rebase -i respects rebase.missingCommitsCheck = error
expecting success:
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 &&
set_cat_todo_editor &&
test_config rebase.abbreviateCommands true &&
test_must_fail git rebase -i --exec "git show HEAD" \
--autosquash master >actual &&
test_cmp expected actual
Switched to a new branch 'abbrevcmd'
[abbrevcmd 93d6056aae66] first
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1.txt
[abbrevcmd 53d51167fa27] second
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[abbrevcmd 7fae44f09702] fixup! first
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
[abbrevcmd 3dc9fcfa244a] squash! second
Author: AttributeMe <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Already on 'abbrevcmd'
Could not execute editor
Switched to branch 'master'
Deleted branch abbrevcmd (was 3dc9fcfa244a).
No rebase in progress?
ok 95 - respects rebase.abbreviateCommands with fixup, squash and exec
expecting success:
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 master~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
error: unusable todo list: '.git/rebase-merge/git-rebase-todo'
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
pick 8f99a4f1fbbd E
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated refs/heads/bad-cmd.
Switched to branch 'master'
Deleted branch bad-cmd (was 4437898dd1d6).
No rebase in progress?
ok 96 - static check of bad command
expecting success:
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 'master'
Deleted branch indented-comment (was 8f99a4f1fbbd).
No rebase in progress?
ok 97 - tabs and spaces are accepted in the todolist
expecting success:
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: invalid line 3: edit XXXXXXX False commit
error: unusable todo list: '.git/rebase-merge/git-rebase-todo'
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 'master'
Deleted branch bad-sha (was 8f99a4f1fbbd).
No rebase in progress?
ok 98 - static check of bad SHA-1
expecting success:
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 99 - editor saves as CR/LF
expecting success:
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 100 - rebase -i --gpg-sign=<key-id>
expecting success:
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 101 - rebase -i --gpg-sign=<key-id> overrides commit.gpgSign
# still have 1 known breakage(s)
# passed all remaining 100 test(s)
1..101
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3427-rebase-subtree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3427-rebase-subtree/.git/
expecting success:
test_commit README &&
mkdir files &&
(
cd files &&
git init &&
test_commit master1 &&
test_commit master2 &&
test_commit master3
) &&
git fetch files master &&
git branch files-master FETCH_HEAD &&
git read-tree --prefix=files_subtree files-master &&
git checkout -- files_subtree &&
tree=$(git write-tree) &&
head=$(git rev-parse HEAD) &&
rev=$(git rev-parse --verify files-master^0) &&
commit=$(git commit-tree -p $head -p $rev -m "Add subproject master" $tree) &&
git update-ref HEAD $commit &&
(
cd files_subtree &&
test_commit master4
) &&
test_commit files_subtree/master5
[master (root-commit) 9b47b78] README
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 README.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3427-rebase-subtree/files/.git/
[master (root-commit) ba4017d] master1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 master1.t
[master eb398b9] master2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 master2.t
[master 138d8fa] master3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 master3.t
warning: no common commits
From files
* branch master -> FETCH_HEAD
[master 8aaa705] master4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 files_subtree/master4.t
[master 8bb50ad] files_subtree/master5
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 files_subtree/master5.t
ok 1 - setup
checking known breakage:
reset_rebase &&
git checkout -b rebase-preserve-merges-4 master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD~)" = "files_subtree/master4"
No rebase in progress?
HEAD is now at 8bb50ad files_subtree/master5
Switched to a new branch 'rebase-preserve-merges-4'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (1 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (2/3) (1 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-preserve-merges-4' was rewritten
[rebase-preserve-merges-4 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
Rebasing (1/1)
Successfully rebased and updated refs/heads/rebase-preserve-merges-4.
command failed: 'test' 'master2' '=' 'files_subtree/master4'
not ok 2 - Rebase -Xsubtree --preserve-merges --onto commit 4 # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-preserve-merges-5 master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD)" = "files_subtree/master5"
No rebase in progress?
HEAD is now at 138d8fa master3
Switched to a new branch 'rebase-preserve-merges-5'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (3/3) (1 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-preserve-merges-5' was rewritten
[rebase-preserve-merges-5 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
Rebasing (1/1)
Successfully rebased and updated refs/heads/rebase-preserve-merges-5.
command failed: 'test' 'master3' '=' 'files_subtree/master5'
not ok 3 - Rebase -Xsubtree --preserve-merges --onto commit 5 # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-keep-empty-4 master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
No rebase in progress?
HEAD is now at 138d8fa master3
Switched to a new branch 'rebase-keep-empty-4'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (3/3) (0 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-keep-empty-4' was rewritten
[rebase-keep-empty-4 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
Rebasing (1/1)
Successfully rebased and updated refs/heads/rebase-keep-empty-4.
command failed: 'test' 'master1' '=' 'files_subtree/master4'
not ok 4 - Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 4 # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-keep-empty-5 master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
No rebase in progress?
HEAD is now at 138d8fa master3
Switched to a new branch 'rebase-keep-empty-5'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (1 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (2/3) (1 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-keep-empty-5' was rewritten
[rebase-keep-empty-5 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
Rebasing (1/1)
Successfully rebased and updated refs/heads/rebase-keep-empty-5.
command failed: 'test' 'master2' '=' 'files_subtree/master5'
not ok 5 - Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 5 # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-keep-empty-empty master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD)" = "Empty commit"
No rebase in progress?
HEAD is now at 138d8fa master3
Switched to a new branch 'rebase-keep-empty-empty'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (3/3) (0 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-keep-empty-empty' was rewritten
[rebase-keep-empty-empty 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
Rebasing (1/1)
Successfully rebased and updated refs/heads/rebase-keep-empty-empty.
command failed: 'test' 'master3' '=' 'Empty commit'
not ok 6 - Rebase -Xsubtree --keep-empty --preserve-merges --onto empty commit # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-onto-4 master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --onto files-master master &&
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
No rebase in progress?
HEAD is now at 138d8fa master3
Switched to a new branch 'rebase-onto-4'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (1 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (2/3) (1 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-onto-4' was rewritten
[rebase-onto-4 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
First, rewinding head to replay your work on top of it...
Merging files-master with HEAD~3
Merging:
138d8fa master3
c2298a8 Add subproject master
found 0 common ancestors:
Already applied: 0001 Add subproject master
Merging files-master with HEAD~2
Merging:
138d8fa master3
ffbb8e9 master4
found 1 common ancestor:
c2298a8 Add subproject master
[detached HEAD 5f90a88] master4
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 master4.t
Committed: 0002 master4
Merging files-master with HEAD~1
Merging:
5f90a88 master4
1059aa6 files_subtree/master5
found 1 common ancestor:
ffbb8e9 master4
[detached HEAD c64768c] files_subtree/master5
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 master5.t
Committed: 0003 files_subtree/master5
Merging files-master with HEAD~0
Merging:
c64768c files_subtree/master5
6ceeae2 Empty commit
found 1 common ancestor:
1059aa6 files_subtree/master5
Already up to date!
Already applied: 0004 Empty commit
All done.
command failed: 'test' 'master3' '=' 'files_subtree/master4'
not ok 7 - Rebase -Xsubtree --onto commit 4 # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-onto-5 master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --onto files-master master &&
verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
No rebase in progress?
HEAD is now at c64768c files_subtree/master5
Switched to a new branch 'rebase-onto-5'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (3/3) (0 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-onto-5' was rewritten
[rebase-onto-5 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
First, rewinding head to replay your work on top of it...
Merging files-master with HEAD~3
Merging:
138d8fa master3
c2298a8 Add subproject master
found 0 common ancestors:
Already applied: 0001 Add subproject master
Merging files-master with HEAD~2
Merging:
138d8fa master3
ffbb8e9 master4
found 1 common ancestor:
c2298a8 Add subproject master
[detached HEAD 5f90a88] master4
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 master4.t
Committed: 0002 master4
Merging files-master with HEAD~1
Merging:
5f90a88 master4
1059aa6 files_subtree/master5
found 1 common ancestor:
ffbb8e9 master4
[detached HEAD c64768c] files_subtree/master5
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 master5.t
Committed: 0003 files_subtree/master5
Merging files-master with HEAD~0
Merging:
c64768c files_subtree/master5
6ceeae2 Empty commit
found 1 common ancestor:
1059aa6 files_subtree/master5
Already up to date!
Already applied: 0004 Empty commit
All done.
command failed: 'test' 'master4' '=' 'files_subtree/master5'
not ok 8 - Rebase -Xsubtree --onto commit 5 # TODO known breakage
checking known breakage:
reset_rebase &&
git checkout -b rebase-onto-empty master &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --onto files-master master &&
verbose test "$(commit_message HEAD)" = "Empty commit"
No rebase in progress?
HEAD is now at c64768c files_subtree/master5
Switched to a new branch 'rebase-onto-empty'
Rewrite 857c354c14dec65ebdcbe167a352a0809dfe91f4 (1/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8aaa705aa976a6676d7a4f353323a6c49c23b5a2 (2/3) (0 seconds passed, remaining 0 predicted)
Rewrite 8bb50adc9630aa0deade7689343795f582e5d715 (3/3) (0 seconds passed, remaining 0 predicted)
Ref 'refs/heads/rebase-onto-empty' was rewritten
[rebase-onto-empty 6ceeae2] Empty commit
Author: A U Thor <author@example.com>
First, rewinding head to replay your work on top of it...
Merging files-master with HEAD~3
Merging:
138d8fa master3
c2298a8 Add subproject master
found 0 common ancestors:
Already applied: 0001 Add subproject master
Merging files-master with HEAD~2
Merging:
138d8fa master3
ffbb8e9 master4
found 1 common ancestor:
c2298a8 Add subproject master
[detached HEAD 5f90a88] master4
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 master4.t
Committed: 0002 master4
Merging files-master with HEAD~1
Merging:
5f90a88 master4
1059aa6 files_subtree/master5
found 1 common ancestor:
ffbb8e9 master4
[detached HEAD c64768c] files_subtree/master5
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 master5.t
Committed: 0003 files_subtree/master5
Merging files-master with HEAD~0
Merging:
c64768c files_subtree/master5
6ceeae2 Empty commit
found 1 common ancestor:
1059aa6 files_subtree/master5
Already up to date!
Already applied: 0004 Empty commit
All done.
command failed: 'test' 'files_subtree/master5' '=' 'Empty commit'
not ok 9 - Rebase -Xsubtree --onto empty commit # TODO known breakage
# still have 8 known breakage(s)
# passed all remaining 1 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3428-rebase-signoff.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3428-rebase-signoff/.git/
expecting success:
git commit --allow-empty -m "Initial empty commit" &&
git add file && git commit -m first &&
git config alias.rbs "rebase --signoff" &&
git rbs HEAD^ &&
git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
test_cmp expected-signed actual
[master (root-commit) 8894153] Initial empty commit
Author: A U Thor <author@example.com>
[master 501b2ce] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
Current branch master is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Applying: first
ok 1 - rebase --signoff adds a sign-off line
expecting success:
git commit --amend -m "first" &&
git rbs --no-signoff HEAD^ &&
git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
test_cmp expected-unsigned actual
[master 80af1e9] first
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 file
Current branch master is up to date.
ok 2 - rebase --no-signoff does not add a sign-off line
expecting success:
test_when_finished "rm exec" &&
git commit --amend -m "first" &&
git rebase --exec "touch exec" --signoff HEAD^ &&
test_path_is_file exec &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
test_cmp expected-signed actual
[master 95bbc5b] first
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 file
Rebasing (1/2)
Rebasing (2/2)
Executing: touch exec
Successfully rebased and updated refs/heads/master.
ok 3 - rebase --exec --signoff adds a sign-off line
expecting success:
git commit --amend -m "first" &&
git rebase --root --keep-empty --signoff &&
git cat-file commit HEAD^ | sed -e "1,/^\$/d" >actual &&
test_cmp expected-initial-signed actual &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
test_cmp expected-signed actual
[master 373fbb3] first
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 file
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/master.
ok 4 - rebase --root --signoff adds a sign-off line
expecting success:
git commit --amend -m "first" &&
git rebase -i --signoff HEAD^ &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
test_cmp expected-signed actual
[master c740cf1] first
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 file
Rebasing (1/1)
Successfully rebased and updated refs/heads/master.
ok 5 - rebase -i --signoff fails
expecting success:
git commit --amend -m "first" &&
git rebase -m --signoff HEAD^ &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
test_cmp expected-signed actual
[master 6a41322] first
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 file
Current branch master is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Merging HEAD^ with HEAD~0
Merging:
580444d Initial empty commit
6a41322 first
found 1 common ancestor:
580444d Initial empty commit
[detached HEAD e42e5e9] first
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 file
Committed: 0001 first
All done.
ok 6 - rebase -m --signoff fails
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3429-rebase-edit-todo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3429-rebase-edit-todo/.git/
expecting success:
test_commit initial &&
todo=.git/rebase-merge/git-rebase-todo &&
git rebase HEAD -x "echo exec touch F >>$todo" &&
test -e F
[master (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Rebasing (2/2)
Executing: echo exec touch F >>.git/rebase-merge/git-rebase-todo
Rebasing (3/3)
Executing: touch F
Successfully rebased and updated refs/heads/master.
ok 1 - rebase exec modifies rebase-todo
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3425-rebase-topology-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3425-rebase-topology-merges/.git/
expecting success:
test_commit a &&
test_commit b &&
test_commit c &&
git checkout b &&
test_commit d &&
test_commit e &&
git checkout c &&
test_commit g &&
revert h g &&
git checkout d &&
cherry_pick gp g &&
test_commit i &&
git checkout b &&
test_commit f &&
git checkout d &&
test_commit n &&
test_commit o &&
test_merge w e &&
test_merge v c &&
git checkout o &&
test_commit z
[master (root-commit) ce450c7] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
[master 020ea9b] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
[master d9ea348] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 020ea9b b
[detached HEAD 1bd0260] d
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 d.t
[detached HEAD 67a7211] e
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 e.t
Previous HEAD position was 67a7211 e
HEAD is now at d9ea348 c
[detached HEAD 5573dba] g
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 g.t
Removing g.t
[detached HEAD 09e6546] h
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 g.t
Previous HEAD position was 09e6546 h
HEAD is now at 1bd0260 d
[detached HEAD 00eccdb] gp
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 g.t
[detached HEAD 3317c29] i
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 i.t
Previous HEAD position was 3317c29 i
HEAD is now at 020ea9b b
[detached HEAD 09e072f] f
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 f.t
Previous HEAD position was 09e072f f
HEAD is now at 1bd0260 d
[detached HEAD 35a5a4f] n
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 n.t
[detached HEAD a60ff6b] o
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 o.t
Merging:
a60ff6b o
virtual e
found 1 common ancestor:
1bd0260 d
Merge made by the 'recursive' strategy.
e.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 e.t
Merging:
df2bcbf w
virtual c
found 1 common ancestor:
020ea9b b
Merge made by the 'recursive' strategy.
c.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 c.t
Previous HEAD position was 253142b v
HEAD is now at a60ff6b o
[detached HEAD 6fadda8] z
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 z.t
ok 1 - setup of non-linear-history
expecting success:
reset_rebase &&
git rebase e w &&
test_cmp_rev e HEAD~2 &&
test_linear_range 'n o' e..
No rebase in progress?
HEAD is now at 6fadda8 z
First, rewinding head to replay your work on top of it...
Applying: n
Applying: o
ok 2 - rebase after merge from upstream
expecting success:
reset_rebase &&
git rebase -m e w &&
test_cmp_rev e HEAD~2 &&
test_linear_range 'n o' e..
No rebase in progress?
HEAD is now at 4cd4d2a o
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging e with HEAD~1
Merging:
67a7211 e
35a5a4f n
found 1 common ancestor:
1bd0260 d
[detached HEAD 3b45f1e] n
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 n.t
Committed: 0001 n
Merging e with HEAD~0
Merging:
3b45f1e n
a60ff6b o
found 1 common ancestor:
35a5a4f n
[detached HEAD 4cd4d2a] o
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 o.t
Committed: 0002 o
All done.
ok 3 - rebase -m after merge from upstream
expecting success:
reset_rebase &&
git rebase -i e w &&
test_cmp_rev e HEAD~2 &&
test_linear_range 'n o' e..
No rebase in progress?
HEAD is now at 4cd4d2a o
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 4 - rebase -i after merge from upstream
expecting success:
reset_rebase &&
git rebase d w &&
test_cmp_rev d HEAD~3 &&
test_linear_range 'e n o' d..
No rebase in progress?
HEAD is now at 4cd4d2a o
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: e
Applying: n
Applying: o
ok 5 - rebase of non-linear history is linearized in place
expecting success:
reset_rebase &&
git rebase -m d w &&
test_cmp_rev d HEAD~3 &&
test_linear_range 'e n o' d..
No rebase in progress?
HEAD is now at 71b365a o
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging d with HEAD~2
Merging:
1bd0260 d
67a7211 e
found 1 common ancestor:
1bd0260 d
[detached HEAD 58e651c] e
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 e.t
Committed: 0001 e
Merging d with HEAD~1
Merging:
58e651c e
35a5a4f n
found 1 common ancestor:
1bd0260 d
[detached HEAD d7cd91e] n
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 n.t
Committed: 0002 n
Merging d with HEAD~0
Merging:
d7cd91e n
a60ff6b o
found 1 common ancestor:
35a5a4f n
[detached HEAD 71b365a] o
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 o.t
Committed: 0003 o
All done.
ok 6 - rebase -m of non-linear history is linearized in place
expecting success:
reset_rebase &&
git rebase -i d w &&
test_cmp_rev d HEAD~3 &&
test_linear_range 'n o e' d..
No rebase in progress?
HEAD is now at 71b365a o
Removing actual.rev
Removing expect.rev
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 7 - rebase -i of non-linear history is linearized in place
expecting success:
reset_rebase &&
git rebase c w &&
test_cmp_rev c HEAD~4 &&
test_linear_range 'd e n o' c..
No rebase in progress?
HEAD is now at ef67882 e
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
Applying: e
Applying: n
Applying: o
ok 8 - rebase of non-linear history is linearized upstream
expecting success:
reset_rebase &&
git rebase -m c w &&
test_cmp_rev c HEAD~4 &&
test_linear_range 'd e n o' c..
No rebase in progress?
HEAD is now at 9b42f8e o
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging c with HEAD~3
Merging:
d9ea348 c
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD 9501b67] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging c with HEAD~2
Merging:
9501b67 d
67a7211 e
found 1 common ancestor:
1bd0260 d
[detached HEAD bf821a2] e
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 e.t
Committed: 0002 e
Merging c with HEAD~1
Merging:
bf821a2 e
35a5a4f n
found 1 common ancestor:
1bd0260 d
[detached HEAD cd1b620] n
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 n.t
Committed: 0003 n
Merging c with HEAD~0
Merging:
cd1b620 n
a60ff6b o
found 1 common ancestor:
35a5a4f n
[detached HEAD 9b42f8e] o
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 o.t
Committed: 0004 o
All done.
ok 9 - rebase -m of non-linear history is linearized upstream
expecting success:
reset_rebase &&
git rebase -i c w &&
test_cmp_rev c HEAD~4 &&
test_linear_range 'd n o e' c..
No rebase in progress?
HEAD is now at 9b42f8e o
Removing actual.rev
Removing expect.rev
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 10 - rebase -i of non-linear history is linearized upstream
expecting success:
reset_rebase &&
git rebase c v &&
test_cmp_rev c HEAD~4 &&
test_linear_range 'd e n o' c..
No rebase in progress?
HEAD is now at 7946025 e
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
Applying: e
Applying: n
Applying: o
ok 11 - rebase of non-linear history with merges after upstream merge is linearized
expecting success:
reset_rebase &&
git rebase -m c v &&
test_cmp_rev c HEAD~4 &&
test_linear_range 'd e n o' c..
No rebase in progress?
HEAD is now at 9b42f8e o
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging c with HEAD~3
Merging:
d9ea348 c
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD 9501b67] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging c with HEAD~2
Merging:
9501b67 d
67a7211 e
found 1 common ancestor:
1bd0260 d
[detached HEAD bf821a2] e
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 e.t
Committed: 0002 e
Merging c with HEAD~1
Merging:
bf821a2 e
35a5a4f n
found 1 common ancestor:
1bd0260 d
[detached HEAD cd1b620] n
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 n.t
Committed: 0003 n
Merging c with HEAD~0
Merging:
cd1b620 n
a60ff6b o
found 1 common ancestor:
35a5a4f n
[detached HEAD 9b42f8e] o
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 o.t
Committed: 0004 o
All done.
ok 12 - rebase -m of non-linear history with merges after upstream merge is linearized
expecting success:
reset_rebase &&
git rebase -i c v &&
test_cmp_rev c HEAD~4 &&
test_linear_range 'd n o e' c..
No rebase in progress?
HEAD is now at 9b42f8e o
Removing actual.rev
Removing expect.rev
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 13 - rebase -i of non-linear history with merges after upstream merge is linearized
expecting success:
reset_rebase &&
git rebase -p d w &&
test_cmp_rev w HEAD
No rebase in progress?
HEAD is now at 7946025 e
Removing actual.rev
Removing expect.rev
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 14 - rebase -p is no-op in non-linear history
expecting success:
reset_rebase &&
git rebase -p e w &&
test_cmp_rev w HEAD
No rebase in progress?
HEAD is now at df2bcbf w
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 15 - rebase -p is no-op when base inside second parent
checking known breakage:
reset_rebase &&
git rebase -p --root w &&
test_cmp_rev w HEAD
No rebase in progress?
HEAD is now at df2bcbf w
Removing actual.rev
Removing expect.rev
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 detached HEAD.
--- expect.rev 2018-06-24 06:10:00.732021432 +0000
+++ actual.rev 2018-06-24 06:10:00.752021947 +0000
@@ -1 +1 @@
-df2bcbf6cf61eb2cff7270cb2481591f50190257
+9c7d2562716d5ad262798a2dc378a6f977240a94
not ok 16 - rebase -p --root on non-linear history is a no-op # TODO known breakage
expecting success:
reset_rebase &&
git rebase -p z w &&
test_cmp_rev z HEAD^ &&
test_cmp_rev w^2 HEAD^2
No rebase in progress?
HEAD is now at 9c7d256 w
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 17 - rebase -p re-creates merge from side branch
expecting success:
reset_rebase &&
git rebase -p c w &&
test_cmp_rev c HEAD~4 &&
test_cmp_rev HEAD^2^ HEAD~3 &&
test_revision_subjects 'd n e o w' HEAD~3 HEAD~2 HEAD^2 HEAD^ HEAD
No rebase in progress?
HEAD is now at 3547a5b w
Removing actual.rev
Removing expect.rev
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)
Successfully rebased and updated detached HEAD.
ok 18 - rebase -p re-creates internal merge
expecting success:
reset_rebase &&
git rebase -p --onto c d w &&
test_cmp_rev c HEAD~3 &&
test_cmp_rev c HEAD^2^ &&
test_revision_subjects 'n e o w' HEAD~2 HEAD^2 HEAD^ HEAD
No rebase in progress?
HEAD is now at a09c328 w
Removing actual.rev
Removing expect.rev
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 19 - rebase -p can re-create two branches on onto
expecting success:
git checkout e &&
test_merge u i
Warning: you are leaving 4 commits behind, not connected to
any of your branches:
a53b63e w
8d709cf o
d0455e3 e
712812d n
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> a53b63e
HEAD is now at 67a7211 e
Merging:
67a7211 e
virtual i
found 1 common ancestor:
1bd0260 d
Merge made by the 'recursive' strategy.
g.t | 1 +
i.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 g.t
create mode 100644 i.t
ok 20 - setup of non-linear-history for patch-equivalence tests
expecting success:
reset_rebase &&
git rebase -p h u &&
test_cmp_rev h HEAD~3 &&
test_cmp_rev HEAD^2^ HEAD~2 &&
test_revision_subjects 'd i e u' HEAD~2 HEAD^2 HEAD^ HEAD
No rebase in progress?
HEAD is now at 9a9bb96 u
Removing actual.rev
Removing expect.rev
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 21 - rebase -p re-creates history around dropped commit matching upstream
expecting success:
reset_rebase &&
git rebase -p --onto f h u &&
test_cmp_rev f HEAD~3 &&
test_cmp_rev HEAD^2^ HEAD~2 &&
test_revision_subjects 'd i e u' HEAD~2 HEAD^2 HEAD^ HEAD
No rebase in progress?
HEAD is now at e5af6fe u
Removing actual.rev
Removing expect.rev
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 22 - rebase -p --onto in merged history drops patches in upstream
expecting success:
reset_rebase &&
git rebase -p --onto h f u &&
test_cmp_rev h HEAD~3 &&
test_cmp_rev HEAD^2~2 HEAD~2 &&
test_revision_subjects 'd gp i e u' HEAD~2 HEAD^2^ HEAD^2 HEAD^ HEAD
No rebase in progress?
HEAD is now at 97f19d6 u
Removing actual.rev
Removing expect.rev
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)
Successfully rebased and updated detached HEAD.
ok 23 - rebase -p --onto in merged history does not drop patches in onto
expecting success:
git checkout gp &&
test_merge s e &&
git checkout e &&
test_merge t gp
Warning: you are leaving 5 commits behind, not connected to
any of your branches:
c80436f u
86b2452 e
7637afd i
45d528f d
bfc420a gp
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> c80436f
HEAD is now at 00eccdb gp
Merging:
00eccdb gp
virtual e
found 1 common ancestor:
1bd0260 d
Merge made by the 'recursive' strategy.
e.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 e.t
Previous HEAD position was cd98db9 s
HEAD is now at 67a7211 e
Merging:
67a7211 e
virtual gp
found 1 common ancestor:
1bd0260 d
Merge made by the 'recursive' strategy.
g.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 g.t
ok 24 - setup of non-linear-history for dropping whole side
checking known breakage:
reset_rebase &&
git rebase -p h s &&
test_cmp_rev h HEAD~2 &&
test_linear_range 'd e' h..
No rebase in progress?
HEAD is now at cc19be7 t
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
not ok 25 - rebase -p drops merge commit when entire first-parent side is dropped # TODO known breakage
expecting success:
reset_rebase &&
git rebase -p h t &&
test_cmp_rev h HEAD~2 &&
test_linear_range 'd e' h..
No rebase in progress?
HEAD is now at df14409 s
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 26 - rebase -p drops merge commit when entire second-parent side is dropped
expecting success:
git checkout n &&
git merge --no-commit e &&
git reset n . &&
git commit -m r &&
git reset --hard &&
git clean -f &&
git tag r
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
03b6df6 e
c8a9e3b d
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> 03b6df6
HEAD is now at 35a5a4f n
Merging:
35a5a4f n
virtual e
found 1 common ancestor:
1bd0260 d
Automatic merge went well; stopped before committing as requested
[detached HEAD b5d7f15] r
Author: A U Thor <author@example.com>
HEAD is now at b5d7f15 r
Removing actual.rev
Removing e.t
Removing expect.rev
ok 27 - setup of non-linear-history for empty commits
expecting success:
reset_rebase &&
git rebase -p c r &&
test_cmp_rev c HEAD~3 &&
test_cmp_rev HEAD^2^ HEAD~2 &&
test_revision_subjects 'd e n r' HEAD~2 HEAD^2 HEAD^ HEAD
No rebase in progress?
HEAD is now at b5d7f15 r
Rebasing (1/4)
Rebasing (2/4)
Rebasing (3/4)
Rebasing (4/4)
Successfully rebased and updated detached HEAD.
ok 28 - rebase -p re-creates empty internal merge commit
expecting success:
reset_rebase &&
git rebase -p o r &&
test_cmp_rev e HEAD^2 &&
test_cmp_rev o HEAD^ &&
test_revision_subjects 'r' HEAD
No rebase in progress?
HEAD is now at 40b3097 r
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 29 - rebase -p re-creates empty merge commit
# still have 2 known breakage(s)
# passed all remaining 27 test(s)
1..29
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3500-cherry.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3500-cherry/.git/
expecting success: echo First > A &&
git update-index --add A &&
test_tick &&
git commit -m "Add A." &&
git checkout -b my-topic-branch &&
echo Second > B &&
git update-index --add B &&
test_tick &&
git commit -m "Add B." &&
echo AnotherSecond > C &&
git update-index --add C &&
test_tick &&
git commit -m "Add C." &&
git checkout -f master &&
rm -f B C &&
echo Third >> A &&
git update-index A &&
test_tick &&
git commit -m "Modify A." &&
expr "$(echo $(git cherry master my-topic-branch) )" : "+ [^ ]* + .*"
[master (root-commit) 4655d1a] Add A.
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
create mode 100644 A
Switched to a new branch 'my-topic-branch'
[my-topic-branch 75dd694] Add B.
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
create mode 100644 B
[my-topic-branch c8d60d2] Add C.
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
create mode 100644 C
Switched to branch 'master'
[master 90cb8ed] Modify A.
Author: A U Thor <bogus_email_address>
1 file changed, 1 insertion(+)
85
ok 1 - prepare repository with topic branch, and check cherry finds the 2 patches from there
expecting success: expr "$(echo $(git cherry master my-topic-branch my-topic-branch^1) )" : "+ [^ ]*"
42
ok 2 - check that cherry with limit returns only the top patch
expecting success: git cherry-pick my-topic-branch^0 &&
echo $(git cherry master my-topic-branch) &&
expr "$(echo $(git cherry master my-topic-branch) )" : "+ [^ ]* - .*"
[master 3a1a38a] Add C.
Author: A U Thor <bogus_email_address>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 C
+ 75dd694131e593dac8cf8ea0a377f1b73a80c1ad - c8d60d26f42936e7a055747f5412d41a6bce7d77
85
ok 3 - cherry-pick one of the 2 patches, and check cherry recognized one and only one as new
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3501-revert-cherry-pick.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3501-revert-cherry-pick/.git/
expecting success:
for l in a b c d e f g h i j k l m n o
do
echo $l$l$l$l$l$l$l$l$l
done >oops &&
test_tick &&
git add oops &&
git commit -m initial &&
git tag initial &&
test_tick &&
echo "Add extra line at the end" >>oops &&
git commit -a -m added &&
git tag added &&
test_tick &&
git mv oops spoo &&
git commit -m rename1 &&
git tag rename1 &&
test_tick &&
git checkout -b side initial &&
git mv oops opos &&
git commit -m rename2 &&
git tag rename2
[master (root-commit) a242c62] initial
Author: A U Thor <author@example.com>
1 file changed, 15 insertions(+)
create mode 100644 oops
[master 4399171] added
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master 31df260] rename1
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename oops => spoo (100%)
Switched to a new branch 'side'
[side f6d0551] rename2
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename oops => opos (100%)
ok 1 - setup
expecting success:
pos=$(git rev-parse HEAD) &&
git diff --exit-code HEAD &&
test_must_fail git cherry-pick --nonsense 2>msg &&
git diff --exit-code HEAD "$pos" &&
test_i18ngrep [Uu]sage: msg
usage: git cherry-pick [<options>] <commit-ish>...
ok 2 - cherry-pick --nonsense
expecting success:
pos=$(git rev-parse HEAD) &&
git diff --exit-code HEAD &&
test_must_fail git revert --nonsense 2>msg &&
git diff --exit-code HEAD "$pos" &&
test_i18ngrep [Uu]sage: msg
usage: git revert [<options>] <commit-ish>...
ok 3 - revert --nonsense
expecting success:
git checkout rename2 &&
git cherry-pick added &&
test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
test -f opos &&
grep "Add extra line at the end" opos &&
git reflog -1 | grep cherry-pick
Note: checking out 'rename2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at f6d0551 rename2
[detached HEAD 2da2754] added
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
Add extra line at the end
2da2754 HEAD@{0}: cherry-pick: added
ok 4 - cherry-pick after renaming branch
expecting success:
git checkout rename1 &&
git revert added &&
test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
test -f spoo &&
! grep "Add extra line at the end" spoo &&
git reflog -1 | grep revert
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
2da2754 added
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> 2da2754
HEAD is now at 31df260 rename1
[detached HEAD 9990ddc] Revert "added"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 deletion(-)
9990ddc HEAD@{0}: revert: Revert "added"
ok 5 - revert after renaming branch
expecting success:
git clone . copy &&
(
cd copy &&
git checkout initial &&
test-tool chmtime +40 oops &&
git cherry-pick added
)
Cloning into 'copy'...
done.
Note: checking out '9990ddca844ef3875d864da986dfd141d1a88865'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
9990ddc Revert "added"
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> 9990ddc
HEAD is now at a242c62 initial
[detached HEAD 096ed54] added
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
ok 6 - cherry-pick on stat-dirty working tree
expecting success:
echo content >extra_file &&
git add extra_file &&
test_must_fail git revert HEAD 2>errors &&
test_i18ngrep "your local changes would be overwritten by " errors
error: your local changes would be overwritten by revert.
ok 7 - revert forbidden on dirty working tree
expecting success:
git checkout --orphan unborn &&
git rm --cached -r . &&
rm -rf * &&
git cherry-pick initial &&
git diff --quiet initial &&
! test_cmp_rev initial HEAD
Switched to a new branch 'unborn'
A extra_file
rm 'extra_file'
rm 'spoo'
[unborn 38e6d75] initial
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
1 file changed, 15 insertions(+)
create mode 100644 oops
--- expect.rev 2018-06-24 06:11:06.883723618 +0000
+++ actual.rev 2018-06-24 06:11:06.903724132 +0000
@@ -1 +1 @@
-a242c628eb0a8dc3b46a2304662d9ada7621ef18
+38e6d75e0aa3f58322a336b3c203eff724d10493
ok 8 - cherry-pick on unborn branch
expecting success:
git checkout unborn &&
test_commit to-pick actual content &&
git checkout master &&
git cherry-pick - &&
echo content >expect &&
test_cmp expect actual
Already on 'unborn'
[unborn d9ba711] to-pick
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 actual
Switched to branch 'master'
Skipped spoo (merged same as existing)
[master 7c68b81] to-pick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 actual
ok 9 - cherry-pick "-" to pick from previous branch
expecting success:
test_create_repo afresh &&
(
cd afresh &&
test_commit one &&
test_commit two &&
test_commit three &&
test_must_fail git cherry-pick -
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3501-revert-cherry-pick/afresh/.git/
[master (root-commit) 26cc6ba] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master 776892e] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
[master 6c11eb3] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 three.t
fatal: bad revision '@{-1}'
ok 10 - cherry-pick "-" is meaningless without checkout
expecting success:
git checkout -b side-branch &&
test_commit change actual change &&
git checkout master &&
git cherry-pick -s - &&
echo "Signed-off-by: C O Mitter <committer@example.com>" >expect &&
git cat-file commit HEAD | grep ^Signed-off-by: >signoff &&
test_cmp expect signoff &&
echo change >expect &&
test_cmp expect actual
Switched to a new branch 'side-branch'
[side-branch 94f7852] change
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'master'
[master a524e05] change
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 11 - cherry-pick "-" works with arguments
expecting success:
test_commit to-rename &&
git checkout -b unrelated &&
test_commit unrelated &&
git checkout @{-1} &&
git mv to-rename.t renamed &&
test_tick &&
git commit -m renamed &&
echo modified >renamed &&
git cherry-pick refs/heads/unrelated >out &&
test $(git rev-parse :0:renamed) = $(git rev-parse HEAD~2:to-rename.t) &&
grep -q "^modified$" renamed
[master 035700e] to-rename
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 to-rename.t
Switched to a new branch 'unrelated'
[unrelated ef4075f] unrelated
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 unrelated.t
Switched to branch 'master'
[master 356b685] renamed
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename to-rename.t => renamed (100%)
ok 12 - cherry-pick works with dirty renamed file
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3502-cherry-pick-merge.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3502-cherry-pick-merge/.git/
expecting success:
>A &&
>B &&
git add A B &&
git commit -m "Initial" &&
git tag initial &&
git branch side &&
echo new line >A &&
git commit -m "add line to A" A &&
git tag a &&
git checkout side &&
echo new line >B &&
git commit -m "add line to B" B &&
git tag b &&
git checkout master &&
git merge side &&
git tag c
[master (root-commit) 14be132] Initial
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 A
create mode 100644 B
[master e750b77] add line to A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'side'
[side 3c51985] add line to B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'master'
Merging:
e750b77 add line to A
virtual side
found 1 common ancestor:
14be132 Initial
Merge made by the 'recursive' strategy.
B | 1 +
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
# expect 129 here to distinguish between cases where
# there was nothing to cherry-pick
test_expect_code 129 git cherry-pick -m &&
test_expect_code 129 git cherry-pick -m foo b &&
test_expect_code 129 git cherry-pick -m -1 b &&
test_expect_code 129 git cherry-pick -m 0 b
error: switch `m' requires a value
error: option `mainline' expects a number greater than zero
error: option `mainline' expects a number greater than zero
error: option `mainline' expects a number greater than zero
ok 2 - cherry-pick -m complains of bogus numbers
expecting success:
git reset --hard &&
git checkout a^0 &&
test_expect_code 128 git cherry-pick -m 1 b &&
git diff --exit-code a --
HEAD is now at 354debb Merge branch 'side'
Note: checking out 'a^0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at e750b77 add line to A
error: mainline was specified but commit 3c519859a66cb3b77957ed416c43859dbf32a19b is not a merge.
fatal: cherry-pick failed
ok 3 - cherry-pick a non-merge with -m should fail
expecting success:
git reset --hard &&
git checkout a^0 &&
test_must_fail git cherry-pick c &&
git diff --exit-code a --
HEAD is now at e750b77 add line to A
HEAD is now at e750b77 add line to A
error: commit 354debbf67549e35fbd2ff7a835175861e302081 is a merge but no -m option was given.
fatal: cherry-pick failed
ok 4 - cherry pick a merge without -m should fail
expecting success:
git reset --hard &&
git checkout a^0 &&
git cherry-pick -m 1 c &&
git diff --exit-code c
HEAD is now at e750b77 add line to A
HEAD is now at e750b77 add line to A
[detached HEAD a5f8e21] Merge branch 'side'
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:09 2018 +0000
1 file changed, 1 insertion(+)
ok 5 - cherry pick a merge (1)
expecting success:
git reset --hard &&
git checkout b^0 &&
git cherry-pick -m 2 c &&
git diff --exit-code c
HEAD is now at a5f8e21 Merge branch 'side'
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
a5f8e21 Merge branch 'side'
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> a5f8e21
HEAD is now at 3c51985 add line to B
[detached HEAD be76b6d] Merge branch 'side'
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:09 2018 +0000
1 file changed, 1 insertion(+)
ok 6 - cherry pick a merge (2)
expecting success:
git reset --hard &&
git checkout b^0 &&
test_must_fail git cherry-pick -m 3 c
HEAD is now at be76b6d Merge branch 'side'
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
be76b6d Merge branch 'side'
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> be76b6d
HEAD is now at 3c51985 add line to B
error: commit 354debbf67549e35fbd2ff7a835175861e302081 does not have parent 3
fatal: cherry-pick failed
ok 7 - cherry pick a merge relative to nonexistent parent should fail
expecting success:
git reset --hard &&
git checkout c^0 &&
test_must_fail git revert -m 1 b &&
git diff --exit-code c
HEAD is now at 3c51985 add line to B
Previous HEAD position was 3c51985 add line to B
HEAD is now at 354debb Merge branch 'side'
error: mainline was specified but commit 3c519859a66cb3b77957ed416c43859dbf32a19b is not a merge.
fatal: revert failed
ok 8 - revert a non-merge with -m should fail
expecting success:
git reset --hard &&
git checkout c^0 &&
test_must_fail git revert c &&
git diff --exit-code c
HEAD is now at 354debb Merge branch 'side'
HEAD is now at 354debb Merge branch 'side'
error: commit 354debbf67549e35fbd2ff7a835175861e302081 is a merge but no -m option was given.
fatal: revert failed
ok 9 - revert a merge without -m should fail
expecting success:
git reset --hard &&
git checkout c^0 &&
git revert -m 1 c &&
git diff --exit-code a --
HEAD is now at 354debb Merge branch 'side'
HEAD is now at 354debb Merge branch 'side'
[detached HEAD 4ed1e1d] Revert "Merge branch 'side'"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:10 2018 +0000
1 file changed, 1 deletion(-)
ok 10 - revert a merge (1)
expecting success:
git reset --hard &&
git checkout c^0 &&
git revert -m 2 c &&
git diff --exit-code b --
HEAD is now at 4ed1e1d Revert "Merge branch 'side'"
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
4ed1e1d Revert "Merge branch 'side'"
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> 4ed1e1d
HEAD is now at 354debb Merge branch 'side'
[detached HEAD f089691] Revert "Merge branch 'side'"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:10 2018 +0000
1 file changed, 1 deletion(-)
ok 11 - revert a merge (2)
expecting success:
git reset --hard &&
git checkout c^0 &&
test_must_fail git revert -m 3 c &&
git diff --exit-code c
HEAD is now at f089691 Revert "Merge branch 'side'"
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
f089691 Revert "Merge branch 'side'"
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> f089691
HEAD is now at 354debb Merge branch 'side'
error: commit 354debbf67549e35fbd2ff7a835175861e302081 does not have parent 3
fatal: revert failed
ok 12 - revert a merge relative to nonexistent parent should fail
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3503-cherry-pick-root.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3503-cherry-pick-root/.git/
expecting success:
echo first > file1 &&
git add file1 &&
test_tick &&
git commit -m "first" &&
git symbolic-ref HEAD refs/heads/second &&
rm .git/index file1 &&
echo second > file2 &&
git add file2 &&
test_tick &&
git commit -m "second" &&
git symbolic-ref HEAD refs/heads/third &&
rm .git/index file2 &&
echo third > file3 &&
git add file3 &&
test_tick &&
git commit -m "third"
[master (root-commit) 0c72e4f] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
[second (root-commit) bbcd39a] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
[third (root-commit) 4911fa6] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file3
ok 1 - setup
expecting success:
git checkout second^0 &&
git cherry-pick master &&
echo first >expect &&
test_cmp expect file1
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at bbcd39a second
[detached HEAD 3e6f574] first
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
ok 2 - cherry-pick a root commit
expecting success:
git revert master &&
test_path_is_missing file1
Removing file1
[detached HEAD 3eb7e0d] Revert "first"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 file1
ok 3 - revert a root commit
expecting success:
git cherry-pick --strategy=resolve master &&
echo first >expect &&
test_cmp expect file1
Trying simple merge.
[detached HEAD 54587e2] first
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
ok 4 - cherry-pick a root commit with an external strategy
expecting success:
git revert --strategy=resolve master &&
test_path_is_missing file1
Removing file1
[detached HEAD a457399] Revert "first"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 file1
ok 5 - revert a root commit with an external strategy
expecting success:
echo first >expect.file1 &&
echo second >expect.file2 &&
echo third >expect.file3 &&
git checkout second^0 &&
git cherry-pick master third &&
test_cmp expect.file1 file1 &&
test_cmp expect.file2 file2 &&
test_cmp expect.file3 file3 &&
git rev-parse --verify HEAD^^ &&
test_must_fail git rev-parse --verify HEAD^^^
Warning: you are leaving 4 commits behind, not connected to
any of your branches:
a457399 Revert "first"
54587e2 first
3eb7e0d Revert "first"
3e6f574 first
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> a457399
HEAD is now at bbcd39a second
[detached HEAD 3e6f574] first
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
[detached HEAD 2069bd1] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 file3
bbcd39af5b7918b8e79c884f958eeddbace1fd46
fatal: Needed a single revision
ok 6 - cherry-pick two root commits
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3426-rebase-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/.git/
expecting success:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1/.git/
[master (root-commit) 4e8117f] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub2/.git/
[master (root-commit) a9b6f89] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_repo/.git/
[master (root-commit) 8de1735] 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.t3426-rebase-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 80fe863] 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 cf6a74c] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:42 2018 +0000
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 1b729e2] 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.t3426-rebase-submodule/submodule_update_sub1
* [new branch] modifications -> modifications
[modify_sub1 e4515ee] 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.t3426-rebase-submodule/submodule_update_repo/sub1/sub2'...
done.
[add_nested_sub 51089e7] 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 98d95b0] 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 4cdd364] 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 6a73c81] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively 80bdf75] update sub1, that updates nested sub
Author: A U Thor <author@example.com>
To /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1
* [new branch] modify_sub1_recursively -> modify_sub1_recursively
To /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-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 '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Previous HEAD position was 4e8117f Base inside first submodule
Switched to branch 'modifications'
rm 'sub1'
[replace_sub1_with_directory 17a299d] 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 ec59b87] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:46 2018 +0000
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 8855e27] 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 8296422] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:47 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Switched to a new branch 'invalid_sub1'
[invalid_sub1 ec9fc80] Invalid sub1 commit
Author: A U Thor <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 eee19ff] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:47 2018 +0000
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 a new branch 'ours'
[ours 41a0755] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 20ce6dd] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:47 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 1 - git_rebase: added submodule creates empty directory
expecting success:
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 a new branch 'ours'
[ours 56f2b4c] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours ed673f5] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:50 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 2 - git_rebase: added submodule leaves existing empty directory alone
expecting success:
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 a new branch 'ours'
[ours 3c7cb6c] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 0552644] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:53 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 3 - git_rebase: replace tracked file with submodule creates empty directory
expecting success:
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 a new branch 'ours'
[ours 22df9c7] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours e5de2e4] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:09:57 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 4 - git_rebase: replace directory with submodule
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours 28999d7] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 452f9f4] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:00 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
warning: unable to rmdir 'sub1': Directory not empty
Applying: add_x
Applying: Revert "add_x"
ok 5 - git_rebase: removed submodule leaves submodule directory and its contents in place
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours 2223385] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 4e58e43] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:04 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
warning: unable to rmdir 'sub1': Directory not empty
Applying: add_x
Applying: Revert "add_x"
ok 6 - git_rebase: removed submodule leaves submodule containing a .git directory alone
expecting success:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
Switched to a new branch 'ours'
[ours df4b7f6] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 84e3900] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:06 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
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
could not detach HEAD
ok 7 - git_rebase: replace submodule with a directory must fail
expecting success:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
Switched to a new branch 'ours'
[ours 0a5c18e] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 080a74d] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:09 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
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
could not detach HEAD
ok 8 - git_rebase: replace submodule containing a .git directory with a directory must fail
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
Switched to a new branch 'ours'
[ours e21317c] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 4eb5f1b] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:11 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
test_must_fail: command succeeded: git_rebase replace_sub1_with_file
not ok 9 - git_rebase: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
Switched to a new branch 'ours'
[ours e6865c1] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 538685c] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:14 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
test_must_fail: command succeeded: git_rebase replace_sub1_with_file
not ok 10 - git_rebase: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours 8e64fe1] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 4b5dabc] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:17 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
Submodule path 'sub1': checked out '1b729e2fd521196e11fc4b00cdf01aa7dedf9239'
ok 11 - git_rebase: modified submodule does not update submodule work tree
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours d1fc71b] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours a294f33] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:20 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 12 - git_rebase: modified submodule does not update submodule work tree to invalid commit
expecting success:
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 a new branch 'ours'
[ours 5d73fd3] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours afba773] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:22 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
Applying: add_x
Applying: Revert "add_x"
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 13 - git_rebase: modified submodule does not update submodule work tree from invalid commit
expecting success:
prolog &&
reset_work_tree_to 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'.
Switched to a new branch 'ours'
[ours fbacd96] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours f93db13] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:26 2018 +0000
1 file changed, 1 deletion(-)
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
sub1
Please move or remove them before you switch branches.
Aborting
could not detach HEAD
ok 14 - git_rebase: added submodule doesn't remove untracked unignored file with same name
expecting success:
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 a new branch 'ours'
[ours 8126d2f] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 54a2cbe] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:27 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 15 - git_rebase_interactive: added submodule creates empty directory
expecting success:
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 a new branch 'ours'
[ours c7bb27e] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 869ca9a] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:30 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 16 - git_rebase_interactive: added submodule leaves existing empty directory alone
expecting success:
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 a new branch 'ours'
[ours ff10ac2] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 1db72e6] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:34 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 17 - git_rebase_interactive: replace tracked file with submodule creates empty directory
expecting success:
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 a new branch 'ours'
[ours d338a89] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours dc276bf] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:38 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 18 - git_rebase_interactive: replace directory with submodule
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours e61d285] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 7e0a140] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:42 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
ok 19 - git_rebase_interactive: removed submodule leaves submodule directory and its contents in place
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours 01be2f8] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 484c002] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:45 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
ok 20 - git_rebase_interactive: removed submodule leaves submodule containing a .git directory alone
expecting success:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
Switched to a new branch 'ours'
[ours c7b5fa7] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 60ecc6d] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:49 2018 +0000
1 file changed, 1 deletion(-)
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
could not detach HEAD
ok 21 - git_rebase_interactive: replace submodule with a directory must fail
expecting success:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
Switched to a new branch 'ours'
[ours 5d9efe1] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 43d1f40] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:52 2018 +0000
1 file changed, 1 deletion(-)
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
could not detach HEAD
ok 22 - git_rebase_interactive: replace submodule containing a .git directory with a directory must fail
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
Switched to a new branch 'ours'
[ours e7f7dbc] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 120547d] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:54 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
test_must_fail: command succeeded: git_rebase_interactive replace_sub1_with_file
not ok 23 - git_rebase_interactive: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
Switched to a new branch 'ours'
[ours 7bdb9b9] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 464144b] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:10:57 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
test_must_fail: command succeeded: git_rebase_interactive replace_sub1_with_file
not ok 24 - git_rebase_interactive: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours b2b5c46] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours e97ae25] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:00 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
Submodule path 'sub1': checked out '1b729e2fd521196e11fc4b00cdf01aa7dedf9239'
ok 25 - git_rebase_interactive: modified submodule does not update submodule work tree
expecting success:
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.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
Switched to a new branch 'ours'
[ours 6971e3a] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 0bfb490] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:04 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 26 - git_rebase_interactive: modified submodule does not update submodule work tree to invalid commit
expecting success:
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 a new branch 'ours'
[ours 12195e2] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours 4ad2e0f] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:07 2018 +0000
1 file changed, 1 deletion(-)
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/ours.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
Submodule path 'uninitialized_sub': checked out '4e8117fe24158b5ae90d8f31ae7b45d4ee8e5378'
ok 27 - git_rebase_interactive: modified submodule does not update submodule work tree from invalid commit
expecting success:
prolog &&
reset_work_tree_to 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'.
Switched to a new branch 'ours'
[ours 7fa0ef9] add_x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ours b63f7fc] Revert "add_x"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:11 2018 +0000
1 file changed, 1 deletion(-)
error: The following untracked working tree files would be overwritten by checkout:
sub1
Please move or remove them before you switch branches.
Aborting
could not detach HEAD
ok 28 - git_rebase_interactive: added submodule doesn't remove untracked unignored file with same name
expecting success:
test_when_finished "rm -rf super sub" &&
git init sub &&
git -C sub commit --allow-empty -m "Initial commit" &&
git init super &&
git -C super submodule add ../sub &&
git -C super config submodule.sub.ignore dirty &&
>super/foo &&
git -C super add foo &&
git -C super commit -m "Initial commit" &&
test_commit -C super a &&
test_commit -C super b &&
test_commit -C super/sub c &&
set_fake_editor &&
git -C super rebase -i HEAD^^
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/sub/.git/
[master (root-commit) 120c605] Initial commit
Author: A U Thor <author@example.com>
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/super/.git/
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3426-rebase-submodule/super/sub'...
done.
[master (root-commit) a03a0cc] Initial commit
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 100644 foo
create mode 160000 sub
[master c6058b9] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
[master 11e8261] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
[master 96ad2c7] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Successfully rebased and updated refs/heads/master.
ok 29 - rebase interactive ignores modified submodules
# still have 4 known breakage(s)
# passed all remaining 25 test(s)
1..29
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3504-cherry-pick-rerere.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3504-cherry-pick-rerere/.git/
expecting success:
test_commit foo &&
test_commit foo-master foo &&
test_commit bar-master bar &&
git checkout -b dev foo &&
test_commit foo-dev foo &&
test_commit bar-dev bar &&
git config rerere.enabled true
[master (root-commit) ddd63c9] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master 07d3a39] foo-master
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
[master 04a71fd] bar-master
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar
Switched to a new branch 'dev'
[dev 1d8ba7e] foo-dev
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
[dev 5392a79] bar-dev
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar
ok 1 - setup
expecting success:
test_must_fail git merge master
Merging:
5392a79 bar-dev
virtual master
found 1 common ancestor:
ddd63c9 foo
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
Auto-merging bar
CONFLICT (add/add): Merge conflict in bar
Recorded preimage for 'bar'
Recorded preimage for 'foo'
Automatic merge failed; fix conflicts and then commit the result.
ok 2 - conflicting merge
expecting success:
echo foo-resolved >foo &&
echo bar-resolved >bar &&
git commit -am resolved &&
cp foo foo-expect &&
cp bar bar-expect &&
git reset --hard HEAD^
Recorded resolution for 'bar'.
Recorded resolution for 'foo'.
[dev b8bd488] resolved
Author: A U Thor <author@example.com>
HEAD is now at 5392a79 bar-dev
ok 3 - fixup
expecting success:
test_must_fail git cherry-pick --rerere-autoupdate foo..bar-master &&
test_cmp foo-expect foo &&
git diff-files --quiet &&
test_must_fail git cherry-pick --continue &&
test_cmp bar-expect bar &&
git diff-files --quiet &&
git cherry-pick --continue &&
git reset --hard bar-dev
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'foo' using previous resolution.
[dev 7d941fc] foo-master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging bar
CONFLICT (add/add): Merge conflict in bar
error: could not apply 04a71fd... bar-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'bar' using previous resolution.
[dev f23d681] bar-master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at 5392a79 bar-dev
ok 4 - cherry-pick conflict with --rerere-autoupdate
expecting success:
test_config rerere.autoUpdate true &&
test_must_fail git cherry-pick foo..bar-master &&
test_cmp foo-expect foo &&
git diff-files --quiet &&
test_must_fail git cherry-pick --continue &&
test_cmp bar-expect bar &&
git diff-files --quiet &&
git cherry-pick --continue &&
git reset --hard bar-dev
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'foo' using previous resolution.
[dev 7d941fc] foo-master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging bar
CONFLICT (add/add): Merge conflict in bar
error: could not apply 04a71fd... bar-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'bar' using previous resolution.
[dev f23d681] bar-master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at 5392a79 bar-dev
ok 5 - cherry-pick conflict repsects rerere.autoUpdate
expecting success:
test_config rerere.autoUpdate true &&
test_must_fail git cherry-pick --no-rerere-autoupdate foo..bar-master &&
test_cmp foo-expect foo &&
test_must_fail git diff-files --quiet &&
git add foo &&
test_must_fail git cherry-pick --continue &&
test_cmp bar-expect bar &&
test_must_fail git diff-files --quiet &&
git add bar &&
git cherry-pick --continue &&
git reset --hard bar-dev
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Resolved 'foo' using previous resolution.
[dev 7d941fc] foo-master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging bar
CONFLICT (add/add): Merge conflict in bar
error: could not apply 04a71fd... bar-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Resolved 'bar' using previous resolution.
[dev f23d681] bar-master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at 5392a79 bar-dev
ok 6 - cherry-pick conflict with --no-rerere-autoupdate
expecting success:
test_must_fail git cherry-pick --rerere-autoupdate foo..bar-master &&
test_cmp foo-expect foo &&
git diff-files --quiet &&
test_must_fail git cherry-pick --continue --rerere-autoupdate >actual 2>&1 &&
echo "fatal: cherry-pick: --rerere-autoupdate cannot be used with --continue" >expect &&
test_i18ncmp expect actual &&
test_must_fail git cherry-pick --continue --no-rerere-autoupdate >actual 2>&1 &&
echo "fatal: cherry-pick: --no-rerere-autoupdate cannot be used with --continue" >expect &&
test_i18ncmp expect actual &&
git cherry-pick --abort
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'foo' using previous resolution.
ok 7 - cherry-pick --continue rejects --rerere-autoupdate
expecting success:
test_must_fail git cherry-pick --rerere-autoupdate --rerere-autoupdate foo..bar-master &&
test_cmp foo-expect foo &&
git diff-files --quiet &&
git cherry-pick --abort &&
test_must_fail git cherry-pick --rerere-autoupdate --no-rerere-autoupdate --rerere-autoupdate foo..bar-master &&
test_cmp foo-expect foo &&
git diff-files --quiet &&
git cherry-pick --abort &&
test_must_fail git cherry-pick --rerere-autoupdate --no-rerere-autoupdate foo..bar-master &&
test_must_fail git diff-files --quiet &&
git cherry-pick --abort
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'foo' using previous resolution.
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Staged 'foo' using previous resolution.
Auto-merging foo
CONFLICT (add/add): Merge conflict in foo
error: could not apply 07d3a39... foo-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Resolved 'foo' using previous resolution.
ok 8 - cherry-pick --rerere-autoupdate more than once
expecting success:
test_config rerere.enabled false &&
test_must_fail git cherry-pick master &&
test_must_fail test_cmp expect foo
Auto-merging bar
CONFLICT (add/add): Merge conflict in bar
error: could not apply 04a71fd... bar-master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
--- expect 2018-06-24 06:11:15.193937413 +0000
+++ foo 2018-06-24 06:11:15.748951692 +0000
@@ -1 +1 @@
-fatal: cherry-pick: --no-rerere-autoupdate cannot be used with --continue
+foo-dev
ok 9 - cherry-pick conflict without rerere
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3505-cherry-pick-empty.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3505-cherry-pick-empty/.git/
expecting success:
echo first > file1 &&
git add file1 &&
test_tick &&
git commit -m "first" &&
git checkout -b empty-branch &&
test_tick &&
git commit --allow-empty -m "empty" &&
echo third >> file1 &&
git add file1 &&
test_tick &&
git commit --allow-empty-message -m "" &&
git checkout master &&
git checkout -b empty-branch2 &&
test_tick &&
git commit --allow-empty -m "empty"
[master (root-commit) 0c72e4f] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
Switched to a new branch 'empty-branch'
[empty-branch 7ade177] empty
Author: A U Thor <author@example.com>
[empty-branch d632cfa]
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'master'
Switched to a new branch 'empty-branch2'
[empty-branch2 a8bb6c8] empty
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success:
git checkout master &&
test_expect_code 1 git cherry-pick empty-branch^
Switched to branch 'master'
Already up to date!
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 reset'
On branch master
You are currently cherry-picking commit 7ade177.
nothing to commit, working tree clean
ok 2 - cherry-pick an empty commit
expecting success:
test ! -f .git/index.lock
ok 3 - index lockfile was removed
expecting success:
git checkout master &&
test_expect_code 1 git cherry-pick empty-branch
Already on 'master'
Aborting commit due to empty commit message.
ok 4 - cherry-pick a commit with an empty message
expecting success:
test ! -f .git/index.lock
ok 5 - index lockfile was removed
expecting success:
git checkout -f master &&
git cherry-pick --allow-empty-message empty-branch
Already on 'master'
[master 1cfda8e]
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
ok 6 - cherry-pick a commit with an empty message with --allow-empty-message
expecting success:
git checkout master &&
echo fourth >>file2 &&
git add file2 &&
git commit -m "fourth" &&
test_must_fail git cherry-pick empty-branch2
Already on 'master'
[master 2908c33] fourth
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
Already up to date!
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 reset'
On branch master
You are currently cherry-picking commit a8bb6c8.
nothing to commit, working tree clean
ok 7 - cherry pick an empty non-ff commit without --allow-empty
expecting success:
git checkout master &&
git cherry-pick --allow-empty empty-branch2
Already on 'master'
Already up to date!
[master c1a200f] empty
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
ok 8 - cherry pick an empty non-ff commit with --allow-empty
expecting success:
git checkout master &&
git cherry-pick --keep-redundant-commits HEAD^
Already on 'master'
[master 1ca5e4e] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
ok 9 - cherry pick with --keep-redundant-commits
expecting success:
git checkout master &&
git branch fork &&
echo foo >file2 &&
git add file2 &&
test_tick &&
git commit -m "add file2 on master" &&
git checkout fork &&
echo foo >file2 &&
git add file2 &&
test_tick &&
git commit -m "add file2 on the side"
Already on 'master'
[master ed7ef72] add file2 on master
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'fork'
[fork 0d03d7c] add file2 on the side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 10 - cherry-pick a commit that becomes no-op (prep)
expecting success:
git reset --hard &&
git checkout fork^0 &&
test_must_fail git cherry-pick master
HEAD is now at 0d03d7c add file2 on the side
Note: checking out 'fork^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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0d03d7c add file2 on the side
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 reset'
HEAD detached at 0d03d7c
You are currently cherry-picking commit ed7ef72.
nothing to commit, working tree clean
ok 11 - cherry-pick a no-op without --keep-redundant
expecting success:
git reset --hard &&
git checkout fork^0 &&
git cherry-pick --keep-redundant-commits master &&
git show -s --format=%s >actual &&
echo "add file2 on master" >expect &&
test_cmp expect actual
HEAD is now at 0d03d7c add file2 on the side
HEAD is now at 0d03d7c add file2 on the side
[detached HEAD 8024402] add file2 on master
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
ok 12 - cherry-pick a no-op with --keep-redundant
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3506-cherry-pick-ff.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3506-cherry-pick-ff/.git/
expecting success:
echo first > file1 &&
git add file1 &&
test_tick &&
git commit -m "first" &&
git tag first &&
git checkout -b other &&
echo second >> file1 &&
git add file1 &&
test_tick &&
git commit -m "second" &&
git tag second
[master (root-commit) 0c72e4f] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
Switched to a new branch 'other'
[other 453a047] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
git checkout master &&
git reset --hard first &&
test_tick &&
git cherry-pick --ff second &&
test "$(git rev-parse --verify HEAD)" = "$(git rev-parse --verify second)"
Switched to branch 'master'
HEAD is now at 0c72e4f first
ok 2 - cherry-pick using --ff fast forwards
expecting success:
git checkout master &&
git reset --hard first &&
test_tick &&
git cherry-pick second &&
test "$(git rev-parse --verify HEAD)" != "$(git rev-parse --verify second)"
Already on 'master'
HEAD is now at 0c72e4f first
[master 43e4ff7] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
ok 3 - cherry-pick not using --ff does not fast forwards
expecting success:
git checkout master &&
git reset --hard first &&
echo new line >A &&
git add A &&
test_tick &&
git commit -m "add line to A" A &&
git tag A &&
git checkout -b side first &&
echo new line >B &&
git add B &&
test_tick &&
git commit -m "add line to B" B &&
git tag B &&
git checkout master &&
git merge side &&
git tag C &&
git checkout -b new A
Already on 'master'
HEAD is now at 0c72e4f first
[master e3ca70e] add line to A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A
Switched to a new branch 'side'
[side 5faaf2e] add line to B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B
Switched to branch 'master'
Merging:
e3ca70e add line to A
virtual side
found 1 common ancestor:
0c72e4f first
Merge made by the 'recursive' strategy.
B | 1 +
1 file changed, 1 insertion(+)
create mode 100644 B
Switched to a new branch 'new'
ok 4 - merge setup
expecting success:
git reset --hard A -- &&
test_must_fail git cherry-pick --ff -m 1 B &&
git diff --exit-code A --
HEAD is now at e3ca70e add line to A
error: mainline was specified but commit 5faaf2e252b35c03c6bb69c9d78820cf1bdec73d is not a merge.
fatal: cherry-pick failed
ok 5 - cherry-pick a non-merge with --ff and -m should fail
expecting success:
git reset --hard A -- &&
test_must_fail git cherry-pick --ff C &&
git diff --exit-code A --
HEAD is now at e3ca70e add line to A
error: commit 17345dd7218a0fc4dc087d5aacc6be7192e4fa2a is a merge but no -m option was given.
fatal: cherry-pick failed
ok 6 - cherry pick a merge with --ff but without -m should fail
expecting success:
git reset --hard A -- &&
git cherry-pick --ff -m 1 C &&
git diff --exit-code C &&
test "$(git rev-parse --verify HEAD)" = "$(git rev-parse --verify C)"
HEAD is now at e3ca70e add line to A
ok 7 - cherry pick with --ff a merge (1)
expecting success:
git reset --hard B -- &&
git cherry-pick --ff -m 2 C &&
git diff --exit-code C &&
test "$(git rev-parse --verify HEAD)" = "$(git rev-parse --verify C)"
HEAD is now at 5faaf2e add line to B
ok 8 - cherry pick with --ff a merge (2)
expecting success:
git reset --hard B -- &&
test_must_fail git cherry-pick --ff -m 3 C
HEAD is now at 5faaf2e add line to B
error: commit 17345dd7218a0fc4dc087d5aacc6be7192e4fa2a does not have parent 3
fatal: cherry-pick failed
ok 9 - cherry pick a merge relative to nonexistent parent with --ff should fail
expecting success:
git reset --hard first -- &&
git rm file1 &&
echo first >file2 &&
git add file2 &&
git commit --amend -m "file2" &&
git cherry-pick --ff first &&
test "$(git rev-parse --verify HEAD)" = "1df192cd8bc58a2b275d842cede4d221ad9000d1"
HEAD is now at 0c72e4f first
rm 'file1'
[new 1654ff9] file2
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 file2
[new 1df192c] first
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
ok 10 - cherry pick a root commit with --ff
expecting success:
git checkout --orphan unborn &&
git rm --cached -r . &&
rm -rf * &&
git cherry-pick --ff first &&
test_cmp_rev first HEAD
Switched to a new branch 'unborn'
rm 'file1'
rm 'file2'
ok 11 - cherry-pick --ff on unborn branch
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3430-rebase-merges.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3430-rebase-merges/.git/
expecting success:
write_script replace-editor.sh <<-\EOF &&
mv "$1" "$(git rev-parse --git-path ORIGINAL-TODO)"
cp script-from-scratch "$1"
EOF
test_commit A &&
git checkout -b first &&
test_commit B &&
git checkout master &&
test_commit C &&
test_commit D &&
git merge --no-commit B &&
test_tick &&
git commit -m E &&
git tag -m E E &&
git checkout -b second C &&
test_commit F &&
test_commit G &&
git checkout master &&
git merge --no-commit G &&
test_tick &&
git commit -m H &&
git tag -m H H
[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 'first'
[first d9df450] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
Switched to branch 'master'
[master 5dee784] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 C.t
[master 12bd07b] D
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 D.t
Merging:
12bd07b D
virtual B
found 1 common ancestor:
0ddfaf1 A
Automatic merge went well; stopped before committing as requested
[master 2051b56] E
Author: A U Thor <author@example.com>
Switched to a new branch 'second'
[second ca2c861] F
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F.t
[second 088b00a] G
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 G.t
Switched to branch 'master'
Merging:
2051b56 E
virtual G
found 1 common ancestor:
5dee784 C
Automatic merge went well; stopped before committing as requested
[master 233d48a] H
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success:
cat >script-from-scratch <<-\EOF &&
label onto
# onebranch
pick G
pick D
label onebranch
# second
reset onto
pick B
label second
reset onto
merge -C H second
merge onebranch # Merge the topic branch 'onebranch'
EOF
test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
test_tick &&
git rebase -i -r A &&
test_cmp_graph <<-\EOF
* Merge the topic branch 'onebranch'
|\
| * D
| * G
* | H
|\ \
| |/
|/|
| * B
|/
* A
EOF
Rebasing (1/10)
Rebasing (2/10)
Rebasing (3/10)
Rebasing (4/10)
Rebasing (5/10)
Rebasing (6/10)
Rebasing (7/10)
Rebasing (8/10)
Rebasing (9/10)
Rebasing (10/10)
[detached HEAD a6ee26e] Merge the topic branch 'onebranch'
Author: A U Thor <author@example.com>
Successfully rebased and updated refs/heads/master.
ok 2 - create completely different structure
expecting success:
cat >expect <<-\EOF &&
label onto
reset onto
pick d9df450 B
label E
reset onto
pick 5dee784 C
label branch-point
pick ca2c861 F
pick 088b00a G
label H
reset branch-point # C
pick 12bd07b D
merge -C 2051b56 E # E
merge -C 233d48a H # H
EOF
grep -v "^#" <.git/ORIGINAL-TODO >output &&
test_cmp expect output
ok 3 - generate correct todo list
expecting success:
git checkout -b refuse-to-reset &&
test_commit dont-overwrite-untracked &&
git checkout @{-1} &&
: >dont-overwrite-untracked.t &&
echo "reset refs/tags/dont-overwrite-untracked" >script-from-scratch &&
test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
test_must_fail git rebase -r HEAD &&
git rebase --abort
Switched to a new branch 'refuse-to-reset'
[refuse-to-reset 46dc69b] dont-overwrite-untracked
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dont-overwrite-untracked.t
Switched to branch 'master'
Rebasing (1/1)
error: The following untracked working tree files would be overwritten by reset:
dont-overwrite-untracked.t
Please move or remove them before you reset.
Aborting
hint: Could not execute the todo command
hint:
hint: reset refs/tags/dont-overwrite-untracked
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
ok 4 - `reset` refuses to overwrite untracked files
expecting success:
test_when_finished "test_might_fail git rebase --abort" &&
git checkout -b conflicting-merge A &&
: fail because of conflicting untracked file &&
>G.t &&
echo "merge -C H G" >script-from-scratch &&
test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
test_tick &&
test_must_fail git rebase -ir HEAD &&
grep "^merge -C .* G$" .git/rebase-merge/done &&
grep "^merge -C .* G$" .git/rebase-merge/git-rebase-todo &&
test_path_is_file .git/rebase-merge/patch &&
: fail because of merge conflict &&
rm G.t .git/rebase-merge/patch &&
git reset --hard &&
test_commit conflicting-G G.t not-G conflicting-G &&
test_must_fail git rebase --continue &&
! grep "^merge -C .* G$" .git/rebase-merge/git-rebase-todo &&
test_path_is_file .git/rebase-merge/patch
Switched to a new branch 'conflicting-merge'
Rebasing (1/1)
error: The following untracked working tree files would be overwritten by merge:
G.t
Please move or remove them before you merge.
Aborting
error: could not even attempt to merge 'G'
hint: Could not execute the todo command
hint:
hint: merge -C 233d48a5caa0e14494fac2553a0b1179ff65b118 G
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 233d48a... G
Merging:
0ddfaf1 A
088b00a G
found 1 common ancestor:
0ddfaf1 A
error: merging of trees da5497437fd67ca928333aab79c4b4b55036ea66 and bf63c5363cd51ea548b29818f0df98d80cc273ff failed
merge -C 233d48a5caa0e14494fac2553a0b1179ff65b118 G
merge -C 233d48a5caa0e14494fac2553a0b1179ff65b118 G
HEAD is now at 0ddfaf1 A
[detached HEAD 7b30cfe] conflicting-G
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 G.t
Rebasing (2/2)
Could not apply 233d48a... G
Merging:
7b30cfe conflicting-G
088b00a G
found 1 common ancestor:
0ddfaf1 A
Auto-merging G.t
CONFLICT (add/add): Merge conflict in G.t
ok 5 - failed `merge` writes patch (may be rescheduled, too)
expecting success:
git checkout -b already-upstream master &&
base="$(git rev-parse --verify HEAD)" &&
test_commit A1 &&
test_commit A2 &&
git reset --hard $base &&
test_commit B1 &&
test_tick &&
git merge -m "Merge branch A" A2 &&
git checkout -b upstream-with-a2 $base &&
test_tick &&
git cherry-pick A2 &&
git checkout already-upstream &&
test_tick &&
git rebase -i -r upstream-with-a2 &&
test_cmp_graph upstream-with-a2.. <<-\EOF
* Merge branch A
|\
| * A1
* | B1
|/
o A2
EOF
Switched to a new branch 'already-upstream'
[already-upstream a8045c5] A1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A1.t
[already-upstream 9030dbc] A2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A2.t
HEAD is now at a6ee26e Merge the topic branch 'onebranch'
[already-upstream 2d5dda4] B1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B1.t
Merging:
2d5dda4 B1
virtual A2
found 1 common ancestor:
a6ee26e Merge the topic branch 'onebranch'
Merge made by the 'recursive' strategy.
A1.t | 1 +
A2.t | 1 +
2 files changed, 2 insertions(+)
create mode 100644 A1.t
create mode 100644 A2.t
Switched to a new branch 'upstream-with-a2'
[upstream-with-a2 1a4c3dc] A2
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 A2.t
Switched to branch 'already-upstream'
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/already-upstream.
ok 6 - with a branch tip that was cherry-picked already
expecting success:
git checkout -b cousins master &&
before="$(git rev-parse --verify HEAD)" &&
test_tick &&
git rebase -r HEAD^ &&
test_cmp_rev HEAD $before &&
test_tick &&
git rebase --rebase-merges=rebase-cousins HEAD^ &&
test_cmp_graph HEAD^.. <<-\EOF
* Merge the topic branch 'onebranch'
|\
| * D
| * G
|/
o H
EOF
Switched to a new branch 'cousins'
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/cousins.
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/cousins.
ok 7 - do not rebase cousins unless asked for
expecting success:
git worktree add wt &&
cat >wt/script-from-scratch <<-\EOF &&
label xyz
exec GIT_DIR=../.git git rev-parse --verify refs/rewritten/xyz >a || :
exec git rev-parse --verify refs/rewritten/xyz >b
EOF
test_config -C wt sequence.editor \""$PWD"/replace-editor.sh\" &&
git -C wt rebase -i HEAD &&
test_must_be_empty wt/a &&
test_cmp_rev HEAD "$(cat wt/b)"
Preparing worktree (new branch 'wt')
HEAD is now at 6c21ec3 Merge the topic branch 'onebranch'
Rebasing (1/3)
Rebasing (2/3)
Executing: GIT_DIR=../.git git rev-parse --verify refs/rewritten/xyz >a || :
fatal: Needed a single revision
Rebasing (3/3)
Executing: git rev-parse --verify refs/rewritten/xyz >b
Successfully rebased and updated refs/heads/wt.
ok 8 - refs/rewritten/* is worktree-local
expecting success:
git checkout -b post-rewrite &&
test_commit same1 &&
git reset --hard HEAD^ &&
test_commit same2 &&
git merge -m "to fix up" same1 &&
echo same old same old >same2.t &&
test_tick &&
git commit --fixup HEAD same2.t &&
fixup="$(git rev-parse HEAD)" &&
mkdir -p .git/hooks &&
test_when_finished "rm .git/hooks/post-rewrite" &&
echo "cat >actual" | write_script .git/hooks/post-rewrite &&
test_tick &&
git rebase -i --autosquash -r HEAD^^^ &&
printf "%s %s\n%s %s\n%s %s\n%s %s\n" >expect $(git rev-parse \
$fixup^^2 HEAD^2 \
$fixup^^ HEAD^ \
$fixup^ HEAD \
$fixup HEAD) &&
test_cmp expect actual
Switched to a new branch 'post-rewrite'
[post-rewrite 2781371] same1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 same1.t
HEAD is now at 6c21ec3 Merge the topic branch 'onebranch'
[post-rewrite 76c04fb] same2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 same2.t
Merging:
76c04fb same2
virtual same1
found 1 common ancestor:
6c21ec3 Merge the topic branch 'onebranch'
Merge made by the 'recursive' strategy.
same1.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 same1.t
[post-rewrite 200c090] fixup! to fix up
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (1/8)
Rebasing (2/8)
Rebasing (3/8)
Rebasing (4/8)
Rebasing (5/8)
Rebasing (6/8)
Rebasing (7/8)
Rebasing (8/8)
Successfully rebased and updated refs/heads/post-rewrite.
ok 9 - post-rewrite hook and fixups work for merges
expecting success:
echo "merge HEAD^" >script-from-scratch &&
test_config -C wt sequence.editor \""$PWD"/replace-editor.sh\" &&
before="$(git rev-parse HEAD)" &&
git rebase -i HEAD &&
test_cmp_rev HEAD $before
Rebasing (1/1)
Successfully rebased and updated refs/heads/post-rewrite.
ok 10 - refuse to merge ancestors of HEAD
expecting success:
git checkout --orphan unrelated &&
(GIT_AUTHOR_NAME="Parsnip" GIT_AUTHOR_EMAIL="root@example.com" \
test_commit second-root) &&
test_commit third-root &&
cat >script-from-scratch <<-\EOF &&
pick third-root
label first-branch
reset [new root]
pick second-root
merge first-branch # Merge the 3rd root
EOF
test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
test_tick &&
git rebase -i --force --root -r &&
test "Parsnip" = "$(git show -s --format=%an HEAD^)" &&
test $(git rev-parse second-root^0) != $(git rev-parse HEAD^) &&
test $(git rev-parse second-root:second-root.t) = \
$(git rev-parse HEAD^:second-root.t) &&
test_cmp_graph HEAD <<-\EOF &&
* Merge the 3rd root
|\
| * third-root
* second-root
EOF
: fast forward if possible &&
before="$(git rev-parse --verify HEAD)" &&
test_might_fail git config --unset sequence.editor &&
test_tick &&
git rebase -i --root -r &&
test_cmp_rev HEAD $before
Switched to a new branch 'unrelated'
[unrelated (root-commit) c105285] second-root
Author: Parsnip <root@example.com>
7 files changed, 7 insertions(+)
create mode 100644 A.t
create mode 100644 B.t
create mode 100644 D.t
create mode 100644 G.t
create mode 100644 same1.t
create mode 100644 same2.t
create mode 100644 second-root.t
[unrelated 4d66706] third-root
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 third-root.t
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)
[detached HEAD 86261e3] Merge the 3rd root
Author: A U Thor <author@example.com>
Successfully rebased and updated refs/heads/unrelated.
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/unrelated.
ok 11 - root commits
expecting success:
head=$(git rev-parse HEAD) &&
cat >script-from-scratch <<-EOF &&
reset [new root]
merge $head
EOF
test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
test_tick &&
git rebase -i -r HEAD^ &&
test_cmp_rev HEAD $head
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated refs/heads/unrelated.
ok 12 - a "merge" into a root commit is a fast-forward
expecting success:
git checkout --orphan khnum &&
test_commit yama &&
git checkout -b asherah master &&
test_commit shamkat &&
git merge --allow-unrelated-histories khnum &&
test_tick &&
git rebase -f -r HEAD^ &&
! test_cmp_rev HEAD^2 khnum &&
test_cmp_graph HEAD^.. <<-\EOF &&
* Merge branch 'khnum' into asherah
|\
| * yama
o shamkat
EOF
test_tick &&
git rebase --rebase-merges=rebase-cousins HEAD^ &&
test_cmp_graph HEAD^.. <<-\EOF
* Merge branch 'khnum' into asherah
|\
| * yama
|/
o shamkat
EOF
Switched to a new branch 'khnum'
[khnum (root-commit) 80068e7] yama
Author: A U Thor <author@example.com>
9 files changed, 9 insertions(+)
create mode 100644 A.t
create mode 100644 B.t
create mode 100644 D.t
create mode 100644 G.t
create mode 100644 same1.t
create mode 100644 same2.t
create mode 100644 second-root.t
create mode 100644 third-root.t
create mode 100644 yama.t
Switched to a new branch 'asherah'
[asherah 872a94e] shamkat
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 shamkat.t
Merging:
872a94e shamkat
virtual khnum
found 0 common ancestors:
Merge made by the 'recursive' strategy.
same1.t | 1 +
same2.t | 1 +
second-root.t | 1 +
third-root.t | 1 +
yama.t | 1 +
5 files changed, 5 insertions(+)
create mode 100644 same1.t
create mode 100644 same2.t
create mode 100644 second-root.t
create mode 100644 third-root.t
create mode 100644 yama.t
Rebasing (1/6)
Rebasing (2/6)
Rebasing (3/6)
Rebasing (4/6)
Rebasing (5/6)
Rebasing (6/6)
Successfully rebased and updated refs/heads/asherah.
--- expect.rev 2018-06-24 06:11:20.344069906 +0000
+++ actual.rev 2018-06-24 06:11:20.369070549 +0000
@@ -1 +1 @@
-c2ea81b1decc7d2c23f3d4849f766d1e548cefdc
+80068e78a6f44f71479f0c5d15a06e3c3da2c39f
Rebasing (1/6)
Rebasing (2/6)
Rebasing (3/6)
Rebasing (4/6)
Rebasing (5/6)
Rebasing (6/6)
Successfully rebased and updated refs/heads/asherah.
ok 13 - A root commit can be a cousin, treat it that way
expecting success:
git checkout -b third B &&
test_commit I &&
third=$(git rev-parse HEAD) &&
git checkout -b labels master &&
git merge --no-commit third &&
test_tick &&
git commit -m "Merge commit '$third' into labels" &&
echo noop >script-from-scratch &&
test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
test_tick &&
git rebase -i -r A &&
grep "^label $third-" .git/ORIGINAL-TODO &&
! grep "^label $third$" .git/ORIGINAL-TODO
Switched to a new branch 'third'
[third d56de8a] I
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 I.t
Switched to a new branch 'labels'
Merging:
a6ee26e Merge the topic branch 'onebranch'
virtual third
found 1 common ancestor:
d9df450 B
Automatic merge went well; stopped before committing as requested
[labels cd07526] Merge commit 'd56de8aecdc897e3056f6557e9292c7041f10bf7' into labels
Author: A U Thor <author@example.com>
Successfully rebased and updated refs/heads/labels.
label d56de8aecdc897e3056f6557e9292c7041f10bf7-2
ok 14 - labels that are object IDs are rewritten
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3508-cherry-pick-many-commits.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3508-cherry-pick-many-commits/.git/
expecting success:
echo first > file1 &&
git add file1 &&
test_tick &&
git commit -m "first" &&
git tag first &&
git checkout -b other &&
for val in second third fourth
do
echo $val >> file1 &&
git add file1 &&
test_tick &&
git commit -m "$val" &&
git tag $val
done
[master (root-commit) 0c72e4f] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
Switched to a new branch 'other'
[other 453a047] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[other e85abe2] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[other 94d3184] fourth
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick first..fourth &&
git diff --quiet other &&
git diff --quiet HEAD other &&
check_head_differs_from fourth
Switched to branch 'master'
HEAD is now at 0c72e4f first
[master 9589776] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
[master 7ef563c] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
[master 105ac0a] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
--- expect.rev 2018-06-24 06:11:19.494048038 +0000
+++ actual.rev 2018-06-24 06:11:19.514048553 +0000
@@ -1 +1 @@
-105ac0ac93120eb93ecb7cd789e973cec9c3d19a
+94d3184b3f0dcfebb393faf5a122dc429d775538
ok 2 - cherry-pick first..fourth works
expecting success:
git checkout -f first &&
test_commit one &&
test_commit two &&
test_commit three &&
git checkout -f master &&
git reset --hard first &&
git cherry-pick three one two &&
git diff --quiet three &&
git diff --quiet HEAD three &&
test "$(git log --reverse --format=%s first..)" = "three
one
two"
Note: checking out 'first'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0c72e4f first
[detached HEAD 08ada56] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[detached HEAD 556e4fe] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
[detached HEAD a4e9322] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 three.t
Previous HEAD position was a4e9322 three
Switched to branch 'master'
HEAD is now at 0c72e4f first
[master 124d016] three
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:20:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 three.t
[master 6e6e64d] one
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master 54c7896] two
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 two.t
ok 3 - cherry-pick three one two works
expecting success:
git checkout -f master &&
git reset --hard first &&
test_must_fail git cherry-pick three one two:
Already on 'master'
HEAD is now at 0c72e4f first
error: two:: can't cherry-pick a tree
fatal: cherry-pick failed
ok 4 - cherry-pick three one two: fails
expecting success:
cat <<-\EOF >expected &&
[master OBJID] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
[master OBJID] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
[master OBJID] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
EOF
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick first..fourth >actual &&
sed -e "s/$_x05[0-9a-f][0-9a-f]/OBJID/" <actual >actual.fuzzy &&
test_line_count -ge 3 actual.fuzzy &&
test_i18ncmp expected actual.fuzzy
Already on 'master'
HEAD is now at 0c72e4f first
ok 5 - output to keep user entertained during multi-pick
expecting success:
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick --strategy resolve first..fourth &&
git diff --quiet other &&
git diff --quiet HEAD other &&
check_head_differs_from fourth
Already on 'master'
HEAD is now at 0c72e4f first
Trying simple merge.
[master 48c207c] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
Trying simple merge.
[master 9dcf789] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
Trying simple merge.
[master 1f7167d] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
--- expect.rev 2018-06-24 06:11:21.249093188 +0000
+++ actual.rev 2018-06-24 06:11:21.274093831 +0000
@@ -1 +1 @@
-1f7167d07ce0b08f26e0fc6f5479aa2c2d6d103c
+94d3184b3f0dcfebb393faf5a122dc429d775538
ok 6 - cherry-pick --strategy resolve first..fourth works
expecting success:
cat <<-\EOF >expected &&
Trying simple merge.
[master OBJID] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
Trying simple merge.
[master OBJID] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
Trying simple merge.
[master OBJID] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
EOF
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick --strategy resolve first..fourth >actual &&
sed -e "s/$_x05[0-9a-f][0-9a-f]/OBJID/" <actual >actual.fuzzy &&
test_i18ncmp expected actual.fuzzy
Already on 'master'
HEAD is now at 0c72e4f first
ok 7 - output during multi-pick indicates merge strategy
expecting success:
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick --ff first..fourth &&
git diff --quiet other &&
git diff --quiet HEAD other &&
check_head_equals fourth
Already on 'master'
HEAD is now at 0c72e4f first
ok 8 - cherry-pick --ff first..fourth works
expecting success:
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick -n first..fourth &&
git diff --quiet other &&
git diff --cached --quiet other &&
git diff --quiet HEAD first
Already on 'master'
HEAD is now at 0c72e4f first
ok 9 - cherry-pick -n first..fourth works
expecting success:
git checkout -f master &&
git reset --hard fourth &&
test_tick &&
git revert first..fourth &&
git diff --quiet first &&
git diff --cached --quiet first &&
git diff --quiet HEAD first
Already on 'master'
HEAD is now at 94d3184 fourth
[master 9fd86ee] Revert "fourth"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
1 file changed, 1 deletion(-)
[master bcb892c] Revert "third"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
1 file changed, 1 deletion(-)
[master 6e2dda4] Revert "second"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
1 file changed, 1 deletion(-)
ok 10 - revert first..fourth works
expecting success:
git checkout -f master &&
git reset --hard fourth &&
test_tick &&
git revert ^first fourth &&
git diff --quiet first &&
git diff --cached --quiet first &&
git diff --quiet HEAD first
Already on 'master'
HEAD is now at 94d3184 fourth
[master e6761b3] Revert "fourth"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
1 file changed, 1 deletion(-)
[master 4940ca7] Revert "third"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
1 file changed, 1 deletion(-)
[master e06156e] Revert "second"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
1 file changed, 1 deletion(-)
ok 11 - revert ^first fourth works
expecting success:
git checkout -f master &&
git reset --hard fourth &&
test_tick &&
git revert fourth fourth~1 fourth~2 &&
git diff --quiet first &&
git diff --cached --quiet first &&
git diff --quiet HEAD first
Already on 'master'
HEAD is now at 94d3184 fourth
[master 8d9417a] Revert "fourth"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:28:13 2005 -0700
1 file changed, 1 deletion(-)
[master 210e986] Revert "third"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:28:13 2005 -0700
1 file changed, 1 deletion(-)
[master f77c534] Revert "second"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:28:13 2005 -0700
1 file changed, 1 deletion(-)
ok 12 - revert fourth fourth~1 fourth~2 works
expecting success:
git checkout -f master &&
git reset --hard first &&
test_tick &&
git cherry-pick -3 fourth &&
git diff --quiet other &&
git diff --quiet HEAD other &&
check_head_differs_from fourth
Already on 'master'
HEAD is now at 0c72e4f first
[master 0b92961] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
[master e4ba54b] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
[master bb3aa41] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
--- expect.rev 2018-06-24 06:11:23.379147984 +0000
+++ actual.rev 2018-06-24 06:11:23.399148499 +0000
@@ -1 +1 @@
-bb3aa416a03ed973f577f397bffb6d20153403b2
+94d3184b3f0dcfebb393faf5a122dc429d775538
ok 13 - cherry-pick -3 fourth works
expecting success:
git checkout -f master &&
git reset --hard first &&
test_tick &&
git rev-list --reverse first..fourth | git cherry-pick --stdin &&
git diff --quiet other &&
git diff --quiet HEAD other &&
check_head_differs_from fourth
Already on 'master'
HEAD is now at 0c72e4f first
[master 026fdf1] second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+)
[master 56d3171] third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
[master 2cef6d1] fourth
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
--- expect.rev 2018-06-24 06:11:23.689155960 +0000
+++ actual.rev 2018-06-24 06:11:23.724156860 +0000
@@ -1 +1 @@
-2cef6d1fb27ea4336278384a858288280fb8ade8
+94d3184b3f0dcfebb393faf5a122dc429d775538
ok 14 - cherry-pick --stdin works
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3507-cherry-pick-conflict.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3507-cherry-pick-conflict/.git/
expecting success:
echo unrelated >unrelated &&
git add unrelated &&
test_commit initial foo a &&
test_commit base foo b &&
test_commit picked foo c &&
test_commit --signoff picked-signed foo d &&
git config advice.detachedhead false
[master (root-commit) df2a63d] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 foo
create mode 100644 unrelated
[master dc0113b] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 7e6d412] picked
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master e4ca149] picked-signed
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
pristine_detach initial &&
head=$(git rev-parse HEAD) &&
test_must_fail git cherry-pick picked &&
newhead=$(git rev-parse HEAD) &&
test "$head" = "$newhead"
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 2 - failed cherry-pick does not advance HEAD
expecting success:
pristine_detach initial &&
picked=$(git rev-parse --short picked) &&
cat <<-EOF >expected &&
error: could not apply $picked... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
EOF
test_must_fail git cherry-pick picked 2>actual &&
test_i18ncmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
ok 3 - advice from failed cherry-pick
expecting success:
pristine_detach initial &&
picked=$(git rev-parse --short picked) &&
cat <<-EOF >expected &&
error: could not apply $picked... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
EOF
test_must_fail git cherry-pick --no-commit picked 2>actual &&
test_i18ncmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
ok 4 - advice from failed cherry-pick --no-commit
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
test_cmp_rev picked CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 5 - failed cherry-pick sets CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
git cherry-pick base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
[detached HEAD 1832a43] base
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
fatal: Needed a single revision
ok 6 - successful cherry-pick does not set CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
git cherry-pick --no-commit base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
1832a43 base
HEAD is now at df2a63d initial
fatal: Needed a single revision
ok 7 - cherry-pick --no-commit does not set CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
echo foo > foo &&
test_must_fail git cherry-pick base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
error: Your local changes to the following files would be overwritten by merge:
foo
Please commit your changes or stash them before you merge.
Aborting
error: merging of trees 75f1922935cac91fa5dab32e9ead331c9fd5cdd2 and 22ce0a549a77230f9e811c1935707ad76e2b691b failed
fatal: cherry-pick failed
fatal: Needed a single revision
ok 8 - cherry-pick w/dirty tree does not set CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
echo foo > foo &&
test_must_fail git cherry-pick --strategy=resolve base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
error: Entry 'foo' not uptodate. Cannot merge.
error: could not apply dc0113b... base
fatal: Needed a single revision
ok 9 - cherry-pick --strategy=resolve w/dirty tree does not set CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
(
GIT_CHERRY_PICK_HELP="and then do something else" &&
export GIT_CHERRY_PICK_HELP &&
test_must_fail git cherry-pick picked
) &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
and then do something else
fatal: Needed a single revision
ok 10 - GIT_CHERRY_PICK_HELP suppresses CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
git reset &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Unstaged changes after reset:
M foo
fatal: Needed a single revision
ok 11 - git reset clears CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
test_must_fail git commit &&
test_cmp_rev picked CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
error: Committing is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
U foo
ok 12 - failed commit does not clear CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
echo resolved >foo &&
git add foo &&
git update-index --refresh -q &&
test_must_fail git diff-index --exit-code HEAD &&
(
GIT_EDITOR=false &&
export GIT_EDITOR &&
test_must_fail git commit
) &&
test_cmp_rev picked CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
:100644 100644 78981922613b2afb6025042ff6bd878ac1994e85 2ab19ae607aabda796309682e0448237aab03047 M foo
error: There was a problem with the editor 'false'.
Please supply the message using either -m or -F option.
ok 13 - cancelled commit does not clear CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
echo resolved >foo &&
git add foo &&
git commit &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 92e5b31] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
fatal: Needed a single revision
ok 14 - successful commit clears CHERRY_PICK_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
test_must_fail git update-index --refresh -q &&
test_must_fail git diff-index --exit-code HEAD
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
92e5b31 picked
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
foo: needs merge
:100644 100644 78981922613b2afb6025042ff6bd878ac1994e85 0000000000000000000000000000000000000000 M foo
ok 15 - failed cherry-pick produces dirty index
expecting success:
pristine_detach initial &&
{
git checkout base -- foo &&
git ls-files --stage foo &&
git checkout initial -- foo &&
git ls-files --stage foo &&
git checkout picked -- foo &&
git ls-files --stage foo
} > stages &&
sed "
1 s/ 0 / 1 /
2 s/ 0 / 2 /
3 s/ 0 / 3 /
" < stages > expected &&
git read-tree -u --reset HEAD &&
test_must_fail git cherry-pick picked &&
git ls-files --stage --unmerged > actual &&
test_cmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 16 - failed cherry-pick registers participants in index
expecting success:
pristine_detach initial &&
cat <<-EOF > expected &&
<<<<<<< HEAD
a
=======
c
>>>>>>> objid picked
EOF
test_must_fail git cherry-pick picked &&
sed "s/[a-f0-9]*\.\.\./objid/" foo > actual &&
test_cmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 17 - failed cherry-pick describes conflict in work tree
expecting success:
pristine_detach initial &&
git config merge.conflictstyle diff3 &&
cat <<-EOF > expected &&
<<<<<<< HEAD
a
||||||| parent of objid picked
b
=======
c
>>>>>>> objid picked
EOF
test_must_fail git cherry-pick picked &&
sed "s/[a-f0-9]*\.\.\./objid/" foo > actual &&
test_cmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 18 - diff3 -m style
expecting success:
git config --unset merge.conflictstyle &&
pristine_detach initial &&
cat <<-EOF > expected &&
<<<<<<< HEAD
a
=======
b
>>>>>>> parent of objid picked
EOF
{
git checkout picked -- foo &&
git ls-files --stage foo &&
git checkout initial -- foo &&
git ls-files --stage foo &&
git checkout base -- foo &&
git ls-files --stage foo
} > stages &&
sed "
1 s/ 0 / 1 /
2 s/ 0 / 2 /
3 s/ 0 / 3 /
" < stages > expected-stages &&
git read-tree -u --reset HEAD &&
head=$(git rev-parse HEAD) &&
test_must_fail git revert picked &&
newhead=$(git rev-parse HEAD) &&
git ls-files --stage --unmerged > actual-stages &&
test "$head" = "$newhead" &&
test_must_fail git update-index --refresh -q &&
test_must_fail git diff-index --exit-code HEAD &&
test_cmp expected-stages actual-stages &&
sed "s/[a-f0-9]*\.\.\./objid/" foo > actual &&
test_cmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
foo: needs merge
:100644 100644 78981922613b2afb6025042ff6bd878ac1994e85 0000000000000000000000000000000000000000 M foo
ok 19 - revert also handles conflicts sanely
expecting success:
pristine_detach initial &&
test_must_fail git revert picked &&
test_cmp_rev picked REVERT_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 20 - failed revert sets REVERT_HEAD
expecting success:
pristine_detach base &&
git revert base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD &&
test_must_fail git rev-parse --verify REVERT_HEAD
Previous HEAD position was df2a63d initial
HEAD is now at dc0113b base
[detached HEAD 7bd02ff] Revert "base"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
fatal: Needed a single revision
fatal: Needed a single revision
ok 21 - successful revert does not set REVERT_HEAD
expecting success:
pristine_detach base &&
git revert --no-commit base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD &&
test_cmp_rev base REVERT_HEAD
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
7bd02ff Revert "base"
HEAD is now at dc0113b base
fatal: Needed a single revision
ok 22 - revert --no-commit sets REVERT_HEAD
expecting success:
pristine_detach base &&
echo foo > foo &&
test_must_fail git revert base &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD &&
test_must_fail git rev-parse --verify REVERT_HEAD
HEAD is now at dc0113b base
error: Your local changes to the following files would be overwritten by merge:
foo
Please commit your changes or stash them before you merge.
Aborting
error: merging of trees 22ce0a549a77230f9e811c1935707ad76e2b691b and 75f1922935cac91fa5dab32e9ead331c9fd5cdd2 failed
fatal: revert failed
fatal: Needed a single revision
fatal: Needed a single revision
ok 23 - revert w/dirty tree does not set REVERT_HEAD
expecting success:
pristine_detach initial &&
(
GIT_CHERRY_PICK_HELP="and then do something else" &&
GIT_REVERT_HELP="and then do something else, again" &&
export GIT_CHERRY_PICK_HELP GIT_REVERT_HELP &&
test_must_fail git revert picked
) &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD &&
test_cmp_rev picked REVERT_HEAD
Previous HEAD position was dc0113b base
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert 7e6d412... picked
and then do something else
fatal: Needed a single revision
ok 24 - GIT_CHERRY_PICK_HELP does not suppress REVERT_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git revert picked &&
git reset &&
test_must_fail git rev-parse --verify REVERT_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Unstaged changes after reset:
M foo
fatal: Needed a single revision
ok 25 - git reset clears REVERT_HEAD
expecting success:
pristine_detach initial &&
test_must_fail git revert picked &&
test_must_fail git commit &&
test_cmp_rev picked REVERT_HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
error: Committing is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
U foo
ok 26 - failed commit does not clear REVERT_HEAD
expecting success:
pristine_detach initial &&
git config merge.conflictstyle diff3 &&
cat <<-EOF > expected &&
<<<<<<< HEAD
a
||||||| objid picked
c
=======
b
>>>>>>> parent of objid picked
EOF
test_must_fail git revert picked &&
sed "s/[a-f0-9]*\.\.\./objid/" foo > actual &&
test_cmp expected actual
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 27 - revert conflict, diff3 -m style
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick -s picked &&
test_i18ngrep -e "Signed-off-by" .git/MERGE_MSG
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Signed-off-by: C O Mitter <committer@example.com>
ok 28 - failed cherry-pick does not forget -s
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick -s picked-signed &&
git commit -a -s &&
test $(git show -s |grep -c "Signed-off-by") = 1
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply e4ca149... picked-signed
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 999e376] picked-signed
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 6 insertions(+)
ok 29 - commit after failed cherry-pick does not add duplicated -s
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
git commit -a -s &&
# Do S-o-b and Conflicts appear in the right order?
cat <<-\EOF >expect &&
Signed-off-by: C O Mitter <committer@example.com>
# Conflicts:
EOF
grep -e "^# Conflicts:" -e ^Signed-off-by <.git/COMMIT_EDITMSG >actual &&
test_cmp expect actual &&
cat <<-\EOF >expected &&
picked
Signed-off-by: C O Mitter <committer@example.com>
EOF
git show -s --pretty=format:%B >actual &&
test_cmp expected actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
999e376 picked-signed
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 8b21ac3] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 6 insertions(+)
ok 30 - commit after failed cherry-pick adds -s at the right place
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked &&
# emulate old-style conflicts block
mv .git/MERGE_MSG .git/MERGE_MSG+ &&
sed -e "/^# Conflicts:/,\$s/^# *//" <.git/MERGE_MSG+ >.git/MERGE_MSG &&
git commit -a &&
git commit --amend -s &&
# Do S-o-b and Conflicts appear in the right order?
cat <<-\EOF >expect &&
Signed-off-by: C O Mitter <committer@example.com>
Conflicts:
EOF
grep -e "^Conflicts:" -e ^Signed-off-by <.git/COMMIT_EDITMSG >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
8b21ac3 picked
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 7e6d412... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 55f1fbc] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 6 insertions(+)
[detached HEAD 8032828] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 6 insertions(+)
ok 31 - commit --amend -s places the sign-off at the right place
# passed all 31 test(s)
1..31
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3509-cherry-pick-merge-df.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3509-cherry-pick-merge-df/.git/
expecting success:
mkdir a &&
>a/f &&
git add a &&
git commit -m a
[master (root-commit) 76b105c] a
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a/f
ok 1 - Initialize repository
expecting success:
mkdir b &&
test_ln_s_add ../a b/a &&
git commit -m b &&
git checkout -b branch &&
rm b/a &&
git mv a b/a &&
test_ln_s_add b/a a &&
git commit -m swap &&
>f1 &&
git add f1 &&
git commit -m f1
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[master 3974d5a] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 120000 b/a
Switched to a new branch 'branch'
[branch 1bd5a41] swap
Author: A U Thor <author@example.com>
3 files changed, 1 insertion(+), 1 deletion(-)
create mode 120000 a
delete mode 120000 b/a
rename {a => b/a}/f (100%)
[branch 1148482] f1
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 f1
ok 2 - Setup rename across paths each below D/F conflicts
expecting success:
git reset --hard &&
git checkout master^0 &&
git cherry-pick branch
HEAD is now at 1148482 f1
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 3974d5a b
Adding b/a
Adding a/f
[detached HEAD 060ea7a] f1
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:24 2018 +0000
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 f1
ok 3 - Cherry-pick succeeds with rename across D/F conflicts
expecting success:
git checkout --orphan nick-testcase &&
git rm -rf . &&
>empty &&
git add empty &&
git commit -m "Empty file" &&
git checkout -b simple &&
mv empty file &&
mkdir empty &&
mv file empty &&
git add empty/file &&
git commit -m "Empty file under empty dir" &&
echo content >newfile &&
git add newfile &&
git commit -m "New file"
Switched to a new branch 'nick-testcase'
rm 'a/f'
rm 'b/a'
rm 'f1'
[nick-testcase (root-commit) c3b9d6f] Empty file
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 empty
Switched to a new branch 'simple'
[simple c4bfe4f] Empty file under empty dir
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename empty => empty/file (100%)
[simple 5456dd4] New file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 newfile
ok 4 - Setup rename with file on one side matching directory name on other
expecting success:
git reset --hard &&
git checkout -q nick-testcase^0 &&
git cherry-pick --strategy=resolve simple
HEAD is now at 5456dd4 New file
Trying simple merge.
Simple merge failed, trying Automatic merge.
[detached HEAD fc4dfe6] New file
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:24 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 newfile
ok 5 - Cherry-pick succeeds with was_a_dir/file -> was_a_dir (resolve)
expecting success:
git reset --hard &&
git checkout -q nick-testcase^0 &&
git cherry-pick --strategy=recursive simple
HEAD is now at fc4dfe6 New file
Adding empty
[detached HEAD fc4dfe6] New file
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:24 2018 +0000
1 file changed, 1 insertion(+)
create mode 100644 newfile
ok 6 - Cherry-pick succeeds with was_a_dir/file -> was_a_dir (recursive)
expecting success:
git reset --hard &&
git checkout --orphan mergeme &&
git rm -rf . &&
mkdir sub &&
mkdir othersub &&
echo content > sub/file &&
echo foo > othersub/whatever &&
git add -A &&
git commit -m "Common commit" &&
git rm -rf othersub &&
git mv sub/file othersub &&
git commit -m "Commit to merge" &&
git checkout -b newhead mergeme~1 &&
>independent-change &&
git add independent-change &&
git commit -m "Completely unrelated change"
HEAD is now at fc4dfe6 New file
Switched to a new branch 'mergeme'
rm 'empty'
rm 'newfile'
[mergeme (root-commit) 41c946b] Common commit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 othersub/whatever
create mode 100644 sub/file
rm 'othersub/whatever'
[mergeme bbbcd2e] Commit to merge
Author: A U Thor <author@example.com>
2 files changed, 1 deletion(-)
rename sub/file => othersub (100%)
delete mode 100644 othersub/whatever
Switched to a new branch 'newhead'
[newhead 62fd886] Completely unrelated change
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 independent-change
ok 7 - Setup rename with file on one side matching different dirname on other
expecting success:
git reset --hard &&
git checkout -q newhead^0 &&
git cherry-pick --strategy=resolve mergeme
HEAD is now at 62fd886 Completely unrelated change
Trying simple merge.
Simple merge failed, trying Automatic merge.
Adding othersub
[detached HEAD 6ed3f00] Commit to merge
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:25 2018 +0000
2 files changed, 1 deletion(-)
rename sub/file => othersub (100%)
delete mode 100644 othersub/whatever
ok 8 - Cherry-pick with rename to different D/F conflict succeeds (resolve)
expecting success:
git reset --hard &&
git checkout -q newhead^0 &&
git cherry-pick --strategy=recursive mergeme
HEAD is now at 6ed3f00 Commit to merge
Removing othersub/whatever
[detached HEAD 6ed3f00] Commit to merge
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:25 2018 +0000
2 files changed, 1 deletion(-)
rename sub/file => othersub (100%)
delete mode 100644 othersub/whatever
ok 9 - Cherry-pick with rename to different D/F conflict succeeds (recursive)
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3511-cherry-pick-x.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3511-cherry-pick-x/.git/
expecting success:
git config advice.detachedhead false &&
echo unrelated >unrelated &&
git add unrelated &&
test_commit initial foo a &&
test_commit "$mesg_one_line" foo b mesg-one-line &&
git reset --hard initial &&
test_commit "$mesg_no_footer" foo b mesg-no-footer &&
git reset --hard initial &&
test_commit "$mesg_broken_footer" foo b mesg-broken-footer &&
git reset --hard initial &&
test_commit "$mesg_with_footer" foo b mesg-with-footer &&
git reset --hard initial &&
test_commit "$mesg_with_footer_sob" foo b mesg-with-footer-sob &&
git reset --hard initial &&
test_commit "$mesg_with_cherry_footer" foo b mesg-with-cherry-footer &&
git reset --hard initial &&
test_config commit.cleanup verbatim &&
test_commit "$mesg_unclean" foo b mesg-unclean &&
test_unconfig commit.cleanup &&
pristine_detach initial &&
test_commit conflicting unrelated
[master (root-commit) df2a63d] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 foo
create mode 100644 unrelated
[master d18d4f3] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[master e073909] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[master 0353e8f] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[master 3838485] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[master d60edf0] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[master d7a875c] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[master 860e94a] base: commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[detached HEAD 823a98f] conflicting
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-one-line^0) &&
git cherry-pick -x mesg-one-line &&
cat <<-EOF >expect &&
$mesg_one_line
(cherry picked from commit $sha1)
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Previous HEAD position was 823a98f conflicting
HEAD is now at df2a63d initial
[detached HEAD 6970a53] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 2 - cherry-pick -x inserts blank line after one line subject
expecting success:
pristine_detach initial &&
git cherry-pick -s mesg-one-line &&
cat <<-EOF >expect &&
$mesg_one_line
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
6970a53 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 0fda2e1] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 3 - cherry-pick -s inserts blank line after one line subject
expecting success:
pristine_detach initial &&
git cherry-pick -s mesg-broken-footer &&
cat <<-EOF >expect &&
$mesg_broken_footer
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
0fda2e1 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 0cf5261] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 4 - cherry-pick -s inserts blank line after non-conforming footer
expecting success:
pristine_detach initial &&
git -c "trailer.Myfooter.ifexists=add" cherry-pick -s mesg-broken-footer &&
cat <<-EOF >expect &&
$mesg_broken_footer
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
0cf5261 base: commit message
HEAD is now at df2a63d initial
[detached HEAD b95a0f7] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 5 - cherry-pick -s recognizes trailer config
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-no-footer^0) &&
git cherry-pick -x mesg-no-footer &&
cat <<-EOF >expect &&
$mesg_no_footer
(cherry picked from commit $sha1)
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
b95a0f7 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 6f42e54] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 6 - cherry-pick -x inserts blank line when conforming footer not found
expecting success:
pristine_detach initial &&
git cherry-pick -s mesg-no-footer &&
cat <<-EOF >expect &&
$mesg_no_footer
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
6f42e54 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 32d2dda] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 7 - cherry-pick -s inserts blank line when conforming footer not found
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-no-footer^0) &&
git cherry-pick -x -s mesg-no-footer &&
cat <<-EOF >expect &&
$mesg_no_footer
(cherry picked from commit $sha1)
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
32d2dda base: commit message
HEAD is now at df2a63d initial
[detached HEAD adaaef8] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 8 - cherry-pick -x -s inserts blank line when conforming footer not found
expecting success:
pristine_detach initial &&
git cherry-pick -s mesg-with-footer &&
cat <<-EOF >expect &&
$mesg_with_footer
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
adaaef8 base: commit message
HEAD is now at df2a63d initial
[detached HEAD b62bd75] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 9 - cherry-pick -s adds sob when last sob doesnt match committer
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-with-footer^0) &&
git cherry-pick -x -s mesg-with-footer &&
cat <<-EOF >expect &&
$mesg_with_footer
(cherry picked from commit $sha1)
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
b62bd75 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 94e740a] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 10 - cherry-pick -x -s adds sob when last sob doesnt match committer
expecting success:
pristine_detach initial &&
git cherry-pick -s mesg-with-footer-sob &&
cat <<-EOF >expect &&
$mesg_with_footer_sob
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
94e740a base: commit message
HEAD is now at df2a63d initial
[detached HEAD a836c16] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 11 - cherry-pick -s refrains from adding duplicate trailing sob
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-with-footer-sob^0) &&
git cherry-pick -x -s mesg-with-footer-sob &&
cat <<-EOF >expect &&
$mesg_with_footer_sob
(cherry picked from commit $sha1)
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
a836c16 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 2d6e386] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 12 - cherry-pick -x -s adds sob even when trailing sob exists for committer
expecting success:
pristine_detach initial &&
printf "title\n\nSigned-off-by: A <a@example.com>" >msg &&
sha1=$(git commit-tree -p initial mesg-with-footer^{tree} <msg) &&
git cherry-pick -x $sha1 &&
git log -1 --pretty=format:%B >actual &&
printf "\n(cherry picked from commit %s)\n" $sha1 >>msg &&
test_cmp msg actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
2d6e386 base: commit message
HEAD is now at df2a63d initial
[detached HEAD 96716be] title
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 13 - cherry-pick -x handles commits with no NL at end of message
expecting success:
pristine_detach initial &&
printf "title\n\nnot a footer" >msg &&
sha1=$(git commit-tree -p initial mesg-with-footer^{tree} <msg) &&
git cherry-pick -x $sha1 &&
git log -1 --pretty=format:%B >actual &&
printf "\n\n(cherry picked from commit %s)\n" $sha1 >>msg &&
test_cmp msg actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
96716be title
HEAD is now at df2a63d initial
[detached HEAD 8c5d63f] title
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 14 - cherry-pick -x handles commits with no footer and no NL at end of message
expecting success:
pristine_detach initial &&
printf "title\n\nSigned-off-by: A <a@example.com>" >msg &&
sha1=$(git commit-tree -p initial mesg-with-footer^{tree} <msg) &&
git cherry-pick -s $sha1 &&
git log -1 --pretty=format:%B >actual &&
printf "\nSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n" >>msg &&
test_cmp msg actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
8c5d63f title
HEAD is now at df2a63d initial
[detached HEAD 6671fda] title
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 15 - cherry-pick -s handles commits with no NL at end of message
expecting success:
pristine_detach initial &&
printf "title\n\nnot a footer" >msg &&
sha1=$(git commit-tree -p initial mesg-with-footer^{tree} <msg) &&
git cherry-pick -s $sha1 &&
git log -1 --pretty=format:%B >actual &&
printf "\n\nSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n" >>msg &&
test_cmp msg actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
6671fda title
HEAD is now at df2a63d initial
[detached HEAD 19f481d] title
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 16 - cherry-pick -s handles commits with no footer and no NL at end of message
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-with-cherry-footer^0) &&
git cherry-pick -x mesg-with-cherry-footer &&
cat <<-EOF >expect &&
$mesg_with_cherry_footer
(cherry picked from commit $sha1)
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
19f481d title
HEAD is now at df2a63d initial
[detached HEAD 7b5eb6d] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 17 - cherry-pick -x treats "(cherry picked from..." line as part of footer
expecting success:
pristine_detach initial &&
git cherry-pick -s mesg-with-cherry-footer &&
cat <<-EOF >expect &&
$mesg_with_cherry_footer
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
7b5eb6d base: commit message
HEAD is now at df2a63d initial
[detached HEAD b468a7b] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 18 - cherry-pick -s treats "(cherry picked from..." line as part of footer
expecting success:
pristine_detach initial &&
sha1=$(git rev-parse mesg-with-cherry-footer^0) &&
git cherry-pick -x -s mesg-with-cherry-footer &&
cat <<-EOF >expect &&
$mesg_with_cherry_footer
(cherry picked from commit $sha1)
Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
EOF
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
b468a7b base: commit message
HEAD is now at df2a63d initial
[detached HEAD c7c741c] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 19 - cherry-pick -x -s treats "(cherry picked from..." line as part of footer
expecting success:
pristine_detach initial &&
printf "$mesg_unclean" >expect &&
git log -1 --pretty=format:%B mesg-unclean >actual &&
test_cmp expect actual &&
git cherry-pick mesg-unclean &&
git log -1 --pretty=format:%B >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
c7c741c base: commit message
HEAD is now at df2a63d initial
[detached HEAD 7a2ed43] base: commit message
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:20:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 20 - cherry-pick preserves commit message
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3421-rebase-topology-linear.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3421-rebase-topology-linear/.git/
expecting success:
test_commit a &&
test_commit b &&
test_commit c &&
git checkout b &&
test_commit d &&
test_commit e
[master (root-commit) ce450c7] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
[master 020ea9b] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
[master d9ea348] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 020ea9b b
[detached HEAD 1bd0260] d
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 d.t
[detached HEAD 67a7211] e
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 e.t
ok 1 - setup
expecting success:
reset_rebase &&
git rebase c e &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd e' c..
No rebase in progress?
HEAD is now at 67a7211 e
First, rewinding head to replay your work on top of it...
Applying: d
Applying: e
ok 2 - simple rebase
expecting success:
reset_rebase &&
git rebase -m c e &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd e' c..
No rebase in progress?
HEAD is now at 7d728d6 e
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging c with HEAD~1
Merging:
d9ea348 c
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD 73a53c6] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging c with HEAD~0
Merging:
73a53c6 d
67a7211 e
found 1 common ancestor:
1bd0260 d
[detached HEAD 7d728d6] e
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 e.t
Committed: 0002 e
All done.
ok 3 - simple rebase -m
expecting success:
reset_rebase &&
git rebase -i c e &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd e' c..
No rebase in progress?
HEAD is now at 7d728d6 e
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 4 - simple rebase -i
expecting success:
reset_rebase &&
git rebase -p c e &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd e' c..
No rebase in progress?
HEAD is now at 7d728d6 e
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 5 - simple rebase -p
expecting success:
reset_rebase &&
git rebase b e &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 7d728d6 e
Removing actual.rev
Removing expect.rev
Current branch e is up to date.
ok 6 - rebase is no-op if upstream is an ancestor
expecting success:
reset_rebase &&
git rebase -m b e &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
Current branch e is up to date.
ok 7 - rebase -m is no-op if upstream is an ancestor
expecting success:
reset_rebase &&
git rebase -i b e &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
Successfully rebased and updated detached HEAD.
ok 8 - rebase -i is no-op if upstream is an ancestor
expecting success:
reset_rebase &&
git rebase -p b e &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 9 - rebase -p is no-op if upstream is an ancestor
expecting success:
reset_rebase &&
git rebase -f b e &&
! test_cmp_rev e HEAD &&
test_cmp_rev b HEAD~2 &&
test_linear_range 'd e' b..
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
Current branch e is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Applying: d
Applying: e
--- expect.rev 2018-06-24 06:09:02.620525658 +0000
+++ actual.rev 2018-06-24 06:09:02.640526172 +0000
@@ -1 +1 @@
-67a72118d5806fada2b50e3a56bde3a2b3e5bc77
+354afb0674237d49586fff12326488e8e1d7737f
ok 10 - rebase -f rewrites even if upstream is an ancestor
expecting success:
reset_rebase &&
git rebase -m -f b e &&
! test_cmp_rev e HEAD &&
test_cmp_rev b HEAD~2 &&
test_linear_range 'd e' b..
No rebase in progress?
HEAD is now at 354afb0 e
Removing actual.rev
Removing expect.rev
Current branch e is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Merging b with HEAD~1
Merging:
020ea9b b
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD ab4ddfd] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging b with HEAD~0
Merging:
ab4ddfd d
67a7211 e
found 1 common ancestor:
1bd0260 d
[detached HEAD 354afb0] e
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 e.t
Committed: 0002 e
All done.
--- expect.rev 2018-06-24 06:09:04.370570710 +0000
+++ actual.rev 2018-06-24 06:09:04.390571225 +0000
@@ -1 +1 @@
-67a72118d5806fada2b50e3a56bde3a2b3e5bc77
+354afb0674237d49586fff12326488e8e1d7737f
ok 11 - rebase -m -f rewrites even if upstream is an ancestor
expecting success:
reset_rebase &&
git rebase -i -f b e &&
! test_cmp_rev e HEAD &&
test_cmp_rev b HEAD~2 &&
test_linear_range 'd e' b..
No rebase in progress?
HEAD is now at 354afb0 e
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:09:06.010612930 +0000
+++ actual.rev 2018-06-24 06:09:06.030613445 +0000
@@ -1 +1 @@
-67a72118d5806fada2b50e3a56bde3a2b3e5bc77
+354afb0674237d49586fff12326488e8e1d7737f
ok 12 - rebase -i -f rewrites even if upstream is an ancestor
checking known breakage:
reset_rebase &&
git rebase -p -f b e &&
! test_cmp_rev e HEAD &&
test_cmp_rev b HEAD~2 &&
test_linear_range 'd e' b..
No rebase in progress?
HEAD is now at 354afb0 e
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
not ok 13 - rebase -p -f rewrites even if upstream is an ancestor # TODO known breakage
expecting success:
reset_rebase &&
git rebase e b &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Fast-forwarded b to e.
ok 14 - rebase fast-forwards from ancestor of upstream
expecting success:
reset_rebase &&
git rebase -m e b &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Fast-forwarded b to e.
ok 15 - rebase -m fast-forwards from ancestor of upstream
expecting success:
reset_rebase &&
git rebase -i e b &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
Successfully rebased and updated detached HEAD.
ok 16 - rebase -i fast-forwards from ancestor of upstream
expecting success:
reset_rebase &&
git rebase -p e b &&
test_cmp_rev e HEAD
No rebase in progress?
HEAD is now at 67a7211 e
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 17 - rebase -p fast-forwards from ancestor of upstream
expecting success:
git checkout c &&
test_commit g &&
revert h g &&
git checkout d &&
cherry_pick gp g &&
test_commit i &&
git checkout b &&
test_commit f
Previous HEAD position was 67a7211 e
HEAD is now at d9ea348 c
[detached HEAD 5573dba] g
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 g.t
Removing g.t
[detached HEAD 09e6546] h
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 g.t
Previous HEAD position was 09e6546 h
HEAD is now at 1bd0260 d
[detached HEAD 00eccdb] gp
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 g.t
[detached HEAD 3317c29] i
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 i.t
Previous HEAD position was 3317c29 i
HEAD is now at 020ea9b b
[detached HEAD 09e072f] f
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 f.t
ok 18 - setup of linear history for range selection tests
expecting success:
reset_rebase &&
git rebase h i &&
test_cmp_rev h HEAD~2 &&
test_linear_range 'd i' h..
No rebase in progress?
HEAD is now at 09e072f f
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
Applying: i
ok 19 - rebase drops patches in upstream
checking known breakage:
reset_rebase &&
git rebase -m h i &&
test_cmp_rev h HEAD~2 &&
test_linear_range 'd i' h..
No rebase in progress?
HEAD is now at 5c158e9 i
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging h with HEAD~2
Merging:
09e6546 h
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD e937a8e] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging h with HEAD~1
Merging:
e937a8e d
00eccdb gp
found 1 common ancestor:
1bd0260 d
[detached HEAD 4a12efe] gp
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 g.t
Committed: 0002 gp
Merging h with HEAD~0
Merging:
4a12efe gp
3317c29 i
found 1 common ancestor:
00eccdb gp
[detached HEAD bbe8f41] i
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 i.t
Committed: 0003 i
All done.
--- expect.rev 2018-06-24 06:09:22.021025073 +0000
+++ actual.rev 2018-06-24 06:09:22.051025845 +0000
@@ -1 +1 @@
-09e6546083fde009871b0716b2797b792e65e541
+e937a8e882fbebb0b2205dd9459e6ecb99b2ab16
not ok 20 - rebase -m drops patches in upstream # TODO known breakage
expecting success:
reset_rebase &&
git rebase -i h i &&
test_cmp_rev h HEAD~2 &&
test_linear_range 'd i' h..
No rebase in progress?
HEAD is now at bbe8f41 i
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 21 - rebase -i drops patches in upstream
expecting success:
reset_rebase &&
git rebase -p h i &&
test_cmp_rev h HEAD~2 &&
test_linear_range 'd i' h..
No rebase in progress?
HEAD is now at 5c158e9 i
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 22 - rebase -p drops patches in upstream
expecting success:
reset_rebase &&
git rebase h gp &&
test_cmp_rev h HEAD^ &&
test_linear_range 'd' h..
No rebase in progress?
HEAD is now at 5c158e9 i
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
ok 23 - rebase can drop last patch if in upstream
checking known breakage:
reset_rebase &&
git rebase -m h gp &&
test_cmp_rev h HEAD^ &&
test_linear_range 'd' h..
No rebase in progress?
HEAD is now at e937a8e d
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging h with HEAD~1
Merging:
09e6546 h
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD e937a8e] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging h with HEAD~0
Merging:
e937a8e d
00eccdb gp
found 1 common ancestor:
1bd0260 d
[detached HEAD 4a12efe] gp
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 g.t
Committed: 0002 gp
All done.
--- expect.rev 2018-06-24 06:09:31.406266652 +0000
+++ actual.rev 2018-06-24 06:09:31.431267296 +0000
@@ -1 +1 @@
-09e6546083fde009871b0716b2797b792e65e541
+e937a8e882fbebb0b2205dd9459e6ecb99b2ab16
not ok 24 - rebase -m can drop last patch if in upstream # TODO known breakage
expecting success:
reset_rebase &&
git rebase -i h gp &&
test_cmp_rev h HEAD^ &&
test_linear_range 'd' h..
No rebase in progress?
HEAD is now at 4a12efe gp
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 25 - rebase -i can drop last patch if in upstream
expecting success:
reset_rebase &&
git rebase -p h gp &&
test_cmp_rev h HEAD^ &&
test_linear_range 'd' h..
No rebase in progress?
HEAD is now at e937a8e d
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
ok 26 - rebase -p can drop last patch if in upstream
expecting success:
reset_rebase &&
git rebase --onto f h i &&
test_cmp_rev f HEAD~2 &&
test_linear_range 'd i' f..
No rebase in progress?
HEAD is now at e937a8e d
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
Applying: i
ok 27 - rebase --onto drops patches in upstream
checking known breakage:
reset_rebase &&
git rebase -m --onto f h i &&
test_cmp_rev f HEAD~2 &&
test_linear_range 'd i' f..
No rebase in progress?
HEAD is now at bcc98eb i
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging f with HEAD~2
Merging:
09e072f f
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD 1c3eee5] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging f with HEAD~1
Merging:
1c3eee5 d
00eccdb gp
found 1 common ancestor:
1bd0260 d
[detached HEAD 348de6f] gp
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 g.t
Committed: 0002 gp
Merging f with HEAD~0
Merging:
348de6f gp
3317c29 i
found 1 common ancestor:
00eccdb gp
[detached HEAD 8a25459] i
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 i.t
Committed: 0003 i
All done.
--- expect.rev 2018-06-24 06:09:40.696505775 +0000
+++ actual.rev 2018-06-24 06:09:40.726506547 +0000
@@ -1 +1 @@
-09e072f8a9ef7b761fc545eb973e8013e674eb45
+1c3eee5a4db088a4573dc7e31a5817d3fc9323bd
not ok 28 - rebase -m --onto drops patches in upstream # TODO known breakage
expecting success:
reset_rebase &&
git rebase -i --onto f h i &&
test_cmp_rev f HEAD~2 &&
test_linear_range 'd i' f..
No rebase in progress?
HEAD is now at 8a25459 i
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 29 - rebase -i --onto drops patches in upstream
expecting success:
reset_rebase &&
git rebase -p --onto f h i &&
test_cmp_rev f HEAD~2 &&
test_linear_range 'd i' f..
No rebase in progress?
HEAD is now at bcc98eb i
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 30 - rebase -p --onto drops patches in upstream
expecting success:
reset_rebase &&
git rebase --onto h f i &&
test_cmp_rev h HEAD~3 &&
test_linear_range 'd gp i' h..
No rebase in progress?
HEAD is now at bcc98eb i
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
Applying: gp
Applying: i
ok 31 - rebase --onto does not drop patches in onto
expecting success:
reset_rebase &&
git rebase -m --onto h f i &&
test_cmp_rev h HEAD~3 &&
test_linear_range 'd gp i' h..
No rebase in progress?
HEAD is now at bbe8f41 i
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging h with HEAD~2
Merging:
09e6546 h
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD e937a8e] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging h with HEAD~1
Merging:
e937a8e d
00eccdb gp
found 1 common ancestor:
1bd0260 d
[detached HEAD 4a12efe] gp
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 g.t
Committed: 0002 gp
Merging h with HEAD~0
Merging:
4a12efe gp
3317c29 i
found 1 common ancestor:
00eccdb gp
[detached HEAD bbe8f41] i
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 i.t
Committed: 0003 i
All done.
ok 32 - rebase -m --onto does not drop patches in onto
expecting success:
reset_rebase &&
git rebase -i --onto h f i &&
test_cmp_rev h HEAD~3 &&
test_linear_range 'd gp i' h..
No rebase in progress?
HEAD is now at bbe8f41 i
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 33 - rebase -i --onto does not drop patches in onto
expecting success:
reset_rebase &&
git rebase -p --onto h f i &&
test_cmp_rev h HEAD~3 &&
test_linear_range 'd gp i' h..
No rebase in progress?
HEAD is now at bbe8f41 i
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 34 - rebase -p --onto does not drop patches in onto
expecting success:
git checkout c &&
make_empty j &&
git checkout d &&
make_empty k &&
test_commit l
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
bbe8f41 i
4a12efe gp
e937a8e d
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> bbe8f41
HEAD is now at d9ea348 c
[detached HEAD 5b67321] j
Author: A U Thor <author@example.com>
Previous HEAD position was 5b67321 j
HEAD is now at 1bd0260 d
[detached HEAD 753370d] k
Author: A U Thor <author@example.com>
[detached HEAD 49cf309] l
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 l.t
ok 35 - setup of linear history for empty commit tests
expecting success:
reset_rebase &&
git rebase c l &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd l' c..
No rebase in progress?
HEAD is now at 49cf309 l
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: d
Applying: l
ok 36 - rebase drops empty commit
expecting success:
reset_rebase &&
git rebase -m c l &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd l' c..
No rebase in progress?
HEAD is now at ef60b8d l
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging c with HEAD~2
Merging:
d9ea348 c
1bd0260 d
found 1 common ancestor:
020ea9b b
[detached HEAD bd3422f] d
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 d.t
Committed: 0001 d
Merging c with HEAD~1
Merging:
bd3422f d
753370d k
found 1 common ancestor:
1bd0260 d
Already up to date!
Already applied: 0002 k
Merging c with HEAD~0
Merging:
bd3422f d
49cf309 l
found 1 common ancestor:
753370d k
[detached HEAD ef60b8d] l
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 l.t
Committed: 0003 l
All done.
ok 37 - rebase -m drops empty commit
expecting success:
reset_rebase &&
git rebase -i c l &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd l' c..
No rebase in progress?
HEAD is now at ef60b8d l
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 38 - rebase -i drops empty commit
expecting success:
reset_rebase &&
git rebase -p c l &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'd l' c..
No rebase in progress?
HEAD is now at ef60b8d l
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 39 - rebase -p drops empty commit
expecting success:
reset_rebase &&
git rebase --keep-empty c l &&
test_cmp_rev c HEAD~3 &&
test_linear_range 'd k l' c..
No rebase in progress?
HEAD is now at ef60b8d l
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 40 - rebase --keep-empty
expecting success:
reset_rebase &&
git rebase -m --keep-empty c l &&
test_cmp_rev c HEAD~3 &&
test_linear_range 'd k l' c..
No rebase in progress?
HEAD is now at f90e7ce l
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 41 - rebase -m --keep-empty
expecting success:
reset_rebase &&
git rebase -i --keep-empty c l &&
test_cmp_rev c HEAD~3 &&
test_linear_range 'd k l' c..
No rebase in progress?
HEAD is now at f90e7ce l
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 42 - rebase -i --keep-empty
checking known breakage:
reset_rebase &&
git rebase -p --keep-empty c l &&
test_cmp_rev c HEAD~3 &&
test_linear_range 'd k l' c..
No rebase in progress?
HEAD is now at f90e7ce l
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Already up to date!
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 reset'
interactive rebase in progress; onto d9ea348
Last commands done (2 commands done):
pick 1bd0260 d
pick 753370d k
Next command to do (1 remaining command):
pick 49cf309 l
You are currently rebasing.
nothing to commit, working tree clean
Could not pick 753370ddaccf1cee7fe7a98997789c7c2de20f79
not ok 43 - rebase -p --keep-empty # TODO known breakage
expecting success:
reset_rebase &&
git rebase --keep-empty j l &&
test_cmp_rev j HEAD~3 &&
test_linear_range 'd k l' j..
HEAD is now at 49cf309 l
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 44 - rebase --keep-empty keeps empty even if already in upstream
expecting success:
reset_rebase &&
git rebase -m --keep-empty j l &&
test_cmp_rev j HEAD~3 &&
test_linear_range 'd k l' j..
No rebase in progress?
HEAD is now at 5395ede l
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 45 - rebase -m --keep-empty keeps empty even if already in upstream
expecting success:
reset_rebase &&
git rebase -i --keep-empty j l &&
test_cmp_rev j HEAD~3 &&
test_linear_range 'd k l' j..
No rebase in progress?
HEAD is now at 5395ede l
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 46 - rebase -i --keep-empty keeps empty even if already in upstream
checking known breakage:
reset_rebase &&
git rebase -p --keep-empty j l &&
test_cmp_rev j HEAD~3 &&
test_linear_range 'd k l' j..
No rebase in progress?
HEAD is now at 5395ede l
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:10:26.282678957 +0000
+++ actual.rev 2018-06-24 06:10:26.312679729 +0000
@@ -1 +1 @@
-5b67321bb4e1ef5cbccc64d00cd3c3f7768ff359
+d9ea348e0fe8827f205c231ed0a5b8258841fd37
not ok 47 - rebase -p --keep-empty keeps empty even if already in upstream # TODO known breakage
expecting success:
reset_rebase &&
git rebase --rebase-merges --keep-empty j l &&
test_cmp_rev j HEAD~3 &&
test_linear_range 'd k l' j..
No rebase in progress?
HEAD is now at 1612308 l
Removing actual.rev
Removing expect.rev
Rebasing (1/5)
Rebasing (2/5)
Rebasing (3/5)
Rebasing (4/5)
Rebasing (5/5)
Successfully rebased and updated detached HEAD.
ok 48 - rebase --rebase-merges --keep-empty keeps empty even if already in upstream
expecting success:
git checkout b &&
revert m b &&
git checkout --orphan disjoint &&
git rm -rf . &&
test_commit x &&
test_commit y &&
cherry_pick bp b
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
5395ede l
9a731c2 k
60768b3 d
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> 5395ede
HEAD is now at 020ea9b b
Removing b.t
[detached HEAD 6db5543] m
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 b.t
Switched to a new branch 'disjoint'
rm 'a.t'
[disjoint (root-commit) 059091f] x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 x.t
[disjoint be1e399] y
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 y.t
[disjoint b7cb922] bp
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
ok 49 - setup of linear history for test involving root
expecting success:
reset_rebase &&
git rebase --onto c --root y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at b7cb922 bp
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: x
Applying: y
ok 50 - rebase --onto --root
expecting success:
reset_rebase &&
git rebase -m --onto c --root y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging c with HEAD~1
Merging:
d9ea348 c
059091f x
found 0 common ancestors:
[detached HEAD ee9ba54] x
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 x.t
Committed: 0001 x
Merging c with HEAD~0
Merging:
ee9ba54 x
be1e399 y
found 1 common ancestor:
059091f x
[detached HEAD 7e2f0ad] y
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 y.t
Committed: 0002 y
All done.
ok 51 - rebase -m --onto --root
expecting success:
reset_rebase &&
git rebase -i --onto c --root y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 52 - rebase -i --onto --root
expecting success:
reset_rebase &&
git rebase -p --onto c --root y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 53 - rebase -p --onto --root
expecting success:
reset_rebase &&
git rebase c y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: x
Applying: y
ok 54 - rebase without --onto --root with disjoint history
expecting success:
reset_rebase &&
git rebase -m c y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging c with HEAD~1
Merging:
d9ea348 c
059091f x
found 0 common ancestors:
[detached HEAD ee9ba54] x
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 x.t
Committed: 0001 x
Merging c with HEAD~0
Merging:
ee9ba54 x
be1e399 y
found 1 common ancestor:
059091f x
[detached HEAD 7e2f0ad] y
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 y.t
Committed: 0002 y
All done.
ok 55 - rebase -m without --onto --root with disjoint history
expecting success:
reset_rebase &&
git rebase -i c y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 56 - rebase -i without --onto --root with disjoint history
checking known breakage:
reset_rebase &&
git rebase -p c y &&
test_cmp_rev c HEAD~2 &&
test_linear_range 'x y' c..
No rebase in progress?
HEAD is now at 7e2f0ad y
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:10:46.163190506 +0000
+++ actual.rev 2018-06-24 06:10:46.193191278 +0000
@@ -1 +1 @@
-d9ea348e0fe8827f205c231ed0a5b8258841fd37
+ce450c7fd6766cb1f2df873857da7b928ff743a8
not ok 57 - rebase -p without --onto --root with disjoint history # TODO known breakage
expecting success:
reset_rebase &&
git rebase --onto m --root bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at d9ea348 c
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: x
Applying: y
ok 58 - rebase --onto --root drops patch in onto
checking known breakage:
reset_rebase &&
git rebase -m --onto m --root bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 1daea3a y
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging m with HEAD~2
Merging:
6db5543 m
059091f x
found 0 common ancestors:
[detached HEAD b7663de] x
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 x.t
Committed: 0001 x
Merging m with HEAD~1
Merging:
b7663de x
be1e399 y
found 1 common ancestor:
059091f x
[detached HEAD 1daea3a] y
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 y.t
Committed: 0002 y
Merging m with HEAD~0
Merging:
1daea3a y
b7cb922 bp
found 1 common ancestor:
be1e399 y
[detached HEAD 1502f56] bp
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 b.t
Committed: 0003 bp
All done.
--- expect.rev 2018-06-24 06:10:48.893260750 +0000
+++ actual.rev 2018-06-24 06:10:48.918261394 +0000
@@ -1 +1 @@
-6db5543d43a2166fae6f6d320a0b715c6c1c4278
+b7663de6ab4faf45f5f3c4005913aa77602cd1c5
not ok 59 - rebase -m --onto --root drops patch in onto # TODO known breakage
expecting success:
reset_rebase &&
git rebase -i --onto m --root bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 1502f56 bp
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 60 - rebase -i --onto --root drops patch in onto
expecting success:
reset_rebase &&
git rebase -p --onto m --root bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 1daea3a y
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 61 - rebase -p --onto --root drops patch in onto
expecting success:
reset_rebase &&
git rebase --onto m --root g &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'c g' m..
No rebase in progress?
HEAD is now at 1daea3a y
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: c
Applying: g
ok 62 - rebase --onto --root with merge-base does not go to root
expecting success:
reset_rebase &&
git rebase -m --onto m --root g &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'c g' m..
No rebase in progress?
HEAD is now at 9921398 g
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging m with HEAD~1
Merging:
6db5543 m
d9ea348 c
found 1 common ancestor:
020ea9b b
[detached HEAD 68cd74b] c
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 c.t
Committed: 0001 c
Merging m with HEAD~0
Merging:
68cd74b c
5573dba g
found 1 common ancestor:
d9ea348 c
[detached HEAD 9921398] g
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 g.t
Committed: 0002 g
All done.
ok 63 - rebase -m --onto --root with merge-base does not go to root
expecting success:
reset_rebase &&
git rebase -i --onto m --root g &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'c g' m..
No rebase in progress?
HEAD is now at 9921398 g
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 64 - rebase -i --onto --root with merge-base does not go to root
checking known breakage:
reset_rebase &&
git rebase -p --onto m --root g &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'c g' m..
No rebase in progress?
HEAD is now at 9921398 g
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:04.468661484 +0000
+++ actual.rev 2018-06-24 06:11:04.493662127 +0000
@@ -1 +1 @@
-6db5543d43a2166fae6f6d320a0b715c6c1c4278
+020ea9b5b2051d958f4737afacdc8821a33ac9a9
not ok 65 - rebase -p --onto --root with merge-base does not go to root # TODO known breakage
expecting success:
reset_rebase &&
git rebase m bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 5573dba g
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Applying: x
Applying: y
ok 66 - rebase without --onto --root with disjoint history drops patch in onto
checking known breakage:
reset_rebase &&
git rebase -m m bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 1daea3a y
Removing actual.rev
Removing expect.rev
First, rewinding head to replay your work on top of it...
Merging m with HEAD~2
Merging:
6db5543 m
059091f x
found 0 common ancestors:
[detached HEAD b7663de] x
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 x.t
Committed: 0001 x
Merging m with HEAD~1
Merging:
b7663de x
be1e399 y
found 1 common ancestor:
059091f x
[detached HEAD 1daea3a] y
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 y.t
Committed: 0002 y
Merging m with HEAD~0
Merging:
1daea3a y
b7cb922 bp
found 1 common ancestor:
be1e399 y
[detached HEAD 1502f56] bp
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 b.t
Committed: 0003 bp
All done.
--- expect.rev 2018-06-24 06:11:07.123729792 +0000
+++ actual.rev 2018-06-24 06:11:07.148730436 +0000
@@ -1 +1 @@
-6db5543d43a2166fae6f6d320a0b715c6c1c4278
+b7663de6ab4faf45f5f3c4005913aa77602cd1c5
not ok 67 - rebase -m without --onto --root with disjoint history drops patch in onto # TODO known breakage
expecting success:
reset_rebase &&
git rebase -i m bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 1502f56 bp
Removing actual.rev
Removing expect.rev
Rebasing (1/2)
Rebasing (2/2)
Successfully rebased and updated detached HEAD.
ok 68 - rebase -i without --onto --root with disjoint history drops patch in onto
checking known breakage:
reset_rebase &&
git rebase -p m bp &&
test_cmp_rev m HEAD~2 &&
test_linear_range 'x y' m..
No rebase in progress?
HEAD is now at 1daea3a y
Removing actual.rev
Removing expect.rev
Rebasing (1/1)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:12.933879270 +0000
+++ actual.rev 2018-06-24 06:11:12.958879913 +0000
@@ -1 +1 @@
-6db5543d43a2166fae6f6d320a0b715c6c1c4278
+ce450c7fd6766cb1f2df873857da7b928ff743a8
not ok 69 - rebase -p without --onto --root with disjoint history drops patch in onto # TODO known breakage
expecting success:
reset_rebase &&
git rebase --root c &&
test_cmp_rev c HEAD
No rebase in progress?
HEAD is now at 6db5543 m
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 70 - rebase --root on linear history is a no-op
expecting success:
reset_rebase &&
git rebase -m --root c &&
test_cmp_rev c HEAD
No rebase in progress?
HEAD is now at d9ea348 c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 71 - rebase -m --root on linear history is a no-op
expecting success:
reset_rebase &&
git rebase -i --root c &&
test_cmp_rev c HEAD
No rebase in progress?
HEAD is now at d9ea348 c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
ok 72 - rebase -i --root on linear history is a no-op
checking known breakage:
reset_rebase &&
git rebase -p --root c &&
test_cmp_rev c HEAD
No rebase in progress?
HEAD is now at d9ea348 c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:22.739131520 +0000
+++ actual.rev 2018-06-24 06:11:22.764132163 +0000
@@ -1 +1 @@
-d9ea348e0fe8827f205c231ed0a5b8258841fd37
+8b0b08f11e6fffcd7a364144d5399bf69ae313f5
not ok 73 - rebase -p --root on linear history is a no-op # TODO known breakage
expecting success:
reset_rebase &&
git rebase -f --root c &&
! test_cmp_rev a HEAD~2 &&
test_linear_range 'a b c' HEAD
No rebase in progress?
HEAD is now at 8b0b08f c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:24.329172424 +0000
+++ actual.rev 2018-06-24 06:11:24.359173196 +0000
@@ -1 +1 @@
-ce450c7fd6766cb1f2df873857da7b928ff743a8
+765c719358fdfdd97e2607e5c3c240ac567bb877
ok 74 - rebase -f --root on linear history causes re-write
expecting success:
reset_rebase &&
git rebase -m -f --root c &&
! test_cmp_rev a HEAD~2 &&
test_linear_range 'a b c' HEAD
No rebase in progress?
HEAD is now at e05ca5c c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:25.994215258 +0000
+++ actual.rev 2018-06-24 06:11:26.019215901 +0000
@@ -1 +1 @@
-ce450c7fd6766cb1f2df873857da7b928ff743a8
+765c719358fdfdd97e2607e5c3c240ac567bb877
ok 75 - rebase -m -f --root on linear history causes re-write
expecting success:
reset_rebase &&
git rebase -i -f --root c &&
! test_cmp_rev a HEAD~2 &&
test_linear_range 'a b c' HEAD
No rebase in progress?
HEAD is now at e05ca5c c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:27.689258862 +0000
+++ actual.rev 2018-06-24 06:11:27.714259506 +0000
@@ -1 +1 @@
-ce450c7fd6766cb1f2df873857da7b928ff743a8
+765c719358fdfdd97e2607e5c3c240ac567bb877
ok 76 - rebase -i -f --root on linear history causes re-write
expecting success:
reset_rebase &&
git rebase -p -f --root c &&
! test_cmp_rev a HEAD~2 &&
test_linear_range 'a b c' HEAD
No rebase in progress?
HEAD is now at e05ca5c c
Removing actual.rev
Removing expect.rev
Rebasing (1/3)
Rebasing (2/3)
Rebasing (3/3)
Successfully rebased and updated detached HEAD.
--- expect.rev 2018-06-24 06:11:33.279402666 +0000
+++ actual.rev 2018-06-24 06:11:33.304403309 +0000
@@ -1 +1 @@
-ce450c7fd6766cb1f2df873857da7b928ff743a8
+060c4193c2500f886c89b8fa8d63916f8aa4d912
ok 77 - rebase -p -f --root on linear history causes re-write
# still have 12 known breakage(s)
# passed all remaining 65 test(s)
1..77
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3510-cherry-pick-sequence.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3510-cherry-pick-sequence/.git/
expecting success:
git config advice.detachedhead false &&
echo unrelated >unrelated &&
git add unrelated &&
test_commit initial foo a &&
test_commit base foo b &&
test_commit unrelatedpick unrelated reallyunrelated &&
test_commit picked foo c &&
test_commit anotherpick foo d &&
test_commit yetanotherpick foo e &&
pristine_detach initial &&
test_commit conflicting unrelated
[master (root-commit) df2a63d] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 foo
create mode 100644 unrelated
[master dc0113b] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 24c5742] unrelatedpick
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master fdc0b12] picked
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 965fed4] anotherpick
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 55c7d12] yetanotherpick
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at df2a63d initial
[detached HEAD d520364] conflicting
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick -s base..anotherpick &&
test_path_is_dir .git/sequencer &&
test_path_is_file .git/sequencer/head &&
test_path_is_file .git/sequencer/todo &&
test_path_is_file .git/sequencer/opts
Previous HEAD position was d520364 conflicting
HEAD is now at df2a63d initial
[detached HEAD 2fa73e8] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 2 - cherry-pick persists data on failure
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick base..anotherpick &&
test_cmp_rev picked CHERRY_PICK_HEAD &&
# "oops, I forgot that these patches rely on the change from base"
git checkout HEAD foo &&
git cherry-pick base &&
git cherry-pick picked &&
git cherry-pick --continue &&
git diff --exit-code anotherpick
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
2fa73e8 unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 28eafda] base
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 4a5cd69] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 49d5115] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 3 - cherry-pick mid-cherry-pick-sequence
expecting success:
pristine_detach initial &&
test_expect_code 128 git cherry-pick -s -m 1 --strategy=recursive -X patience -X ours initial..anotherpick &&
test_path_is_dir .git/sequencer &&
test_path_is_file .git/sequencer/head &&
test_path_is_file .git/sequencer/todo &&
test_path_is_file .git/sequencer/opts &&
echo "true" >expect &&
git config --file=.git/sequencer/opts --get-all options.signoff >actual &&
test_cmp expect actual &&
echo "1" >expect &&
git config --file=.git/sequencer/opts --get-all options.mainline >actual &&
test_cmp expect actual &&
echo "recursive" >expect &&
git config --file=.git/sequencer/opts --get-all options.strategy >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
patience
ours
EOF
git config --file=.git/sequencer/opts --get-all options.strategy-option >actual &&
test_cmp expect actual
Warning: you are leaving 4 commits behind, not connected to
any of your branches:
49d5115 anotherpick
4a5cd69 picked
28eafda base
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
error: mainline was specified but commit dc0113b541050fbc624688af31e35b1d246f20fc is not a merge.
fatal: cherry-pick failed
ok 4 - cherry-pick persists opts correctly
expecting success:
pristine_detach initial &&
git cherry-pick initial..picked &&
test_path_is_missing .git/sequencer
HEAD is now at df2a63d initial
[detached HEAD 86ee3fa] base
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 2b8ae83] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD a222ac0] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 5 - cherry-pick cleans up sequencer state upon success
expecting success:
pristine_detach initial &&
git cherry-pick --quit
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
a222ac0 picked
2b8ae83 unrelatedpick
86ee3fa base
HEAD is now at df2a63d initial
ok 6 - --quit does not complain when no cherry-pick is in progress
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick --abort
HEAD is now at df2a63d initial
error: no cherry-pick or revert in progress
fatal: cherry-pick failed
ok 7 - --abort requires cherry-pick in progress
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..picked &&
git cherry-pick --quit &&
test_path_is_missing .git/sequencer
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 8 - --quit cleans up sequencer state
expecting success:
pristine_detach initial &&
cat >expect <<-\EOF &&
OBJID
:100644 100644 OBJID OBJID M unrelated
OBJID
:000000 100644 OBJID OBJID A foo
:000000 100644 OBJID OBJID A unrelated
EOF
test_expect_code 1 git cherry-pick base..picked &&
git cherry-pick --quit &&
test_path_is_missing .git/sequencer &&
test_must_fail git update-index --refresh &&
{
git rev-list HEAD |
git diff-tree --root --stdin |
sed "s/$OID_REGEX/OBJID/g"
} >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
foo: needs merge
ok 9 - --quit keeps HEAD and conflicted index intact
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
git cherry-pick --abort &&
test_path_is_missing .git/sequencer &&
test_cmp_rev initial HEAD &&
git update-index --refresh &&
git diff-index --exit-code HEAD
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 10 - --abort to cancel multiple cherry-pick
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick picked &&
git cherry-pick --abort &&
test_path_is_missing .git/sequencer &&
test_cmp_rev initial HEAD &&
git update-index --refresh &&
git diff-index --exit-code HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 11 - --abort to cancel single cherry-pick
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick picked anotherpick &&
git reset --hard base &&
test_must_fail git cherry-pick picked anotherpick &&
git cherry-pick --abort 2>actual &&
test_i18ngrep "You seem to have moved HEAD" actual &&
test_cmp_rev base HEAD
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
HEAD is now at dc0113b base
error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: cherry-pick failed
warning: You seem to have moved HEAD. Not rewinding, check your HEAD!
ok 12 - --abort does not unsafely change HEAD
expecting success:
pristine_detach anotherpick &&
test_expect_code 1 git revert base..picked &&
git cherry-pick --abort &&
test_path_is_missing .git/sequencer &&
test_cmp_rev anotherpick HEAD &&
git update-index --refresh &&
git diff-index --exit-code HEAD
Previous HEAD position was dc0113b base
HEAD is now at 965fed4 anotherpick
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 13 - cherry-pick --abort to cancel multiple revert
expecting success:
pristine_detach anotherpick &&
test_expect_code 1 git revert base..picked &&
git revert --abort &&
test_path_is_missing .git/sequencer &&
test_cmp_rev anotherpick HEAD
HEAD is now at 965fed4 anotherpick
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 14 - revert --abort works, too
expecting success:
pristine_detach anotherpick &&
test_expect_code 1 git revert picked &&
git revert --abort &&
test_path_is_missing .git/sequencer &&
test_cmp_rev anotherpick HEAD &&
git update-index --refresh &&
git diff-index --exit-code HEAD
HEAD is now at 965fed4 anotherpick
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 15 - --abort to cancel single revert
expecting success:
pristine_detach unrelatedpick &&
echo changed >expect &&
test_expect_code 1 git cherry-pick picked..yetanotherpick &&
echo changed >unrelated &&
git cherry-pick --abort &&
test_cmp expect unrelated
Previous HEAD position was 965fed4 anotherpick
HEAD is now at 24c5742 unrelatedpick
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply 965fed4... anotherpick
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 16 - --abort keeps unrelated change, easy case
expecting success:
pristine_detach initial &&
echo changed >expect &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo changed >unrelated &&
test_must_fail git cherry-pick --abort &&
test_cmp expect unrelated &&
git rev-list HEAD >log &&
test_line_count = 2 log &&
test_must_fail git update-index --refresh &&
git checkout unrelated &&
git cherry-pick --abort &&
test_cmp_rev initial HEAD
Previous HEAD position was 24c5742 unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
error: Entry 'unrelated' not uptodate. Cannot merge.
fatal: Could not reset index file to revision 'df2a63d8a410bba7d3f608203e12bb371c76d4a8'.
fatal: cherry-pick failed
foo: needs merge
unrelated: needs update
ok 17 - --abort refuses to clobber unrelated change, harder case
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..picked &&
test_path_is_dir .git/sequencer &&
echo "resolved" >foo &&
git add foo &&
git commit &&
{
git rev-list HEAD |
git diff-tree --root --stdin |
sed "s/$OID_REGEX/OBJID/g"
} >actual &&
cat >expect <<-\EOF &&
OBJID
:100644 100644 OBJID OBJID M foo
OBJID
:100644 100644 OBJID OBJID M unrelated
OBJID
:000000 100644 OBJID OBJID A foo
:000000 100644 OBJID OBJID A unrelated
EOF
test_cmp expect actual
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 94e48e3] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 18 - cherry-pick still writes sequencer state when one commit is left
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..picked &&
git cherry-pick --abort &&
test_path_is_missing .git/sequencer &&
test_cmp_rev initial HEAD &&
git update-index --refresh &&
git diff-index --exit-code HEAD
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
94e48e3 picked
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
ok 19 - --abort after last commit in sequence
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
test-tool chmtime --get .git/sequencer >expect &&
test_expect_code 128 git cherry-pick unrelatedpick &&
test-tool chmtime --get .git/sequencer >actual &&
test_cmp expect actual
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
error: Cherry-picking is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: cherry-pick failed
ok 20 - cherry-pick does not implicitly stomp an existing operation
expecting success:
pristine_detach initial &&
test_expect_code 128 git cherry-pick --continue
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
error: no cherry-pick or revert in progress
fatal: cherry-pick failed
ok 21 - --continue complains when no cherry-pick is in progress
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
test_expect_code 128 git cherry-pick --continue
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
error: Committing is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
U foo
ok 22 - --continue complains when there are unresolved conflicts
expecting success:
pristine_detach initial &&
echo c >expect &&
test_must_fail git cherry-pick picked &&
echo c >foo &&
git add foo &&
git cherry-pick --continue &&
test_cmp expect foo &&
test_cmp_rev initial HEAD^ &&
git diff --exit-code HEAD &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD e71cb7f] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
fatal: Needed a single revision
ok 23 - --continue of single cherry-pick
expecting success:
pristine_detach initial &&
echo resolved >expect &&
echo "Revert \"picked\"" >expect.msg &&
test_must_fail git revert picked &&
echo resolved >foo &&
git add foo &&
git cherry-pick --continue &&
git diff --exit-code HEAD &&
test_cmp expect foo &&
test_cmp_rev initial HEAD^ &&
git diff-tree -s --pretty=tformat:%s HEAD >msg &&
test_cmp expect.msg msg &&
test_must_fail git rev-parse --verify CHERRY_PICK_HEAD &&
test_must_fail git rev-parse --verify REVERT_HEAD
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
e71cb7f picked
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not revert fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD cc9ea52] Revert "picked"
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
fatal: Needed a single revision
fatal: Needed a single revision
ok 24 - --continue of single revert
expecting success:
pristine_detach initial &&
echo d >expect &&
cat >expect.log <<-\EOF &&
OBJID
:100644 100644 OBJID OBJID M foo
OBJID
:100644 100644 OBJID OBJID M foo
OBJID
:100644 100644 OBJID OBJID M unrelated
OBJID
:000000 100644 OBJID OBJID A foo
:000000 100644 OBJID OBJID A unrelated
EOF
test_must_fail git cherry-pick base..anotherpick &&
echo c >foo &&
git add foo &&
git cherry-pick --continue &&
{
git rev-list HEAD |
git diff-tree --root --stdin |
sed "s/$OID_REGEX/OBJID/g"
} >actual.log &&
test_cmp expect foo &&
test_cmp expect.log actual.log
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
cc9ea52 Revert "picked"
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 5044b0c] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD c034138] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 25 - --continue after resolving conflicts
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo "c" >foo &&
git add foo &&
git commit &&
git cherry-pick --continue &&
test_path_is_missing .git/sequencer &&
{
git rev-list HEAD |
git diff-tree --root --stdin |
sed "s/$OID_REGEX/OBJID/g"
} >actual &&
cat >expect <<-\EOF &&
OBJID
:100644 100644 OBJID OBJID M foo
OBJID
:100644 100644 OBJID OBJID M foo
OBJID
:100644 100644 OBJID OBJID M unrelated
OBJID
:000000 100644 OBJID OBJID A foo
:000000 100644 OBJID OBJID A unrelated
EOF
test_cmp expect actual
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
c034138 anotherpick
5044b0c picked
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 5044b0c] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD c034138] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 26 - --continue after resolving conflicts and committing
expecting success:
pristine_detach conflicting &&
test_must_fail git cherry-pick initial..picked &&
test_cmp_rev unrelatedpick CHERRY_PICK_HEAD &&
git checkout HEAD -- unrelated &&
test_must_fail git cherry-pick --continue 2>msg &&
test_i18ngrep "The previous cherry-pick is now empty" msg
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
c034138 anotherpick
5044b0c picked
7fdfeeb unrelatedpick
HEAD is now at d520364 conflicting
[detached HEAD 5ca81a4] base
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging unrelated
CONFLICT (content): Merge conflict in unrelated
error: could not apply 24c5742... unrelatedpick
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
HEAD detached from d520364
You are currently cherry-picking commit 24c5742.
Untracked files:
actual.rev
expect.rev
msg
nothing added to commit but untracked files present
The previous cherry-pick is now empty, possibly due to conflict resolution.
ok 27 - --continue asks for help after resolving patch to nil
expecting success:
pristine_detach conflicting &&
test_must_fail git cherry-pick initial..picked &&
git checkout HEAD -- unrelated &&
test_must_fail git cherry-pick --continue &&
git reset &&
git cherry-pick --continue &&
git rev-list initial..HEAD >commits &&
test_line_count = 3 commits
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
5ca81a4 base
HEAD is now at d520364 conflicting
[detached HEAD 5ca81a4] base
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging unrelated
CONFLICT (content): Merge conflict in unrelated
error: could not apply 24c5742... unrelatedpick
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
If you wish to skip this commit, use:
git reset
Then "git cherry-pick --continue" will resume cherry-picking
the remaining commits.
HEAD detached from d520364
You are currently cherry-picking commit 24c5742.
nothing to commit, working tree clean
[detached HEAD 38f047b] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 28 - follow advice and skip nil patch
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick -x base..anotherpick &&
echo "c" >foo &&
git add foo &&
git commit &&
git cherry-pick --continue &&
test_path_is_missing .git/sequencer &&
git cat-file commit HEAD >anotherpick_msg &&
git cat-file commit HEAD~1 >picked_msg &&
git cat-file commit HEAD~2 >unrelatedpick_msg &&
git cat-file commit HEAD~3 >initial_msg &&
! grep "cherry picked from" initial_msg &&
grep "cherry picked from" unrelatedpick_msg &&
grep "cherry picked from" picked_msg &&
grep "cherry picked from" anotherpick_msg
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
38f047b picked
5ca81a4 base
HEAD is now at df2a63d initial
[detached HEAD 2828f02] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD d8292ab] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD c799fab] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
(cherry picked from commit 24c574226938b210285578b30b436ec6119f7a7d)
(cherry picked from commit fdc0b12b2eb6de44c0df7d41b045ab2b44b6c37c)
(cherry picked from commit 965fed4c41239668ada422bca0c600444cc00e82)
ok 29 - --continue respects opts
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick -x picked &&
echo c >foo &&
git add foo &&
git cherry-pick --continue &&
test_path_is_missing .git/sequencer &&
git cat-file commit HEAD >msg &&
grep "cherry picked from" msg
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
c799fab anotherpick
d8292ab picked
2828f02 unrelatedpick
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 39a7845] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
(cherry picked from commit fdc0b12b2eb6de44c0df7d41b045ab2b44b6c37c)
ok 30 - --continue of single-pick respects -x
expecting success:
pristine_detach initial &&
test_must_fail git cherry-pick -x picked anotherpick &&
echo c >foo &&
git add foo &&
git cherry-pick --continue &&
test_path_is_missing .git/sequencer &&
git cat-file commit HEAD^ >msg &&
picked=$(git rev-parse --verify picked) &&
grep "cherry picked from.*$picked" msg
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
39a7845 picked
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 39a7845] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 2d285b6] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
(cherry picked from commit fdc0b12b2eb6de44c0df7d41b045ab2b44b6c37c)
ok 31 - --continue respects -x in first commit in multi-pick
checking known breakage:
pristine_detach initial &&
test_expect_code 1 git cherry-pick --signoff base..anotherpick &&
echo "c" >foo &&
git add foo &&
git commit &&
git cherry-pick --continue &&
test_path_is_missing .git/sequencer &&
git cat-file commit HEAD >anotherpick_msg &&
git cat-file commit HEAD~1 >picked_msg &&
git cat-file commit HEAD~2 >unrelatedpick_msg &&
git cat-file commit HEAD~3 >initial_msg &&
! grep "Signed-off-by:" initial_msg &&
grep "Signed-off-by:" unrelatedpick_msg &&
! grep "Signed-off-by:" picked_msg &&
grep "Signed-off-by:" anotherpick_msg
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
2d285b6 anotherpick
39a7845 picked
HEAD is now at df2a63d initial
[detached HEAD 2fa73e8] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD b731a42] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD d813686] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: C O Mitter <committer@example.com>
Signed-off-by: C O Mitter <committer@example.com>
not ok 32 - --signoff is automatically propagated to resolved conflict # TODO known breakage
checking known breakage:
pristine_detach initial &&
test_must_fail git cherry-pick -s picked anotherpick &&
echo c >foo &&
git add foo &&
git cherry-pick --continue &&
git diff --exit-code HEAD &&
test_cmp_rev initial HEAD^^ &&
git cat-file commit HEAD^ >msg &&
! grep Signed-off-by: msg
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
d813686 anotherpick
b731a42 picked
2fa73e8 unrelatedpick
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD d14bdfd] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 9bb17c7] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: C O Mitter <committer@example.com>
not ok 33 - --signoff dropped for implicit commit of resolution, multi-pick case # TODO known breakage
checking known breakage:
pristine_detach initial &&
test_must_fail git cherry-pick -s picked &&
echo c >foo &&
git add foo &&
git cherry-pick --continue &&
git diff --exit-code HEAD &&
test_cmp_rev initial HEAD^ &&
git cat-file commit HEAD >msg &&
! grep Signed-off-by: msg
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
9bb17c7 anotherpick
d14bdfd picked
HEAD is now at df2a63d initial
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD d14bdfd] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: C O Mitter <committer@example.com>
not ok 34 - sign-off needs to be reaffirmed after conflict resolution, single-pick case # TODO known breakage
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo "resolved" >foo &&
git add foo &&
git commit &&
sed "s/pick /pick/" .git/sequencer/todo >new_sheet &&
cp new_sheet .git/sequencer/todo &&
test_expect_code 128 git cherry-pick --continue
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
d14bdfd picked
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 94e48e3] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
error: missing arguments for pick
error: invalid line 1: pickfdc0b12 picked
error: missing arguments for pick
error: invalid line 2: pick965fed4 anotherpick
error: unusable instruction sheet: '.git/sequencer/todo'
fatal: cherry-pick failed
ok 35 - malformed instruction sheet 1
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo "resolved" >foo &&
git add foo &&
git commit &&
sed "s/pick/revert/" .git/sequencer/todo >new_sheet &&
cp new_sheet .git/sequencer/todo &&
test_expect_code 128 git cherry-pick --continue
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
94e48e3 picked
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 94e48e3] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
error: cannot cherry-pick during a revert.
fatal: cherry-pick failed
ok 36 - malformed instruction sheet 2
expecting success:
pristine_detach initial &&
test_expect_code 128 git cherry-pick base..base
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
94e48e3 picked
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
error: empty commit set passed
fatal: cherry-pick failed
ok 37 - empty commit set
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo "resolved" >foo &&
git add foo &&
git commit &&
sed "s/pick \([0-9a-f]*\)/pick $_r10/" .git/sequencer/todo >new_sheet &&
cp new_sheet .git/sequencer/todo &&
test_expect_code 128 git cherry-pick --continue
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 94e48e3] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
error: invalid line 1: pick fdc0b12fdc0b12fdc0b12fdc0b12fdc0b12fdc0b12fdc0b12fdc0b12fdc0b12fdc0b12 picked
error: invalid line 2: pick 965fed4965fed4965fed4965fed4965fed4965fed4965fed4965fed4965fed4965fed4 anotherpick
error: unusable instruction sheet: '.git/sequencer/todo'
fatal: cherry-pick failed
ok 38 - malformed instruction sheet 3
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo "c" >foo &&
git add foo &&
git commit &&
sed "s/pick \([0-9a-f]*\)/pick \1 /" .git/sequencer/todo >new_sheet &&
cp new_sheet .git/sequencer/todo &&
git cherry-pick --continue
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
94e48e3 picked
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 5044b0c] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD c034138] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 39 - instruction sheet, fat-fingers version
expecting success:
pristine_detach initial &&
test_expect_code 1 git cherry-pick base..anotherpick &&
echo "c" >foo &&
git add foo &&
git commit &&
cut -d" " -f1,2 .git/sequencer/todo >new_sheet &&
cp new_sheet .git/sequencer/todo &&
git cherry-pick --continue &&
test_path_is_missing .git/sequencer &&
git rev-list HEAD >commits &&
test_line_count = 4 commits
Warning: you are leaving 3 commits behind, not connected to
any of your branches:
c034138 anotherpick
5044b0c picked
7fdfeeb unrelatedpick
HEAD is now at df2a63d initial
[detached HEAD 7fdfeeb] unrelatedpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging foo
CONFLICT (content): Merge conflict in foo
error: could not apply fdc0b12... picked
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
[detached HEAD 5044b0c] picked
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD c034138] anotherpick
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
1 file changed, 1 insertion(+), 1 deletion(-)
ok 40 - commit descriptions in insn sheet are optional
# still have 3 known breakage(s)
# passed all remaining 37 test(s)
1..40
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3700-add.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3700-add/.git/
expecting success: touch foo && git add foo
ok 1 - Test of git add
expecting success: git ls-files foo | grep foo
foo
ok 2 - Post-check that foo is in the index
expecting success: touch -- -q && git add -- -q
ok 3 - Test that "git add -- -q" works
expecting success: git config core.filemode 0 &&
echo foo >xfoo1 &&
chmod 755 xfoo1 &&
git add xfoo1 &&
test_mode_in_index 100644 xfoo1
pass
ok 4 - git add: Test that executable bit is not used if core.filemode=0
expecting success:
rm -f xfoo1 &&
test_ln_s_add foo xfoo1 &&
test_mode_in_index 120000 xfoo1
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
pass
ok 5 - git add: filemode=0 should not get confused by symlink
expecting success: git config core.filemode 0 &&
echo foo >xfoo2 &&
chmod 755 xfoo2 &&
git update-index --add xfoo2 &&
test_mode_in_index 100644 xfoo2
pass
ok 6 - git update-index --add: Test that executable bit is not used...
expecting success:
rm -f xfoo2 &&
test_ln_s_add foo xfoo2 &&
test_mode_in_index 120000 xfoo2
pass
ok 7 - git add: filemode=0 should not get confused by symlink
expecting success: git config core.filemode 0 &&
test_ln_s_add xfoo2 xfoo3 && # runs git update-index --add
test_mode_in_index 120000 xfoo3
pass
ok 8 - git update-index --add: Test that executable bit is not used...
expecting success:
echo "*.ig" >.gitignore &&
mkdir c.if d.ig &&
>a.ig && >b.if &&
>c.if/c.if && >c.if/c.ig &&
>d.ig/d.if && >d.ig/d.ig
ok 9 - .gitignore test setup
expecting success:
git add . &&
! (git ls-files | grep "\\.ig")
ok 10 - .gitignore is honored
expecting success:
test_must_fail git add a.?? &&
! (git ls-files | grep "\\.ig")
The following paths are ignored by one of your .gitignore files:
a.ig
Use -f if you really want to add them.
ok 11 - error out when attempting to add ignored ones without -f
expecting success:
test_must_fail git add d.?? &&
! (git ls-files | grep "\\.ig")
The following paths are ignored by one of your .gitignore files:
d.ig
Use -f if you really want to add them.
ok 12 - error out when attempting to add ignored ones without -f
expecting success:
touch a.if &&
test_must_fail git add a.?? &&
! (git ls-files | grep "\\.ig") &&
(git ls-files | grep a.if)
The following paths are ignored by one of your .gitignore files:
a.ig
Use -f if you really want to add them.
a.if
ok 13 - error out when attempting to add ignored ones but add others
expecting success:
git add -f a.?? &&
git ls-files --error-unmatch a.ig
a.ig
ok 14 - add ignored ones with -f
expecting success:
git add -f d.??/* &&
git ls-files --error-unmatch d.ig/d.if d.ig/d.ig
d.ig/d.if
d.ig/d.ig
ok 15 - add ignored ones with -f
expecting success:
rm -f .git/index &&
git add -f d.?? &&
git ls-files --error-unmatch d.ig/d.if d.ig/d.ig
d.ig/d.if
d.ig/d.ig
ok 16 - add ignored ones with -f
expecting success:
rm -f .git/index &&
mkdir -p sub/dir &&
echo "!dir/a.*" >sub/.gitignore &&
>sub/a.ig &&
>sub/dir/a.ig &&
git add sub/dir &&
git ls-files --error-unmatch sub/dir/a.ig &&
rm -f .git/index &&
(
cd sub/dir &&
git add .
) &&
git ls-files --error-unmatch sub/dir/a.ig
sub/dir/a.ig
sub/dir/a.ig
ok 17 - .gitignore with subdirectory
expecting success:
rm -f .git/index &&
git add 1/2/a 1/3/b 1/2/c
ok 18 - check correct prefix detection
expecting success:
for s in 1 2 3
do
echo $s > stage$s
echo "100755 $(git hash-object -w stage$s) $s file"
echo "120000 $(printf $s | git hash-object -w -t blob --stdin) $s symlink"
done | git update-index --index-info &&
git config core.filemode 0 &&
git config core.symlinks 0 &&
echo new > file &&
echo new > symlink &&
git add file symlink &&
git ls-files --stage | grep "^100755 .* 0 file$" &&
git ls-files --stage | grep "^120000 .* 0 symlink$"
100755 3e757656cf36eca53338e520d134963a44f793f8 0 file
120000 3e757656cf36eca53338e520d134963a44f793f8 0 symlink
ok 19 - git add with filemode=0, symlinks=0, and unmerged entries
expecting success:
git rm --cached -f file symlink &&
(
echo "100644 $(git hash-object -w stage1) 1 file"
echo "100755 $(git hash-object -w stage2) 2 file"
echo "100644 $(printf 1 | git hash-object -w -t blob --stdin) 1 symlink"
echo "120000 $(printf 2 | git hash-object -w -t blob --stdin) 2 symlink"
) | git update-index --index-info &&
git config core.filemode 0 &&
git config core.symlinks 0 &&
echo new > file &&
echo new > symlink &&
git add file symlink &&
git ls-files --stage | grep "^100755 .* 0 file$" &&
git ls-files --stage | grep "^120000 .* 0 symlink$"
rm 'file'
rm 'symlink'
100755 3e757656cf36eca53338e520d134963a44f793f8 0 file
120000 3e757656cf36eca53338e520d134963a44f793f8 0 symlink
ok 20 - git add with filemode=0, symlinks=0 prefers stage 2 over stage 1
expecting success:
>foo && git add foo && git commit -a -m "commit all" &&
test -z "$(git diff-index HEAD -- foo)" &&
git read-tree HEAD &&
case "$(git diff-index HEAD -- foo)" in
:100644" "*"M foo") echo pass;;
*) echo fail; (exit 1);;
esac &&
git add --refresh -- foo &&
test -z "$(git diff-index HEAD -- foo)"
[master (root-commit) b38fd20] commit all
Author: A U Thor <author@example.com>
6 files changed, 2 insertions(+)
create mode 100644 1/2/a
create mode 100644 1/2/c
create mode 100644 1/3/b
create mode 100755 file
create mode 100644 foo
create mode 120000 symlink
pass
ok 21 - git add --refresh
expecting success:
git reset --hard &&
echo >foo && echo >bar && echo >baz &&
git add foo bar baz && H=$(git rev-parse :foo) && git rm -f foo &&
echo "100644 $H 3 foo" | git update-index --index-info &&
test-tool chmtime -60 bar baz &&
>expect &&
git add --refresh bar >actual &&
test_cmp expect actual &&
git diff-files --name-only >actual &&
! grep bar actual&&
grep baz actual
HEAD is now at b38fd20 commit all
rm 'foo'
baz
ok 22 - git add --refresh with pathspec
checking prerequisite: SANITY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
git reset --hard &&
date >foo1 &&
date >foo2 &&
chmod 0 foo2 &&
test_must_fail git add --verbose . &&
! ( git ls-files foo1 | grep foo1 )
HEAD is now at b38fd20 commit all
error: open("foo2"): Permission denied
error: unable to index file foo2
fatal: adding files failed
add '-q'
add '.gitignore'
add 'a.if'
add 'actual'
add 'b.if'
add 'c.if/c.if'
add 'expect'
add 'foo1'
ok 23 - git add should fail atomically upon an unreadable file
expecting success:
git reset --hard &&
date >foo1 &&
date >foo2 &&
chmod 0 foo2 &&
test_must_fail git add --verbose --ignore-errors . &&
git ls-files foo1 | grep foo1
HEAD is now at b38fd20 commit all
error: open("foo2"): Permission denied
error: unable to index file foo2
add '1/2/a'
add '1/2/c'
add '1/3/b'
add 'file'
add 'foo'
add 'symlink'
add '-q'
add '.gitignore'
add 'a.if'
add 'actual'
add 'b.if'
add 'c.if/c.if'
add 'expect'
add 'foo1'
add 'stage1'
add 'stage2'
add 'stage3'
add 'sub/.gitignore'
add 'sub/dir/a.ig'
add 'xfoo1'
add 'xfoo2'
add 'xfoo3'
foo1
ok 24 - git add --ignore-errors
expecting success:
git config add.ignore-errors 1 &&
git reset --hard &&
date >foo1 &&
date >foo2 &&
chmod 0 foo2 &&
test_must_fail git add --verbose . &&
git ls-files foo1 | grep foo1
HEAD is now at b38fd20 commit all
error: open("foo2"): Permission denied
error: unable to index file foo2
add 'a.ig'
add 'c.if/c.ig'
add 'd.ig/d.if'
add 'd.ig/d.ig'
add 'foo1'
add 'sub/a.ig'
foo1
ok 25 - git add (add.ignore-errors)
expecting success:
git config add.ignore-errors 0 &&
git reset --hard &&
date >foo1 &&
date >foo2 &&
chmod 0 foo2 &&
test_must_fail git add --verbose . &&
! ( git ls-files foo1 | grep foo1 )
HEAD is now at b38fd20 commit all
error: open("foo2"): Permission denied
error: unable to index file foo2
fatal: adding files failed
add 'foo1'
ok 26 - git add (add.ignore-errors = false)
expecting success:
git config add.ignore-errors 1 &&
git reset --hard &&
date >foo1 &&
date >foo2 &&
chmod 0 foo2 &&
test_must_fail git add --verbose --no-ignore-errors . &&
! ( git ls-files foo1 | grep foo1 ) &&
git config add.ignore-errors 0
HEAD is now at b38fd20 commit all
error: open("foo2"): Permission denied
error: unable to index file foo2
fatal: adding files failed
add 'foo1'
ok 27 - --no-ignore-errors overrides config
expecting success:
git reset --hard &&
touch fo\[ou\]bar foobar &&
git add 'fo\[ou\]bar' &&
git ls-files fo\[ou\]bar | fgrep fo\[ou\]bar &&
! ( git ls-files foobar | grep foobar )
HEAD is now at b38fd20 commit all
fo[ou]bar
ok 28 - git add 'fo\[ou\]bar' ignores foobar
expecting success:
git reset --hard &&
H=$(git rev-parse :1/2/a) &&
(
echo "100644 $H 1 track-this"
echo "100644 $H 3 track-this"
) | git update-index --index-info &&
echo track-this >>.gitignore &&
echo resolved >track-this &&
git add track-this
HEAD is now at b38fd20 commit all
ok 29 - git add to resolve conflicts on otherwise ignored path
expecting success:
test_must_fail git add non-existent &&
! (git ls-files | grep "non-existent")
fatal: pathspec 'non-existent' did not match any files
ok 30 - "add non-existent" should fail
expecting success:
rm -fr empty &&
git init empty &&
(
cd empty &&
git add -A . &&
git add -A
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3700-add/empty/.git/
ok 31 - git add -A on empty repo does not error out
expecting success:
rm -fr empty &&
git init empty &&
(
cd empty &&
git add .
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3700-add/empty/.git/
ok 32 - "git add ." in empty repo
expecting success:
echo new >>track-this &&
git add --dry-run track-this >actual 2>&1 &&
echo "add 'track-this'" | test_cmp - actual
ok 33 - git add --dry-run of existing changed file
expecting success:
echo ignored-file >>.gitignore &&
test_must_fail git add --dry-run track-this ignored-file >actual 2>&1
ok 34 - git add --dry-run of non-existing file
expecting success:
echo "fatal: pathspec 'ignored-file' did not match any files" >expect &&
test_i18ncmp expect actual
ok 35 - git add --dry-run of an existing file output
expecting success:
test_must_fail git add --dry-run --ignore-missing track-this ignored-file >actual.out 2>actual.err
ok 36 - git add --dry-run --ignore-missing of non-existing file
expecting success:
test_i18ncmp expect.out actual.out &&
test_i18ncmp expect.err actual.err
ok 37 - git add --dry-run --ignore-missing of non-existing file output
expecting success:
test_must_fail git add ""
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
ok 38 - git add empty string should fail
expecting success:
rm -f foo1 &&
echo foo >foo1 &&
git add --chmod=+x foo1 &&
test_mode_in_index 100755 foo1 &&
git add --chmod=-x foo1 &&
test_mode_in_index 100644 foo1
pass
pass
ok 39 - git add --chmod=[+-]x stages correctly
expecting success:
git config core.filemode 1 &&
git config core.symlinks 1 &&
rm -f foo2 &&
echo foo >foo2 &&
git add --chmod=+x foo2 &&
test_mode_in_index 100755 foo2
pass
ok 40 - git add --chmod=+x with symlinks
expecting success:
rm -f foo3 xfoo3 &&
git reset --hard &&
echo foo >foo3 &&
git add foo3 &&
git add --chmod=+x foo3 &&
test_mode_in_index 100755 foo3 &&
echo foo >xfoo3 &&
chmod 755 xfoo3 &&
git add xfoo3 &&
git add --chmod=-x xfoo3 &&
test_mode_in_index 100644 xfoo3
HEAD is now at b38fd20 commit all
pass
pass
ok 41 - git add --chmod=[+-]x changes index with already added file
expecting success:
echo foo >foo4 &&
git add foo4 &&
git add --chmod=+x foo4 &&
! test -x foo4
ok 42 - git add --chmod=[+-]x does not change the working tree
expecting success:
>foo5 &&
>foo6 &&
git add foo5 foo6 &&
git add --chmod=+x &&
test_mode_in_index 100644 foo5 &&
test_mode_in_index 100644 foo6
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
pass
pass
ok 43 - no file status change if no pathspec is given
expecting success:
mkdir -p sub &&
(
cd sub &&
>sub-foo1 &&
>sub-foo2 &&
git add . &&
git add --chmod=+x &&
test_mode_in_index 100644 sub-foo1 &&
test_mode_in_index 100644 sub-foo2
)
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
pass
pass
ok 44 - no file status change if no pathspec is given in subdir
expecting success:
git add --chmod=+x . &&
test $(git ls-files --stage | grep ^100644 | wc -l) -eq 0 &&
git add --chmod=-x . &&
test $(git ls-files --stage | grep ^100755 | wc -l) -eq 0
cannot chmod +x 'symlink'
cannot chmod -x 'symlink'
ok 45 - all statuses changed in folder if . is given
# passed all 45 test(s)
1..45
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3512-cherry-pick-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/.git/
expecting success:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1/.git/
[master (root-commit) b58f0b2] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub2/.git/
[master (root-commit) 0409c57] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_repo/.git/
[master (root-commit) 428290e] 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.t3512-cherry-pick-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 e916ecd] 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 0ddc37d] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:28 2018 +0000
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 106f09f] 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.t3512-cherry-pick-submodule/submodule_update_sub1
* [new branch] modifications -> modifications
[modify_sub1 e0e3072] 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.t3512-cherry-pick-submodule/submodule_update_repo/sub1/sub2'...
done.
[add_nested_sub 6086915] 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 fd254e8] 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 ad4a04d] 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 2448cdf] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively f395201] update sub1, that updates nested sub
Author: A U Thor <author@example.com>
To /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1
* [new branch] modify_sub1_recursively -> modify_sub1_recursively
To /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-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 'b58f0b2e412a58116ec09f57094339be146ce659'
Previous HEAD position was b58f0b2 Base inside first submodule
Switched to branch 'modifications'
rm 'sub1'
[replace_sub1_with_directory c2cbca0] 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 134da33] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:32 2018 +0000
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 311135c] 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 5964b92] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Switched to a new branch 'invalid_sub1'
[invalid_sub1 fc32563] Invalid sub1 commit
Author: A U Thor <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 226f8e8] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
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'.
[no_submodule b1f8401] Add sub1
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:28 2018 +0000
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Submodule path 'uninitialized_sub': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
ok 1 - git cherry-pick: added submodule creates empty directory
expecting success:
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'.
[no_submodule 06e5ea1] Add sub1
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:28 2018 +0000
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Submodule path 'uninitialized_sub': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
ok 2 - git cherry-pick: added submodule leaves existing empty directory alone
expecting success:
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'.
[replace_sub1_with_file 0ba7489] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Submodule path 'uninitialized_sub': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
ok 3 - git cherry-pick: replace tracked file with submodule creates empty directory
checking known breakage:
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'.
Removing sub1/file3
Removing sub1/file2
Removing sub1/file1
Adding sub1
[replace_sub1_with_directory a2e6077] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:32 2018 +0000
4 files changed, 4 insertions(+), 3 deletions(-)
delete mode 100644 sub1/file1
delete mode 100644 sub1/file2
delete mode 100644 sub1/file3
Directory sub1 doesn't exist.
not ok 4 - git cherry-pick: replace directory with submodule # TODO known breakage
expecting success:
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[add_sub1 f183983] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:28 2018 +0000
3 files changed, 9 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 sub1
delete mode 160000 uninitialized_sub
ok 5 - git cherry-pick: removed submodule leaves submodule directory and its contents in place
expecting success:
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[add_sub1 f4d6072] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:28 2018 +0000
3 files changed, 9 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 sub1
delete mode 160000 uninitialized_sub
ok 6 - git cherry-pick: removed submodule leaves submodule containing a .git directory alone
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
error: refusing to lose untracked file at 'sub1/file2'
error: refusing to lose untracked file at 'sub1/file1'
Adding sub1/file3
Adding sub1/file2
Adding sub1/file1
Removing sub1
[add_sub1 884bc91] Replace sub1 with directory
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:32 2018 +0000
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
test_must_fail: command succeeded: git cherry-pick replace_sub1_with_directory
not ok 7 - git cherry-pick: replace submodule with a directory must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'.
error: refusing to lose untracked file at 'sub1/file2'
error: refusing to lose untracked file at 'sub1/file1'
Adding sub1/file3
Adding sub1/file2
Adding sub1/file1
Removing sub1
[add_sub1 9dd51d3] Replace sub1 with directory
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:32 2018 +0000
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
test_must_fail: command succeeded: git cherry-pick replace_sub1_with_directory
not ok 8 - git cherry-pick: replace submodule containing a .git directory with a directory must fail # TODO known breakage
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
[add_sub1 77e51d4] Replace sub1 with file
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
2 files changed, 1 insertion(+), 5 deletions(-)
mode change 160000 => 100644 sub1
test_must_fail: command succeeded: git cherry-pick replace_sub1_with_file
not ok 9 - git cherry-pick: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
[add_sub1 5e522d8] Replace sub1 with file
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
2 files changed, 1 insertion(+), 5 deletions(-)
mode change 160000 => 100644 sub1
test_must_fail: command succeeded: git cherry-pick replace_sub1_with_file
not ok 10 - git cherry-pick: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
[add_sub1 635299f] Modify sub1
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:29 2018 +0000
Submodule path 'sub1': checked out '106f09f252aa6c03b05efdcc7f4dec1219919603'
ok 11 - git cherry-pick: modified submodule does not update submodule work tree
expecting success:
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.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
[add_sub1 c6b2ab4] Invalid sub1 commit
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 12 - git cherry-pick: modified submodule does not update submodule work tree to invalid commit
expecting success:
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'.
[invalid_sub1 16a2f02] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:33 2018 +0000
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
Submodule path 'uninitialized_sub': checked out 'b58f0b2e412a58116ec09f57094339be146ce659'
ok 13 - git cherry-pick: modified submodule does not update submodule work tree from invalid commit
expecting success:
prolog &&
reset_work_tree_to 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 merge:
sub1
Please move or remove them before you merge.
Aborting
error: merging of trees ec38489b3f8eda08fda17055ad272abc24bdf929 and 15a186243b3cb4e88d6e95ca2e1ca6c81804c0f0 failed
fatal: cherry-pick failed
ok 14 - git cherry-pick: added submodule doesn't remove untracked unignored file with same name
expecting success:
test_create_repo sub &&
touch sub/file &&
git -C sub add file &&
git -C sub commit -m "add a file in a submodule" &&
test_create_repo a_repo &&
(
cd a_repo &&
>a_file &&
git add a_file &&
git commit -m "add a file" &&
git branch test &&
git checkout test &&
mkdir sub &&
>sub/content &&
git add sub/content &&
git commit -m "add a regular folder with name sub" &&
echo "123" >a_file &&
git add a_file &&
git commit -m "modify a file" &&
git checkout master &&
git submodule add ../sub sub &&
git submodule update sub &&
git commit -m "add a submodule info folder with name sub" &&
git cherry-pick test
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/sub/.git/
[master (root-commit) 708a99d] add a file in a submodule
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/a_repo/.git/
[master (root-commit) f5ce3ab] add a file
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a_file
Switched to branch 'test'
[test db435f6] add a regular folder with name sub
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 sub/content
[test 22e241a] modify a file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'master'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3512-cherry-pick-submodule/a_repo/sub'...
done.
[master a08b3f2] add a submodule info folder with name sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub
Adding sub
[master 2e9fb7b] modify a file
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:56 2018 +0000
1 file changed, 1 insertion(+)
ok 15 - unrelated submodule/file conflict is ignored
# still have 5 known breakage(s)
# passed all remaining 10 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3702-add-edit.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3702-add-edit/.git/
expecting success:
git add file &&
test_tick &&
git commit -m initial file
[master (root-commit) e055285] initial
Author: A U Thor <author@example.com>
1 file changed, 11 insertions(+)
create mode 100644 file
ok 1 - setup
expecting success:
cp second-part file &&
git add -e &&
test_cmp second-part file &&
test_cmp orig-patch expected-patch &&
git diff --cached >actual &&
grep -v index actual >out &&
test_cmp out expected
ok 2 - add -e
expecting success:
git reset --hard &&
echo change >>file &&
test_must_fail env GIT_EDITOR=false git add -e &&
test_expect_code 1 git diff --exit-code
HEAD is now at e055285 initial
error: There was a problem with the editor 'false'.
fatal: editing patch failed
diff --git a/file b/file
index b9834b5..cce9ee2 100644
--- a/file
+++ b/file
@@ -9,3 +9,4 @@ for he waxed under welkin, in wealth he throve,
till before him the folk, both far and near,
who house by the whale-path, heard his mandate,
gave him gifts: a good king he!
+change
ok 3 - add -e notices editor failure
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3703-add-magic-pathspec.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3703-add-magic-pathspec/.git/
expecting success:
mkdir sub anothersub &&
: >sub/foo &&
: >anothersub/foo
ok 1 - setup
expecting success:
cat >expected <<-EOF &&
add 'anothersub/foo'
add 'expected'
add 'sub/actual'
add 'sub/foo'
EOF
(cd sub && git add -n :/ >actual) &&
test_cmp expected sub/actual
ok 2 - add :/
expecting success:
(cd sub && git add -n :/anothersub >actual) &&
test_cmp expected sub/actual
ok 3 - add :/anothersub
expecting success:
(cd sub && test_must_fail git add -n :/non-existent)
fatal: pathspec ':/non-existent' did not match any files
ok 4 - add :/non-existent
expecting success:
: >":(icase)ha" &&
test_must_fail git add -n ":(icase)ha" &&
git add -n "./:(icase)ha"
fatal: pathspec ':(icase)ha' did not match any files
add ':(icase)ha'
ok 5 - a file with the same (long) magic name exists
expecting success:
: >":/bar" &&
test_must_fail git add -n :/bar &&
git add -n "./:/bar"
fatal: pathspec ':/bar' did not match any files
add ':/bar'
ok 6 - a file with the same (short) magic name exists
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3800-mktag.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3800-mktag/.git/
expecting success:
echo Hello >A &&
git update-index --add A &&
git commit -m "Initial commit" &&
head=$(git rev-parse --verify HEAD)
[master (root-commit) a0e728a] Initial commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A
ok 1 - setup
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: wanna fool me ? you obviously got the size wrong !
ok 2 - Tag object length check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char0: does not start with "object "
ok 3 - "object" line label check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char7: could not get SHA1 hash
ok 4 - "object" line SHA1 check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char47: could not find "\ntype "
ok 5 - "type" line label check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char48: could not find next "\n"
ok 6 - "type" line eol check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char57: no "tag " found
ok 7 - "tag" line label check #1
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char87: no "tag " found
ok 8 - "tag" line label check #2
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char53: type too long
ok 9 - "type" line type-name length check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char7: could not verify object 779e9b33986b1c2670fff52c5067603117b3e895
ok 10 - verify object (SHA1/type) check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char67: could not verify tag name
ok 11 - verify tag-name check
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char70: could not find "tagger "
ok 12 - "tagger" line label check #1
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char70: could not find "tagger "
ok 13 - "tagger" line label check #2
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char77: missing tagger name
ok 14 - disallow missing tag author name
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char77: malformed tagger field
ok 15 - disallow malformed tagger
expecting success: git mktag <tag.sig >.git/refs/tags/mytag 2>message
ok 16 - allow empty tag email
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char77: malformed tagger field
ok 17 - disallow spaces in tag email
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char107: missing tag timestamp
ok 18 - disallow missing tag timestamp
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char107: missing tag timestamp
ok 19 - detect invalid tag timestamp1
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char111: malformed tag timestamp
ok 20 - detect invalid tag timestamp2
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char118: malformed tag timezone
ok 21 - detect invalid tag timezone1
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char118: malformed tag timezone
ok 22 - detect invalid tag timezone2
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char118: malformed tag timezone
ok 23 - detect invalid tag timezone3
expecting success:
( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
error: char124: trailing garbage in tag header
ok 24 - detect invalid header entry
expecting success: git mktag <tag.sig >.git/refs/tags/mytag 2>message
ok 25 - create valid tag
expecting success: git tag -l | grep mytag
mytag
ok 26 - check mytag
# passed all 26 test(s)
1..26
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3513-revert-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/.git/
expecting success:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1/.git/
[master (root-commit) 0827b87] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub2/.git/
[master (root-commit) 8aacf31] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_repo/.git/
[master (root-commit) d288bb1] 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.t3513-revert-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 e978cd8] 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 4bfb11f] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:34 2018 +0000
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 c839d55] 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.t3513-revert-submodule/submodule_update_sub1
* [new branch] modifications -> modifications
[modify_sub1 b45a46f] 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.t3513-revert-submodule/submodule_update_repo/sub1/sub2'...
done.
[add_nested_sub 9bfb95f] 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 92bed49] 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 2a416c9] 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 b9ab1b4] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively 186fd0c] update sub1, that updates nested sub
Author: A U Thor <author@example.com>
To /<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1
* [new branch] modify_sub1_recursively -> modify_sub1_recursively
To /<<PKGBUILDDIR>>/t/trash directory.t3513-revert-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 '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
Previous HEAD position was 0827b87 Base inside first submodule
Switched to branch 'modifications'
rm 'sub1'
[replace_sub1_with_directory 5781995] 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 5c49a84] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:38 2018 +0000
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 136cd0a] 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 e2875f8] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:38 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Switched to a new branch 'invalid_sub1'
[invalid_sub1 16d4de7] Invalid sub1 commit
Author: A U Thor <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 807a692] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:39 2018 +0000
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'.
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[add_sub1 7782136] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:39 2018 +0000
3 files changed, 9 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 sub1
delete mode 160000 uninitialized_sub
[add_sub1 7d808e3] Revert "Revert "Add sub1""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:39 2018 +0000
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
Submodule path 'uninitialized_sub': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
ok 1 - git_revert: added submodule creates empty directory
expecting success:
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'.
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[add_sub1 1d238da] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:41 2018 +0000
3 files changed, 9 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 sub1
delete mode 160000 uninitialized_sub
[add_sub1 d09959d] Revert "Revert "Add sub1""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:41 2018 +0000
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
Submodule path 'uninitialized_sub': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
ok 2 - git_revert: added submodule leaves existing empty directory alone
expecting success:
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'.
[replace_file_with_sub1 afc051d] Revert "Revert "Replace sub1 with file""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:43 2018 +0000
2 files changed, 1 insertion(+), 5 deletions(-)
mode change 160000 => 100644 sub1
[replace_file_with_sub1 9c43d04] Revert "Revert "Revert "Replace sub1 with file"""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:43 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
Submodule path 'uninitialized_sub': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
ok 3 - git_revert: replace tracked file with submodule creates empty directory
checking known breakage:
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'.
Adding sub1/file3
Adding sub1/file2
Adding sub1/file1
Removing sub1
[replace_directory_with_sub1 482d286] Revert "Revert "Replace sub1 with directory""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:46 2018 +0000
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
Removing sub1/file3
Removing sub1/file2
Removing sub1/file1
Adding sub1
[replace_directory_with_sub1 479364a] Revert "Revert "Revert "Replace sub1 with directory"""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:46 2018 +0000
4 files changed, 4 insertions(+), 3 deletions(-)
delete mode 100644 sub1/file1
delete mode 100644 sub1/file2
delete mode 100644 sub1/file3
Directory sub1 doesn't exist.
not ok 4 - git_revert: replace directory with submodule # TODO known breakage
expecting success:
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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'.
[remove_sub1 ba3c0b5] Revert "Revert "Add sub1""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:47 2018 +0000
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[remove_sub1 0f00971] Revert "Revert "Revert "Add sub1"""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:47 2018 +0000
3 files changed, 9 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 sub1
delete mode 160000 uninitialized_sub
ok 5 - git_revert: removed submodule leaves submodule directory and its contents in place
expecting success:
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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'.
[remove_sub1 e28773b] Revert "Revert "Add sub1""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:49 2018 +0000
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Removing uninitialized_sub
Removing sub1
Removing .gitmodules
[remove_sub1 16e2931] Revert "Revert "Revert "Add sub1"""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:49 2018 +0000
3 files changed, 9 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 sub1
delete mode 160000 uninitialized_sub
ok 6 - git_revert: removed submodule leaves submodule containing a .git directory alone
expecting success:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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 7 - git_revert: replace submodule with a directory must fail
expecting success:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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 8 - git_revert: replace submodule containing a .git directory with a directory must fail
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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'.
[replace_sub1_with_file 19da1e1] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:54 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
[replace_sub1_with_file 629df5f] Revert "Revert "Replace sub1 with file""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:54 2018 +0000
2 files changed, 1 insertion(+), 5 deletions(-)
mode change 160000 => 100644 sub1
test_must_fail: command succeeded: git_revert replace_sub1_with_file
not ok 9 - git_revert: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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'.
[replace_sub1_with_file 1e3999f] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:56 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
[replace_sub1_with_file ebd5350] Revert "Revert "Replace sub1 with file""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:56 2018 +0000
2 files changed, 1 insertion(+), 5 deletions(-)
mode change 160000 => 100644 sub1
test_must_fail: command succeeded: git_revert replace_sub1_with_file
not ok 10 - git_revert: replace submodule containing a .git directory with a file must fail # TODO known breakage
expecting success:
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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'.
[modify_sub1 8c73c46] Revert "Modify sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:58 2018 +0000
[modify_sub1 b326864] Revert "Revert "Modify sub1""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:11:58 2018 +0000
Submodule path 'sub1': checked out 'c839d550004c004b9727f35faf2bc222a039c6df'
ok 11 - git_revert: modified submodule does not update submodule work tree
expecting success:
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.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
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'.
[invalid_sub1 dc4b5f1] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:00 2018 +0000
[invalid_sub1 1d97f15] Revert "Revert "Invalid sub1 commit""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:00 2018 +0000
error: Server does not allow request for unadvertised object 0123456789012345678901234567890123456789
Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed.
ok 12 - git_revert: modified submodule does not update submodule work tree to invalid commit
expecting success:
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'.
[valid_sub1 f61fdcd] Revert "Revert "Invalid sub1 commit""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:02 2018 +0000
[valid_sub1 d8f7719] Revert "Revert "Revert "Invalid sub1 commit"""
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:02 2018 +0000
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3513-revert-submodule/submodule_update/uninitialized_sub'...
done.
Submodule path 'sub1': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
Submodule path 'uninitialized_sub': checked out '0827b8745ea052fc7232770c49e383ce9e4a0ebb'
ok 13 - git_revert: modified submodule does not update submodule work tree from invalid commit
expecting success:
prolog &&
reset_work_tree_to 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 14 - git_revert: added submodule doesn't remove untracked unignored file with same name
# still have 3 known breakage(s)
# passed all remaining 11 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3900-i18n-commit.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3900-i18n-commit/.git/
expecting success:
: >F &&
git add F &&
T=$(git write-tree) &&
C=$(git commit-tree $T <"$TEST_DIRECTORY"/t3900/1-UTF-8.txt) &&
git update-ref HEAD $C &&
git tag C0
ok 1 - setup
expecting success:
E=$(git cat-file commit C0 | sed -ne "s/^encoding //p") &&
test z = "z$E"
ok 2 - no encoding header for base case
expecting success:
echo UTF-16 >F &&
test_must_fail git commit -a -F "$TEST_DIRECTORY"/t3900/UTF-16.txt
error: a NUL byte in commit log message not allowed.
fatal: failed to write commit object
ok 3 - UTF-16 refused because of NULs
expecting success:
test_when_finished "rm -f \"\$HOME/stderr\" \"\$HOME/invalid\"" &&
echo "UTF-8 characters" >F &&
printf "Commit message\n\nInvalid surrogate:\355\240\200\n" \
>"$HOME/invalid" &&
git commit -a -F "$HOME/invalid" 2>"$HOME"/stderr &&
test_i18ngrep "did not conform" "$HOME"/stderr
[master 52fd941] Commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Warning: commit message did not conform to UTF-8.
ok 4 - UTF-8 invalid characters refused
expecting success:
test_when_finished "rm -f \"\$HOME/stderr\" \"\$HOME/invalid\"" &&
rm -f "$HOME/stderr" "$HOME/invalid" &&
echo "UTF-8 overlong" >F &&
printf "\340\202\251ommit message\n\nThis is not a space:\300\240\n" \
>"$HOME/invalid" &&
git commit -a -F "$HOME/invalid" 2>"$HOME"/stderr &&
test_i18ngrep "did not conform" "$HOME"/stderr
[master 75ff97c] à©ommit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Warning: commit message did not conform to UTF-8.
ok 5 - UTF-8 overlong sequences rejected
expecting success:
test_when_finished "rm -f \"\$HOME/stderr\" \"\$HOME/invalid\"" &&
echo "UTF-8 non-character 1" >F &&
printf "Commit message\n\nNon-character:\364\217\277\276\n" \
>"$HOME/invalid" &&
git commit -a -F "$HOME/invalid" 2>"$HOME"/stderr &&
test_i18ngrep "did not conform" "$HOME"/stderr
[master eff4562] Commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Warning: commit message did not conform to UTF-8.
ok 6 - UTF-8 non-characters refused
expecting success:
test_when_finished "rm -f \"\$HOME/stderr\" \"\$HOME/invalid\"" &&
echo "UTF-8 non-character 2." >F &&
printf "Commit message\n\nNon-character:\357\267\220\n" \
>"$HOME/invalid" &&
git commit -a -F "$HOME/invalid" 2>"$HOME"/stderr &&
test_i18ngrep "did not conform" "$HOME"/stderr
[master ed6db46] Commit message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Warning: commit message did not conform to UTF-8.
ok 7 - UTF-8 non-characters refused
expecting success:
git config i18n.commitencoding $H &&
git checkout -b $H C0 &&
echo $H >F &&
git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt
Switched to a new branch 'ISO8859-1'
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 8 - ISO8859-1 setup
expecting success:
git config i18n.commitencoding $H &&
git checkout -b $H C0 &&
echo $H >F &&
git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt
Switched to a new branch 'eucJP'
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 9 - eucJP setup
expecting success:
git config i18n.commitencoding $H &&
git checkout -b $H C0 &&
echo $H >F &&
git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt
Switched to a new branch 'ISO-2022-JP'
[ISO-2022-JP 402ebc3] $B$O$l$R$[$U(B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 10 - ISO-2022-JP setup
expecting success:
E=$(git cat-file commit ISO8859-1 | sed -ne "s/^encoding //p") &&
test "z$E" = "zISO8859-1"
ok 11 - check encoding header for ISO8859-1
expecting success:
E=$(git cat-file commit eucJP | sed -ne "s/^encoding //p") &&
test "z$E" = "zeucJP"
ok 12 - check encoding header for eucJP
expecting success:
E=$(git cat-file commit ISO-2022-JP | sed -ne "s/^encoding //p") &&
test "z$E" = "zISO-2022-JP"
ok 13 - check encoding header for ISO-2022-JP
expecting success:
git config --unset-all i18n.commitencoding &&
if Z=$(git config --get-all i18n.commitencoding)
then
echo Oops, should have failed.
false
else
test z = "z$Z"
fi &&
git config i18n.commitencoding UTF-8
ok 14 - config to remove customization
expecting success:
compare_with ISO8859-1 "$TEST_DIRECTORY"/t3900/1-UTF-8.txt
ok 15 - ISO8859-1 should be shown in UTF-8 now
expecting success:
compare_with eucJP "$TEST_DIRECTORY"/t3900/2-UTF-8.txt
ok 16 - eucJP should be shown in UTF-8 now
expecting success:
compare_with ISO-2022-JP "$TEST_DIRECTORY"/t3900/2-UTF-8.txt
ok 17 - ISO-2022-JP should be shown in UTF-8 now
expecting success:
git config --unset-all i18n.commitencoding &&
if Z=$(git config --get-all i18n.commitencoding)
then
echo Oops, should have failed.
false
else
test z = "z$Z"
fi
ok 18 - config to add customization
expecting success:
git config i18n.commitencoding ISO8859-1 &&
compare_with ISO8859-1 "$TEST_DIRECTORY"/t3900/ISO8859-1.txt
ok 19 - ISO8859-1 should be shown in itself now
expecting success:
git config i18n.commitencoding eucJP &&
compare_with eucJP "$TEST_DIRECTORY"/t3900/eucJP.txt
ok 20 - eucJP should be shown in itself now
expecting success:
git config i18n.commitencoding ISO-2022-JP &&
compare_with ISO-2022-JP "$TEST_DIRECTORY"/t3900/ISO-2022-JP.txt
ok 21 - ISO-2022-JP should be shown in itself now
expecting success:
git config i18n.logoutputencoding UTF-8
ok 22 - config to tweak customization
expecting success:
compare_with ISO8859-1 "$TEST_DIRECTORY"/t3900/1-UTF-8.txt
ok 23 - ISO8859-1 should be shown in UTF-8 now
expecting success:
compare_with eucJP "$TEST_DIRECTORY"/t3900/2-UTF-8.txt
ok 24 - eucJP should be shown in UTF-8 now
expecting success:
compare_with ISO-2022-JP "$TEST_DIRECTORY"/t3900/2-UTF-8.txt
ok 25 - ISO-2022-JP should be shown in UTF-8 now
expecting success:
compare_with eucJP "$TEST_DIRECTORY"/t3900/eucJP.txt $ICONV
ok 26 - eucJP should be shown in eucJP now
expecting success:
compare_with ISO-2022-JP "$TEST_DIRECTORY"/t3900/eucJP.txt $ICONV
ok 27 - ISO-2022-JP should be shown in eucJP now
expecting success:
compare_with eucJP "$TEST_DIRECTORY"/t3900/ISO-2022-JP.txt $ICONV
ok 28 - eucJP should be shown in ISO-2022-JP now
expecting success:
compare_with ISO-2022-JP "$TEST_DIRECTORY"/t3900/ISO-2022-JP.txt $ICONV
ok 29 - ISO-2022-JP should be shown in ISO-2022-JP now
expecting success:
compare_with "--encoding=none ISO8859-1" "$TEST_DIRECTORY"/t3900/ISO8859-1.txt
ok 30 - No conversion with ISO8859-1
expecting success:
compare_with "--encoding=none eucJP" "$TEST_DIRECTORY"/t3900/eucJP.txt
ok 31 - No conversion with eucJP
expecting success:
compare_with "--encoding=none ISO-2022-JP" "$TEST_DIRECTORY"/t3900/ISO-2022-JP.txt
ok 32 - No conversion with ISO-2022-JP
expecting success:
git config i18n.commitencoding $H &&
git checkout -b $H-$flag C0 &&
echo $H >>F &&
git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt &&
test_tick &&
echo intermediate stuff >>G &&
git add G &&
git commit -a -m "intermediate commit" &&
test_tick &&
echo $H $flag >>F &&
git commit -a --$flag HEAD~1 &&
E=$(git cat-file commit eucJP-fixup |
sed -ne "s/^encoding //p") &&
test "z$E" = "z$H" &&
git config --unset-all i18n.commitencoding &&
git rebase --autosquash -i HEAD^^^ &&
git log --oneline >actual &&
test_line_count = 3 actual
Switched to a new branch 'eucJP-fixup'
[eucJP-fixup e5c40b5] $B$O$l$R$[$U(B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[eucJP-fixup ca4c1f3] intermediate commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 G
[eucJP-fixup 46227c8] fixup! $B$O$l$R$[$U(B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Rebasing (2/3)
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.
Rebasing (3/3)
Successfully rebased and updated refs/heads/eucJP-fixup.
ok 33 - commit --fixup with eucJP encoding
expecting success:
git config i18n.commitencoding $H &&
git checkout -b $H-$flag C0 &&
echo $H >>F &&
git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt &&
test_tick &&
echo intermediate stuff >>G &&
git add G &&
git commit -a -m "intermediate commit" &&
test_tick &&
echo $H $flag >>F &&
git commit -a --$flag HEAD~1 &&
E=$(git cat-file commit ISO-2022-JP-squash |
sed -ne "s/^encoding //p") &&
test "z$E" = "z$H" &&
git config --unset-all i18n.commitencoding &&
git rebase --autosquash -i HEAD^^^ &&
git log --oneline >actual &&
test_line_count = 3 actual
Switched to a new branch 'ISO-2022-JP-squash'
[ISO-2022-JP-squash 6c2f21d] $B$O$l$R$[$U(B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[ISO-2022-JP-squash a72120e] intermediate commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 G
[ISO-2022-JP-squash 9dfd89b] squash! $B$O$l$R$[$U(B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Rebasing (2/3)
[detached HEAD c943f32] $B$O$l$R$[$U(B
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 2 insertions(+)
Rebasing (3/3)
Successfully rebased and updated refs/heads/ISO-2022-JP-squash.
ok 34 - commit --squash with ISO-2022-JP encoding
# passed all 34 test(s)
1..34
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3902-quoted.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3902-quoted/.git/
expecting success:
mkdir "$FN" &&
for_each_name "echo initial >\"\$name\"" &&
git add . &&
git commit -q -m Initial &&
for_each_name "echo second >\"\$name\"" &&
git commit -a -m Second &&
for_each_name "echo modified >\"\$name\""
[master 604177a] Second
Author: A U Thor <author@example.com>
11 files changed, 11 insertions(+), 11 deletions(-)
ok 1 - setup
expecting success:
cat >expect.quoted <<\EOF &&
Name
"Name and a\nLF"
"Name and an\tHT"
"Name\""
With SP in it
"\346\277\261\351\207\216\t\347\264\224"
"\346\277\261\351\207\216\n\347\264\224"
"\346\277\261\351\207\216 \347\264\224"
"\346\277\261\351\207\216\"\347\264\224"
"\346\277\261\351\207\216/file"
"\346\277\261\351\207\216\347\264\224"
EOF
cat >expect.raw <<\EOF
Name
"Name and a\nLF"
"Name and an\tHT"
"Name\""
With SP in it
"濱野\t純"
"濱野\n純"
濱野 純
"濱野\"純"
濱野/file
濱野純
EOF
ok 2 - setup expected files
expecting success:
git ls-files >current && test_cmp expect.quoted current
ok 3 - check fully quoted output from ls-files
expecting success:
git diff --name-only >current &&
test_cmp expect.quoted current
ok 4 - check fully quoted output from diff-files
expecting success:
git diff --name-only HEAD >current &&
test_cmp expect.quoted current
ok 5 - check fully quoted output from diff-index
expecting success:
git diff --name-only HEAD^ HEAD >current &&
test_cmp expect.quoted current
ok 6 - check fully quoted output from diff-tree
expecting success:
git ls-tree --name-only -r HEAD >current &&
test_cmp expect.quoted current
ok 7 - check fully quoted output from ls-tree
expecting success:
git config --bool core.quotepath false
ok 8 - setting core.quotepath
expecting success:
git ls-files >current && test_cmp expect.raw current
ok 9 - check fully quoted output from ls-files
expecting success:
git diff --name-only >current &&
test_cmp expect.raw current
ok 10 - check fully quoted output from diff-files
expecting success:
git diff --name-only HEAD >current &&
test_cmp expect.raw current
ok 11 - check fully quoted output from diff-index
expecting success:
git diff --name-only HEAD^ HEAD >current &&
test_cmp expect.raw current
ok 12 - check fully quoted output from diff-tree
expecting success:
git ls-tree --name-only -r HEAD >current &&
test_cmp expect.raw current
ok 13 - check fully quoted output from ls-tree
# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3901-i18n-patch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3901-i18n-patch/.git/
expecting success:
git config i18n.commitencoding UTF-8 &&
# use UTF-8 in author and committer name to match the
# i18n.commitencoding settings
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
test_tick &&
echo "$GIT_AUTHOR_NAME" >mine &&
git add mine &&
git commit -s -m "Initial commit" &&
test_tick &&
echo Hello world >mine &&
git add mine &&
git commit -s -m "Second on main" &&
# the first commit on the side branch is UTF-8
test_tick &&
git checkout -b side master^ &&
echo Another file >yours &&
git add yours &&
git commit -s -m "Second on side" &&
if test_have_prereq !MINGW
then
# the second one on the side branch is ISO-8859-1
git config i18n.commitencoding ISO8859-1 &&
# use author and committer name in ISO-8859-1 to match it.
. "$TEST_DIRECTORY"/t3901/8859-1.txt
fi &&
test_tick &&
echo Yet another >theirs &&
git add theirs &&
git commit -s -m "Third on side" &&
# Back to default
git config i18n.commitencoding UTF-8
[master (root-commit) a751cb4] Initial commit
Author: Áéí óú <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 mine
[master 1abbfe5] Second on main
Author: Áéí óú <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'side'
[side 907dc52] Second on side
Author: Áéí óú <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 yours
[side 717f610] Third on side
1 file changed, 1 insertion(+)
create mode 100644 theirs
ok 1 - setup
expecting success:
git config i18n.logoutputencoding ISO8859-1 &&
git format-patch --stdout master..HEAD^ >out-l1 &&
git format-patch --stdout HEAD^ >out-l2 &&
grep "^Content-Type: text/plain; charset=ISO8859-1" out-l1 &&
grep "^From: =?ISO8859-1?q?=C1=E9=ED=20=F3=FA?=" out-l1 &&
grep "^Content-Type: text/plain; charset=ISO8859-1" out-l2 &&
grep "^From: =?ISO8859-1?q?=C1=E9=ED=20=F3=FA?=" out-l2
Content-Type: text/plain; charset=ISO8859-1
From: =?ISO8859-1?q?=C1=E9=ED=20=F3=FA?= <author@example.com>
Content-Type: text/plain; charset=ISO8859-1
From: =?ISO8859-1?q?=C1=E9=ED=20=F3=FA?= <author@example.com>
ok 2 - format-patch output (ISO-8859-1)
expecting success:
git config i18n.logoutputencoding UTF-8 &&
git format-patch --stdout master..HEAD^ >out-u1 &&
git format-patch --stdout HEAD^ >out-u2 &&
grep "^Content-Type: text/plain; charset=UTF-8" out-u1 &&
grep "^From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?=" out-u1 &&
grep "^Content-Type: text/plain; charset=UTF-8" out-u2 &&
grep "^From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?=" out-u2
Content-Type: text/plain; charset=UTF-8
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
Content-Type: text/plain; charset=UTF-8
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 3 - format-patch output (UTF-8)
expecting success:
# We want the result of rebase in UTF-8
git config i18n.commitencoding UTF-8 &&
# The test is about logoutputencoding not affecting the
# final outcome -- it is used internally to generate the
# patch and the log.
git config i18n.logoutputencoding UTF-8 &&
# The result will be committed by GIT_COMMITTER_NAME --
# we want UTF-8 encoded name.
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git checkout -b test &&
git rebase master &&
check_encoding 2
Switched to a new branch 'test'
First, rewinding head to replay your work on top of it...
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 4 - rebase (U/U)
expecting success:
git config i18n.commitencoding UTF-8 &&
git config i18n.logoutputencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard side &&
git rebase master &&
check_encoding 2
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 5 - rebase (U/L)
expecting success:
# In this test we want ISO-8859-1 encoded commits as the result
git config i18n.commitencoding ISO8859-1 &&
git config i18n.logoutputencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard side &&
git rebase master &&
check_encoding 2 8859
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 6 - rebase (L/L)
expecting success:
# This is pathological -- use UTF-8 as intermediate form
# to get ISO-8859-1 results.
git config i18n.commitencoding ISO8859-1 &&
git config i18n.logoutputencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard side &&
git rebase master &&
check_encoding 2 8859
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 7 - rebase (L/U)
expecting success:
# Both the commitencoding and logoutputencoding is set to UTF-8.
git config i18n.commitencoding UTF-8 &&
git config i18n.logoutputencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard master &&
git cherry-pick side^ &&
git cherry-pick side &&
git revert HEAD &&
check_encoding 3
HEAD is now at 1abbfe5 Second on main
[test 226e420] Second on side
Author: Áéí óú <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
[test 0c82aa3] Third on side
Author: Áéí óú <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Removing theirs
[test 267f566] Revert "Third on side"
Author: Áéí óú <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 theirs
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 8 - cherry-pick(U/U)
expecting success:
# Both the commitencoding and logoutputencoding is set to ISO-8859-1
git config i18n.commitencoding ISO8859-1 &&
git config i18n.logoutputencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard master &&
git cherry-pick side^ &&
git cherry-pick side &&
git revert HEAD &&
check_encoding 3 8859
HEAD is now at 1abbfe5 Second on main
[test e1b2855] Second on side
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
[test 37f31da] Third on side
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Removing theirs
[test 2f88e21] Revert "Third on side"
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 theirs
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 9 - cherry-pick(L/L)
expecting success:
# Commitencoding is set to UTF-8 but logoutputencoding is ISO-8859-1
git config i18n.commitencoding UTF-8 &&
git config i18n.logoutputencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard master &&
git cherry-pick side^ &&
git cherry-pick side &&
git revert HEAD &&
check_encoding 3
HEAD is now at 1abbfe5 Second on main
[test 226e420] Second on side
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
[test 0c82aa3] Third on side
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Removing theirs
[test 267f566] Revert "Third on side"
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 theirs
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 10 - cherry-pick(U/L)
expecting success:
# Again, the commitencoding is set to ISO-8859-1 but
# logoutputencoding is set to UTF-8.
git config i18n.commitencoding ISO8859-1 &&
git config i18n.logoutputencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard master &&
git cherry-pick side^ &&
git cherry-pick side &&
git revert HEAD &&
check_encoding 3 8859
HEAD is now at 1abbfe5 Second on main
[test e1b2855] Second on side
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
[test 37f31da] Third on side
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Removing theirs
[test 2f88e21] Revert "Third on side"
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 theirs
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 11 - cherry-pick(L/U)
expecting success:
git config i18n.commitencoding UTF-8 &&
git config i18n.logoutputencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard side &&
git rebase --merge master &&
check_encoding 2
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
1abbfe5 Second on main
907dc52 Second on side
found 1 common ancestor:
a751cb4 Initial commit
[detached HEAD 226e420] Second on side
Author: Áéí óú <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
Committed: 0001 Second on side
Merging master with HEAD~0
Merging:
226e420 Second on side
717f610 Third on side
found 1 common ancestor:
907dc52 Second on side
[detached HEAD 0c82aa3] Third on side
Author: Áéí óú <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Committed: 0002 Third on side
All done.
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 12 - rebase --merge (U/U)
expecting success:
git config i18n.commitencoding UTF-8 &&
git config i18n.logoutputencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard side &&
git rebase --merge master &&
check_encoding 2
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
1abbfe5 Second on main
907dc52 Second on side
found 1 common ancestor:
a751cb4 Initial commit
[detached HEAD 226e420] Second on side
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
Committed: 0001 Second on side
Merging master with HEAD~0
Merging:
226e420 Second on side
717f610 Third on side
found 1 common ancestor:
907dc52 Second on side
[detached HEAD 0c82aa3] Third on side
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Committed: 0002 Third on side
All done.
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 13 - rebase --merge (U/L)
expecting success:
# In this test we want ISO-8859-1 encoded commits as the result
git config i18n.commitencoding ISO8859-1 &&
git config i18n.logoutputencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard side &&
git rebase --merge master &&
check_encoding 2 8859
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
1abbfe5 Second on main
907dc52 Second on side
found 1 common ancestor:
a751cb4 Initial commit
[detached HEAD e1b2855] Second on side
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
Committed: 0001 Second on side
Merging master with HEAD~0
Merging:
e1b2855 Second on side
717f610 Third on side
found 1 common ancestor:
907dc52 Second on side
[detached HEAD 37f31da] Third on side
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Committed: 0002 Third on side
All done.
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 14 - rebase --merge (L/L)
expecting success:
# This is pathological -- use UTF-8 as intermediate form
# to get ISO-8859-1 results.
git config i18n.commitencoding ISO8859-1 &&
git config i18n.logoutputencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard side &&
git rebase --merge master &&
check_encoding 2 8859
HEAD is now at 717f610 Third on side
First, rewinding head to replay your work on top of it...
Merging master with HEAD~1
Merging:
1abbfe5 Second on main
907dc52 Second on side
found 1 common ancestor:
a751cb4 Initial commit
[detached HEAD e1b2855] Second on side
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 yours
Committed: 0001 Second on side
Merging master with HEAD~0
Merging:
e1b2855 Second on side
717f610 Third on side
found 1 common ancestor:
907dc52 Second on side
[detached HEAD 37f31da] Third on side
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 theirs
Committed: 0002 Third on side
All done.
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 15 - rebase --merge (L/U)
expecting success:
# Apply UTF-8 patches with UTF-8 commitencoding
git config i18n.commitencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard master &&
git am out-u1 out-u2 &&
check_encoding 2
HEAD is now at 1abbfe5 Second on main
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 16 - am (U/U)
expecting success:
# Apply ISO-8859-1 patches with ISO-8859-1 commitencoding
git config i18n.commitencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard master &&
git am out-l1 out-l2 &&
check_encoding 2 8859
HEAD is now at 1abbfe5 Second on main
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 17 - am (L/L)
expecting success:
# Apply ISO-8859-1 patches with UTF-8 commitencoding
git config i18n.commitencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard master &&
# am specifies --utf8 by default.
git am out-l1 out-l2 &&
check_encoding 2
HEAD is now at 1abbfe5 Second on main
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 18 - am (U/L)
expecting success:
# Apply ISO-8859-1 patches with UTF-8 commitencoding
git config i18n.commitencoding UTF-8 &&
. "$TEST_DIRECTORY"/t3901/utf8.txt &&
git reset --hard master &&
git am --no-utf8 out-l1 out-l2 2>err &&
# commit-tree will warn that the commit message does not contain valid UTF-8
# as mailinfo did not convert it
test_i18ngrep "did not conform" err &&
check_encoding 2
HEAD is now at 1abbfe5 Second on main
Applying: Second on side
Applying: Third on side
Warning: commit message did not conform to UTF-8.
Warning: commit message did not conform to UTF-8.
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
ok 19 - am --no-utf8 (U/L)
expecting success:
# Apply UTF-8 patches with ISO-8859-1 commitencoding
git config i18n.commitencoding ISO8859-1 &&
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
git reset --hard master &&
# mailinfo will re-code the commit message to the charset specified by
# i18n.commitencoding
git am out-u1 out-u2 &&
check_encoding 2 8859
HEAD is now at 1abbfe5 Second on main
Applying: Second on side
Applying: Third on side
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
From: =?UTF-8?q?=C3=81=C3=A9=C3=AD=20=C3=B3=C3=BA?= <author@example.com>
encoding ISO8859-1
ok 20 - am (L/U)
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3600-rm.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.git/
expecting success: touch -- foo bar baz 'space embedded' -q &&
git add -- foo bar baz 'space embedded' -q &&
git commit -m 'add normal files'
[master (root-commit) 7e879a5] add normal files
Author: A U Thor <author@example.com>
5 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 -q
create mode 100644 bar
create mode 100644 baz
create mode 100644 foo
create mode 100644 space embedded
ok 1 - Initialize test directory
expecting success:
git add -- 'tab embedded' 'newline
embedded' &&
git commit -m 'add files with tabs and newlines'
[master 2e0f956] add files with tabs and newlines
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 "newline\nembedded"
create mode 100644 "tab\tembedded"
ok 2 - add files with funny names
expecting success: [ -f foo ] && git ls-files --error-unmatch foo
foo
ok 3 - Pre-check that foo exists and is in index before git rm foo
expecting success: git rm --cached foo
rm 'foo'
ok 4 - Test that git rm foo succeeds
expecting success: echo content >foo &&
git add foo &&
git rm --cached foo
rm 'foo'
ok 5 - Test that git rm --cached foo succeeds if the index matches the file
expecting success: echo content >foo &&
git add foo &&
git commit -m foo &&
echo "other content" >foo &&
git rm --cached foo
[master 7b13bbb] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
rm 'foo'
ok 6 - Test that git rm --cached foo succeeds if the index matches the file
expecting success:
echo content >foo &&
git add foo &&
git commit -m foo --allow-empty &&
echo "other content" >foo &&
git add foo &&
echo "yet another content" >foo &&
test_must_fail git rm --cached foo
[master 3d38b05] foo
Author: A U Thor <author@example.com>
error: the following file has staged content different from both the
file and the HEAD:
foo
(use -f to force removal)
ok 7 - Test that git rm --cached foo fails if the index matches neither the file nor HEAD
expecting success: echo content >foo &&
git add foo &&
git commit -m foo --allow-empty &&
echo "other content" >foo &&
git add foo &&
echo "yet another content" >foo &&
git rm --cached -f foo
[master f1c5cba] foo
Author: A U Thor <author@example.com>
rm 'foo'
ok 8 - Test that git rm --cached -f foo works in case where --cached only did not
expecting success: [ -f foo ] && test_must_fail git ls-files --error-unmatch foo
error: pathspec 'foo' did not match any file(s) known to git.
Did you forget to 'git add'?
ok 9 - Post-check that foo exists but is not in index after git rm foo
expecting success: [ -f bar ] && git ls-files --error-unmatch bar
bar
ok 10 - Pre-check that bar exists and is in index before "git rm bar"
expecting success: git rm bar
rm 'bar'
ok 11 - Test that "git rm bar" succeeds
expecting success: ! [ -f bar ] && test_must_fail git ls-files --error-unmatch bar
error: pathspec 'bar' did not match any file(s) known to git.
Did you forget to 'git add'?
ok 12 - Post-check that bar does not exist and is not in index after "git rm -f bar"
expecting success: git rm -- -q
rm '-q'
ok 13 - Test that "git rm -- -q" succeeds (remove a file that looks like an option)
expecting success: git rm -f 'space embedded' 'tab embedded' 'newline
embedded'
rm 'newline
embedded'
rm 'space embedded'
rm 'tab embedded'
ok 14 - Test that "git rm -f" succeeds with embedded space, tab, or newline characters.
checking prerequisite: SANITY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
test_when_finished "chmod 775 ." &&
chmod a-w . &&
test_must_fail git rm -f baz
fatal: git rm: 'baz': Permission denied
rm 'baz'
ok 15 - Test that "git rm -f" fails if its rm fails
expecting success: git ls-files --error-unmatch baz
baz
ok 16 - When the rm in "git rm -f" fails, it should not remove the file from the index
expecting success:
git rm --ignore-unmatch nonexistent
ok 17 - Remove nonexistent file with --ignore-unmatch
expecting success:
echo frotz >test-file &&
git add test-file &&
git commit -m "add file for rm test" &&
git rm test-file >rm-output &&
test $(grep "^rm " rm-output | wc -l) = 1 &&
rm -f test-file rm-output &&
git commit -m "remove file from rm test"
[master c359147] add file for rm test
Author: A U Thor <author@example.com>
7 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 -q
delete mode 100644 bar
delete mode 100644 foo
delete mode 100644 "newline\nembedded"
delete mode 100644 space embedded
delete mode 100644 "tab\tembedded"
create mode 100644 test-file
[master bded3cd] remove file from rm test
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 test-file
ok 18 - "rm" command printed
expecting success:
echo frotz >test-file &&
git add test-file &&
git commit -m "add file for rm --quiet test" &&
git rm --quiet test-file >rm-output &&
test_must_be_empty rm-output &&
rm -f test-file rm-output &&
git commit -m "remove file from rm --quiet test"
[master 5115633] add file for rm --quiet test
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 test-file
[master 848428a] remove file from rm --quiet test
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
delete mode 100644 test-file
ok 19 - "rm" command suppressed with --quiet
expecting success:
git add foo baz &&
git ls-files --error-unmatch foo baz
baz
foo
ok 20 - Re-add foo and baz
expecting success:
echo >>foo &&
test_must_fail git rm foo baz &&
test -f foo &&
test -f baz &&
git ls-files --error-unmatch foo baz
error: the following file has staged content different from both the
file and the HEAD:
foo
(use -f to force removal)
baz
foo
ok 21 - Modify foo -- rm should refuse
expecting success:
git rm -f foo baz &&
test ! -f foo &&
test ! -f baz &&
test_must_fail git ls-files --error-unmatch foo &&
test_must_fail git ls-files --error-unmatch bar
rm 'baz'
rm 'foo'
error: pathspec 'foo' did not match any file(s) known to git.
Did you forget to 'git add'?
error: pathspec 'bar' did not match any file(s) known to git.
Did you forget to 'git add'?
ok 22 - Modified foo -- rm -f should work
expecting success:
echo frotz >foo &&
git checkout HEAD -- baz &&
git add foo baz &&
git ls-files --error-unmatch foo baz
baz
foo
ok 23 - Re-add foo and baz for HEAD tests
expecting success:
test_must_fail git rm foo baz &&
test -f foo &&
test -f baz &&
git ls-files --error-unmatch foo baz
error: the following file has changes staged in the index:
foo
(use --cached to keep the file, or -f to force removal)
baz
foo
ok 24 - foo is different in index from HEAD -- rm should refuse
expecting success:
git rm -f foo baz &&
test ! -f foo &&
test ! -f baz &&
test_must_fail git ls-files --error-unmatch foo &&
test_must_fail git ls-files --error-unmatch baz
rm 'baz'
rm 'foo'
error: pathspec 'foo' did not match any file(s) known to git.
Did you forget to 'git add'?
error: pathspec 'baz' did not match any file(s) known to git.
Did you forget to 'git add'?
ok 25 - but with -f it should work.
expecting success:
>empty &&
git add empty &&
echo content >empty &&
test_must_fail git rm --cached empty
error: the following file has staged content different from both the
file and the HEAD:
empty
(use -f to force removal)
ok 26 - refuse to remove cached empty file with modifications
expecting success:
echo content >intent-to-add &&
git add -N intent-to-add &&
git rm --cached intent-to-add
rm 'intent-to-add'
ok 27 - remove intent-to-add file without --force
expecting success:
mkdir -p frotz &&
echo qfwfq >frotz/nitfol &&
git add frotz &&
git commit -m "subdir test"
[master abddd86] subdir test
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
rename baz => empty (100%)
create mode 100644 frotz/nitfol
ok 28 - Recursive test setup
expecting success:
test_must_fail git rm frotz &&
test -d frotz &&
test -f frotz/nitfol
fatal: not removing 'frotz' recursively without -r
ok 29 - Recursive without -r fails
expecting success:
echo qfwfq >>frotz/nitfol &&
test_must_fail git rm -r frotz &&
test -d frotz &&
test -f frotz/nitfol
error: the following file has local modifications:
frotz/nitfol
(use --cached to keep the file, or -f to force removal)
ok 30 - Recursive with -r but dirty
expecting success:
git rm -f -r frotz &&
! test -f frotz/nitfol &&
! test -d frotz
rm 'frotz/nitfol'
ok 31 - Recursive with -r -f
expecting success:
test_must_fail git rm nonexistent
fatal: pathspec 'nonexistent' did not match any files
ok 32 - Remove nonexistent file returns nonzero exit status
expecting success:
mkdir repo &&
(cd repo &&
git init &&
echo something >somefile &&
git add somefile &&
git commit -m "add a file" &&
(cd .. &&
git --git-dir=repo/.git --work-tree=repo rm somefile) &&
test_must_fail git ls-files --error-unmatch somefile)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3600-rm/repo/.git/
[master (root-commit) 04cbb21] add a file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 somefile
rm 'somefile'
error: pathspec 'somefile' did not match any file(s) known to git.
Did you forget to 'git add'?
ok 33 - Call "rm" from outside the work tree
expecting success:
git reset --hard &&
test-tool chmtime -86400 frotz/nitfol &&
git rm frotz/nitfol &&
test ! -f frotz/nitfol
HEAD is now at abddd86 subdir test
rm 'frotz/nitfol'
ok 34 - refresh index before checking if it is up-to-date
expecting success:
git reset -q --hard &&
test_when_finished "rm -f .git/index.lock && git reset -q --hard" &&
i=0 &&
while test $i -lt 12000
do
echo "100644 1234567890123456789012345678901234567890 0 some-file-$i"
i=$(( $i + 1 ))
done | git update-index --index-info &&
git rm -n "some-file-*" | : &&
test_path_is_missing .git/index.lock
ok 35 - choking "git rm" should not let it die with cruft
expecting success:
mkdir -p dir/subdir/subsubdir &&
echo content >dir/subdir/subsubdir/file &&
git add dir/subdir/subsubdir/file &&
git rm -f dir/subdir/subsubdir/file &&
! test -d dir
rm 'dir/subdir/subsubdir/file'
ok 36 - rm removes subdirectories recursively
expecting success:
mkdir submod &&
git update-index --add --cacheinfo 160000 $(git rev-parse HEAD) submod &&
git config -f .gitmodules submodule.sub.url ./. &&
git config -f .gitmodules submodule.sub.path submod &&
git submodule init &&
git add .gitmodules &&
git commit -m "add submodule" &&
git rm submod &&
test ! -e submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual &&
test_must_fail git config -f .gitmodules submodule.sub.url &&
test_must_fail git config -f .gitmodules submodule.sub.path
warning: could not lookup configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream.
Submodule 'sub' (/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.) registered for path 'submod'
[master 53eb1db] add submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 submod
rm 'submod'
ok 37 - rm removes empty submodules from work tree
expecting success:
git reset --hard &&
git submodule update &&
rm -rf submod &&
git rm submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual &&
test_must_fail git config -f .gitmodules submodule.sub.url &&
test_must_fail git config -f .gitmodules submodule.sub.path
HEAD is now at 53eb1db add submodule
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/submod'...
done.
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
rm 'submod'
ok 38 - rm removes removed submodule from index and .gitmodules
expecting success:
git reset --hard &&
git submodule update &&
git rm submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual &&
test_must_fail git config -f .gitmodules submodule.sub.url &&
test_must_fail git config -f .gitmodules submodule.sub.path
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
rm 'submod'
ok 39 - rm removes work tree of unmodified submodules
expecting success:
git reset --hard &&
git submodule update &&
git rm submod/ &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
rm 'submod'
ok 40 - rm removes a submodule with a trailing /
expecting success:
test_must_fail git rm empty/
fatal: pathspec 'empty/' did not match any files
ok 41 - rm fails when given a file with a trailing /
expecting success:
git rm -r frotz/
rm 'frotz/nitfol'
ok 42 - rm succeeds when given a directory with a trailing /
expecting success:
git reset --hard &&
git submodule update &&
git -C submod checkout HEAD^ &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.modified actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual &&
test_must_fail git config -f .gitmodules submodule.sub.url &&
test_must_fail git config -f .gitmodules submodule.sub.path
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
Previous HEAD position was abddd86 subdir test
HEAD is now at 848428a remove file from rm --quiet test
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
rm 'submod'
ok 43 - rm of a populated submodule with different HEAD fails unless forced
expecting success:
git reset --hard &&
git submodule update &&
git rm --cached submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno >actual &&
test_cmp expect.cached actual &&
git config -f .gitmodules submodule.sub.url &&
git config -f .gitmodules submodule.sub.path
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
rm 'submod'
./.
submod
ok 44 - rm --cached leaves work tree of populated submodules and .gitmodules alone
expecting success:
git reset --hard &&
git submodule update &&
git rm -n submod &&
test -f submod/.git &&
git diff-index --exit-code HEAD
HEAD is now at 53eb1db add submodule
rm 'submod'
ok 45 - rm --dry-run does not touch the submodule or .gitmodules
expecting success:
git reset --hard &&
git submodule update &&
git rm .gitmodules &&
git rm submod >actual 2>actual.err &&
! test -s actual.err &&
! test -d submod &&
! test -f submod/.git &&
git status -s -uno >actual &&
test_cmp expect.both_deleted actual
HEAD is now at 53eb1db add submodule
rm '.gitmodules'
ok 46 - rm does not complain when no .gitmodules file is found
expecting success:
git reset --hard &&
git submodule update &&
git config -f .gitmodules foo.bar true &&
test_must_fail git rm submod >actual 2>actual.err &&
test -s actual.err &&
test -d submod &&
test -f submod/.git &&
git diff-files --quiet -- submod &&
git add .gitmodules &&
git rm submod >actual 2>actual.err &&
! test -s actual.err &&
! test -d submod &&
! test -f submod/.git &&
git status -s -uno >actual &&
test_cmp expect actual
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
ok 47 - rm will error out on a modified .gitmodules file unless staged
expecting success:
git reset --hard &&
git submodule update &&
git config -f .gitmodules --remove-section submodule.sub &&
git add .gitmodules &&
echo "warning: Could not find section in .gitmodules where path=submod" >expect.err &&
git rm submod >actual 2>actual.err &&
test_i18ncmp expect.err actual.err &&
! test -d submod &&
! test -f submod/.git &&
git status -s -uno >actual &&
test_cmp expect actual
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
ok 48 - rm issues a warning when section is not found in .gitmodules
expecting success:
git reset --hard &&
git submodule update &&
echo X >submod/empty &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.modified_inside actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
rm 'submod'
ok 49 - rm of a populated submodule with modifications fails unless forced
expecting success:
git reset --hard &&
git submodule update &&
echo X >submod/untracked &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.modified_untracked actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
rm 'submod'
ok 50 - rm of a populated submodule with untracked files fails unless forced
expecting success:
git reset --hard &&
git submodule update &&
git checkout -b branch1 &&
echo 1 >nitfol &&
git add nitfol &&
git commit -m "added nitfol 1" &&
git checkout -b branch2 master &&
echo 2 >nitfol &&
git add nitfol &&
git commit -m "added nitfol 2" &&
git checkout -b conflict1 master &&
git -C submod fetch &&
git -C submod checkout branch1 &&
git add submod &&
git commit -m "submod 1" &&
git checkout -b conflict2 master &&
git -C submod checkout branch2 &&
git add submod &&
git commit -m "submod 2"
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
Switched to a new branch 'branch1'
[branch1 2a0f0be] added nitfol 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 nitfol
Switched to a new branch 'branch2'
[branch2 b2baf71] added nitfol 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 nitfol
Switched to a new branch 'conflict1'
From /<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.
* [new branch] branch1 -> origin/branch1
* [new branch] branch2 -> origin/branch2
* [new branch] conflict1 -> origin/conflict1
Previous HEAD position was abddd86 subdir test
Switched to a new branch 'branch1'
Branch 'branch1' set up to track remote branch 'branch1' from 'origin'.
[conflict1 306a0f8] submod 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'conflict2'
M submod
Switched to a new branch 'branch2'
Branch 'branch2' set up to track remote branch 'branch2' from 'origin'.
[conflict2 7dcab63] submod 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 51 - setup submodule conflict
expecting success:
git checkout conflict1 &&
git reset --hard &&
git submodule update &&
test_must_fail git merge conflict2 &&
git rm submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
Switched to branch 'conflict1'
M submod
HEAD is now at 306a0f8 submod 1
Submodule path 'submod': checked out '2a0f0bea40930f640a8fdb2397a763e664536167'
Merging:
306a0f8 submod 1
virtual conflict2
found 1 common ancestor:
53eb1db add submodule
Failed to merge submodule submod (merge following commits not found)
Auto-merging submod
CONFLICT (submodule): Merge conflict in submod
Automatic merge failed; fix conflicts and then commit the result.
submod: needs merge
rm 'submod'
ok 52 - rm removes work tree of unmodified conflicted submodule
expecting success:
git checkout conflict1 &&
git reset --hard &&
git submodule update &&
git -C submod checkout HEAD^ &&
test_must_fail git merge conflict2 &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.conflict actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual &&
test_must_fail git config -f .gitmodules submodule.sub.url &&
test_must_fail git config -f .gitmodules submodule.sub.path
Already on 'conflict1'
M .gitmodules
D submod
HEAD is now at 306a0f8 submod 1
Submodule path 'submod': checked out '2a0f0bea40930f640a8fdb2397a763e664536167'
Previous HEAD position was 2a0f0be added nitfol 1
HEAD is now at 53eb1db add submodule
Merging:
306a0f8 submod 1
virtual conflict2
found 1 common ancestor:
53eb1db add submodule
Failed to merge submodule submod (merge following commits not found)
Auto-merging submod
CONFLICT (submodule): Merge conflict in submod
Automatic merge failed; fix conflicts and then commit the result.
submod: needs merge
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
submod: needs merge
rm 'submod'
ok 53 - rm of a conflicted populated submodule with different HEAD fails unless forced
expecting success:
git checkout conflict1 &&
git reset --hard &&
git submodule update &&
echo X >submod/empty &&
test_must_fail git merge conflict2 &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.conflict actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual &&
test_must_fail git config -f .gitmodules submodule.sub.url &&
test_must_fail git config -f .gitmodules submodule.sub.path
Already on 'conflict1'
M .gitmodules
D submod
HEAD is now at 306a0f8 submod 1
Submodule path 'submod': checked out '2a0f0bea40930f640a8fdb2397a763e664536167'
Merging:
306a0f8 submod 1
virtual conflict2
found 1 common ancestor:
53eb1db add submodule
Failed to merge submodule submod (merge following commits not found)
Auto-merging submod
CONFLICT (submodule): Merge conflict in submod
Automatic merge failed; fix conflicts and then commit the result.
submod: needs merge
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
submod: needs merge
rm 'submod'
ok 54 - rm of a conflicted populated submodule with modifications fails unless forced
expecting success:
git checkout conflict1 &&
git reset --hard &&
git submodule update &&
echo X >submod/untracked &&
test_must_fail git merge conflict2 &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.conflict actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
Already on 'conflict1'
M .gitmodules
D submod
HEAD is now at 306a0f8 submod 1
Submodule path 'submod': checked out '2a0f0bea40930f640a8fdb2397a763e664536167'
Merging:
306a0f8 submod 1
virtual conflict2
found 1 common ancestor:
53eb1db add submodule
Failed to merge submodule submod (merge following commits not found)
Auto-merging submod
CONFLICT (submodule): Merge conflict in submod
Automatic merge failed; fix conflicts and then commit the result.
submod: needs merge
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
submod: needs merge
rm 'submod'
ok 55 - rm of a conflicted populated submodule with untracked files fails unless forced
expecting success:
git checkout conflict1 &&
git reset --hard &&
git submodule update &&
(cd submod &&
rm .git &&
cp -R ../.git/modules/sub .git &&
GIT_WORK_TREE=. git config --unset core.worktree
) &&
test_must_fail git merge conflict2 &&
test_must_fail git rm submod &&
test -d submod &&
test -d submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.conflict actual &&
test_must_fail git rm -f submod &&
test -d submod &&
test -d submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.conflict actual &&
git merge --abort &&
rm -rf submod
Already on 'conflict1'
M .gitmodules
D submod
HEAD is now at 306a0f8 submod 1
Submodule path 'submod': checked out '2a0f0bea40930f640a8fdb2397a763e664536167'
Merging:
306a0f8 submod 1
virtual conflict2
found 1 common ancestor:
53eb1db add submodule
Failed to merge submodule submod (merge following commits not found)
Auto-merging submod
CONFLICT (submodule): Merge conflict in submod
Automatic merge failed; fix conflicts and then commit the result.
Migrating git directory of 'submod' from
'/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/submod/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.git/modules/sub'
fatal: could not migrate git directory from '/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/submod/.git' to '/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.git/modules/sub': Directory not empty
submod: needs merge
Migrating git directory of 'submod' from
'/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/submod/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.git/modules/sub'
fatal: could not migrate git directory from '/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/submod/.git' to '/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.git/modules/sub': Directory not empty
submod: needs merge
ok 56 - rm of a conflicted populated submodule with a .git directory fails even when forced
expecting success:
git checkout conflict1 &&
git reset --hard &&
test_must_fail git merge conflict2 &&
git rm submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
Already on 'conflict1'
D submod
HEAD is now at 306a0f8 submod 1
Merging:
306a0f8 submod 1
virtual conflict2
found 1 common ancestor:
53eb1db add submodule
Failed to merge submodule submod (merge following commits not found)
Auto-merging submod
CONFLICT (submodule): Merge conflict in submod
Automatic merge failed; fix conflicts and then commit the result.
submod: needs merge
rm 'submod'
ok 57 - rm of a conflicted unpopulated submodule succeeds
expecting success:
git checkout -f master &&
git reset --hard &&
git submodule update &&
(cd submod &&
rm .git &&
cp -R ../.git/modules/sub .git &&
GIT_WORK_TREE=. git config --unset core.worktree &&
rm -r ../.git/modules/sub
) &&
git rm submod 2>output.err &&
! test -d submod &&
! test -d submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test -s actual &&
test_i18ngrep Migrating output.err
Switched to branch 'master'
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
rm 'submod'
Migrating git directory of 'submod' from
ok 58 - rm of a populated submodule with a .git directory migrates git dir
expecting success:
git reset --hard &&
git submodule update &&
(cd submod &&
git update-index --add --cacheinfo 160000 $(git rev-parse HEAD) subsubmod &&
git config -f .gitmodules submodule.sub.url ../. &&
git config -f .gitmodules submodule.sub.path subsubmod &&
git submodule init &&
git add .gitmodules &&
git commit -m "add subsubmodule" &&
git submodule update subsubmod
) &&
git commit -a -m "added deep submodule"
HEAD is now at 53eb1db add submodule
Submodule path 'submod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
Submodule 'sub' (/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/.) registered for path 'subsubmod'
[detached HEAD 566a5d8] add subsubmodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 subsubmod
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3600-rm/submod/subsubmod'...
done.
Submodule path 'subsubmod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
[master 5edefb2] added deep submodule
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 59 - setup subsubmodule
expecting success:
git rm submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
rm 'submod'
ok 60 - rm recursively removes work tree of unmodified submodules
expecting success:
git reset --hard &&
git submodule update --recursive &&
git -C submod/subsubmod checkout HEAD^ &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.modified_inside actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
HEAD is now at 5edefb2 added deep submodule
Submodule path 'submod': checked out '566a5d8319f72b1fc0904c62e374c2cf06553a36'
Submodule path 'submod/subsubmod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
Previous HEAD position was abddd86 subdir test
HEAD is now at 848428a remove file from rm --quiet test
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
rm 'submod'
ok 61 - rm of a populated nested submodule with different nested HEAD fails unless forced
expecting success:
git reset --hard &&
git submodule update --recursive &&
echo X >submod/subsubmod/empty &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.modified_inside actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
HEAD is now at 5edefb2 added deep submodule
Submodule path 'submod': checked out '566a5d8319f72b1fc0904c62e374c2cf06553a36'
Submodule path 'submod/subsubmod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
rm 'submod'
ok 62 - rm of a populated nested submodule with nested modifications fails unless forced
expecting success:
git reset --hard &&
git submodule update --recursive &&
echo X >submod/subsubmod/untracked &&
test_must_fail git rm submod &&
test -d submod &&
test -f submod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect.modified_untracked actual &&
git rm -f submod &&
test ! -d submod &&
git status -s -uno --ignore-submodules=none >actual &&
test_cmp expect actual
HEAD is now at 5edefb2 added deep submodule
Submodule path 'submod': checked out '566a5d8319f72b1fc0904c62e374c2cf06553a36'
Submodule path 'submod/subsubmod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
error: the following file has local modifications:
submod
(use --cached to keep the file, or -f to force removal)
rm 'submod'
ok 63 - rm of a populated nested submodule with nested untracked files fails unless forced
expecting success:
git reset --hard &&
git submodule update --recursive &&
(cd submod/subsubmod &&
rm .git &&
mv ../../.git/modules/sub/modules/sub .git &&
GIT_WORK_TREE=. git config --unset core.worktree
) &&
git rm submod 2>output.err &&
! test -d submod &&
! test -d submod/subsubmod/.git &&
git status -s -uno --ignore-submodules=none >actual &&
test -s actual &&
test_i18ngrep Migrating output.err
HEAD is now at 5edefb2 added deep submodule
Submodule path 'submod': checked out '566a5d8319f72b1fc0904c62e374c2cf06553a36'
Submodule path 'submod/subsubmod': checked out 'abddd86ddd7f20448c49dc815119e7e615d8abae'
rm 'submod'
Migrating git directory of 'submod/subsubmod' from
ok 64 - rm absorbs submodule's nested .git directory
expecting success:
git commit -m "submodule removal" submod .gitmodules &&
git checkout HEAD^ &&
git submodule update &&
git checkout -q HEAD^ &&
git checkout -q master 2>actual &&
test_i18ngrep "^warning: unable to rmdir 'submod':" actual &&
git status -s submod >actual &&
echo "?? submod/" >expected &&
test_cmp expected actual &&
rm -rf submod &&
git status -s -uno --ignore-submodules=none >actual &&
! test -s actual
[master 036765e] submodule removal
Author: A U Thor <author@example.com>
2 files changed, 4 deletions(-)
delete mode 160000 submod
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 5edefb2 added deep submodule
Submodule path 'submod': checked out '566a5d8319f72b1fc0904c62e374c2cf06553a36'
warning: unable to rmdir 'submod': Directory not empty
ok 65 - checking out a commit after submodule removal needs manual updates
expecting success:
rm -rf d &&
mkdir d &&
>d/f &&
git add d &&
rm -rf d &&
>d &&
git rm d/f &&
test_must_fail git rev-parse --verify :d/f &&
test_path_is_file d
rm 'd/f'
fatal: Needed a single revision
ok 66 - rm of d/f when d has become a non-directory
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
rm -rf d &&
mkdir d &&
>d/f &&
git add d &&
rm -rf d &&
ln -s nonexistent d &&
git rm d/f &&
test_must_fail git rev-parse --verify :d/f &&
test -h d &&
test_path_is_missing d
rm 'd/f'
fatal: Needed a single revision
ok 67 - rm of d/f when d has become a dangling symlink
expecting success:
rm -rf d &&
>d &&
git add d &&
rm -f d &&
mkdir d &&
>d/f &&
test_must_fail git rm d &&
git rev-parse --verify :d &&
test_path_is_file d/f
fatal: git rm: 'd': Is a directory
rm 'd'
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
ok 68 - rm of file when it has become a directory
expecting success:
rm -rf d e &&
mkdir e &&
echo content >e/f &&
ln -s e d &&
git add -A e d &&
git commit -m "symlink d to e, e/f exists" &&
test_must_fail git rm d/f &&
git rev-parse --verify :d &&
git rev-parse --verify :e/f &&
test -h d &&
test_path_is_file e/f
[master dd97773] symlink d to e, e/f exists
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 120000 d
create mode 100644 e/f
fatal: pathspec 'd/f' did not match any files
9cbe6ea56f225388ae614c419249bfc6d734cc30
d95f3ad14dee633a758d2e331151e950dd13e4ed
ok 69 - rm across a symlinked leading path (no index)
checking known breakage:
rm -rf d e &&
mkdir d &&
echo content >d/f &&
git add -A e d &&
git commit -m "d/f exists" &&
mv d e &&
ln -s e d &&
test_must_fail git rm d/f &&
git rev-parse --verify :d/f &&
test -h d &&
test_path_is_file e/f
[master 7091174] d/f exists
Author: A U Thor <author@example.com>
2 files changed, 1 deletion(-)
delete mode 120000 d
rename {e => d}/f (100%)
rm 'd/f'
test_must_fail: command succeeded: git rm d/f
not ok 70 - rm across a symlinked leading path (w/ index) # TODO known breakage
expecting success:
>bar.txt &&
>foo.txt &&
git add bar.txt foo.txt
ok 71 - setup for testing rm messages
expecting success:
cat >expect <<-\EOF &&
error: the following files have staged content different from both the
file and the HEAD:
bar.txt
foo.txt
(use -f to force removal)
EOF
echo content1 >foo.txt &&
echo content1 >bar.txt &&
test_must_fail git rm foo.txt bar.txt 2>actual &&
test_i18ncmp expect actual
ok 72 - rm files with different staged content
expecting success:
cat >expect <<-\EOF &&
error: the following files have staged content different from both the
file and the HEAD:
bar.txt
foo.txt
EOF
echo content2 >foo.txt &&
echo content2 >bar.txt &&
test_must_fail git -c advice.rmhints=false rm foo.txt bar.txt 2>actual &&
test_i18ncmp expect actual
ok 73 - rm files with different staged content without hints
expecting success:
cat >expect <<-\EOF &&
error: the following file has local modifications:
foo.txt
(use --cached to keep the file, or -f to force removal)
EOF
git commit -m "testing rm 3" &&
echo content3 >foo.txt &&
test_must_fail git rm foo.txt 2>actual &&
test_i18ncmp expect actual
[master d768da4] testing rm 3
Author: A U Thor <author@example.com>
3 files changed, 1 deletion(-)
create mode 100644 bar.txt
delete mode 100644 d/f
create mode 100644 foo.txt
ok 74 - rm file with local modification
expecting success:
cat >expect <<-\EOF &&
error: the following file has local modifications:
bar.txt
EOF
echo content4 >bar.txt &&
test_must_fail git -c advice.rmhints=false rm bar.txt 2>actual &&
test_i18ncmp expect actual
ok 75 - rm file with local modification without hints
expecting success:
cat >expect <<-\EOF &&
error: the following file has changes staged in the index:
foo.txt
(use --cached to keep the file, or -f to force removal)
EOF
git reset --hard &&
echo content5 >foo.txt &&
git add foo.txt &&
test_must_fail git rm foo.txt 2>actual &&
test_i18ncmp expect actual
HEAD is now at d768da4 testing rm 3
ok 76 - rm file with changes in the index
expecting success:
cat >expect <<-\EOF &&
error: the following file has changes staged in the index:
foo.txt
EOF
test_must_fail git -c advice.rmhints=false rm foo.txt 2>actual &&
test_i18ncmp expect actual
ok 77 - rm file with changes in the index without hints
expecting success:
cat >expect <<-\EOF &&
error: the following file has staged content different from both the
file and the HEAD:
foo1.txt
(use -f to force removal)
error: the following file has changes staged in the index:
bar1.txt
(use --cached to keep the file, or -f to force removal)
EOF
echo content >foo1.txt &&
git add foo1.txt &&
echo content6 >foo1.txt &&
echo content6 >bar1.txt &&
git add bar1.txt &&
test_must_fail git rm bar1.txt foo1.txt 2>actual &&
test_i18ncmp expect actual
ok 78 - rm files with two different errors
expecting success:
test_must_fail git rm -rf ""
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
ok 79 - rm empty string should fail
# still have 1 known breakage(s)
# passed all remaining 78 test(s)
1..79
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3904-stash-patch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3904-stash-patch/.git/
expecting success:
mkdir dir &&
echo parent > dir/foo &&
echo dummy > bar &&
echo committed > HEAD &&
git add bar dir/foo HEAD &&
git commit -m initial &&
test_tick &&
test_commit second dir/foo head &&
echo index > dir/foo &&
git add dir/foo &&
set_and_save_state bar bar_work bar_index &&
save_head
[master (root-commit) 6c37392] initial
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 HEAD
create mode 100644 bar
create mode 100644 dir/foo
[master 2330a98] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
set_state HEAD HEADfile_work HEADfile_index &&
set_state dir/foo work index &&
(echo n; echo n; echo n) | test_must_fail git stash save -p &&
verify_state HEAD HEADfile_work HEADfile_index &&
verify_saved_state bar &&
verify_state dir/foo work index
diff --git a/HEAD b/HEAD
index d0fe822..e74fca5 100644
--- a/HEAD
+++ b/HEAD
@@ -1 +1 @@
-committed
+HEADfile_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
Stash this hunk [y,n,q,a,d,e,?]?
No changes selected
ok 2 - saying "n" does nothing
expecting success:
(echo y; echo n; echo y) | git stash save -p &&
verify_state HEAD committed HEADfile_index &&
verify_saved_state bar &&
verify_state dir/foo head index &&
git reset --hard &&
git stash apply &&
verify_state HEAD HEADfile_work committed &&
verify_state bar dummy dummy &&
verify_state dir/foo work head
diff --git a/HEAD b/HEAD
index d0fe822..e74fca5 100644
--- a/HEAD
+++ b/HEAD
@@ -1 +1 @@
-committed
+HEADfile_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
Stash this hunk [y,n,q,a,d,e,?]?
Saved working directory and index state WIP on master: 2330a98 second
HEAD is now at 2330a98 second
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 933b7810e0d844b5ea1fdca8c598255ba6838976
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: HEAD
modified: dir/foo
Untracked files:
(use "git add <file>..." to include in what will be committed)
_head
_index_bar
_worktree_bar
no changes added to commit (use "git add" and/or "git commit -a")
ok 3 - git stash -p
expecting success:
set_state HEAD HEADfile_work HEADfile_index &&
set_state bar bar_work bar_index &&
set_state dir/foo work index &&
(echo y; echo n; echo y) | git stash save -p --no-keep-index &&
verify_state HEAD committed committed &&
verify_state bar bar_work dummy &&
verify_state dir/foo head head &&
git reset --hard &&
git stash apply --index &&
verify_state HEAD HEADfile_work HEADfile_index &&
verify_state bar dummy bar_index &&
verify_state dir/foo work index
diff --git a/HEAD b/HEAD
index d0fe822..e74fca5 100644
--- a/HEAD
+++ b/HEAD
@@ -1 +1 @@
-committed
+HEADfile_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
Stash this hunk [y,n,q,a,d,e,?]?
Saved working directory and index state WIP on master: 2330a98 second
HEAD is now at 2330a98 second
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 933b7810e0d844b5ea1fdca8c598255ba6838976
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: HEAD
modified: bar
modified: dir/foo
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: HEAD
modified: bar
modified: dir/foo
Untracked files:
(use "git add <file>..." to include in what will be committed)
_head
_index_bar
_worktree_bar
ok 4 - git stash -p --no-keep-index
expecting success:
set_state HEAD HEADfile_work HEADfile_index &&
set_state bar bar_work bar_index &&
set_state dir/foo work index &&
(echo y; echo n; echo y) | git stash save --no-keep-index -p &&
verify_state HEAD committed committed &&
verify_state dir/foo head head &&
verify_state bar bar_work dummy &&
git reset --hard &&
git stash apply --index &&
verify_state HEAD HEADfile_work HEADfile_index &&
verify_state bar dummy bar_index &&
verify_state dir/foo work index
diff --git a/HEAD b/HEAD
index d0fe822..e74fca5 100644
--- a/HEAD
+++ b/HEAD
@@ -1 +1 @@
-committed
+HEADfile_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
Stash this hunk [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
Stash this hunk [y,n,q,a,d,e,?]?
Saved working directory and index state WIP on master: 2330a98 second
HEAD is now at 2330a98 second
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 933b7810e0d844b5ea1fdca8c598255ba6838976
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: HEAD
modified: bar
modified: dir/foo
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: HEAD
modified: bar
modified: dir/foo
Untracked files:
(use "git add <file>..." to include in what will be committed)
_head
_index_bar
_worktree_bar
ok 5 - git stash --no-keep-index -p
expecting success:
set_state HEAD HEADfile_work HEADfile_index &&
set_state dir/foo work index &&
echo y | git stash push -p --no-keep-index -- HEAD &&
verify_state HEAD committed committed &&
verify_state dir/foo work index
diff --git a/HEAD b/HEAD
index d0fe822..e74fca5 100644
--- a/HEAD
+++ b/HEAD
@@ -1 +1 @@
-committed
+HEADfile_work
Stash this hunk [y,n,q,a,d,e,?]?
Saved working directory and index state WIP on master: 2330a98 second
ok 6 - stash -p --no-keep-index -- <pathspec> does not unstage other files
expecting success:
verify_saved_head
ok 7 - none of this moved HEAD
checking known breakage:
git reset --hard &&
cat >test <<-\EOF &&
aaa
bbb
ccc
EOF
git add test &&
git commit -m "initial" &&
cat >test <<-\EOF &&
aaa
added line 1
bbb
added line 2
ccc
EOF
printf "%s\n" s n y q |
test_might_fail git stash -p 2>error &&
! test_must_be_empty error &&
grep "added line 1" test &&
! grep "added line 2" test
HEAD is now at 2330a98 second
[master 8560e31] initial
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 test
diff --git a/test b/test
index 1802a74..515ff88 100644
--- a/test
+++ b/test
@@ -1,3 +1,5 @@
aaa
+added line 1
bbb
+added line 2
ccc
Stash this hunk [y,n,q,a,d,s,e,?]? Split into 2 hunks.
@@ -1,2 +1,3 @@
aaa
+added line 1
bbb
Stash this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -2,2 +3,3 @@
bbb
+added line 2
ccc
Stash this hunk [y,n,q,a,d,K,g,/,e,?]?
Saved working directory and index state WIP on master: 8560e31 initial
'error' is not empty, it contains:
error: patch failed: test:1
error: test: patch does not apply
Cannot remove worktree changes
added line 1
added line 2
not ok 8 - stash -p with split hunk # TODO known breakage
# still have 1 known breakage(s)
# passed all remaining 7 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3905-stash-include-untracked.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3905-stash-include-untracked/.git/
expecting success:
echo 1 > file &&
git add file &&
test_tick &&
git commit -m initial &&
echo 2 > file &&
git add file &&
echo 3 > file &&
test_tick &&
echo 1 > file2 &&
echo 1 > HEAD &&
mkdir untracked &&
echo untracked >untracked/untracked &&
git stash --include-untracked &&
git diff-files --quiet &&
git diff-index --cached --quiet HEAD
[master (root-commit) 777c62c] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
Saved working directory and index state WIP on master: 777c62c initial
ok 1 - stash save --include-untracked some dirty working directory
expecting success:
git status --porcelain >actual &&
test_cmp expect actual
ok 2 - stash save --include-untracked cleaned the untracked files
expecting success:
test_path_is_missing file2 &&
test_path_is_missing untracked &&
test_path_is_missing HEAD &&
git diff HEAD stash^3 -- HEAD file2 untracked >actual &&
test_cmp expect.diff actual &&
git ls-tree --name-only stash^3: >actual &&
test_cmp expect.lstree actual
ok 3 - stash save --include-untracked stashed the untracked files
expecting success:
test_must_fail git stash --patch --include-untracked
Can't use --patch and --include-untracked or --all at the same time
ok 4 - stash save --patch --include-untracked fails
expecting success:
test_must_fail git stash --patch --all
Can't use --patch and --include-untracked or --all at the same time
ok 5 - stash save --patch --all fails
expecting success:
git stash pop &&
git status --porcelain >actual &&
test_cmp expect actual &&
test "1" = "$(cat file2)" &&
test untracked = "$(cat untracked/untracked)"
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual f27c6ae26adb8396d3861976ba268f87ad8afa0b
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: file
Untracked files:
(use "git add <file>..." to include in what will be committed)
HEAD
expect
file2
untracked/
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (0a7d204f1703777538511f544d27630f4eca5b11)
ok 6 - stash pop after save --include-untracked leaves files untracked again
expecting success:
echo 4 > file3 &&
git add file3 &&
test_tick &&
git stash -u
Saved working directory and index state WIP on master: 777c62c initial
ok 7 - stash save -u dirty index
expecting success:
git stash pop --index &&
git diff --cached >actual &&
test_cmp expect actual
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual f27c6ae26adb8396d3861976ba268f87ad8afa0b
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file3
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: file
Untracked files:
(use "git add <file>..." to include in what will be committed)
expect
Dropped refs/stash@{0} (d531845c34afd9e73a5059048aeaaaf9bdbf02ff)
ok 8 - stash save --include-untracked dirty index got stashed
expecting success:
echo 1 > file5 &&
git stash save --include-untracked --quiet > .git/stash-output.out 2>&1 &&
test_line_count = 0 .git/stash-output.out &&
rm -f .git/stash-output.out
ok 9 - stash save --include-untracked -q is quiet
expecting success:
rm -f file &&
git stash save --include-untracked &&
echo 1 > expect &&
test_cmp file expect
Saved working directory and index state WIP on master: 777c62c initial
ok 10 - stash save --include-untracked removed files
expecting success:
git stash pop &&
test_path_is_missing file
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual f27c6ae26adb8396d3861976ba268f87ad8afa0b
Removing file
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: file
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (0fe2ec27acd9fc86eb08e4840c3d194b1a902734)
ok 11 - stash save --include-untracked removed files got stashed
expecting success:
echo ignored > ignored &&
mkdir ignored.d &&
echo ignored >ignored.d/untracked &&
git stash -u &&
test -s ignored &&
test -s ignored.d/untracked &&
test -s .gitignore
Saved working directory and index state WIP on master: 777c62c initial
ok 12 - stash save --include-untracked respects .gitignore
expecting success:
echo 4 > file4 &&
git stash -u &&
test_path_is_missing file4
Saved working directory and index state WIP on master: 777c62c initial
ok 13 - stash save -u can stash with only untracked files different
expecting success:
git stash -a &&
test_path_is_missing ignored &&
test_path_is_missing ignored.d &&
test_path_is_missing .gitignore
Saved working directory and index state WIP on master: 777c62c initial
ok 14 - stash save --all does not respect .gitignore
expecting success:
git stash pop &&
test -s ignored &&
test -s ignored.d/untracked &&
test -s .gitignore
Merging Version stash was based on with Version stash was based on
Merging:
virtual Version stash was based on
virtual Version stash was based on
found 1 common ancestor:
virtual f27c6ae26adb8396d3861976ba268f87ad8afa0b
Already up to date!
On branch master
nothing to commit, working tree clean
Dropped refs/stash@{0} (237dbb933d97e03cdd270bc30c51e573dcf9a6ca)
ok 15 - stash save --all is stash poppable
expecting success:
>foo &&
>bar &&
git stash push --include-untracked -- foo &&
test_path_is_file bar &&
test_path_is_missing foo &&
git stash pop &&
test_path_is_file bar &&
test_path_is_file foo
Saved working directory and index state WIP on master: 777c62c initial
Merging Version stash was based on with Version stash was based on
Merging:
virtual Version stash was based on
virtual Version stash was based on
found 1 common ancestor:
virtual f27c6ae26adb8396d3861976ba268f87ad8afa0b
Already up to date!
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
bar
foo
nothing added to commit but untracked files present (use "git add" to track)
Dropped refs/stash@{0} (49d4a45c68f9c8f49ba4e5d98977bafffbb0368c)
ok 16 - stash push --include-untracked with pathspec
expecting success:
>"foo bar" &&
>foo &&
>bar &&
git add foo* &&
git stash push --include-untracked -- "foo b*" &&
test_path_is_missing "foo bar" &&
test_path_is_file foo &&
test_path_is_file bar &&
git stash pop &&
test_path_is_file "foo bar" &&
test_path_is_file foo &&
test_path_is_file bar
Saved working directory and index state WIP on master: 777c62c initial
Merging Updated upstream with Stashed changes
Merging:
virtual Updated upstream
virtual Stashed changes
found 1 common ancestor:
virtual f27c6ae26adb8396d3861976ba268f87ad8afa0b
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: foo
new file: foo bar
Untracked files:
(use "git add <file>..." to include in what will be committed)
bar
Dropped refs/stash@{0} (1b64bbe5a16668a7a5a6fabfddf7fe8c30c16a63)
ok 17 - stash push with $IFS character
expecting success:
git reset HEAD &&
git add .gitignore &&
git commit -m "Add .gitignore" &&
>ignored.d/foo &&
echo "!ignored.d/foo" >> .gitignore &&
git stash save --include-untracked &&
test_path_is_missing ignored.d/foo &&
git stash pop &&
test_path_is_file ignored.d/foo
[master 14579a4] Add .gitignore
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 .gitignore
Saved working directory and index state WIP on master: 14579a4 Add .gitignore
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual f810f552a0f89486ec70c4734dc5a9c52c8342dd
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitignore
Untracked files:
(use "git add <file>..." to include in what will be committed)
bar
foo
foo bar
ignored.d/
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (389c72c4d3838b0b99c65190f50f6b9257e12eec)
ok 18 - stash previously ignored file
expecting success:
>untracked &&
git stash push -u -- untracked 2>actual &&
test_path_is_missing untracked &&
test_line_count = 0 actual
Saved working directory and index state WIP on master: 14579a4 Add .gitignore
ok 19 - stash -u -- <untracked> doesnt print error
expecting success:
>tracked &&
git add tracked &&
>untracked &&
git stash push -u -- untracked &&
test_path_is_missing untracked &&
test_path_is_file tracked
Saved working directory and index state WIP on master: 14579a4 Add .gitignore
ok 20 - stash -u -- <untracked> leaves rest of working tree in place
expecting success:
>tracked &&
git add tracked &&
>untracked &&
git stash push -u -- tracked untracked &&
test_path_is_missing tracked &&
test_path_is_missing untracked
Saved working directory and index state WIP on master: 14579a4 Add .gitignore
ok 21 - stash -u -- <tracked> <untracked> clears changes in both
expecting success:
>ignored.d/bar &&
git stash push --all -- ignored.d/bar &&
test_path_is_missing ignored.d/bar
Saved working directory and index state WIP on master: 14579a4 Add .gitignore
ok 22 - stash --all -- <ignored> stashes ignored file
expecting success:
>tracked &&
git add tracked &&
>ignored.d/bar &&
git stash push --all -- tracked ignored.d/bar &&
test_path_is_missing tracked &&
test_path_is_missing ignored.d/bar
Saved working directory and index state WIP on master: 14579a4 Add .gitignore
ok 23 - stash --all -- <tracked> <ignored> clears changes in both
expecting success:
>ignored.d/bar &&
git stash push -u -- ignored.d/bar &&
test_path_is_file ignored.d/bar
No local changes to save
ok 24 - stash -u -- <ignored> leaves ignored file alone
expecting success:
git stash push -u -- non-existant >actual &&
echo "No local changes to save" >expect &&
test_i18ncmp expect actual
ok 25 - stash -u -- <non-existant> shows no changes when there are none
# passed all 25 test(s)
1..25
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3910-mac-os-precompose.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3910-mac-os-precompose/.git/
checking prerequisite: UTF8_NFD_TO_NFC
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# 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
1..0 # SKIP filesystem does not corrupt utf-8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3701-add-interactive.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3701-add-interactive/.git/
expecting success:
echo content >file &&
git add file &&
echo more >>file &&
echo lines >>file
ok 1 - setup (initial)
expecting success:
git add -i </dev/null >output &&
grep "+1/-0 *+2/-0 file" output
1: +1/-0 +2/-0 file
ok 2 - status works (initial)
expecting success:
cat >expected <<-\EOF
new file mode 100644
index 0000000..d95f3ad
--- /dev/null
+++ b/file
@@ -0,0 +1 @@
+content
EOF
ok 3 - setup expected
expecting success:
(echo d; echo 1) | git add -i >output &&
sed -ne "/new file/,/content/p" <output >diff &&
diff_cmp expected diff
ok 4 - diff works (initial)
expecting success:
git add file &&
(echo r; echo 1) | git add -i &&
git ls-files >output &&
! grep . output
staged unstaged path
1: +3/-0 nothing file
*** 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: +3/-0 nothing [f]ile
Revert>> staged unstaged path
* 1: +3/-0 nothing [f]ile
Revert>>
rm 'file'
reverted 1 path
*** 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.
ok 5 - revert works (initial)
expecting success:
echo baseline >file &&
git add file &&
git commit -m commit &&
echo content >>file &&
git add file &&
echo more >>file &&
echo lines >>file
[master (root-commit) 8305083] commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
ok 6 - setup (commit)
expecting success:
git add -i </dev/null >output &&
grep "+1/-0 *+2/-0 file" output
1: +1/-0 +2/-0 file
ok 7 - status works (commit)
expecting success:
cat >expected <<-\EOF
index 180b47c..b6f2c08 100644
--- a/file
+++ b/file
@@ -1 +1,2 @@
baseline
+content
EOF
ok 8 - setup expected
expecting success:
(echo d; echo 1) | git add -i >output &&
sed -ne "/^index/,/content/p" <output >diff &&
diff_cmp expected diff
ok 9 - diff works (commit)
expecting success:
git add file &&
(echo r; echo 1) | git add -i &&
git add -i </dev/null >output &&
grep "unchanged *+3/-0 file" output
staged unstaged path
1: +3/-0 nothing file
*** 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: +3/-0 nothing [f]ile
Revert>> staged unstaged path
* 1: +3/-0 nothing [f]ile
Revert>>
reverted 1 path
*** 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.
1: unchanged +3/-0 file
ok 10 - revert works (commit)
expecting success:
cat >expected <<-\EOF
EOF
ok 11 - setup expected
expecting success:
test_set_editor : &&
(echo e; echo a) | git add -p &&
git diff > diff &&
diff_cmp expected diff
diff --git a/file b/file
index 180b47c..f910ae9 100644
--- a/file
+++ b/file
@@ -1 +1,4 @@
baseline
+content
+more
+lines
Stage this hunk [y,n,q,a,d,e,?]?
ok 12 - dummy edit works
expecting success:
cat >patch <<-\EOF
@@ -1,1 +1,4 @@
this
+patch
-does not
apply
EOF
ok 13 - setup patch
expecting success:
write_script "fake_editor.sh" <<-\EOF &&
mv -f "$1" oldpatch &&
mv -f patch "$1"
EOF
test_set_editor "$(pwd)/fake_editor.sh"
ok 14 - setup fake editor
expecting success:
git reset &&
(echo e; echo n; echo d) | git add -p >output &&
grep "hunk does not apply" output
Unstaged changes after reset:
M file
error: patch failed: file:1
error: file: patch does not apply
Stage this hunk [y,n,q,a,d,e,?]? Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]? @@ -1 +1,4 @@
ok 15 - bad edit rejected
expecting success:
cat >patch <<-\EOF
this patch
is garbage
EOF
ok 16 - setup patch
expecting success:
git reset &&
(echo e; echo n; echo d) | git add -p >output &&
grep "hunk does not apply" output
Unstaged changes after reset:
M file
error: corrupt patch at line 6
Stage this hunk [y,n,q,a,d,e,?]? Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]? @@ -1 +1,4 @@
ok 17 - garbage edit rejected
expecting success:
cat >patch <<-\EOF
@@ -1,0 +1,0 @@
baseline
+content
+newcontent
+lines
EOF
ok 18 - setup patch
expecting success:
cat >expected <<-\EOF
diff --git a/file b/file
index b5dd6c9..f910ae9 100644
--- a/file
+++ b/file
@@ -1,4 +1,4 @@
baseline
content
-newcontent
+more
lines
EOF
ok 19 - setup expected
expecting success:
(echo e; echo n; echo d) | git add -p &&
git diff >output &&
diff_cmp expected output
diff --git a/file b/file
index 180b47c..f910ae9 100644
--- a/file
+++ b/file
@@ -1 +1,4 @@
baseline
+content
+more
+lines
Stage this hunk [y,n,q,a,d,e,?]?
ok 20 - real edit works
expecting success:
git reset &&
echo file >.gitignore &&
echo changed >file &&
echo y | git add -p file &&
git diff >output &&
git reset &&
git commit -am commit &&
git diff >expected &&
diff_cmp expected output &&
git reset --hard HEAD^
Unstaged changes after reset:
M file
diff --git a/file b/file
index 180b47c..5ea2ed4 100644
--- a/file
+++ b/file
@@ -1 +1 @@
-baseline
+changed
Stage this hunk [y,n,q,a,d,e,?]?
Unstaged changes after reset:
M file
[master 6f4872d] commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at 8305083 commit
ok 21 - skip files similarly as commit -a
checking prerequisite: FILEMODE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test "$(git config --bool core.filemode)" = true
)
prerequisite FILEMODE ok
expecting success:
git reset --hard &&
echo content >>file &&
chmod +x file &&
printf "n\\ny\\n" | git add -p &&
git show :file | grep content &&
git diff file | grep "new mode"
HEAD is now at 8305083 commit
diff --git a/file b/file
index 180b47c..b6f2c08
--- a/file
+++ b/file
old mode 100644
new mode 100755
Stage mode change [y,n,q,a,d,j,J,g,/,?]? @@ -1 +1,2 @@
baseline
+content
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
content
new mode 100755
ok 22 - patch does not affect mode
expecting success:
git reset --hard &&
echo content >>file &&
chmod +x file &&
printf "y\\nn\\n" | git add -p &&
git diff --cached file | grep "new mode" &&
git diff file | grep "+content"
HEAD is now at 8305083 commit
diff --git a/file b/file
index 180b47c..b6f2c08
--- a/file
+++ b/file
old mode 100644
new mode 100755
Stage mode change [y,n,q,a,d,j,J,g,/,?]? @@ -1 +1,2 @@
baseline
+content
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
new mode 100755
+content
ok 23 - stage mode but not hunk
expecting success:
git reset --hard &&
echo content >>file &&
chmod +x file &&
printf "y\\ny\\n" | git add -p &&
git diff --cached file | grep "new mode" &&
git diff --cached file | grep "+content" &&
test -z "$(git diff file)"
HEAD is now at 8305083 commit
diff --git a/file b/file
index 180b47c..b6f2c08
--- a/file
+++ b/file
old mode 100644
new mode 100755
Stage mode change [y,n,q,a,d,j,J,g,/,?]? @@ -1 +1,2 @@
baseline
+content
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
new mode 100755
+content
ok 24 - stage mode and hunk
expecting success:
git reset --hard &&
test_chmod +x file &&
echo content >>file
HEAD is now at 8305083 commit
ok 25 - setup again
expecting success:
cat >patch <<-\EOF
index 180b47c..b6f2c08 100644
--- a/file
+++ b/file
@@ -1,2 +1,4 @@
+firstline
baseline
content
+lastline
\ No newline at end of file
EOF
ok 26 - setup patch
expecting success:
echo diff --git a/file b/file >expected &&
cat patch |sed "/^index/s/ 100644/ 100755/" >>expected &&
cat >expected-output <<-\EOF
--- a/file
+++ b/file
@@ -1,2 +1,4 @@
+firstline
baseline
content
+lastline
\ No newline at end of file
@@ -1,2 +1,3 @@
+firstline
baseline
content
@@ -1,2 +2,3 @@
baseline
content
+lastline
\ No newline at end of file
EOF
ok 27 - setup expected
expecting success:
git commit -am "clear local changes" &&
git apply patch &&
printf "%s\n" s y y | git add -p file 2>error |
sed -n -e "s/^Stage this hunk[^@]*\(@@ .*\)/\1/" \
-e "/^[-+@ \\\\]"/p >output &&
test_must_be_empty error &&
git diff --cached >diff &&
diff_cmp expected diff &&
test_cmp expected-output output
[master 6e9b252] clear local changes
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
mode change 100644 => 100755 file
ok 28 - add first line works
expecting success:
cat >expected <<-\EOF
diff --git a/non-empty b/non-empty
deleted file mode 100644
index d95f3ad..0000000
--- a/non-empty
+++ /dev/null
@@ -1 +0,0 @@
-content
EOF
ok 29 - setup expected
expecting success:
git reset --hard &&
echo content >non-empty &&
git add non-empty &&
git commit -m non-empty &&
rm non-empty &&
echo y | git add -p non-empty &&
git diff --cached >diff &&
diff_cmp expected diff
HEAD is now at 6e9b252 clear local changes
[master 0be722b] non-empty
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 non-empty
diff --git a/non-empty b/non-empty
index d95f3ad..0000000
--- a/non-empty
+++ /dev/null
deleted file mode 100644
@@ -1 +0,0 @@
-content
Stage deletion [y,n,q,a,d,?]?
ok 30 - deleting a non-empty file
expecting success:
cat >expected <<-\EOF
diff --git a/empty b/empty
deleted file mode 100644
index e69de29..0000000
EOF
ok 31 - setup expected
expecting success:
git reset --hard &&
> empty &&
git add empty &&
git commit -m empty &&
rm empty &&
echo y | git add -p empty &&
git diff --cached >diff &&
diff_cmp expected diff
HEAD is now at 0be722b non-empty
[master d7745fb] empty
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 empty
diff --git a/empty b/empty
index e69de29..0000000
deleted file mode 100644
Stage deletion [y,n,q,a,d,?]?
ok 32 - deleting an empty file
expecting success:
git reset --hard &&
test_write_lines 10 20 30 40 50 60 >test &&
git add test &&
test_tick &&
git commit -m test &&
test_write_lines 10 15 20 21 22 23 24 30 40 50 60 >test
HEAD is now at d7745fb empty
[master 8bffca8] test
Author: A U Thor <author@example.com>
1 file changed, 6 insertions(+)
create mode 100644 test
ok 33 - split hunk setup
expecting success:
# Split, say Edit and do nothing. Then:
#
# 1. Broken version results in a patch that does not apply and
# only takes [y/n] (edit again) so the first q is discarded
# and then n attempts to discard the edit. Repeat q enough
# times to get out.
#
# 2. Correct version applies the (not)edited version, and asks
# about the next hunk, against which we say q and program
# exits.
printf "%s\n" s e q n q q |
EDITOR=: git add -p &&
git diff >actual &&
! grep "^+15" actual
diff --git a/test b/test
index 0889435..26b5645 100644
--- a/test
+++ b/test
@@ -1,5 +1,10 @@
10
+15
20
+21
+22
+23
+24
30
40
50
Stage this hunk [y,n,q,a,d,s,e,?]? Split into 2 hunks.
@@ -1,2 +1,3 @@
10
+15
20
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -2,4 +3,8 @@
20
+21
+22
+23
+24
30
40
50
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
ok 34 - split hunk "add -p (edit)"
checking known breakage:
test_write_lines 5 10 20 21 30 31 40 50 60 >test &&
git reset &&
# test sequence is s(plit), n(o), y(es), e(dit)
# q n q q is there to make sure we exit at the end.
printf "%s\n" s n y e q n q q |
EDITOR=: git add -p 2>error &&
test_must_be_empty error &&
git diff >actual &&
! grep "^+31" actual
Unstaged changes after reset:
M test
diff --git a/test b/test
index 0889435..47ab15d 100644
--- a/test
+++ b/test
@@ -1,6 +1,9 @@
+5
10
20
+21
30
+31
40
50
60
Stage this hunk [y,n,q,a,d,s,e,?]? Split into 3 hunks.
@@ -1,2 +1,3 @@
+5
10
20
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -1,3 +2,4 @@
10
20
+21
30
Stage this hunk [y,n,q,a,d,K,j,J,g,/,e,?]? @@ -3,4 +5,5 @@
30
+31
40
50
60
Stage this hunk [y,n,q,a,d,K,g,/,e,?]? Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]? Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]? @@ -1,2 +1,3 @@
+5
10
20
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]?
'error' is not empty, it contains:
error: patch failed: test:1
error: test: patch does not apply
not ok 35 - split hunk "add -p (no, yes, edit)" # TODO known breakage
expecting success:
git reset --hard &&
test_commit conflict &&
test_commit non-conflict &&
git checkout -b side &&
test_commit side conflict.t &&
git checkout master &&
test_commit master conflict.t &&
test_must_fail git merge side &&
echo changed >non-conflict.t &&
echo y | git add -p >output &&
! grep a/conflict.t output &&
cat >expected <<-\EOF &&
* Unmerged path conflict.t
diff --git a/non-conflict.t b/non-conflict.t
index f766221..5ea2ed4 100644
--- a/non-conflict.t
+++ b/non-conflict.t
@@ -1 +1 @@
-non-conflict
+changed
EOF
git diff --cached >diff &&
diff_cmp expected diff
HEAD is now at 8bffca8 test
[master fee8f45] conflict
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 conflict.t
[master 4b9876a] non-conflict
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 non-conflict.t
Switched to a new branch 'side'
[side 7bd8198] side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'master'
[master 0d8d529] master
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
warning: refname 'side' is ambiguous.
warning: refname 'side' is ambiguous.
Merging:
0d8d529 master
virtual side
found 1 common ancestor:
4b9876a non-conflict
Auto-merging conflict.t
CONFLICT (content): Merge conflict in conflict.t
Automatic merge failed; fix conflicts and then commit the result.
ignoring unmerged: conflict.t
ok 36 - patch mode ignores unmerged entries
checking prerequisite: TTY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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"
)
died of signal 15 at /<<PKGBUILDDIR>>/t/test-terminal.perl line 35.
prerequisite TTY ok
expecting success:
git reset --hard &&
echo content >test &&
printf y | test_terminal git add -p >output 2>&1 &&
# We do not want to depend on the exact coloring scheme
# git uses for diffs, so just check that we saw some kind of color.
grep "$(printf "\\033")" output
HEAD is now at 0d8d529 master
[1mdiff --git a/test b/test[m
[1mindex 0889435..d95f3ad 100644[m
[1m--- a/test[m
[1m+++ b/test[m
[36m@@ -1,6 +1 @@[m
[31m-10[m
[31m-20[m
[31m-30[m
[31m-40[m
[31m-50[m
[31m-60[m
[32m+[m[32mcontent[m
[1;34mStage this hunk [y,n,q,a,d,e,?]? [m
ok 37 - diffs can be colorized
expecting success:
git reset --hard &&
echo content >test &&
test_config interactive.diffFilter "sed s/^/foo:/" &&
printf y | test_terminal git add -p >output 2>&1 &&
# avoid depending on the exact coloring or content of the prompts,
# and just make sure we saw our diff prefixed
grep foo:.*content output
HEAD is now at 0d8d529 master
foo:[32m+[m[32mcontent[m
ok 38 - diffFilter filters diff
expecting success:
git reset --hard &&
echo content >test &&
test_config interactive.diffFilter "echo too-short" &&
printf y | test_must_fail test_terminal git add -p
HEAD is now at 0d8d529 master
fatal: mismatched output from interactive.diffFilter
hint: Your filter must maintain a one-to-one correspondence
hint: between its input and output lines.
ok 39 - detect bogus diffFilter output
expecting success:
git reset --hard &&
echo one >file &&
echo two >test &&
git add -i <<-\EOF &&
patch
test
y
quit
EOF
echo test >expect &&
git diff --cached --name-only >actual &&
diff_cmp expect actual
HEAD is now at 0d8d529 master
staged unstaged path
1: unchanged +1/-2 file
2: unchanged +1/-6 test
*** 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 +1/-2 [f]ile
2: unchanged +1/-6 [t]est
Patch update>> staged unstaged path
1: unchanged +1/-2 [f]ile
* 2: unchanged +1/-6 [t]est
Patch update>> diff --git a/test b/test
index 0889435..f719efd 100644
--- a/test
+++ b/test
@@ -1,6 +1 @@
-10
-20
-30
-40
-50
-60
+two
Stage this hunk [y,n,q,a,d,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.
ok 40 - patch-mode via -i prompts for files
expecting success:
git reset --hard &&
mkdir -p subdir &&
echo base >one.c &&
echo base >subdir/two.c &&
git add "*.c" &&
git commit -m base &&
echo change >one.c &&
echo change >subdir/two.c &&
git add -p "*.c" <<-\EOF &&
y
y
EOF
cat >expect <<-\EOF &&
one.c
subdir/two.c
EOF
git diff --cached --name-only >actual &&
test_cmp expect actual
HEAD is now at 0d8d529 master
[master f79781f] base
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 one.c
create mode 100644 subdir/two.c
diff --git a/one.c b/one.c
index df967b9..0835e4f 100644
--- a/one.c
+++ b/one.c
@@ -1 +1 @@
-base
+change
Stage this hunk [y,n,q,a,d,e,?]?
diff --git a/subdir/two.c b/subdir/two.c
index df967b9..0835e4f 100644
--- a/subdir/two.c
+++ b/subdir/two.c
@@ -1 +1 @@
-base
+change
Stage this hunk [y,n,q,a,d,e,?]?
ok 41 - add -p handles globs
expecting success:
git reset --hard &&
echo base >relpath.c &&
git add "*.c" &&
git commit -m relpath &&
echo change >relpath.c &&
mkdir -p subdir &&
git -C subdir add -p .. 2>error <<-\EOF &&
y
EOF
test_must_be_empty error &&
cat >expect <<-\EOF &&
relpath.c
EOF
git diff --cached --name-only >actual &&
test_cmp expect actual
HEAD is now at f79781f base
[master fb9c063] relpath
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 relpath.c
diff --git a/relpath.c b/relpath.c
index df967b9..0835e4f 100644
--- a/relpath.c
+++ b/relpath.c
@@ -1 +1 @@
-base
+change
Stage this hunk [y,n,q,a,d,e,?]?
ok 42 - add -p handles relative paths
expecting success:
git reset --hard &&
echo content >not-changed &&
git add not-changed &&
git commit -m "add not-changed file" &&
echo change >file &&
GIT_TRACE=$(pwd)/trace.out git add -p . <<-\EOF &&
y
EOF
# we know that "file" must be mentioned since we actually
# update it, but we want to be sure that our "." pathspec
# was not expanded into the argument list of any command.
# So look only for "not-changed".
! grep not-changed trace.out
HEAD is now at fb9c063 relpath
[master 7886262] add not-changed file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 not-changed
diff --git a/file b/file
index b6f2c08..0835e4f 100755
--- a/file
+++ b/file
@@ -1,2 +1 @@
-baseline
-content
+change
Stage this hunk [y,n,q,a,d,e,?]?
ok 43 - add -p does not expand argument lists
expecting success:
git reset --hard &&
echo change >>file &&
test_config core.commentChar "\$" &&
echo e | GIT_EDITOR=true git add -p &&
git diff --exit-code
HEAD is now at 7886262 add not-changed file
diff --git a/file b/file
index b6f2c08..59630e0 100755
--- a/file
+++ b/file
@@ -1,2 +1,3 @@
baseline
content
+change
Stage this hunk [y,n,q,a,d,e,?]?
ok 44 - hunk-editing handles custom comment char
expecting success:
git reset --hard &&
echo change >>file &&
test_config color.ui always &&
echo y | git add -p &&
echo file >expect &&
git diff --cached --name-only >actual &&
test_cmp expect actual
HEAD is now at 7886262 add not-changed file
[1mdiff --git a/file b/file[m
[1mindex b6f2c08..59630e0 100755[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,2 +1,3 @@[m
baseline[m
content[m
[32m+[m[32mchange[m
[1;34mStage this hunk [y,n,q,a,d,e,?]? [m
ok 45 - add -p works even with color.ui=always
expecting success:
test_create_repo for-submodules &&
(
cd for-submodules &&
test_commit initial &&
test_create_repo dirty-head &&
(
cd dirty-head &&
test_commit initial
) &&
cp -R dirty-head dirty-otherwise &&
cp -R dirty-head dirty-both-ways &&
git add dirty-head &&
git add dirty-otherwise dirty-both-ways &&
git commit -m initial &&
cd dirty-head &&
test_commit updated &&
cd ../dirty-both-ways &&
test_commit updated &&
echo dirty >>initial &&
: >untracked &&
cd ../dirty-otherwise &&
echo dirty >>initial &&
: >untracked
) &&
git -C for-submodules diff-files --name-only >actual &&
cat >expected <<-\EOF &&
dirty-both-ways
dirty-head
dirty-otherwise
EOF
test_cmp expected actual &&
git -C for-submodules diff-files --name-only --ignore-submodules=dirty >actual &&
cat >expected <<-\EOF &&
dirty-both-ways
dirty-head
EOF
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3701-add-interactive/for-submodules/.git/
[master (root-commit) 31243c6] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3701-add-interactive/for-submodules/dirty-head/.git/
[master (root-commit) 167ffd6] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
warning: adding embedded git repository: dirty-head
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> dirty-head
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached dirty-head
hint:
hint: See "git help submodule" for more information.
warning: adding embedded git repository: dirty-both-ways
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> dirty-both-ways
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached dirty-both-ways
hint:
hint: See "git help submodule" for more information.
warning: adding embedded git repository: dirty-otherwise
[master 6489f21] initial
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 160000 dirty-both-ways
create mode 160000 dirty-head
create mode 160000 dirty-otherwise
[master f10ac08] updated
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 updated.t
[master f86bdf4] updated
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 updated.t
ok 46 - setup different kinds of dirty submodules
expecting success:
git -C for-submodules add -i </dev/null >output &&
grep dirty-head output &&
grep dirty-both-ways output &&
! grep dirty-otherwise output
2: unchanged +1/-1 dirty-head
1: unchanged +1/-1 dirty-both-ways
ok 47 - status ignores dirty submodules (except HEAD)
expecting success:
git reset --hard &&
test_write_lines a a a a a a a a a a a >a &&
git add a &&
git commit -m a &&
test_write_lines c b a a a a a a a b a a a a >a &&
test_write_lines a a a a a a a b a a a a >expected-1 &&
test_write_lines b a a a a a a a b a a a a >expected-2 &&
# check editing can cope with missing header and deleted context lines
# as well as changes to other lines
test_write_lines +b " a" >patch
HEAD is now at 7886262 add not-changed file
[master 7b3e0d2] a
Author: A U Thor <author@example.com>
1 file changed, 11 insertions(+)
create mode 100644 a
ok 48 - set up pathological context
expecting success:
git reset &&
printf "%s\n" n y |
git add -p &&
git cat-file blob :a >actual &&
test_cmp expected-1 actual
Unstaged changes after reset:
M a
diff --git a/a b/a
index f04e1e1..f39a0f0 100644
--- a/a
+++ b/a
@@ -1,3 +1,5 @@
+c
+b
a
a
a
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -5,6 +7,7 @@ a
a
a
a
+b
a
a
a
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
ok 49 - add -p works with pathological context lines
expecting success:
git reset &&
# n q q below is in case edit fails
printf "%s\n" e y n q q |
git add -p &&
git cat-file blob :a >actual &&
test_cmp expected-2 actual
Unstaged changes after reset:
M a
diff --git a/a b/a
index f04e1e1..f39a0f0 100644
--- a/a
+++ b/a
@@ -1,3 +1,5 @@
+c
+b
a
a
a
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -5,6 +7,7 @@ a
a
a
a
+b
a
a
a
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
ok 50 - add -p patch editing works with pathological context lines
# still have 1 known breakage(s)
# passed all remaining 49 test(s)
1..50
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4000-diff-format.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4000-diff-format/.git/
expecting success:
git update-index --add path0 path1
ok 1 - update-index --add two files with and without +x.
expecting success:
git diff-files -p >actual
ok 2 - git diff-files -p after editing work tree.
expecting success:
compare_diff_patch expected actual
ok 3 - validate git diff-files -p output.
expecting success:
git diff-files -s >actual 2>err &&
test_must_be_empty actual &&
test_must_be_empty err
ok 4 - git diff-files -s after editing work tree
expecting success:
git diff-files --no-patch >actual 2>err &&
test_must_be_empty actual &&
test_must_be_empty err
ok 5 - git diff-files --no-patch as synonym for -s
expecting success:
git diff-files --no-patch --patch >actual &&
compare_diff_patch expected actual
ok 6 - git diff-files --no-patch --patch shows the patch
expecting success:
git diff-files --no-patch --patch-with-raw >actual &&
grep -q "^:100644 100755 .* 0000000000000000000000000000000000000000 M path0\$" actual &&
tail -n +4 actual >actual-patch &&
compare_diff_patch expected actual-patch
ok 7 - git diff-files --no-patch --patch-with-raw shows the patch and raw data
expecting success:
git diff-files --patch --no-patch >actual 2>err &&
test_must_be_empty actual &&
test_must_be_empty err
ok 8 - git diff-files --patch --no-patch does not show the patch
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4001-diff-rename.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4001-diff-rename/.git/
expecting success:
cat >path0 <<-\EOF &&
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
line 11
Line 12
Line 13
Line 14
Line 15
EOF
cat >expected <<-\EOF &&
diff --git a/path0 b/path1
rename from path0
rename to path1
--- a/path0
+++ b/path1
@@ -8,7 +8,7 @@ Line 7
Line 8
Line 9
Line 10
-line 11
+Line 11
Line 12
Line 13
Line 14
EOF
cat >no-rename <<-\EOF
diff --git a/path0 b/path0
deleted file mode 100644
index fdbec44..0000000
--- a/path0
+++ /dev/null
@@ -1,15 +0,0 @@
-Line 1
-Line 2
-Line 3
-Line 4
-Line 5
-Line 6
-Line 7
-Line 8
-Line 9
-Line 10
-line 11
-Line 12
-Line 13
-Line 14
-Line 15
diff --git a/path1 b/path1
new file mode 100644
index 0000000..752c50e
--- /dev/null
+++ b/path1
@@ -0,0 +1,15 @@
+Line 1
+Line 2
+Line 3
+Line 4
+Line 5
+Line 6
+Line 7
+Line 8
+Line 9
+Line 10
+Line 11
+Line 12
+Line 13
+Line 14
+Line 15
EOF
ok 1 - setup
expecting success: git update-index --add path0
ok 2 - update-index --add a file.
expecting success: tree=$(git write-tree) && echo $tree
ad8378482f032562f72403dd7c5bd607578a3f0e
ok 3 - write that tree.
expecting success: git update-index --add --remove path0 path1
ok 4 - renamed and edited the file.
expecting success: git diff-index -p -M $tree >current
ok 5 - git diff-index -p -M after rename and editing.
expecting success: compare_diff_patch current expected
ok 6 - validate the output.
expecting success:
git -c diff.renames=true diff --cached $tree >current &&
compare_diff_patch current expected
ok 7 - test diff.renames=true
expecting success:
git -c diff.renames=false diff --cached $tree >current &&
compare_diff_patch current no-rename
ok 8 - test diff.renames=false
expecting success:
git diff --cached $tree >current &&
compare_diff_patch current expected
ok 9 - test diff.renames unset
expecting success:
cp path1 another-path &&
git add another-path &&
git commit -m 1 &&
git rm path1 &&
mkdir subdir &&
git mv another-path subdir/path1 &&
git status >out &&
test_i18ngrep "renamed: .*path1 -> subdir/path1" out
[master (root-commit) 54745c6] 1
Author: A U Thor <author@example.com>
2 files changed, 30 insertions(+)
create mode 100644 another-path
create mode 100644 path1
rm 'path1'
renamed: path1 -> subdir/path1
ok 10 - favour same basenames over different ones
expecting success:
git -c diff.renames=true status >out &&
test_i18ngrep "renamed: .*path1 -> subdir/path1" out
renamed: path1 -> subdir/path1
ok 11 - test diff.renames=true for git status
expecting success:
git -c diff.renames=false status >out &&
test_i18ngrep ! "renamed: .*path1 -> subdir/path1" out &&
test_i18ngrep "new file: .*subdir/path1" out &&
test_i18ngrep "deleted: .*[^/]path1" out
new file: subdir/path1
deleted: path1
ok 12 - test diff.renames=false for git status
expecting success:
git show HEAD:path1 | sed "s/15/16/" > subdir/path1 &&
git status >out &&
test_i18ngrep "renamed: .*path1 -> subdir/path1" out
renamed: path1 -> subdir/path1
ok 13 - favour same basenames even with minor differences
expecting success:
git reset --hard &&
mkdir -p dir/A dir/B &&
cp path1 dir/A/file &&
cp path1 dir/B/file &&
git add dir &&
git commit -m 2 &&
git mv dir other-dir &&
git status >out &&
test_i18ngrep "renamed: .*dir/A/file -> other-dir/A/file" out
HEAD is now at 54745c6 1
[master e8700a0] 2
Author: A U Thor <author@example.com>
2 files changed, 30 insertions(+)
create mode 100644 dir/A/file
create mode 100644 dir/B/file
renamed: dir/A/file -> other-dir/A/file
ok 14 - two files with same basename and same content
expecting success:
git reset --hard &&
for i in 0 1 2 3 4 5 6 7 8 9;
do
for j in 0 1 2 3 4 5 6 7 8 9;
do
echo "$i$j" >"path$i$j"
done
done &&
git add "path??" &&
test_tick &&
git commit -m "hundred" &&
(cat path1; echo new) >new-path &&
echo old >>path1 &&
git add new-path path1 &&
git diff -l 4 -C -C --cached --name-status >actual 2>actual.err &&
sed -e "s/^\([CM]\)[0-9]* /\1 /" actual >actual.munged &&
cat >expect <<-EOF &&
C path1 new-path
M path1
EOF
test_cmp expect actual.munged &&
grep warning actual.err
HEAD is now at e8700a0 2
[master ad94fc0] hundred
Author: A U Thor <author@example.com>
100 files changed, 100 insertions(+)
create mode 100644 path00
create mode 100644 path01
create mode 100644 path02
create mode 100644 path03
create mode 100644 path04
create mode 100644 path05
create mode 100644 path06
create mode 100644 path07
create mode 100644 path08
create mode 100644 path09
create mode 100644 path10
create mode 100644 path11
create mode 100644 path12
create mode 100644 path13
create mode 100644 path14
create mode 100644 path15
create mode 100644 path16
create mode 100644 path17
create mode 100644 path18
create mode 100644 path19
create mode 100644 path20
create mode 100644 path21
create mode 100644 path22
create mode 100644 path23
create mode 100644 path24
create mode 100644 path25
create mode 100644 path26
create mode 100644 path27
create mode 100644 path28
create mode 100644 path29
create mode 100644 path30
create mode 100644 path31
create mode 100644 path32
create mode 100644 path33
create mode 100644 path34
create mode 100644 path35
create mode 100644 path36
create mode 100644 path37
create mode 100644 path38
create mode 100644 path39
create mode 100644 path40
create mode 100644 path41
create mode 100644 path42
create mode 100644 path43
create mode 100644 path44
create mode 100644 path45
create mode 100644 path46
create mode 100644 path47
create mode 100644 path48
create mode 100644 path49
create mode 100644 path50
create mode 100644 path51
create mode 100644 path52
create mode 100644 path53
create mode 100644 path54
create mode 100644 path55
create mode 100644 path56
create mode 100644 path57
create mode 100644 path58
create mode 100644 path59
create mode 100644 path60
create mode 100644 path61
create mode 100644 path62
create mode 100644 path63
create mode 100644 path64
create mode 100644 path65
create mode 100644 path66
create mode 100644 path67
create mode 100644 path68
create mode 100644 path69
create mode 100644 path70
create mode 100644 path71
create mode 100644 path72
create mode 100644 path73
create mode 100644 path74
create mode 100644 path75
create mode 100644 path76
create mode 100644 path77
create mode 100644 path78
create mode 100644 path79
create mode 100644 path80
create mode 100644 path81
create mode 100644 path82
create mode 100644 path83
create mode 100644 path84
create mode 100644 path85
create mode 100644 path86
create mode 100644 path87
create mode 100644 path88
create mode 100644 path89
create mode 100644 path90
create mode 100644 path91
create mode 100644 path92
create mode 100644 path93
create mode 100644 path94
create mode 100644 path95
create mode 100644 path96
create mode 100644 path97
create mode 100644 path98
create mode 100644 path99
warning: only found copies from modified paths due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 104 and retry the command.
ok 15 - setup for many rename source candidates
expecting success:
mkdir -p a/b/ &&
: >a/b/c &&
git add a/b/c &&
git commit -m "create a/b/c" &&
mkdir -p c/b/ &&
git mv a/b/c c/b/a &&
git commit -m "a/b/c -> c/b/a" &&
git diff -M --summary HEAD^ HEAD >output &&
test_i18ngrep " a/b/c => c/b/a " output &&
git diff -M --stat HEAD^ HEAD >output &&
test_i18ngrep " a/b/c => c/b/a " output
[master 5e34c6d] create a/b/c
Author: A U Thor <author@example.com>
3 files changed, 17 insertions(+)
create mode 100644 a/b/c
create mode 100644 new-path
[master 685078e] a/b/c -> c/b/a
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename a/b/c => c/b/a (100%)
rename a/b/c => c/b/a (100%)
a/b/c => c/b/a | 0
ok 16 - rename pretty print with nothing in common
expecting success:
mkdir -p c/d &&
git mv c/b/a c/d/e &&
git commit -m "c/b/a -> c/d/e" &&
git diff -M --summary HEAD^ HEAD >output &&
test_i18ngrep " c/{b/a => d/e} " output &&
git diff -M --stat HEAD^ HEAD >output &&
test_i18ngrep " c/{b/a => d/e} " output
[master 3784f79] c/b/a -> c/d/e
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename c/{b/a => d/e} (100%)
rename c/{b/a => d/e} (100%)
c/{b/a => d/e} | 0
ok 17 - rename pretty print with common prefix
expecting success:
mkdir d &&
git mv c/d/e d/e &&
git commit -m "c/d/e -> d/e" &&
git diff -M --summary HEAD^ HEAD >output &&
test_i18ngrep " {c/d => d}/e " output &&
git diff -M --stat HEAD^ HEAD >output &&
test_i18ngrep " {c/d => d}/e " output
[master f69bbb4] c/d/e -> d/e
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename {c/d => d}/e (100%)
rename {c/d => d}/e (100%)
{c/d => d}/e | 0
ok 18 - rename pretty print with common suffix
expecting success:
mkdir d/f &&
git mv d/e d/f/e &&
git commit -m "d/e -> d/f/e" &&
git diff -M --summary HEAD^ HEAD >output &&
test_i18ngrep " d/{ => f}/e " output &&
git diff -M --stat HEAD^ HEAD >output &&
test_i18ngrep " d/{ => f}/e " output
[master b0995d1] d/e -> d/f/e
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename d/{ => f}/e (100%)
rename d/{ => f}/e (100%)
d/{ => f}/e | 0
ok 19 - rename pretty print with common prefix and suffix
expecting success:
mkdir d/f/f &&
git mv d/f/e d/f/f/e &&
git commit -m "d/f/e d/f/f/e" &&
git diff -M --summary HEAD^ HEAD >output &&
test_i18ngrep " d/f/{ => f}/e " output &&
git diff -M --stat HEAD^ HEAD >output &&
test_i18ngrep " d/f/{ => f}/e " output
[master fd1608e] d/f/e d/f/f/e
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename d/f/{ => f}/e (100%)
rename d/f/{ => f}/e (100%)
d/f/{ => f}/e | 0
ok 20 - rename pretty print common prefix and suffix overlap
expecting success:
test_write_lines line1 line2 line3 >myfile &&
git add myfile &&
git commit -m x &&
test_write_lines line1 line2 line4 >myotherfile &&
git rm myfile &&
git add myotherfile &&
git commit -m x &&
git diff-tree -M -l0 HEAD HEAD^ >actual &&
# Verify that a rename from myotherfile to myfile was detected
grep "myotherfile.*myfile" actual
[master a5ee3fe] x
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 myfile
rm 'myfile'
[master d6e9d31] x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
rename myfile => myotherfile (66%)
:100644 100644 cc8654bf0610eedacc646edaf4c1cbda59454836 83db48f84ec878fbfb30b46d16630e944e34f205 R066 myotherfile myfile
ok 21 - diff-tree -l0 defaults to a big rename limit, not zero
# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4003-diff-rename-1.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4003-diff-rename-1/.git/
expecting success: cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
echo frotz >rezrov &&
git update-index --add COPYING rezrov &&
tree=$(git write-tree) &&
echo $tree
6fb637967044b5d0edaa623ea9befe44d6843c70
ok 1 - prepare reference tree
expecting success: sed -e s/HOWEVER/However/ <COPYING >COPYING.1 &&
sed -e s/GPL/G.P.L/g <COPYING >COPYING.2 &&
rm -f COPYING &&
git update-index --add --remove COPYING COPYING.?
ok 2 - prepare work tree
expecting success: compare_diff_patch current expected
ok 3 - validate output from rename/copy detection (#1)
expecting success: mv COPYING.2 COPYING &&
git update-index --add --remove COPYING COPYING.1 COPYING.2
ok 4 - prepare work tree again
expecting success: compare_diff_patch current expected
ok 5 - validate output from rename/copy detection (#2)
expecting success: cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
git update-index --add --remove COPYING COPYING.1
ok 6 - prepare work tree once again
expecting success: compare_diff_patch current expected
ok 7 - validate output from rename/copy detection (#3)
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4004-diff-rename-symlink.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4004-diff-rename-symlink/.git/
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success: echo xyzzy | tr -d \\012 >yomin &&
ln -s xyzzy frotz &&
git update-index --add frotz yomin &&
tree=$(git write-tree) &&
echo $tree
e8a7292168115b2c189b56bd500aa179ca8d69ba
ok 1 - prepare reference tree
expecting success: mv frotz rezrov &&
rm -f yomin &&
ln -s xyzzy nitfol &&
ln -s xzzzy bozbar &&
git update-index --add --remove frotz rezrov nitfol bozbar yomin
ok 2 - prepare work tree
expecting success:
GIT_DIFF_OPTS=--unified=0 git diff-index -C -p e8a7292168115b2c189b56bd500aa179ca8d69ba >current &&
cat >expected <<\EOF
diff --git a/bozbar b/bozbar
new file mode 120000
--- /dev/null
+++ b/bozbar
@@ -0,0 +1 @@
+xzzzy
\ No newline at end of file
diff --git a/frotz b/nitfol
similarity index 100%
copy from frotz
copy to nitfol
diff --git a/frotz b/rezrov
similarity index 100%
rename from frotz
rename to rezrov
diff --git a/yomin b/yomin
deleted file mode 100644
--- a/yomin
+++ /dev/null
@@ -1 +0,0 @@
-xyzzy
\ No newline at end of file
EOF
ok 3 - setup diff output
expecting success: compare_diff_patch current expected
ok 4 - validate diff output
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4002-diff-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4002-diff-basic/.git/
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 1 - adding test file NN and Z/NN
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 2 - adding test file ND and Z/ND
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 3 - adding test file NM and Z/NM
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 4 - adding test file DN and Z/DN
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 5 - adding test file DD and Z/DD
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 6 - adding test file DM and Z/DM
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 7 - adding test file MN and Z/MN
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 8 - adding test file MD and Z/MD
expecting success: git update-index --add $p &&
git update-index --add Z/$p
ok 9 - adding test file MM and Z/MM
expecting success: git update-index --add SS
ok 10 - adding test file SS
expecting success: git update-index --add TT
ok 11 - adding test file TT
expecting success: tree_O=$(git write-tree)
ok 12 - prepare initial tree
expecting success: git update-index --remove $to_remove
ok 13 - change in branch A (removal)
expecting success: git update-index MD
ok 14 - change in branch A (modification)
expecting success: git update-index MM
ok 15 - change in branch A (modification)
expecting success: git update-index MN
ok 16 - change in branch A (modification)
expecting success: git update-index Z/MD
ok 17 - change in branch A (modification)
expecting success: git update-index Z/MM
ok 18 - change in branch A (modification)
expecting success: git update-index Z/MN
ok 19 - change in branch A (modification)
expecting success: git update-index --add AN
ok 20 - change in branch A (addition)
expecting success: git update-index --add AA
ok 21 - change in branch A (addition)
expecting success: git update-index --add Z/AN
ok 22 - change in branch A (addition)
expecting success: git update-index --add Z/AA
ok 23 - change in branch A (addition)
expecting success: git update-index --add LL &&
git update-index SS
ok 24 - change in branch A (addition)
expecting success: git update-index TT
ok 25 - change in branch A (edit)
expecting success: git update-index --add DF/DF
ok 26 - change in branch A (change file to directory)
expecting success: tree_A=$(git write-tree)
ok 27 - recording branch A tree
expecting success: git read-tree $tree_O &&
git checkout-index -a
ok 28 - reading original tree and checking out
expecting success: git update-index --remove DD MD ND Z/DD Z/MD Z/ND
ok 29 - change in branch B (removal)
expecting success: git update-index DM
ok 30 - change in branch B (modification)
expecting success: git update-index MM
ok 31 - change in branch B (modification)
expecting success: git update-index NM
ok 32 - change in branch B (modification)
expecting success: git update-index Z/DM
ok 33 - change in branch B (modification)
expecting success: git update-index Z/MM
ok 34 - change in branch B (modification)
expecting success: git update-index Z/NM
ok 35 - change in branch B (modification)
expecting success: git update-index --add NA
ok 36 - change in branch B (addition)
expecting success: git update-index --add AA
ok 37 - change in branch B (addition)
expecting success: git update-index --add Z/NA
ok 38 - change in branch B (addition)
expecting success: git update-index --add Z/AA
ok 39 - change in branch B (addition)
expecting success: git update-index --add LL &&
git update-index SS
ok 40 - change in branch B (addition and modification)
expecting success: git update-index TT
ok 41 - change in branch B (modification)
expecting success: git update-index --add DF
ok 42 - change in branch B (addition of a file to conflict with directory)
expecting success: tree_B=$(git write-tree)
ok 43 - recording branch B tree
expecting success: 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: git diff-tree $tree_O $tree_A >.test-a &&
cmp -s .test-a .test-plain-OA
ok 45 - diff-tree of known trees.
expecting success: git diff-tree -r $tree_O $tree_A >.test-a &&
cmp -s .test-a .test-recursive-OA
ok 46 - diff-tree of known trees.
expecting success: git diff-tree $tree_O $tree_B >.test-a &&
cmp -s .test-a .test-plain-OB
ok 47 - diff-tree of known trees.
expecting success: git diff-tree -r $tree_O $tree_B >.test-a &&
cmp -s .test-a .test-recursive-OB
ok 48 - diff-tree of known trees.
expecting success: git diff-tree $tree_A $tree_B >.test-a &&
cmp -s .test-a .test-plain-AB
ok 49 - diff-tree of known trees.
expecting success: git diff-tree -r $tree_A $tree_B >.test-a &&
cmp -s .test-a .test-recursive-AB
ok 50 - diff-tree of known trees.
expecting success: echo $tree_A $tree_B | git diff-tree --stdin > .test-a &&
echo $tree_A $tree_B > .test-plain-ABx &&
cat .test-plain-AB >> .test-plain-ABx &&
cmp -s .test-a .test-plain-ABx
ok 51 - diff-tree --stdin of known trees.
expecting success: echo $tree_A $tree_B | git diff-tree -r --stdin > .test-a &&
echo $tree_A $tree_B > .test-recursive-ABx &&
cat .test-recursive-AB >> .test-recursive-ABx &&
cmp -s .test-a .test-recursive-ABx
ok 52 - diff-tree --stdin of known trees.
expecting success: git read-tree $tree_A &&
git diff-index --cached $tree_O >.test-a &&
cmp -s .test-a .test-recursive-OA
ok 53 - diff-cache O with A in cache
expecting success: git read-tree $tree_B &&
git diff-index --cached $tree_O >.test-a &&
cmp -s .test-a .test-recursive-OB
ok 54 - diff-cache O with B in cache
expecting success: git read-tree $tree_B &&
git diff-index --cached $tree_A >.test-a &&
cmp -s .test-a .test-recursive-AB
ok 55 - diff-cache A with B in cache
expecting success: rm -fr Z [A-Z][A-Z] &&
git read-tree $tree_A &&
git checkout-index -f -a &&
git read-tree --reset $tree_O &&
test_must_fail git update-index --refresh -q &&
git diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-OA
DD: needs update
DM: needs update
DN: needs update
MD: needs update
MM: needs update
MN: needs update
SS: needs update
TT: needs update
Z/DD: needs update
Z/DM: needs update
Z/DN: needs update
Z/MD: needs update
Z/MM: needs update
Z/MN: needs update
ok 56 - diff-files with O in cache and A checked out
expecting success: rm -fr Z [A-Z][A-Z] &&
git read-tree $tree_B &&
git checkout-index -f -a &&
git read-tree --reset $tree_O &&
test_must_fail git update-index --refresh -q &&
git diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-OB
DD: needs update
DM: needs update
MD: needs update
MM: needs update
ND: needs update
NM: needs update
SS: needs update
TT: needs update
Z/DD: needs update
Z/DM: needs update
Z/MD: needs update
Z/MM: needs update
Z/ND: needs update
Z/NM: needs update
ok 57 - diff-files with O in cache and B checked out
expecting success: rm -fr Z [A-Z][A-Z] &&
git read-tree $tree_B &&
git checkout-index -f -a &&
git read-tree --reset $tree_A &&
test_must_fail git update-index --refresh -q &&
git diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-AB
AA: needs update
AN: needs update
DF/DF: needs update
MD: needs update
MM: needs update
MN: needs update
ND: needs update
NM: needs update
TT: needs update
Z/AA: needs update
Z/AN: needs update
Z/MD: needs update
Z/MM: needs update
Z/MN: needs update
Z/ND: needs update
Z/NM: needs update
ok 58 - diff-files with A in cache and B checked out
expecting success: git diff-tree $tree_O $tree_A >.test-a &&
git diff-tree -R $tree_A $tree_O >.test-b &&
cmp -s .test-a .test-b
ok 59 - diff-tree O A == diff-tree -R A O
expecting success: git diff-tree -r $tree_O $tree_A >.test-a &&
git diff-tree -r -R $tree_A $tree_O >.test-b &&
cmp -s .test-a .test-b
ok 60 - diff-tree -r O A == diff-tree -r -R A O
expecting success: git diff-tree $tree_B $tree_A >.test-a &&
git diff-tree -R $tree_A $tree_B >.test-b &&
cmp -s .test-a .test-b
ok 61 - diff-tree B A == diff-tree -R A B
expecting success: git diff-tree -r $tree_B $tree_A >.test-a &&
git diff-tree -r -R $tree_A $tree_B >.test-b &&
cmp -s .test-a .test-b
ok 62 - diff-tree -r B A == diff-tree -r -R A B
expecting success: test_must_fail git diff --no-index -- MN - < NN |
grep -v "^index" | sed "s#/-#/NN#" >.test-a &&
test_must_fail git diff --no-index -- MN NN |
grep -v "^index" >.test-b &&
test_cmp .test-a .test-b
ok 63 - diff can read from stdin
# passed all 63 test(s)
1..63
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4006-diff-mode.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4006-diff-mode/.git/
expecting success:
echo frotz >rezrov &&
git update-index --add rezrov &&
tree=$(git write-tree) &&
echo $tree
5189e2f1ba2c164fa2006e4f8f4e4ec56f15291e
ok 1 - setup
expecting success:
test_chmod +x rezrov &&
git diff-index $tree >current &&
sed -e "$sed_script" <current >check &&
echo ":100644 100755 X X M rezrov" >expected &&
test_cmp expected check
ok 2 - chmod
expecting success:
git commit -m rezrov &&
printf "\00\01\02\03\04\05\06" >binbin &&
git add binbin &&
git commit -m binbin
[master (root-commit) a0b3e25] rezrov
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100755 rezrov
[master 997ecca] binbin
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 binbin
ok 3 - prepare binary file
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4005-diff-rename-2.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4005-diff-rename-2/.git/
expecting success:
cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
echo frotz >rezrov &&
git update-index --add COPYING rezrov &&
tree=$(git write-tree) &&
echo $tree &&
sed -e s/HOWEVER/However/ <COPYING >COPYING.1 &&
sed -e s/GPL/G.P.L/g <COPYING >COPYING.2 &&
origoid=$(git hash-object COPYING) &&
oid1=$(git hash-object COPYING.1) &&
oid2=$(git hash-object COPYING.2)
6fb637967044b5d0edaa623ea9befe44d6843c70
ok 1 - setup reference tree
expecting success:
rm -f COPYING &&
git update-index --add --remove COPYING COPYING.? &&
cat <<-EOF >expected &&
:100644 100644 $origoid $oid1 C1234 COPYING COPYING.1
:100644 100644 $origoid $oid2 R1234 COPYING COPYING.2
EOF
git diff-index -C $tree >current &&
compare_diff_raw expected current
ok 2 - validate output from rename/copy detection (#1)
expecting success:
mv COPYING.2 COPYING &&
git update-index --add --remove COPYING COPYING.1 COPYING.2 &&
cat <<-EOF >expected &&
:100644 100644 $origoid $oid2 M COPYING
:100644 100644 $origoid $oid1 C1234 COPYING COPYING.1
EOF
git diff-index -C $tree >current &&
compare_diff_raw current expected
ok 3 - validate output from rename/copy detection (#2)
expecting success:
cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
git update-index --add --remove COPYING COPYING.1 &&
cat <<-EOF >expected &&
:100644 100644 $origoid $oid1 C1234 COPYING COPYING.1
EOF
git diff-index -C --find-copies-harder $tree >current &&
compare_diff_raw current expected
ok 4 - validate output from rename/copy detection (#3)
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4007-rename-3.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4007-rename-3/.git/
expecting success:
mkdir path0 path1 &&
cp "$TEST_DIRECTORY"/diff-lib/COPYING path0/COPYING &&
git update-index --add path0/COPYING &&
tree=$(git write-tree) &&
echo $tree
4be42c354151eb32b60e6ab9d4cf0e5e1eda3bc3
ok 1 - prepare reference tree
expecting success:
cp path0/COPYING path1/COPYING &&
git update-index --add --remove path0/COPYING path1/COPYING
ok 2 - prepare work tree
expecting success:
git diff-index -C --find-copies-harder $tree >current &&
compare_diff_raw current expected
ok 3 - copy detection
expecting success:
git diff-index -C --find-copies-harder --cached $tree >current &&
compare_diff_raw current expected
ok 4 - copy detection, cached
expecting success:
git diff-index -C --find-copies-harder $tree path1 >current &&
compare_diff_raw current expected
ok 5 - copy, limited to a subtree
expecting success:
rm -f path0/COPYING &&
git update-index --remove path0/COPYING
ok 6 - tweak work tree
expecting success:
git diff-index -C --find-copies-harder $tree >current &&
compare_diff_raw current expected
ok 7 - rename detection
expecting success:
git diff-index -C --find-copies-harder $tree path1 >current &&
compare_diff_raw current expected
ok 8 - rename, limited to a subtree
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4009-diff-rename-4.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4009-diff-rename-4/.git/
expecting success: cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
echo frotz >rezrov &&
git update-index --add COPYING rezrov &&
tree=$(git write-tree) &&
echo $tree
6fb637967044b5d0edaa623ea9befe44d6843c70
ok 1 - prepare reference tree
expecting success: sed -e s/HOWEVER/However/ <COPYING >COPYING.1 &&
sed -e s/GPL/G.P.L/g <COPYING >COPYING.2 &&
rm -f COPYING &&
git update-index --add --remove COPYING COPYING.?
ok 2 - prepare work tree
expecting success: compare_diff_raw_z current expected
ok 3 - validate output from rename/copy detection (#1)
expecting success: mv COPYING.2 COPYING &&
git update-index --add --remove COPYING COPYING.1 COPYING.2
ok 4 - prepare work tree again
expecting success: compare_diff_raw_z current expected
ok 5 - validate output from rename/copy detection (#2)
expecting success: cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
git update-index --add --remove COPYING COPYING.1
ok 6 - prepare work tree once again
expecting success: compare_diff_raw_z current expected
ok 7 - validate output from rename/copy detection (#3)
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4008-diff-break-rewrite.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4008-diff-break-rewrite/.git/
expecting success:
cat "$TEST_DIRECTORY"/diff-lib/README >file0 &&
cat "$TEST_DIRECTORY"/diff-lib/COPYING >file1 &&
blob0_id=$(git hash-object file0) &&
blob1_id=$(git hash-object file1) &&
git update-index --add file0 file1 &&
git tag reference $(git write-tree)
ok 1 - setup
expecting success:
sed -e "s/git/GIT/" file0 >file1 &&
blob2_id=$(git hash-object file1) &&
rm -f file0 &&
git update-index --remove file0 file1
ok 2 - change file1 with copy-edit of file0 and remove file0
expecting success:
git diff-index -B --cached reference >current &&
cat >expect <<-EOF &&
:100644 000000 $blob0_id $ZERO_OID D file0
:100644 100644 $blob1_id $blob2_id M100 file1
EOF
compare_diff_raw expect current
ok 3 - run diff with -B (#1)
expecting success:
git diff-index -B -M reference >current &&
cat >expect <<-EOF &&
:100644 100644 $blob0_id $blob2_id R100 file0 file1
EOF
compare_diff_raw expect current
ok 4 - run diff with -B and -M (#2)
expecting success:
rm -f file0 file1 &&
git read-tree -m reference &&
git checkout-index -f -u -a &&
mv file0 tmp &&
mv file1 file0 &&
mv tmp file1 &&
git update-index file0 file1
ok 5 - swap file0 and file1
expecting success:
git diff-index -B reference >current &&
cat >expect <<-EOF &&
:100644 100644 $blob0_id $blob1_id M100 file0
:100644 100644 $blob1_id $blob0_id M100 file1
EOF
compare_diff_raw expect current
ok 6 - run diff with -B (#3)
expecting success:
git diff-index -B -M reference >current &&
cat >expect <<-EOF &&
:100644 100644 $blob1_id $blob1_id R100 file1 file0
:100644 100644 $blob0_id $blob0_id R100 file0 file1
EOF
compare_diff_raw expect current
ok 7 - run diff with -B and -M (#4)
expecting success:
rm -f file0 &&
test_ln_s_add frotz file0 &&
slink_id=$(printf frotz | git hash-object --stdin) &&
git update-index file1
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
ok 8 - make file0 into something completely different
expecting success:
git diff-index -B reference >current &&
cat >expect <<-EOF &&
:100644 120000 $blob0_id $slink_id T file0
:100644 100644 $blob1_id $blob0_id M100 file1
EOF
compare_diff_raw expect current
ok 9 - run diff with -B (#5)
expecting success:
git diff-index -B -M reference >current &&
# file0 changed from regular to symlink. file1 is the same as the preimage
# of file0. Because the change does not make file0 disappear, file1 is
# denoted as a copy of file0
cat >expect <<-EOF &&
:100644 120000 $blob0_id $slink_id T file0
:100644 100644 $blob0_id $blob0_id C file0 file1
EOF
compare_diff_raw expect current
ok 10 - run diff with -B -M (#6)
expecting success:
git diff-index -M reference >current &&
# This should not mistake file0 as the copy source of new file1
# due to type differences.
cat >expect <<-EOF &&
:100644 120000 $blob0_id $slink_id T file0
:100644 100644 $blob1_id $blob0_id M file1
EOF
compare_diff_raw expect current
ok 11 - run diff with -M (#7)
expecting success:
rm -f file0 file1 &&
git read-tree -m reference &&
git checkout-index -f -u -a &&
sed -e "s/git/GIT/" file0 >file1 &&
sed -e "s/git/GET/" file0 >file2 &&
blob3_id=$(git hash-object file2) &&
rm -f file0 &&
git update-index --add --remove file0 file1 file2
ok 12 - file1 edited to look like file0 and file0 rename-edited to file2
expecting success:
git diff-index -B reference >current &&
cat >expect <<-EOF &&
:100644 000000 $blob0_id $ZERO_OID D file0
:100644 100644 $blob1_id $blob2_id M100 file1
:000000 100644 $ZERO_OID $blob3_id A file2
EOF
compare_diff_raw expect current
ok 13 - run diff with -B (#8)
expecting success:
git diff-index -B -C reference >current &&
cat >expect <<-EOF &&
:100644 100644 $blob0_id $blob2_id C095 file0 file1
:100644 100644 $blob0_id $blob3_id R095 file0 file2
EOF
compare_diff_raw expect current
ok 14 - run diff with -B -C (#9)
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4011-diff-symlink.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4011-diff-symlink/.git/
expecting success:
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz
new file mode 120000
index 0000000..7c465af
--- /dev/null
+++ b/frotz
@@ -0,0 +1 @@
+xyzzy
\ No newline at end of file
diff --git a/nitfol b/nitfol
new file mode 100644
index 0000000..7c465af
--- /dev/null
+++ b/nitfol
@@ -0,0 +1 @@
+xyzzy
EOF
# the empty tree
git update-index &&
tree=$(git write-tree) &&
test_ln_s_add xyzzy frotz &&
echo xyzzy >nitfol &&
git update-index --add nitfol &&
GIT_DIFF_OPTS=--unified=0 git diff-index -M -p $tree >current &&
compare_diff_patch expected current
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
ok 1 - diff new symlink and file
expecting success:
tree=$(git write-tree) &&
git update-index frotz nitfol &&
test -z "$(git diff-index --name-only $tree)"
ok 2 - diff unchanged symlink and file
expecting success:
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz
deleted file mode 120000
index 7c465af..0000000
--- a/frotz
+++ /dev/null
@@ -1 +0,0 @@
-xyzzy
\ No newline at end of file
diff --git a/nitfol b/nitfol
deleted file mode 100644
index 7c465af..0000000
--- a/nitfol
+++ /dev/null
@@ -1 +0,0 @@
-xyzzy
EOF
mv frotz frotz2 &&
mv nitfol nitfol2 &&
git diff-index -M -p $tree >current &&
compare_diff_patch expected current
ok 3 - diff removed symlink and file
expecting success:
>expected &&
rm -f frotz nitfol &&
echo xyzzy >nitfol &&
test-tool chmtime +10 nitfol &&
if test_have_prereq SYMLINKS
then
ln -s xyzzy frotz
else
printf xyzzy >frotz
# the symlink property propagates from the index
fi &&
git diff-index -M -p $tree >current &&
compare_diff_patch expected current &&
>expected &&
git diff-index -M -p -w $tree >current &&
compare_diff_patch expected current
ok 4 - diff identical, but newly created symlink and file
expecting success:
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz
index 7c465af..df1db54 120000
--- a/frotz
+++ b/frotz
@@ -1 +1 @@
-xyzzy
\ No newline at end of file
+yxyyz
\ No newline at end of file
diff --git a/nitfol b/nitfol
index 7c465af..df1db54 100644
--- a/nitfol
+++ b/nitfol
@@ -1 +1 @@
-xyzzy
+yxyyz
EOF
rm -f frotz &&
if test_have_prereq SYMLINKS
then
ln -s yxyyz frotz
else
printf yxyyz >frotz
# the symlink property propagates from the index
fi &&
echo yxyyz >nitfol &&
git diff-index -M -p $tree >current &&
compare_diff_patch expected current
ok 5 - diff different symlink and file
expecting success:
ln -s narf pinky &&
ln -s take\ over brain &&
test_must_fail git diff --no-index pinky brain >output 2>output.err &&
grep narf output &&
! test -s output.err
-narf
ok 6 - diff symlinks with non-existing targets
expecting success:
echo "*.bin diff=bin" >>.gitattributes &&
echo content >file.bin &&
ln -s file.bin link.bin &&
git add -N file.bin link.bin
ok 7 - setup symlinks with attributes
expecting success:
cat >expect <<-\EOF &&
diff --git a/file.bin b/file.bin
index e69de29..d95f3ad 100644
Binary files a/file.bin and b/file.bin differ
diff --git a/link.bin b/link.bin
index e69de29..dce41ec 120000
--- a/link.bin
+++ b/link.bin
@@ -0,0 +1 @@
+file.bin
\ No newline at end of file
EOF
git config diff.bin.binary true &&
git diff file.bin link.bin >actual &&
test_cmp expect actual
ok 8 - symlinks do not respect userdiff config by path
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4010-diff-pathspec.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4010-diff-pathspec/.git/
expecting success: echo frotz >file0 &&
mkdir path1 &&
echo rezrov >path1/file1 &&
git update-index --add file0 path1/file1 &&
tree=$(git write-tree) &&
echo "$tree" &&
echo nitfol >file0 &&
echo yomin >path1/file1 &&
git update-index file0 path1/file1
6b4658eda9b6c5385f027bc54abf3276b6effd05
ok 1 - setup
expecting success: git diff-index --cached $tree -- path >current &&
compare_diff_raw current expected
ok 2 - limit to path should show nothing
expecting success: git diff-index --cached $tree -- path1 >current &&
compare_diff_raw current expected
ok 3 - limit to path1 should show path1/file1
expecting success: git diff-index --cached $tree -- path1/ >current &&
compare_diff_raw current expected
ok 4 - limit to path1/ should show path1/file1
expecting success: git diff-index --cached $tree -- "*file1" >current &&
compare_diff_raw current expected
ok 5 - "*file1" should show path1/file1
expecting success: git diff-index --cached $tree -- file0 >current &&
compare_diff_raw current expected
ok 6 - limit to file0 should show file0
expecting success: git diff-index --cached $tree -- file0/ >current &&
compare_diff_raw current expected
ok 7 - limit to file0/ should emit nothing.
expecting success:
tree2=$(git write-tree) &&
echo "$tree2" &&
git diff-tree -r --name-only $tree $tree2 -- pa path1/a >current &&
>expected &&
test_cmp expected current
54d8765b122f32157e847ce3924180cb2ec778fc
ok 8 - diff-tree pathspec
expecting success:
git diff-tree --name-only $EMPTY_TREE $tree -- "f*" >result &&
echo file0 >expected &&
test_cmp expected result
ok 9 - diff-tree with wildcard shows dir also matches
expecting success:
git diff-tree -r --name-only $EMPTY_TREE $tree -- "*file1" >result &&
echo path1/file1 >expected &&
test_cmp expected result
ok 10 - diff-tree -r with wildcard
expecting success:
git diff-tree --name-only $tree $tree2 -- "path1/f*" >result &&
echo path1 >expected &&
test_cmp expected result
ok 11 - diff-tree with wildcard shows dir also matches
expecting success:
git diff-tree -r --name-only $tree $tree2 -- "path1/*file1" >result &&
echo path1/file1 >expected &&
test_cmp expected result
ok 12 - diff-tree -r with wildcard from beginning
expecting success:
git diff-tree -r --name-only $tree $tree2 -- "path1/f*" >result &&
echo path1/file1 >expected &&
test_cmp expected result
ok 13 - diff-tree -r with wildcard
expecting success:
test_tick &&
git init submod &&
( cd submod && test_commit first; ) &&
git add submod &&
git commit -m first &&
( cd submod && test_commit second; ) &&
git add submod &&
git commit -m second
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4010-diff-pathspec/submod/.git/
[master (root-commit) 1e96f59] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
warning: adding embedded git repository: submod
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> submod
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached submod
hint:
hint: See "git help submodule" for more information.
[master (root-commit) f9d7654] first
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 file0
create mode 100644 path1/file1
create mode 160000 submod
[master 1bf6dc5] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 second.t
[master f1afec5] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 14 - setup submodules
expecting success:
git diff --name-only HEAD^ HEAD submod >expect &&
git diff --name-only HEAD^ HEAD submod/ >actual &&
test_cmp expect actual
ok 15 - diff-tree ignores trailing slash on submodule path
expecting success:
mkdir path2 &&
echo rezrov >path2/file1 &&
git update-index --add path2/file1 &&
tree3=$(git write-tree) &&
git diff --name-only $tree $tree3 -- "path2*1" "path1*1" >actual &&
cat <<-\EOF >expect &&
path1/file1
path2/file1
EOF
test_cmp expect actual
ok 16 - diff multiple wildcard pathspecs
expecting success:
git diff --name-only HEAD^ submod >expect &&
git diff --name-only HEAD^ submod/ >actual &&
test_cmp expect actual
ok 17 - diff-cache ignores trailing slash on submodule path
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4012-diff-binary.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4012-diff-binary/.git/
expecting success:
echo AIT >a && echo BIT >b && echo CIT >c && echo DIT >d &&
git update-index --add a b c d &&
echo git >a &&
cat "$TEST_DIRECTORY"/test-binary-1.png >b &&
echo git >c &&
cat b b >d
ok 1 - prepare repository
expecting success:
git diff >diff &&
git apply --stat --summary <diff >current &&
test_i18ncmp expected current
ok 2 - apply --stat output for binary file change
expecting success:
tail -n 1 expected >expect &&
git diff --shortstat >current &&
test_i18ncmp expect current
ok 3 - diff --shortstat output for binary file change
expecting success:
echo " 1 file changed, 0 insertions(+), 0 deletions(-)" >expected &&
git diff --shortstat -- b >current &&
test_i18ncmp expected current
ok 4 - diff --shortstat output for binary file change only
expecting success:
git diff >diff &&
git apply --numstat <diff >current &&
test_cmp expect.binary-numstat current
ok 5 - apply --numstat notices binary file change
expecting success:
git diff --binary >diff &&
git apply --numstat <diff >current &&
test_cmp expect.binary-numstat current
ok 6 - apply --numstat understands diff --binary format
expecting success:
git diff >output &&
sed -e "s/-CIT/xCIT/" <output >broken &&
test_must_fail git apply --stat --summary broken 2>detected &&
detected=$(cat detected) &&
detected=$(expr "$detected" : "error.*at line \\([0-9]*\\)\$") &&
detected=$(sed -ne "${detected}p" broken) &&
test "$detected" = xCIT
ok 7 - apply detecting corrupt patch correctly
expecting success:
git diff --binary | sed -e "s/-CIT/xCIT/" >broken &&
test_must_fail git apply --stat --summary broken 2>detected &&
detected=$(cat detected) &&
detected=$(expr "$detected" : "error.*at line \\([0-9]*\\)\$") &&
detected=$(sed -ne "${detected}p" broken) &&
test "$detected" = xCIT
ok 8 - apply detecting corrupt patch correctly
expecting success: git commit -a -m initial
[master (root-commit) d641be7] initial
Author: A U Thor <author@example.com>
4 files changed, 2 insertions(+)
create mode 100644 a
create mode 100644 b
create mode 100644 c
create mode 100644 d
ok 9 - initial commit
expecting success:
echo AIT >a && mv b e && echo CIT >c && cat e >d &&
git update-index --add --remove a b c d e &&
tree0=$(git write-tree) &&
git diff --cached --binary >current &&
git apply --stat --summary current
a | 2 +-
c | 2 +-
d | Bin
e | 0
4 files changed, 2 insertions(+), 2 deletions(-)
rename b => e (100%)
ok 10 - diff-index with --binary
expecting success:
git reset --hard &&
git apply --binary --index <current &&
tree1=$(git write-tree) &&
test "$tree1" = "$tree0"
HEAD is now at d641be7 initial
ok 11 - apply binary patch
expecting success:
echo Q | q_to_nul >binary &&
(: hide error code from diff, which just indicates differences
git diff --binary --no-index /dev/null binary >current ||
true
) &&
rm binary &&
git apply --binary <current &&
echo Q >expected &&
nul_to_q <binary >actual &&
test_cmp expected actual
ok 12 - diff --no-index with binary creation
expecting success:
printf "\01\00%1024d" 1 >binfile &&
git add binfile &&
i=0 &&
while test $i -lt 10000; do
echo $i &&
i=$(($i + 1))
done >textfile &&
git add textfile &&
git diff --cached --stat binfile textfile >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 13 - diff --stat with binary files and big change count
# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4013-diff-various.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4013-diff-various/.git/
expecting success:
GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:00:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
mkdir dir &&
mkdir dir2 &&
for i in 1 2 3; do echo $i; done >file0 &&
for i in A B; do echo $i; done >dir/sub &&
cat file0 >file2 &&
git add file0 file2 dir/sub &&
git commit -m Initial &&
git branch initial &&
git branch side &&
GIT_AUTHOR_DATE="2006-06-26 00:01:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:01:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
for i in 4 5 6; do echo $i; done >>file0 &&
for i in C D; do echo $i; done >>dir/sub &&
rm -f file2 &&
git update-index --remove file0 file2 dir/sub &&
git commit -m "Second${LF}${LF}This is the second commit." &&
GIT_AUTHOR_DATE="2006-06-26 00:02:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:02:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
for i in A B C; do echo $i; done >file1 &&
git add file1 &&
for i in E F; do echo $i; done >>dir/sub &&
git update-index dir/sub &&
git commit -m Third &&
GIT_AUTHOR_DATE="2006-06-26 00:03:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:03:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
git checkout side &&
for i in A B C; do echo $i; done >>file0 &&
for i in 1 2; do echo $i; done >>dir/sub &&
cat dir/sub >file3 &&
git add file3 &&
git update-index file0 dir/sub &&
git commit -m Side &&
GIT_AUTHOR_DATE="2006-06-26 00:04:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:04:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
git checkout master &&
git pull -s ours . side &&
GIT_AUTHOR_DATE="2006-06-26 00:05:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:05:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
for i in A B C; do echo $i; done >>file0 &&
for i in 1 2; do echo $i; done >>dir/sub &&
git update-index file0 dir/sub &&
mkdir dir3 &&
cp dir/sub dir3/sub &&
test-tool chmtime +1 dir3/sub &&
git config log.showroot false &&
git commit --amend &&
GIT_AUTHOR_DATE="2006-06-26 00:06:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:06:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
git checkout -b rearrange initial &&
for i in B A; do echo $i; done >dir/sub &&
git add dir/sub &&
git commit -m "Rearranged lines in dir/sub" &&
git checkout master &&
GIT_AUTHOR_DATE="2006-06-26 00:06:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:06:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
git checkout -b mode initial &&
git update-index --chmod=+x file0 &&
git commit -m "update mode" &&
git checkout -f master &&
git config diff.renames false &&
git show-branch
[master (root-commit) 444ac55] Initial
Author: A U Thor <author@example.com>
3 files changed, 8 insertions(+)
create mode 100644 dir/sub
create mode 100644 file0
create mode 100644 file2
[master 1bde4ae] Second
Author: A U Thor <author@example.com>
3 files changed, 5 insertions(+), 3 deletions(-)
delete mode 100644 file2
[master 9a6d494] Third
Author: A U Thor <author@example.com>
2 files changed, 5 insertions(+)
create mode 100644 file1
Switched to branch 'side'
[side c7a2ab9] Side
Author: A U Thor <author@example.com>
3 files changed, 9 insertions(+)
create mode 100644 file3
Switched to branch 'master'
From .
* branch side -> FETCH_HEAD
Merge made by the 'ours' strategy.
[master 59d314a] Merge branch 'side'
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:04:00 2006 +0000
Switched to a new branch 'rearrange'
[rearrange cd4e72f] Rearranged lines in dir/sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'master'
Switched to a new branch 'mode'
[mode b7e0bc6] update mode
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 file0
Switched to branch 'master'
! [initial] Initial
* [master] Merge branch 'side'
! [mode] update mode
! [rearrange] Rearranged lines in dir/sub
! [side] Side
-----
+ [rearrange] Rearranged lines in dir/sub
+ [mode] update mode
- [master] Merge branch 'side'
* + [side] Side
* [master^] Third
* [master~2] Second
+*+++ [initial] Initial
ok 1 - setup
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 2 - git diff-tree initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 3 - git diff-tree -r initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 4 - git diff-tree -r --abbrev initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 5 - git diff-tree -r --abbrev=4 initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 6 - git diff-tree --root initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 7 - git diff-tree --root --abbrev initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 8 - git diff-tree --root --abbrev initial # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 9 - git diff-tree --root -r initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 10 - git diff-tree --root -r --abbrev initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 11 - git diff-tree --root -r --abbrev initial # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 12 - git diff-tree --root -r --abbrev=4 initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 13 - git diff-tree --root -r --abbrev=4 initial # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 14 - git diff-tree -p initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 15 - git diff-tree --root -p initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 16 - git diff-tree --patch-with-stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 17 - git diff-tree --root --patch-with-stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 18 - git diff-tree --patch-with-raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 19 - git diff-tree --root --patch-with-raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 20 - git diff-tree --pretty initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 21 - git diff-tree --pretty --root initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 22 - git diff-tree --pretty -p initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 23 - git diff-tree --pretty --stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 24 - git diff-tree --pretty --summary initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 25 - git diff-tree --pretty --stat --summary initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 26 - git diff-tree --pretty --root -p initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 27 - git diff-tree --pretty --root --stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 28 - git diff-tree --pretty --root --summary initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 29 - git diff-tree --pretty --root --summary -r initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 30 - git diff-tree --pretty --root --stat --summary initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 31 - git diff-tree --pretty --patch-with-stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 32 - git diff-tree --pretty --root --patch-with-stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 33 - git diff-tree --pretty --patch-with-raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 34 - git diff-tree --pretty --root --patch-with-raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 35 - git diff-tree --pretty=oneline initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 36 - git diff-tree --pretty=oneline --root initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 37 - git diff-tree --pretty=oneline -p initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 38 - git diff-tree --pretty=oneline --root -p initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 39 - git diff-tree --pretty=oneline --patch-with-stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 40 - git diff-tree --pretty=oneline --root --patch-with-stat initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 41 - git diff-tree --pretty=oneline --patch-with-raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 42 - git diff-tree --pretty=oneline --root --patch-with-raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 43 - git diff-tree --pretty side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 44 - git diff-tree --pretty -p side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 45 - git diff-tree --pretty --patch-with-stat side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 46 - git diff-tree initial mode # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 47 - git diff-tree --stat initial mode # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 48 - git diff-tree --summary initial mode # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 49 - git diff-tree master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 50 - git diff-tree -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 51 - git diff-tree -p -m master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 52 - git diff-tree -c master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 53 - git diff-tree -c --abbrev master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 54 - git diff-tree -c --abbrev master # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 55 - git diff-tree --cc master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 56 - git diff-tree -c --stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 57 - git diff-tree --cc --stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 58 - git diff-tree -c --stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 59 - git diff-tree --cc --stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 60 - git diff-tree -c --stat --summary side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 61 - git diff-tree --cc --stat --summary side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 62 - git diff-tree --cc --patch-with-stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 63 - git diff-tree --cc --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 64 - git diff-tree --cc --patch-with-stat --summary side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 65 - git log master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 66 - git log -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 67 - git log --root master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 68 - git log --root -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 69 - git log --patch-with-stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 70 - git log --root --patch-with-stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 71 - git log --root --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 72 - git log --root -c --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 73 - git log --root --cc --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 74 - git log -p --first-parent master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 75 - git log -m -p --first-parent master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 76 - git log -m -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 77 - git log -SF master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 78 - git log -S F master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 79 - git log -SF -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 80 - git log -SF master --max-count=0 # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 81 - git log -SF master --max-count=1 # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 82 - git log -SF master --max-count=2 # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 83 - git log -GF master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 84 - git log -GF -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 85 - git log -GF -p --pickaxe-all master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 86 - git log --decorate --all # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 87 - git log --decorate=full --all # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 88 - git rev-list --parents HEAD # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 89 - git rev-list --children HEAD # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 90 - git whatchanged master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 91 - git whatchanged master # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 92 - git whatchanged -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 93 - git whatchanged --root master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 94 - git whatchanged --root master # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 95 - git whatchanged --root -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 96 - git whatchanged --patch-with-stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 97 - git whatchanged --root --patch-with-stat master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 98 - git whatchanged --root --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 99 - git whatchanged --root -c --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 100 - git whatchanged --root --cc --patch-with-stat --summary master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 101 - git whatchanged -SF master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 102 - git whatchanged -SF master # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 103 - git whatchanged -SF -p master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 104 - git log --patch-with-stat master -- dir/ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 105 - git whatchanged --patch-with-stat master -- dir/ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 106 - git log --patch-with-stat --summary master -- dir/ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 107 - git whatchanged --patch-with-stat --summary master -- dir/ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 108 - git show initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 109 - git show --root initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 110 - git show side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 111 - git show master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 112 - git show -c master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 113 - git show -m master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 114 - git show --first-parent master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 115 - git show --stat side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 116 - git show --stat --summary side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 117 - git show --patch-with-stat side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 118 - git show --patch-with-raw side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 119 - git show --patch-with-raw side # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 120 - git show --patch-with-stat --summary side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 121 - git format-patch --stdout initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 122 - git format-patch --stdout initial..master^ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 123 - git format-patch --stdout initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 124 - git format-patch --stdout --no-numbered initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 125 - git format-patch --stdout --numbered initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 126 - git format-patch --attach --stdout initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 127 - git format-patch --attach --stdout --suffix=.diff initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 128 - git format-patch --attach --stdout initial..master^ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 129 - git format-patch --attach --stdout initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 130 - git format-patch --inline --stdout initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 131 - git format-patch --inline --stdout initial..master^ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 132 - git format-patch --inline --stdout --numbered-files initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 133 - git format-patch --inline --stdout initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 134 - git format-patch --inline --stdout --subject-prefix=TESTCASE initial..master # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 135 - git config format.subjectprefix DIFFERENT_PREFIX # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 136 - git format-patch --inline --stdout initial..master^^ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 137 - git format-patch --stdout --cover-letter -n initial..master^ # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 138 - git diff --abbrev initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 139 - git diff -r initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 140 - git diff --stat initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 141 - git diff -r --stat initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 142 - git diff initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 143 - git diff --patch-with-stat initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 144 - git diff --patch-with-raw initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 145 - git diff --patch-with-raw initial..side # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 146 - git diff --patch-with-stat -r initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 147 - git diff --patch-with-raw -r initial..side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 148 - git diff --patch-with-raw -r initial..side # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 149 - git diff --name-status dir2 dir # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 150 - git diff --no-index --name-status dir2 dir # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 151 - git diff --no-index --name-status -- dir2 dir # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 152 - git diff --no-index dir dir3 # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 153 - git diff master master^ side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 154 - git diff --line-prefix=abc master master^ side # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 155 - git diff --dirstat master~1 master~2 # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 156 - git diff --dirstat initial rearrange # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 157 - git diff --dirstat-by-file initial rearrange # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 158 - git diff --raw initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 159 - git diff --raw initial # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 160 - git diff --raw --abbrev=4 initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 161 - git diff --raw --abbrev=4 initial # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 162 - git diff --raw --no-abbrev initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 163 - git diff --no-index --raw dir2 dir # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 164 - git diff --no-index --raw dir2 dir # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 165 - git diff --no-index --raw --abbrev=4 dir2 dir # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 166 - git diff --no-index --raw --abbrev=4 dir2 dir # magic is noellipses
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 167 - git diff --no-index --raw --no-abbrev dir2 dir # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 168 - git diff-tree --pretty --root --stat --compact-summary initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 169 - git diff-tree --pretty -R --root --stat --compact-summary initial # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 170 - git diff-tree --stat --compact-summary initial mode # magic is (not used)
expecting success:
{
echo "$ git $cmd"
case "$magic" in
"")
GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;;
noellipses)
git $cmd ;;
esac |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"
} >"$actual" &&
if test -f "$expect"
then
case $cmd in
*format-patch* | *-stat*)
test_i18ncmp "$expect" "$actual";;
*)
test_cmp "$expect" "$actual";;
esac &&
rm -f "$actual"
else
# this is to help developing new tests.
cp "$actual" "$expect"
false
fi
ok 171 - git diff-tree -R --stat --compact-summary initial mode # magic is (not used)
expecting success:
test_must_fail git log -S
fatal: Option 'S' requires a value
ok 172 - log -S requires an argument
expecting success:
echo ref: refs/heads/unborn >.git/HEAD &&
git diff --cached >result &&
test_cmp "$TEST_DIRECTORY/t4013/diff.diff_--cached" result
ok 173 - diff --cached on unborn branch
expecting success:
git diff --cached -- file0 >result &&
test_cmp "$TEST_DIRECTORY/t4013/diff.diff_--cached_--_file0" result
ok 174 - diff --cached -- file on unborn branch
expecting success:
git diff --line-prefix="| | | " --cached -- file0 >result &&
test_cmp "$TEST_DIRECTORY/t4013/diff.diff_--line-prefix_--cached_--_file0" result
ok 175 - diff --line-prefix with spaces
expecting success:
cat >expect <<-\EOF &&
Side
Third
Second
EOF
git rev-list master | git diff-tree --stdin --format=%s -s >actual &&
test_cmp expect actual
ok 176 - diff-tree --stdin with log formatting
# passed all 176 test(s)
1..176
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3906-stash-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/.git/
checking known breakage:
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update_sub1/.git/
[master (root-commit) 1743d53] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update_sub2/.git/
[master (root-commit) b3e85a5] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update_repo/.git/
[master (root-commit) c873798] 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.t3906-stash-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 2f69212] 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 8e37d07] Revert "Add sub1"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:37 2018 +0000
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 abd9f02] 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.t3906-stash-submodule/submodule_update_sub1
* [new branch] modifications -> modifications
[modify_sub1 4f69e02] 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.t3906-stash-submodule/submodule_update_repo/sub1/sub2'...
done.
[add_nested_sub b279c4e] 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 31a844d] 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 498f830] 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 b3008c1] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively c01d511] update sub1, that updates nested sub
Author: A U Thor <author@example.com>
To /<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update_sub1
* [new branch] modify_sub1_recursively -> modify_sub1_recursively
To /<<PKGBUILDDIR>>/t/trash directory.t3906-stash-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 '1743d533b6179d99cbab24719bf8b1539f728d20'
Previous HEAD position was 1743d53 Base inside first submodule
Switched to branch 'modifications'
rm 'sub1'
[replace_sub1_with_directory 248ff2c] 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 2a6fd18] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:42 2018 +0000
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 0128972] 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 697d224] Revert "Replace sub1 with file"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:42 2018 +0000
2 files changed, 5 insertions(+), 1 deletion(-)
mode change 100644 => 160000 sub1
Switched to a new branch 'invalid_sub1'
[invalid_sub1 c6606bb] Invalid sub1 commit
Author: A U Thor <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 cf764de] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:12:42 2018 +0000
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'.
Saved working directory and index state WIP on no_submodule: c873798 Base
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual ec38489b3f8eda08fda17055ad272abc24bdf929
error: uninitialized_sub: is a directory - add files inside instead
fatal: Unable to process path uninitialized_sub
Cannot unstage modified files
not ok 1 - git_stash: added submodule creates empty directory # TODO known breakage
checking known breakage:
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'.
Saved working directory and index state WIP on no_submodule: c873798 Base
--- expect 2018-06-24 06:12:45.371256859 +0000
+++ actual 2018-06-24 06:12:46.106275760 +0000
@@ -2,5 +2,3 @@
expect
file1
file2
-
-sub1:
not ok 2 - git_stash: added submodule leaves existing empty directory alone # TODO known breakage
checking known breakage:
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'.
Saved working directory and index state WIP on replace_sub1_with_file: 0128972 Replace sub1 with file
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 797b10a757f44d17b7cbd606f23812c2eaf46f1f
On branch replace_sub1_with_file
Your branch is up to date with 'origin/replace_sub1_with_file'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitmodules
deleted: sub1
no changes added to commit (use "git add" and/or "git commit -a")
'actual' is not empty, it contains:
:100644 100644 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 cf8d5939a67bef46c85d0f50732c37b6fac1d92a M .gitmodules
:160000 100644 1743d533b6179d99cbab24719bf8b1539f728d20 d95f3ad14dee633a758d2e331151e950dd13e4ed T sub1
not ok 3 - git_stash: replace tracked file with submodule creates empty directory # TODO known breakage
checking known breakage:
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'.
Saved working directory and index state WIP on replace_sub1_with_directory: 248ff2c Replace sub1 with directory
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual b24f6f402038796c7086fdb809d1b7dd90a58378
Removing sub1/file3
Removing sub1/file2
Removing sub1/file1
Adding sub1
On branch replace_sub1_with_directory
Your branch is up to date with 'origin/replace_sub1_with_directory'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitmodules
deleted: sub1/file1
deleted: sub1/file2
deleted: sub1/file3
no changes added to commit (use "git add" and/or "git commit -a")
'actual' is not empty, it contains:
:100644 100644 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 cf8d5939a67bef46c85d0f50732c37b6fac1d92a M .gitmodules
:000000 100644 0000000000000000000000000000000000000000 587be6b4c3f93f93c489c0111bba5596147a26cb A sub1/file1
:000000 100644 0000000000000000000000000000000000000000 b68025345d5301abad4d9ec9166f455243a0d746 A sub1/file2
:000000 100644 0000000000000000000000000000000000000000 587be6b4c3f93f93c489c0111bba5596147a26cb A sub1/file3
not ok 4 - git_stash: replace directory with submodule # TODO known breakage
checking known breakage:
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Saved working directory and index state WIP on add_sub1: 2f69212 Add sub1
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 2b32edc41ba68031327347676da64096701b690b
Removing uninitialized_sub
Removing .gitmodules
On branch add_sub1
Your branch is up to date with 'origin/add_sub1'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: .gitmodules
no changes added to commit (use "git add" and/or "git commit -a")
'actual' is not empty, it contains:
:000000 100644 0000000000000000000000000000000000000000 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 A .gitmodules
:000000 160000 0000000000000000000000000000000000000000 1743d533b6179d99cbab24719bf8b1539f728d20 A sub1
:000000 160000 0000000000000000000000000000000000000000 1743d533b6179d99cbab24719bf8b1539f728d20 A uninitialized_sub
not ok 5 - git_stash: removed submodule leaves submodule directory and its contents in place # TODO known breakage
checking known breakage:
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'.
warning: unable to rmdir 'sub1': Directory not empty
Saved working directory and index state WIP on add_sub1: 2f69212 Add sub1
Merging Version stash was based on with Stashed changes
Merging:
virtual Version stash was based on
virtual Stashed changes
found 1 common ancestor:
virtual 2b32edc41ba68031327347676da64096701b690b
Removing uninitialized_sub
Removing .gitmodules
On branch add_sub1
Your branch is up to date with 'origin/add_sub1'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: .gitmodules
no changes added to commit (use "git add" and/or "git commit -a")
'actual' is not empty, it contains:
:000000 100644 0000000000000000000000000000000000000000 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 A .gitmodules
:000000 160000 0000000000000000000000000000000000000000 1743d533b6179d99cbab24719bf8b1539f728d20 A sub1
:000000 160000 0000000000000000000000000000000000000000 1743d533b6179d99cbab24719bf8b1539f728d20 A uninitialized_sub
not ok 6 - git_stash: removed submodule leaves submodule containing a .git directory alone # TODO known breakage
expecting success:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&
test_must_fail $command replace_sub1_with_directory &&
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
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 7 - git_stash: replace submodule with a directory must fail
expecting success:
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 &&
test_must_fail $command replace_sub1_with_directory &&
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
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 8 - git_stash: replace submodule containing a .git directory with a directory must fail
checking known breakage:
prolog &&
reset_work_tree_to add_sub1 &&
(
cd submodule_update &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
test_must_fail $command replace_sub1_with_file &&
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
Saved working directory and index state WIP on add_sub1: 2f69212 Add sub1
--- expect 2018-06-24 06:13:00.331641563 +0000
+++ actual 2018-06-24 06:13:01.111661621 +0000
@@ -4,7 +4,5 @@
file2
sub1:
-file1
-file2
uninitialized_sub:
Submodule sub1 is not populated
not ok 9 - git_stash: replace submodule with a file must fail # TODO known breakage
checking known breakage:
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 &&
test_must_fail $command replace_sub1_with_file &&
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'.
Saved working directory and index state WIP on add_sub1: 2f69212 Add sub1
--- expect 2018-06-24 06:13:02.636700836 +0000
+++ actual 2018-06-24 06:13:03.461722050 +0000
@@ -4,7 +4,5 @@
file2
sub1:
-file1
-file2
uninitialized_sub:
diff: sub1/.git: No such file or directory
not ok 10 - git_stash: replace submodule containing a .git directory with a file must fail # TODO known breakage
checking known breakage:
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'.
No local changes to save
--- expect 2018-06-24 06:13:05.011761907 +0000
+++ actual 2018-06-24 06:13:05.561776050 +0000
@@ -1,3 +1,4 @@
+M sub1
actual
expect
file1
not ok 11 - git_stash: modified submodule does not update submodule work tree # TODO known breakage
checking known breakage:
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.t3906-stash-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3906-stash-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '1743d533b6179d99cbab24719bf8b1539f728d20'
Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'.
No local changes to save
--- expect 2018-06-24 06:13:06.951811792 +0000
+++ actual 2018-06-24 06:13:07.371822592 +0000
@@ -1,3 +1,4 @@
+M sub1
actual
expect
file1
not ok 12 - git_stash: modified submodule does not update submodule work tree to invalid commit # TODO known breakage
checking known breakage:
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'.
No local changes to save
--- expect 2018-06-24 06:13:08.016839178 +0000
+++ actual 2018-06-24 06:13:08.511851906 +0000
@@ -1,3 +1,4 @@
+M sub1
actual
expect
file1
not ok 13 - git_stash: modified submodule does not update submodule work tree from invalid commit # TODO known breakage
expecting success:
prolog &&
reset_work_tree_to 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_stash: added submodule doesn't remove untracked unignored file with same name
# still have 11 known breakage(s)
# passed all remaining 3 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4016-diff-quote.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4016-diff-quote/.git/
expecting success:
echo P0.0 >"$P0.0" &&
echo P0.1 >"$P0.1" &&
echo P0.2 >"$P0.2" &&
echo P0.3 >"$P0.3" &&
echo P1.0 >"$P1.0" &&
echo P1.2 >"$P1.2" &&
echo P1.3 >"$P1.3" &&
git add . &&
git commit -m initial &&
git mv "$P0.0" "R$P0.0" &&
git mv "$P0.1" "R$P1.0" &&
git mv "$P0.2" "R$P2.0" &&
git mv "$P0.3" "R$P3.0" &&
git mv "$P1.0" "R$P0.1" &&
git mv "$P1.2" "R$P2.1" &&
git mv "$P1.3" "R$P3.1" &&
:
[master (root-commit) 455ee81] initial
Author: A U Thor <author@example.com>
7 files changed, 7 insertions(+)
create mode 100644 "pathname\twith HT.0"
create mode 100644 "pathname\twith HT.2"
create mode 100644 "pathname\twith HT.3"
create mode 100644 pathname.0
create mode 100644 pathname.1
create mode 100644 pathname.2
create mode 100644 pathname.3
ok 1 - setup
expecting success:
cat >expect <<\EOF
rename pathname.1 => "Rpathname\twith HT.0" (100%)
rename pathname.3 => "Rpathname\nwith LF.0" (100%)
rename "pathname\twith HT.3" => "Rpathname\nwith LF.1" (100%)
rename pathname.2 => Rpathname with SP.0 (100%)
rename "pathname\twith HT.2" => Rpathname with SP.1 (100%)
rename pathname.0 => Rpathname.0 (100%)
rename "pathname\twith HT.0" => Rpathname.1 (100%)
EOF
ok 2 - setup expected files
expecting success:
git diff --summary -M HEAD >actual &&
test_cmp expect actual
ok 3 - git diff --summary -M HEAD
expecting success:
cat >expect <<-\EOF &&
0 0 pathname.1 => "Rpathname\twith HT.0"
0 0 pathname.3 => "Rpathname\nwith LF.0"
0 0 "pathname\twith HT.3" => "Rpathname\nwith LF.1"
0 0 pathname.2 => Rpathname with SP.0
0 0 "pathname\twith HT.2" => Rpathname with SP.1
0 0 pathname.0 => Rpathname.0
0 0 "pathname\twith HT.0" => Rpathname.1
EOF
git diff --numstat -M HEAD >actual &&
test_cmp expect actual
ok 4 - git diff --numstat -M HEAD
expecting success:
cat >expect <<-\EOF &&
pathname.1 => "Rpathname\twith HT.0" | 0
pathname.3 => "Rpathname\nwith LF.0" | 0
"pathname\twith HT.3" => "Rpathname\nwith LF.1" | 0
pathname.2 => Rpathname with SP.0 | 0
"pathname\twith HT.2" => Rpathname with SP.1 | 0
pathname.0 => Rpathname.0 | 0
"pathname\twith HT.0" => Rpathname.1 | 0
7 files changed, 0 insertions(+), 0 deletions(-)
EOF
git diff --stat -M HEAD >actual &&
test_i18ncmp expect actual
ok 5 - git diff --stat -M HEAD
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4017-diff-retval.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4017-diff-retval/.git/
expecting success:
echo "1 " >a &&
git add . &&
git commit -m zeroth &&
echo 1 >a &&
git add . &&
git commit -m first &&
echo 2 >b &&
git add . &&
git commit -a -m second
[master (root-commit) 4f867cc] zeroth
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[master 38dee94] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 40ccf53] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b
ok 1 - setup
expecting success:
git diff --quiet -w HEAD^^ HEAD^
ok 2 - git diff --quiet -w HEAD^^ HEAD^
expecting success:
test_must_fail git diff --quiet HEAD^^ HEAD^
ok 3 - git diff --quiet HEAD^^ HEAD^
expecting success:
test_must_fail git diff --quiet -w HEAD^ HEAD
ok 4 - git diff --quiet -w HEAD^ HEAD
expecting success:
test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD
:000000 100644 0000000000000000000000000000000000000000 0cfbf08886fca9a91cb753ec8734c84fcbe52c9f A b
ok 5 - git diff-tree HEAD^ HEAD
expecting success:
git diff-tree --exit-code HEAD^ HEAD -- a
ok 6 - git diff-tree HEAD^ HEAD -- a
expecting success:
test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- b
:000000 100644 0000000000000000000000000000000000000000 0cfbf08886fca9a91cb753ec8734c84fcbe52c9f A b
ok 7 - git diff-tree HEAD^ HEAD -- b
expecting success:
echo $(git rev-parse HEAD) | test_expect_code 1 git diff-tree --exit-code --stdin
40ccf5337ed08cfe9bf47fbdff93328ab9e8bc7d
:000000 100644 0000000000000000000000000000000000000000 0cfbf08886fca9a91cb753ec8734c84fcbe52c9f A b
ok 8 - echo HEAD | git diff-tree --stdin
expecting success:
git diff-tree --exit-code HEAD HEAD
ok 9 - git diff-tree HEAD HEAD
expecting success:
git diff-files --exit-code
ok 10 - git diff-files
expecting success:
git diff-index --exit-code --cached HEAD
ok 11 - git diff-index --cached HEAD
expecting success:
test_expect_code 1 git diff-index --exit-code --cached HEAD^
:000000 100644 0000000000000000000000000000000000000000 0cfbf08886fca9a91cb753ec8734c84fcbe52c9f A b
ok 12 - git diff-index --cached HEAD^
expecting success:
echo text >>b &&
echo 3 >c &&
git add . &&
test_expect_code 1 git diff-index --exit-code --cached HEAD^
:000000 100644 0000000000000000000000000000000000000000 6ba94de6433d6530a0fb55e5e6da01023a4bc9e3 A b
:000000 100644 0000000000000000000000000000000000000000 00750edc07d6415dcc07ae0351e9397b0222b7ba A c
ok 13 - git diff-index --cached HEAD^
expecting success:
git commit -m "text in b" &&
test_expect_code 1 git diff-tree -p --exit-code -Stext HEAD^ HEAD -- b
[master e85394b] text in b
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 c
diff --git a/b b/b
index 0cfbf08..6ba94de 100644
--- a/b
+++ b/b
@@ -1 +1,2 @@
2
+text
ok 14 - git diff-tree -Stext HEAD^ HEAD -- b
expecting success:
git diff-tree -p --exit-code -Snot-found HEAD^ HEAD -- b
ok 15 - git diff-tree -Snot-found HEAD^ HEAD -- b
expecting success:
echo 3 >>c &&
test_expect_code 1 git diff-files --exit-code
:100644 100644 00750edc07d6415dcc07ae0351e9397b0222b7ba 0000000000000000000000000000000000000000 M c
ok 16 - git diff-files
expecting success:
git update-index c &&
test_expect_code 1 git diff-index --exit-code --cached HEAD
:100644 100644 00750edc07d6415dcc07ae0351e9397b0222b7ba a5c8806279fa7d6b7d04418a47e21b7e89ab18f8 M c
ok 17 - git diff-index --cached HEAD
expecting success:
git diff --check --exit-code
ok 18 - --check --exit-code returns 0 for no difference
expecting success:
echo "good" > a &&
test_expect_code 1 git diff --check --exit-code
ok 19 - --check --exit-code returns 1 for a clean difference
expecting success:
echo "bad " >> a &&
test_expect_code 3 git diff --check --exit-code
a:2: trailing whitespace.
+bad
ok 20 - --check --exit-code returns 3 for a dirty difference
expecting success:
test_expect_code 2 git --no-pager diff --check
a:2: trailing whitespace.
+bad
ok 21 - --check with --no-pager returns 2 for dirty difference
expecting success:
echo "" >>a &&
test_expect_code 2 git --no-pager diff --check
a:2: trailing whitespace.
+bad
a:3: new blank line at EOF.
ok 22 - check should test not just the last line
expecting success:
git reset --hard &&
git checkout HEAD^ &&
echo binary >>b &&
git commit -m "side" b &&
test_must_fail git merge master &&
git add b &&
test_expect_code 2 git --no-pager diff --cached --check >test.out &&
test 3 = $(grep "conflict marker" test.out | wc -l) &&
git reset --hard
HEAD is now at e85394b text in b
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 40ccf53 second
[detached HEAD 6aa60a6] side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Merging:
6aa60a6 side
virtual master
found 1 common ancestor:
40ccf53 second
Auto-merging b
CONFLICT (content): Merge conflict in b
Automatic merge failed; fix conflicts and then commit the result.
HEAD is now at 6aa60a6 side
ok 23 - check detects leftover conflict markers
expecting success:
git reset --hard &&
echo ">>>>>>> boo" >>b &&
echo "======" >>a &&
git diff --check a &&
test_expect_code 2 git diff --check b &&
git reset --hard &&
echo ">>>>>>>> boo" >>b &&
echo "========" >>a &&
git diff --check &&
echo "b conflict-marker-size=8" >.gitattributes &&
test_expect_code 2 git diff --check b &&
git diff --check a &&
git reset --hard
HEAD is now at 6aa60a6 side
b:3: leftover conflict marker
HEAD is now at 6aa60a6 side
b:3: leftover conflict marker
HEAD is now at 6aa60a6 side
ok 24 - check honors conflict marker length
# passed all 24 test(s)
1..24
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4014-format-patch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4014-format-patch/.git/
expecting success:
for i in 1 2 3 4 5 6 7 8 9 10; do echo "$i"; done >file &&
cat file >elif &&
git add file elif &&
test_tick &&
git commit -m Initial &&
git checkout -b side &&
for i in 1 2 5 6 A B C 7 8 9 10; do echo "$i"; done >file &&
test_chmod +x elif &&
test_tick &&
git commit -m "Side changes #1" &&
for i in D E F; do echo "$i"; done >>file &&
git update-index file &&
test_tick &&
git commit -m "Side changes #2" &&
git tag C2 &&
for i in 5 6 1 2 3 A 4 B C 7 8 9 10 D E F; do echo "$i"; done >file &&
git update-index file &&
test_tick &&
git commit -m "Side changes #3 with \\n backslash-n in it." &&
git checkout master &&
git diff-tree -p C2 | git apply --index &&
test_tick &&
git commit -m "Master accepts moral equivalent of #2"
[master (root-commit) e27066e] Initial
Author: A U Thor <author@example.com>
2 files changed, 20 insertions(+)
create mode 100644 elif
create mode 100644 file
Switched to a new branch 'side'
[side 1135adf] Side changes #1
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 elif
[side fd00575] Side changes #2
Author: A U Thor <author@example.com>
1 file changed, 6 insertions(+), 2 deletions(-)
[side 18ed22a] Side changes #3 with \n backslash-n in it.
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+), 2 deletions(-)
Switched to branch 'master'
[master 2e66419] Master accepts moral equivalent of #2
Author: A U Thor <author@example.com>
1 file changed, 6 insertions(+), 2 deletions(-)
ok 1 - setup
expecting success:
git format-patch --stdout master..side >patch0 &&
cnt=$(grep "^From " patch0 | wc -l) &&
test $cnt = 3
ok 2 - format-patch --ignore-if-in-upstream
expecting success:
git format-patch --stdout \
--ignore-if-in-upstream master..side >patch1 &&
cnt=$(grep "^From " patch1 | wc -l) &&
test $cnt = 2
ok 3 - format-patch --ignore-if-in-upstream
expecting success:
git tag -a v1 -m tag side &&
git tag -a v2 -m tag master &&
git format-patch --stdout --ignore-if-in-upstream v2..v1 >patch1 &&
cnt=$(grep "^From " patch1 | wc -l) &&
test $cnt = 2
ok 4 - format-patch --ignore-if-in-upstream handles tags
expecting success:
git checkout -b slave master &&
echo "Another line" >>file &&
test_tick &&
git commit -am "Slave change #1" &&
echo "Yet another line" >>file &&
test_tick &&
git commit -am "Slave change #2" &&
git checkout -b merger master &&
test_tick &&
git merge --no-ff slave &&
cnt=$(git format-patch -3 --stdout | grep "^From " | wc -l) &&
test $cnt = 3
Switched to a new branch 'slave'
[slave 350e112] Slave change #1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[slave 065c933] Slave change #2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to a new branch 'merger'
Merging:
2e66419 Master accepts moral equivalent of #2
virtual slave
found 1 common ancestor:
2e66419 Master accepts moral equivalent of #2
Merge made by the 'recursive' strategy.
file | 2 ++
1 file changed, 2 insertions(+)
ok 5 - format-patch doesn't consider merge commits
expecting success:
git checkout -b rebuild-0 master &&
git am -3 patch0 &&
cnt=$(git rev-list master.. | wc -l) &&
test $cnt = 2
Switched to a new branch 'rebuild-0'
Applying: Side changes #1
Applying: Side changes #2
Using index info to reconstruct a base tree...
M file
Falling back to patching base and 3-way merge...
Merging:
65fd934 Side changes #1
virtual Side changes #2
found 1 common ancestor:
virtual 8359489d93991065cdaa748bd96dcb831b3d60ca
No changes -- Patch already applied.
Applying: Side changes #3 with \n backslash-n in it.
ok 6 - format-patch result applies
expecting success:
git checkout -b rebuild-1 master &&
git am -3 patch1 &&
cnt=$(git rev-list master.. | wc -l) &&
test $cnt = 2
Switched to a new branch 'rebuild-1'
Applying: Side changes #1
Applying: Side changes #3 with \n backslash-n in it.
ok 7 - format-patch --ignore-if-in-upstream result applies
expecting success:
git cat-file commit side | grep "^Side .* with .* backslash-n"
Side changes #3 with \n backslash-n in it.
ok 8 - commit did not screw up the log message
expecting success:
grep "^Subject: .*Side changes #3 with .* backslash-n" patch0 &&
grep "^Subject: .*Side changes #3 with .* backslash-n" patch1
Subject: [PATCH 3/3] Side changes #3 with \n backslash-n in it.
Subject: [PATCH 2/2] Side changes #3 with \n backslash-n in it.
ok 9 - format-patch did not screw up the log message
expecting success:
git cat-file commit rebuild-1 | grep "^Side .* with .* backslash-n"
Side changes #3 with \n backslash-n in it.
ok 10 - replay did not screw up the log message
expecting success:
git config format.headers "To: R E Cipient <rcipient@example.com>
" &&
git config --add format.headers "Cc: S E Cipient <scipient@example.com>
" &&
git format-patch --stdout master..side > patch2 &&
sed -e "/^\$/q" patch2 > hdrs2 &&
grep "^To: R E Cipient <rcipient@example.com>\$" hdrs2 &&
grep "^Cc: S E Cipient <scipient@example.com>\$" hdrs2
To: R E Cipient <rcipient@example.com>
Cc: S E Cipient <scipient@example.com>
ok 11 - extra headers
expecting success:
git config --replace-all format.headers "To: R E Cipient <rcipient@example.com>" &&
git config --add format.headers "Cc: S E Cipient <scipient@example.com>" &&
git format-patch --stdout master..side >patch3 &&
sed -e "/^\$/q" patch3 > hdrs3 &&
grep "^To: R E Cipient <rcipient@example.com>\$" hdrs3 &&
grep "^Cc: S E Cipient <scipient@example.com>\$" hdrs3
To: R E Cipient <rcipient@example.com>
Cc: S E Cipient <scipient@example.com>
ok 12 - extra headers without newlines
expecting success:
git config --replace-all format.headers "To: R E Cipient <rcipient@example.com>" &&
git config --add format.headers "To: S E Cipient <scipient@example.com>" &&
git format-patch --stdout master..side > patch4 &&
sed -e "/^\$/q" patch4 > hdrs4 &&
grep "^To: R E Cipient <rcipient@example.com>,\$" hdrs4 &&
grep "^ *S E Cipient <scipient@example.com>\$" hdrs4
To: R E Cipient <rcipient@example.com>,
S E Cipient <scipient@example.com>
ok 13 - extra headers with multiple To:s
expecting success:
git config --replace-all format.headers "Cc: R E Cipient <rcipient@example.com>" &&
git format-patch --cc="S E Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch5 &&
grep "^Cc: R E Cipient <rcipient@example.com>,\$" patch5 &&
grep "^ *S E Cipient <scipient@example.com>\$" patch5
Cc: R E Cipient <rcipient@example.com>,
S E Cipient <scipient@example.com>
ok 14 - additional command line cc (ascii)
checking known breakage:
git config --replace-all format.headers "Cc: R E Cipient <rcipient@example.com>" &&
git format-patch --cc="S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch5 &&
grep "^Cc: R E Cipient <rcipient@example.com>,\$" patch5 &&
grep "^ *\"S. E. Cipient\" <scipient@example.com>\$" patch5
Cc: R E Cipient <rcipient@example.com>,
not ok 15 - additional command line cc (rfc822) # TODO known breakage
expecting success:
git config --unset-all format.headers &&
git format-patch --add-header="Cc: R E Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch6 &&
grep "^Cc: R E Cipient <rcipient@example.com>\$" patch6
Cc: R E Cipient <rcipient@example.com>
ok 16 - command line headers
expecting success:
git config --replace-all format.headers "Cc: R E Cipient <rcipient@example.com>" &&
git format-patch --add-header="Cc: S E Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch7 &&
grep "^Cc: R E Cipient <rcipient@example.com>,\$" patch7 &&
grep "^ *S E Cipient <scipient@example.com>\$" patch7
Cc: R E Cipient <rcipient@example.com>,
S E Cipient <scipient@example.com>
ok 17 - configuration headers and command line headers
expecting success:
git config --unset-all format.headers &&
git format-patch --to="R E Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
grep "^To: R E Cipient <rcipient@example.com>\$" patch8
To: R E Cipient <rcipient@example.com>
ok 18 - command line To: header (ascii)
checking known breakage:
git format-patch --to="R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch8
not ok 19 - command line To: header (rfc822) # TODO known breakage
checking known breakage:
git format-patch --to="R Ä Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example.com>\$" patch8
not ok 20 - command line To: header (rfc2047) # TODO known breakage
expecting success:
git config format.to "R E Cipient <rcipient@example.com>" &&
git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
grep "^To: R E Cipient <rcipient@example.com>\$" patch9
To: R E Cipient <rcipient@example.com>
ok 21 - configuration To: header (ascii)
checking known breakage:
git config format.to "R. E. Cipient <rcipient@example.com>" &&
git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch9
not ok 22 - configuration To: header (rfc822) # TODO known breakage
checking known breakage:
git config format.to "R Ä Cipient <rcipient@example.com>" &&
git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example.com>\$" patch9
not ok 23 - configuration To: header (rfc2047) # TODO known breakage
expecting success:
git -c format.from=false format-patch --stdout master..side |
sed -e "/^\$/q" >patch &&
check_patch patch &&
! grep "^From: C O Mitter <committer@example.com>\$" patch
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
ok 24 - format.from=false
expecting success:
git -c format.from=true format-patch --stdout master..side |
sed -e "/^\$/q" >patch &&
check_patch patch &&
grep "^From: C O Mitter <committer@example.com>\$" patch
From: C O Mitter <committer@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
From: C O Mitter <committer@example.com>
ok 25 - format.from=true
expecting success:
git -c format.from="F R Om <from@example.com>" format-patch --stdout master..side |
sed -e "/^\$/q" >patch &&
check_patch patch &&
grep "^From: F R Om <from@example.com>\$" patch
From: F R Om <from@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
From: F R Om <from@example.com>
ok 26 - format.from with address
expecting success:
git -c format.from="F R Om <from@example.com>" format-patch --no-from --stdout master..side |
sed -e "/^\$/q" >patch &&
check_patch patch &&
! grep "^From: F R Om <from@example.com>\$" patch
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
ok 27 - --no-from overrides format.from
expecting success:
git -c format.from="F R Om <from@example.com>" format-patch --from --stdout master..side |
sed -e "/^\$/q" >patch &&
check_patch patch &&
! grep "^From: F R Om <from@example.com>\$" patch
From: C O Mitter <committer@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
ok 28 - --from overrides format.from
expecting success:
git config --replace-all format.to \
"R E Cipient <rcipient@example.com>" &&
git format-patch --no-to --stdout master..side |
sed -e "/^\$/q" >patch10 &&
check_patch patch10 &&
! grep "^To: R E Cipient <rcipient@example.com>\$" patch10
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
ok 29 - --no-to overrides config.to
expecting success:
git config --replace-all format.to \
"Someone <someone@out.there>" &&
git format-patch --no-to --to="Someone Else <else@out.there>" \
--stdout master..side |
sed -e "/^\$/q" >patch11 &&
check_patch patch11 &&
! grep "^To: Someone <someone@out.there>\$" patch11 &&
grep "^To: Someone Else <else@out.there>\$" patch11
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
To: Someone Else <else@out.there>
ok 30 - --no-to and --to replaces config.to
expecting success:
git config --replace-all format.cc \
"C E Cipient <rcipient@example.com>" &&
git format-patch --no-cc --stdout master..side |
sed -e "/^\$/q" >patch12 &&
check_patch patch12 &&
! grep "^Cc: C E Cipient <rcipient@example.com>\$" patch12
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
ok 31 - --no-cc overrides config.cc
expecting success:
git config --replace-all format.headers \
"Header1: B E Cipient <rcipient@example.com>" &&
git format-patch --no-add-header --stdout master..side |
sed -e "/^\$/q" >patch13 &&
check_patch patch13 &&
! grep "^Header1: B E Cipient <rcipient@example.com>\$" patch13
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 1/3] Side changes #1
ok 32 - --no-add-header overrides config.headers
expecting success:
rm -rf patches/ &&
git checkout side &&
git format-patch -o patches/ master &&
ls patches/0001-Side-changes-1.patch patches/0002-Side-changes-2.patch patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
Switched to branch 'side'
patches/0001-Side-changes-1.patch
patches/0002-Side-changes-2.patch
patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
patches/0001-Side-changes-1.patch
patches/0002-Side-changes-2.patch
patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
ok 33 - multiple files
expecting success:
rm -fr patches &&
git format-patch -o patches --cover-letter --reroll-count 4 master..side >list &&
! grep -v "^patches/v4-000[0-3]-" list &&
sed -n -e "/^Subject: /p" $(cat list) >subjects &&
! grep -v "^Subject: \[PATCH v4 [0-3]/3\] " subjects
ok 34 - reroll count
expecting success:
rm -fr patches &&
git format-patch -o patches --cover-letter -v4 master..side >list &&
! grep -v "^patches/v4-000[0-3]-" list &&
sed -n -e "/^Subject: /p" $(cat list) >subjects &&
! grep -v "^Subject: \[PATCH v4 [0-3]/3\] " subjects
ok 35 - reroll count (-v)
expecting success:
git checkout side &&
check_threading expect.no-threading master
Already on 'side'
ok 36 - no threading
expecting success:
check_threading expect.thread --thread master
ok 37 - thread
expecting success:
check_threading expect.in-reply-to --in-reply-to="<test.message>" \
--thread master
ok 38 - thread in-reply-to
expecting success:
check_threading expect.cover-letter --cover-letter --thread master
ok 39 - thread cover-letter
expecting success:
check_threading expect.cl-irt --cover-letter \
--in-reply-to="<test.message>" --thread master
ok 40 - thread cover-letter in-reply-to
expecting success:
check_threading expect.cl-irt --cover-letter \
--in-reply-to="<test.message>" --thread=shallow master
ok 41 - thread explicit shallow
expecting success:
check_threading expect.deep --thread=deep master
ok 42 - thread deep
expecting success:
check_threading expect.deep-irt --thread=deep \
--in-reply-to="<test.message>" master
ok 43 - thread deep in-reply-to
expecting success:
check_threading expect.deep-cl --cover-letter --thread=deep master
ok 44 - thread deep cover-letter
expecting success:
check_threading expect.deep-cl-irt --cover-letter \
--in-reply-to="<test.message>" --thread=deep master
ok 45 - thread deep cover-letter in-reply-to
expecting success:
test_config format.thread true &&
check_threading expect.thread master
ok 46 - thread via config
expecting success:
test_config format.thread deep &&
check_threading expect.deep master
ok 47 - thread deep via config
expecting success:
test_config format.thread deep &&
check_threading expect.thread --thread master
ok 48 - thread config + override
expecting success:
test_config format.thread deep &&
check_threading expect.no-threading --no-thread master
ok 49 - thread config + --no-thread
expecting success:
rm -rf patches/ &&
git checkout side &&
before=$(git hash-object file) &&
before=$(git rev-parse --short $before) &&
for i in 5 6 1 2 3 A 4 B C 7 8 9 10 D E F; do echo "$i"; done >>file &&
after=$(git hash-object file) &&
after=$(git rev-parse --short $after) &&
git update-index file &&
git commit -m "This is an excessively long subject line for a message due to the habit some projects have of not having a short, one-line subject at the start of the commit message, but rather sticking a whole paragraph right at the start as the only thing in the commit message. It had better not become the filename for the patch." &&
git format-patch -o patches/ master..side &&
ls patches/0004-This-is-an-excessively-long-subject-line-for-a-messa.patch
Already on 'side'
[side 422768b] This is an excessively long subject line for a message due to the habit some projects have of not having a short, one-line subject at the start of the commit message, but rather sticking a whole paragraph right at the start as the only thing in the commit message. It had better not become the filename for the patch.
Author: A U Thor <author@example.com>
1 file changed, 16 insertions(+)
patches/0001-Side-changes-1.patch
patches/0002-Side-changes-2.patch
patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
patches/0004-This-is-an-excessively-long-subject-line-for-a-messa.patch
patches/0004-This-is-an-excessively-long-subject-line-for-a-messa.patch
ok 50 - excessive subject
expecting success:
git mv file foo &&
git commit -m foo &&
git format-patch --no-renames --cover-letter -1 &&
check_patch 0000-cover-letter.patch &&
! grep "file => foo .* 0 *\$" 0000-cover-letter.patch &&
git format-patch --cover-letter -1 -M &&
grep "file => foo .* 0 *\$" 0000-cover-letter.patch
[side ea84707] foo
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename file => foo (100%)
0000-cover-letter.patch
0001-foo.patch
From: C O Mitter <committer@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 0/1] *** SUBJECT HERE ***
0000-cover-letter.patch
0001-foo.patch
file => foo | 0
ok 51 - cover-letter inherits diff options
expecting success:
git format-patch --cover-letter -2 &&
sed -e "1,/A U Thor/d" -e "/^\$/q" < 0000-cover-letter.patch > output &&
test_cmp expect output
0000-cover-letter.patch
0001-This-is-an-excessively-long-subject-line-for-a-messa.patch
0002-foo.patch
ok 52 - shortlog of cover-letter wraps overly-long onelines
expecting success:
git format-patch -U4 -2 &&
sed -e "1,/^diff/d" -e "/^+5/q" \
<0001-This-is-an-excessively-long-subject-line-for-a-messa.patch \
>output &&
test_cmp expect output
0001-This-is-an-excessively-long-subject-line-for-a-messa.patch
0002-foo.patch
ok 53 - format-patch respects -U
expecting success:
git format-patch -p -2 &&
sed -e "1,/^\$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output &&
test_cmp expect output
0001-This-is-an-excessively-long-subject-line-for-a-messa.patch
0002-foo.patch
ok 54 - format-patch -p suppresses stat
expecting success:
filename=$(
rm -rf sub &&
mkdir -p sub/dir &&
cd sub/dir &&
git format-patch -1
) &&
case "$filename" in
0*)
;; # ok
*)
echo "Oops? $filename"
false
;;
esac &&
test -f "$filename"
ok 55 - format-patch from a subdirectory (1)
expecting success:
filename=$(
rm -rf sub &&
mkdir -p sub/dir &&
cd sub/dir &&
git format-patch -1 -o ..
) &&
case "$filename" in
../0*)
;; # ok
*)
echo "Oops? $filename"
false
;;
esac &&
basename=$(expr "$filename" : ".*/\(.*\)") &&
test -f "sub/$basename"
ok 56 - format-patch from a subdirectory (2)
expecting success:
rm -f 0* &&
filename=$(
rm -rf sub &&
mkdir -p sub/dir &&
cd sub/dir &&
git format-patch -1 -o "$TRASH_DIRECTORY"
) &&
basename=$(expr "$filename" : ".*/\(.*\)") &&
test -f "$basename"
ok 57 - format-patch from a subdirectory (3)
expecting success:
git format-patch -1 --stdout --in-reply-to "baz@foo.bar" > patch8 &&
grep "^In-Reply-To: <baz@foo.bar>" patch8 &&
grep "^References: <baz@foo.bar>" patch8
In-Reply-To: <baz@foo.bar>
References: <baz@foo.bar>
ok 58 - format-patch --in-reply-to
expecting success:
git format-patch -1 --signoff --stdout >out &&
grep "^Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" out
Signed-off-by: C O Mitter <committer@example.com>
ok 59 - format-patch --signoff
expecting success:
git notes --ref test add -m "test message" HEAD &&
git format-patch -1 --signoff --stdout --notes=test >out &&
# Three dashes must come after S-o-b
! sed "/^Signed-off-by: /q" out | grep "test message" &&
sed "1,/^Signed-off-by: /d" out | grep "test message" &&
# Notes message must come after three dashes
! sed "/^---$/q" out | grep "test message" &&
sed "1,/^---$/d" out | grep "test message"
test message
test message
ok 60 - format-patch --notes --signoff
expecting success:
test_must_fail git format-patch --name-only 2> output &&
test_i18ncmp expect.name-only output &&
test_must_fail git format-patch --name-status 2> output &&
test_i18ncmp expect.name-status output &&
test_must_fail git format-patch --check 2> output &&
test_i18ncmp expect.check output
ok 61 - options no longer allowed for format-patch
expecting success:
git format-patch --numstat --stdout master..side > output &&
test 5 = $(grep "^diff --git a/" output | wc -l)
ok 62 - format-patch --numstat should produce a patch
expecting success:
git format-patch master..side -- file 2>error &&
! grep "Use .--" error
0001-Side-changes-2.patch
0002-Side-changes-3-with-n-backslash-n-in-it.patch
0003-This-is-an-excessively-long-subject-line-for-a-messa.patch
0004-foo.patch
ok 63 - format-patch -- <path>
expecting success:
git format-patch --ignore-if-in-upstream HEAD
ok 64 - format-patch --ignore-if-in-upstream HEAD
expecting success:
git format-patch --stdout -1 | tail -n 3 >output &&
signature >expect &&
test_cmp expect output
ok 65 - format-patch default signature
expecting success:
git format-patch --stdout --signature="my sig" -1 | tail -n 3 >output &&
signature "my sig" >expect &&
test_cmp expect output
ok 66 - format-patch --signature
expecting success:
git config format.signature "config sig" &&
git format-patch --stdout -1 >output &&
grep "config sig" output
config sig
ok 67 - format-patch with format.signature config
expecting success:
git config format.signature "config sig" &&
git format-patch --stdout --signature="overrides" -1 >output &&
! grep "config sig" output &&
grep "overrides" output
overrides
ok 68 - format-patch --signature overrides format.signature
expecting success:
git config format.signature "config sig" &&
git format-patch --stdout --signature="my sig" --no-signature \
-1 >output &&
check_patch output &&
! grep "config sig" output &&
! grep "my sig" output &&
! grep "^-- \$" output
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 69 - format-patch --no-signature ignores format.signature
expecting success:
git config --unset-all format.signature &&
git format-patch --stdout --signature="my sig" --cover-letter \
-1 >output &&
grep "my sig" output &&
test 2 = $(grep "my sig" output | wc -l)
my sig
my sig
ok 70 - format-patch --signature --cover-letter
expecting success:
git config format.signature "" &&
git format-patch --stdout -1 >output &&
check_patch output &&
! grep "^-- \$" output
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 71 - format.signature="" suppresses signatures
expecting success:
git config --unset-all format.signature &&
git format-patch --stdout --no-signature -1 >output &&
check_patch output &&
! grep "^-- \$" output
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 72 - format-patch --no-signature suppresses signatures
expecting success:
git format-patch --stdout --signature="" -1 >output &&
check_patch output &&
! grep "^-- \$" output
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 73 - format-patch --signature="" suppresses signatures
expecting success:
cat >mail-signature <<-\EOF
Test User <test.email@kernel.org>
http://git.kernel.org/cgit/git/git.git
git.kernel.org/?p=git/git.git;a=summary
EOF
ok 74 - prepare mail-signature input
expecting success:
git format-patch --stdout --signature-file=mail-signature -1 >output &&
check_patch output &&
sed -e "1,/^-- \$/d" <output >actual &&
{
cat mail-signature && echo
} >expect &&
test_cmp expect actual
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 75 - --signature-file=file works
expecting success:
test_config format.signaturefile mail-signature &&
git format-patch --stdout -1 >output &&
check_patch output &&
sed -e "1,/^-- \$/d" <output >actual &&
{
cat mail-signature && echo
} >expect &&
test_cmp expect actual
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 76 - format.signaturefile works
expecting success:
test_config format.signaturefile mail-signature &&
git format-patch --stdout --no-signature -1 >output &&
check_patch output &&
! grep "^-- \$" output
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 77 - --no-signature suppresses format.signaturefile
expecting success:
cat >other-mail-signature <<-\EOF &&
Use this other signature instead of mail-signature.
EOF
test_config format.signaturefile mail-signature &&
git format-patch --stdout \
--signature-file=other-mail-signature -1 >output &&
check_patch output &&
sed -e "1,/^-- \$/d" <output >actual &&
{
cat other-mail-signature && echo
} >expect &&
test_cmp expect actual
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
ok 78 - --signature-file overrides format.signaturefile
expecting success:
test_config format.signaturefile mail-signature &&
git format-patch --stdout --signature="my sig" -1 >output &&
check_patch output &&
grep "my sig" output
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH] foo
my sig
ok 79 - --signature overrides format.signaturefile
checking prerequisite: TTY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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:
rm -f pager_used &&
test_terminal env GIT_PAGER="wc >pager_used" git format-patch --stdout --all &&
test_path_is_file pager_used
ok 80 - format-patch --stdout paginates
expecting success:
rm -f pager_used &&
test_terminal env GIT_PAGER="wc >pager_used" git --no-pager format-patch --stdout --all &&
test_terminal env GIT_PAGER="wc >pager_used" git -c "pager.format-patch=false" format-patch --stdout --all &&
test_path_is_missing pager_used &&
test_path_is_missing .git/pager_used
From e27066e74e2522a272f220d17767ef6cab999734 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:13:13 -0700
Subject: [PATCH 01/12] Initial
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
elif | 10 [32m++++++++++[m
file | 10 [32m++++++++++[m
2 files changed, 20 insertions(+)
create mode 100644 elif
create mode 100644 file
[1mdiff --git a/elif b/elif[m
[1mnew file mode 100644[m
[1mindex 0000000..f00c965[m
[1m--- /dev/null[m
[1m+++ b/elif[m
[36m@@ -0,0 +1,10 @@[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
[32m+[m[32m4[m
[32m+[m[32m5[m
[32m+[m[32m6[m
[32m+[m[32m7[m
[32m+[m[32m8[m
[32m+[m[32m9[m
[32m+[m[32m10[m
[1mdiff --git a/file b/file[m
[1mnew file mode 100644[m
[1mindex 0000000..f00c965[m
[1m--- /dev/null[m
[1m+++ b/file[m
[36m@@ -0,0 +1,10 @@[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
[32m+[m[32m4[m
[32m+[m[32m5[m
[32m+[m[32m6[m
[32m+[m[32m7[m
[32m+[m[32m8[m
[32m+[m[32m9[m
[32m+[m[32m10[m
--
2.18.0
From 1135adfeed86678c55e1aad7c568046ee8215660 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 02/12] Side changes #1
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
elif | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 elif
[1mdiff --git a/elif b/elif[m
[1mold mode 100644[m
[1mnew mode 100755[m
--
2.18.0
From fd00575a8382ce27c62b83730a40bcff1dc2f25f Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:15:13 -0700
Subject: [PATCH 03/12] Side changes #2
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 8 [32m++++++[m[31m--[m
1 file changed, 6 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex f00c965..e5895ff 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,10 +1,14 @@[m
1[m
2[m
[31m-3[m
[31m-4[m
5[m
6[m
[32m+[m[32mA[m
[32m+[m[32mB[m
[32m+[m[32mC[m
7[m
8[m
9[m
10[m
[32m+[m[32mD[m
[32m+[m[32mE[m
[32m+[m[32mF[m
--
2.18.0
From 18ed22aae56367787c36a882bd61281e07994f11 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:16:13 -0700
Subject: [PATCH 04/12] Side changes #3 with \n backslash-n in it.
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 6 [32m++++[m[31m--[m
1 file changed, 4 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex e5895ff..40f36c6 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,8 +1,10 @@[m
[31m-1[m
[31m-2[m
5[m
6[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
A[m
[32m+[m[32m4[m
B[m
C[m
7[m
--
2.18.0
From 2e66419311bb9e77e5d67b8ea7019aaddfb581f1 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:17:13 -0700
Subject: [PATCH 05/12] Master accepts moral equivalent of #2
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 8 [32m++++++[m[31m--[m
1 file changed, 6 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex f00c965..e5895ff 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,10 +1,14 @@[m
1[m
2[m
[31m-3[m
[31m-4[m
5[m
6[m
[32m+[m[32mA[m
[32m+[m[32mB[m
[32m+[m[32mC[m
7[m
8[m
9[m
10[m
[32m+[m[32mD[m
[32m+[m[32mE[m
[32m+[m[32mF[m
--
2.18.0
From 350e11281bd1c6490ea045bbbc060879d406b458 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:18:13 -0700
Subject: [PATCH 06/12] Slave change #1
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 1 [32m+[m
1 file changed, 1 insertion(+)
[1mdiff --git a/file b/file[m
[1mindex e5895ff..3cb93e8 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -12,3 +12,4 @@[m [mC[m
D[m
E[m
F[m
[32m+[m[32mAnother line[m
--
2.18.0
From 065c933ac908ac046fbe3293f1c083118e6cc8f9 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:19:13 -0700
Subject: [PATCH 07/12] Slave change #2
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 1 [32m+[m
1 file changed, 1 insertion(+)
[1mdiff --git a/file b/file[m
[1mindex 3cb93e8..b43af10 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -13,3 +13,4 @@[m [mD[m
E[m
F[m
Another line[m
[32m+[m[32mYet another line[m
--
2.18.0
From 422768ba4254e7abbeb467b6fe254472207e3d1f Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 08/12] This is an excessively long subject line for a message
due to the habit some projects have of not having a short, one-line subject
at the start of the commit message, but rather sticking a whole paragraph
right at the start as the only thing in the commit message. It had better not
become the filename for the patch.
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 16 [32m++++++++++++++++[m
1 file changed, 16 insertions(+)
[1mdiff --git a/file b/file[m
[1mindex 40f36c6..2dc5c23 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -14,3 +14,19 @@[m [mC[m
D[m
E[m
F[m
[32m+[m[32m5[m
[32m+[m[32m6[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
[32m+[m[32mA[m
[32m+[m[32m4[m
[32m+[m[32mB[m
[32m+[m[32mC[m
[32m+[m[32m7[m
[32m+[m[32m8[m
[32m+[m[32m9[m
[32m+[m[32m10[m
[32m+[m[32mD[m
[32m+[m[32mE[m
[32m+[m[32mF[m
--
2.18.0
From 65fd934a9794ce9ab6e5c2574ed909ee8b0d4a42 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 09/12] Side changes #1
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
elif | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 elif
[1mdiff --git a/elif b/elif[m
[1mold mode 100644[m
[1mnew mode 100755[m
--
2.18.0
From 701bcbf78ada10c743c100a390d319cbda0fb047 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 10/12] Notes added by 'git notes add'
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
ea84707526e90d423e619b6b32bd3f6b55088d02 | 1 [32m+[m
1 file changed, 1 insertion(+)
create mode 100644 ea84707526e90d423e619b6b32bd3f6b55088d02
[1mdiff --git a/ea84707526e90d423e619b6b32bd3f6b55088d02 b/ea84707526e90d423e619b6b32bd3f6b55088d02[m
[1mnew file mode 100644[m
[1mindex 0000000..da5a1d5[m
[1m--- /dev/null[m
[1m+++ b/ea84707526e90d423e619b6b32bd3f6b55088d02[m
[36m@@ -0,0 +1 @@[m
[32m+[m[32mtest message[m
--
2.18.0
From ea84707526e90d423e619b6b32bd3f6b55088d02 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 11/12] foo
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file => foo | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename file => foo (100%)
[1mdiff --git a/file b/foo[m
[1msimilarity index 100%[m
[1mrename from file[m
[1mrename to foo[m
--
2.18.0
From 8bf542ef94c579d3eee1a3cf5062c983cb6d25eb Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:16:13 -0700
Subject: [PATCH 12/12] Side changes #3 with \n backslash-n in it.
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 6 [32m++++[m[31m--[m
1 file changed, 4 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex e5895ff..40f36c6 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,8 +1,10 @@[m
[31m-1[m
[31m-2[m
5[m
6[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
A[m
[32m+[m[32m4[m
B[m
C[m
7[m
--
2.18.0
From e27066e74e2522a272f220d17767ef6cab999734 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:13:13 -0700
Subject: [PATCH 01/12] Initial
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
elif | 10 [32m++++++++++[m
file | 10 [32m++++++++++[m
2 files changed, 20 insertions(+)
create mode 100644 elif
create mode 100644 file
[1mdiff --git a/elif b/elif[m
[1mnew file mode 100644[m
[1mindex 0000000..f00c965[m
[1m--- /dev/null[m
[1m+++ b/elif[m
[36m@@ -0,0 +1,10 @@[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
[32m+[m[32m4[m
[32m+[m[32m5[m
[32m+[m[32m6[m
[32m+[m[32m7[m
[32m+[m[32m8[m
[32m+[m[32m9[m
[32m+[m[32m10[m
[1mdiff --git a/file b/file[m
[1mnew file mode 100644[m
[1mindex 0000000..f00c965[m
[1m--- /dev/null[m
[1m+++ b/file[m
[36m@@ -0,0 +1,10 @@[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
[32m+[m[32m4[m
[32m+[m[32m5[m
[32m+[m[32m6[m
[32m+[m[32m7[m
[32m+[m[32m8[m
[32m+[m[32m9[m
[32m+[m[32m10[m
--
2.18.0
From 1135adfeed86678c55e1aad7c568046ee8215660 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 02/12] Side changes #1
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
elif | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 elif
[1mdiff --git a/elif b/elif[m
[1mold mode 100644[m
[1mnew mode 100755[m
--
2.18.0
From fd00575a8382ce27c62b83730a40bcff1dc2f25f Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:15:13 -0700
Subject: [PATCH 03/12] Side changes #2
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 8 [32m++++++[m[31m--[m
1 file changed, 6 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex f00c965..e5895ff 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,10 +1,14 @@[m
1[m
2[m
[31m-3[m
[31m-4[m
5[m
6[m
[32m+[m[32mA[m
[32m+[m[32mB[m
[32m+[m[32mC[m
7[m
8[m
9[m
10[m
[32m+[m[32mD[m
[32m+[m[32mE[m
[32m+[m[32mF[m
--
2.18.0
From 18ed22aae56367787c36a882bd61281e07994f11 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:16:13 -0700
Subject: [PATCH 04/12] Side changes #3 with \n backslash-n in it.
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 6 [32m++++[m[31m--[m
1 file changed, 4 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex e5895ff..40f36c6 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,8 +1,10 @@[m
[31m-1[m
[31m-2[m
5[m
6[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
A[m
[32m+[m[32m4[m
B[m
C[m
7[m
--
2.18.0
From 2e66419311bb9e77e5d67b8ea7019aaddfb581f1 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:17:13 -0700
Subject: [PATCH 05/12] Master accepts moral equivalent of #2
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 8 [32m++++++[m[31m--[m
1 file changed, 6 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex f00c965..e5895ff 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,10 +1,14 @@[m
1[m
2[m
[31m-3[m
[31m-4[m
5[m
6[m
[32m+[m[32mA[m
[32m+[m[32mB[m
[32m+[m[32mC[m
7[m
8[m
9[m
10[m
[32m+[m[32mD[m
[32m+[m[32mE[m
[32m+[m[32mF[m
--
2.18.0
From 350e11281bd1c6490ea045bbbc060879d406b458 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:18:13 -0700
Subject: [PATCH 06/12] Slave change #1
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 1 [32m+[m
1 file changed, 1 insertion(+)
[1mdiff --git a/file b/file[m
[1mindex e5895ff..3cb93e8 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -12,3 +12,4 @@[m [mC[m
D[m
E[m
F[m
[32m+[m[32mAnother line[m
--
2.18.0
From 065c933ac908ac046fbe3293f1c083118e6cc8f9 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:19:13 -0700
Subject: [PATCH 07/12] Slave change #2
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 1 [32m+[m
1 file changed, 1 insertion(+)
[1mdiff --git a/file b/file[m
[1mindex 3cb93e8..b43af10 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -13,3 +13,4 @@[m [mD[m
E[m
F[m
Another line[m
[32m+[m[32mYet another line[m
--
2.18.0
From 422768ba4254e7abbeb467b6fe254472207e3d1f Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 08/12] This is an excessively long subject line for a message
due to the habit some projects have of not having a short, one-line subject
at the start of the commit message, but rather sticking a whole paragraph
right at the start as the only thing in the commit message. It had better not
become the filename for the patch.
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 16 [32m++++++++++++++++[m
1 file changed, 16 insertions(+)
[1mdiff --git a/file b/file[m
[1mindex 40f36c6..2dc5c23 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -14,3 +14,19 @@[m [mC[m
D[m
E[m
F[m
[32m+[m[32m5[m
[32m+[m[32m6[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
[32m+[m[32mA[m
[32m+[m[32m4[m
[32m+[m[32mB[m
[32m+[m[32mC[m
[32m+[m[32m7[m
[32m+[m[32m8[m
[32m+[m[32m9[m
[32m+[m[32m10[m
[32m+[m[32mD[m
[32m+[m[32mE[m
[32m+[m[32mF[m
--
2.18.0
From 65fd934a9794ce9ab6e5c2574ed909ee8b0d4a42 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:14:13 -0700
Subject: [PATCH 09/12] Side changes #1
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
elif | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 elif
[1mdiff --git a/elif b/elif[m
[1mold mode 100644[m
[1mnew mode 100755[m
--
2.18.0
From 701bcbf78ada10c743c100a390d319cbda0fb047 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 10/12] Notes added by 'git notes add'
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
ea84707526e90d423e619b6b32bd3f6b55088d02 | 1 [32m+[m
1 file changed, 1 insertion(+)
create mode 100644 ea84707526e90d423e619b6b32bd3f6b55088d02
[1mdiff --git a/ea84707526e90d423e619b6b32bd3f6b55088d02 b/ea84707526e90d423e619b6b32bd3f6b55088d02[m
[1mnew file mode 100644[m
[1mindex 0000000..da5a1d5[m
[1m--- /dev/null[m
[1m+++ b/ea84707526e90d423e619b6b32bd3f6b55088d02[m
[36m@@ -0,0 +1 @@[m
[32m+[m[32mtest message[m
--
2.18.0
From ea84707526e90d423e619b6b32bd3f6b55088d02 Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:20:13 -0700
Subject: [PATCH 11/12] foo
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file => foo | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename file => foo (100%)
[1mdiff --git a/file b/foo[m
[1msimilarity index 100%[m
[1mrename from file[m
[1mrename to foo[m
--
2.18.0
From 8bf542ef94c579d3eee1a3cf5062c983cb6d25eb Mon Sep 17 00:00:00 2001
From: A U Thor <author@example.com>
Date: Thu, 7 Apr 2005 15:16:13 -0700
Subject: [PATCH 12/12] Side changes #3 with \n backslash-n in it.
Header1: B E Cipient <rcipient@example.com>
To: Someone <someone@out.there>
Cc: C E Cipient <rcipient@example.com>
---
file | 6 [32m++++[m[31m--[m
1 file changed, 4 insertions(+), 2 deletions(-)
[1mdiff --git a/file b/file[m
[1mindex e5895ff..40f36c6 100644[m
[1m--- a/file[m
[1m+++ b/file[m
[36m@@ -1,8 +1,10 @@[m
[31m-1[m
[31m-2[m
5[m
6[m
[32m+[m[32m1[m
[32m+[m[32m2[m
[32m+[m[32m3[m
A[m
[32m+[m[32m4[m
B[m
C[m
7[m
--
2.18.0
ok 81 - format-patch --stdout pagination can be disabled
expecting success:
rm -rf patches/ &&
echo content >>file &&
for i in one two three; do echo $i; done >msg &&
git add file &&
git commit -F msg &&
git format-patch -o patches -1 &&
grep ^Subject: patches/0001-one.patch >actual &&
echo "Subject: [PATCH] one two three" >expect &&
test_cmp expect actual
[side 4342c39] one two three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
patches/0001-one.patch
ok 82 - format-patch handles multi-line subjects
expecting success:
rm -rf patches/ &&
echo content >>file &&
for i in en två tre; do echo $i; done >msg &&
git add file &&
git commit -F msg &&
git format-patch -o patches -1 &&
grep ^Subject: patches/0001-en.patch >actual &&
echo "Subject: [PATCH] =?UTF-8?q?en=20tv=C3=A5=20tre?=" >expect &&
test_cmp expect actual
[side c3fe626] en två tre
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
patches/0001-en.patch
ok 83 - format-patch handles multi-line encoded subjects
expecting success:
echo content >>file &&
git add file &&
git commit -m "$M512" &&
git format-patch --stdout -1 >patch &&
sed -n "/^Subject/p; /^ /p; /^$/q" <patch >subject &&
test_cmp expect subject
[side 196b076] foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 84 - format-patch wraps extremely long subject (ascii)
expecting success:
rm -rf patches/ &&
echo content >>file &&
git add file &&
git commit -m "$M512" &&
git format-patch --stdout -1 >patch &&
sed -n "/^Subject/p; /^ /p; /^$/q" <patch >subject &&
test_cmp expect subject
[side 8e667a9] föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar föö bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 85 - format-patch wraps extremely long subject (rfc2047)
expecting success:
check_author "Foo B. Bar"
[side d9c8bfb] author-check
Author: Foo B. Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 86 - format-patch quotes dot in from-headers
expecting success:
check_author "Foo \"The Baz\" Bar"
[side 318775b] author-check
Author: Foo "The Baz" Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 87 - format-patch quotes double-quote in from-headers
expecting success:
check_author "Föo Bar"
[side e88cec2] author-check
Author: Föo Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 88 - format-patch uses rfc2047-encoded from-headers when necessary
expecting success:
check_author "Föo B. Bar"
[side 2596f4d] author-check
Author: Föo B. Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 89 - rfc2047-encoded from-headers leave no rfc822 specials
expecting success:
check_author "foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_"
[side 51d829b] author-check
Author: foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_ <author@example.com>
1 file changed, 1 insertion(+)
ok 90 - format-patch wraps moderately long from-header (ascii)
expecting success:
check_author "Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar"
[side ad9cfec] author-check
Author: Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 91 - format-patch wraps extremely long from-header (ascii)
expecting success:
check_author "Foo.Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar"
[side 2aca603] author-check
Author: Foo.Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 92 - format-patch wraps extremely long from-header (rfc822)
expecting success:
check_author "Foö Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar"
[side 1cfc6db] author-check
Author: Foö Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar <author@example.com>
1 file changed, 1 insertion(+)
ok 93 - format-patch wraps extremely long from-header (rfc2047)
expecting success:
echo content >>file &&
git add file &&
git commit -m "header with . in it" &&
git format-patch -k -1 --stdout >patch &&
grep ^Subject: patch >actual &&
test_cmp expect actual
[side 99b693e] header with . in it
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 94 - subject lines do not have 822 atom-quoting
expecting success:
git format-patch -n -1 --stdout --subject-prefix=PREFIX >patch &&
grep ^Subject: patch >actual &&
test_cmp expect actual
ok 95 - subject prefixes have space prepended
expecting success:
git format-patch -n -1 --stdout --subject-prefix= >patch &&
grep ^Subject: patch >actual &&
test_cmp expect actual
ok 96 - empty subject prefix does not have extra space
expecting success:
cat >expect <<-\EOF &&
Subject: [RFC PATCH 1/1] header with . in it
EOF
git format-patch -n -1 --stdout --rfc >patch &&
grep ^Subject: patch >actual &&
test_cmp expect actual
ok 97 - --rfc
expecting success:
test_must_fail git format-patch -1 --stdout --from=foo >patch
fatal: invalid ident line: foo
ok 98 - --from=ident notices bogus ident
expecting success:
git format-patch -1 --stdout --from="Me <me@example.com>" >patch &&
cat >expect <<-\EOF &&
From: Me <me@example.com>
From: A U Thor <author@example.com>
EOF
sed -ne "/^From:/p; /^$/p; /^---$/q" <patch >patch.head &&
test_cmp expect patch.head
ok 99 - --from=ident replaces author
expecting success:
git format-patch -1 --stdout --from >patch &&
cat >expect <<-\EOF &&
From: C O Mitter <committer@example.com>
From: A U Thor <author@example.com>
EOF
sed -ne "/^From:/p; /^$/p; /^---$/q" <patch >patch.head &&
test_cmp expect patch.head
ok 100 - --from uses committer ident
expecting success:
git format-patch -1 --stdout --from="A U Thor <author@example.com>" >patch &&
cat >expect <<-\EOF &&
From: A U Thor <author@example.com>
EOF
sed -ne "/^From:/p; /^$/p; /^---$/q" <patch >patch.head &&
test_cmp expect patch.head
ok 101 - --from omits redundant in-body header
expecting success:
test_env GIT_AUTHOR_NAME="éxötìc" test_commit exotic &&
test_when_finished "git reset --hard HEAD^" &&
git format-patch -1 --stdout --from >patch &&
cat >expect <<-\EOF &&
From: C O Mitter <committer@example.com>
Content-Type: text/plain; charset=UTF-8
From: éxötìc <author@example.com>
EOF
sed -ne "/^From:/p; /^$/p; /^Content-Type/p; /^---$/q" <patch >patch.head &&
test_cmp expect patch.head
[side e59bbbf] exotic
Author: éxötìc <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 exotic.t
HEAD is now at 99b693e header with . in it
ok 102 - in-body headers trigger content encoding
expecting success:
append_signoff </dev/null >actual &&
cat <<\EOF | sed "s/EOL$//" >expected &&
4:Subject: [PATCH] EOL
8:
9:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 103 - signoff: commit with no body
expecting success:
echo subject | append_signoff >actual &&
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
9:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 104 - signoff: commit with only subject
expecting success:
printf subject | append_signoff >actual &&
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
9:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 105 - signoff: commit with only subject that does not end with NL
expecting success:
append_signoff <<\EOF >actual &&
subject
body
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
11:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 106 - signoff: no existing signoffs
expecting success:
printf "subject\n\nbody" | append_signoff >actual &&
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
11:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 107 - signoff: no existing signoffs and no trailing NL
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Signed-off-by: my@house
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
11:Signed-off-by: my@house
12:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 108 - signoff: some random signoff
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Signed-off-by: my@house
(cherry picked from commit da39a3ee5e6b4b0d3255bfef95601890afd80709)
Tested-by: Some One <someone@example.com>
Bug: 1234
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
11:Signed-off-by: my@house
15:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 109 - signoff: misc conforming footer elements
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Fooled-by-me: my@house
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
11:
12:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 110 - signoff: some random signoff-alike
expecting success:
append_signoff <<\EOF >actual &&
subject
I want to mention about Signed-off-by: here.
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
9:I want to mention about Signed-off-by: here.
10:
11:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 111 - signoff: not really a signoff
expecting success:
append_signoff <<\EOF >actual &&
subject
My unfortunate
Signed-off-by: example happens to be wrapped here.
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:Signed-off-by: example happens to be wrapped here.
11:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 112 - signoff: not really a signoff (2)
expecting success:
append_signoff <<\EOF >actual &&
subject
Signed-off-by: my@house
Signed-off-by: your@house
A lot of houses.
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
9:Signed-off-by: my@house
10:Signed-off-by: your@house
11:
13:
14:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 113 - signoff: valid S-o-b paragraph in the middle
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Signed-off-by: C O Mitter <committer@example.com>
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
11:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 114 - signoff: the same signoff at the end
expecting success:
printf "subject\n\nSigned-off-by: C O Mitter <committer@example.com>" |
append_signoff >actual &&
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
9:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 115 - signoff: the same signoff at the end, no trailing NL
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Signed-off-by: C O Mitter <committer@example.com>
Signed-off-by: my@house
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
11:Signed-off-by: C O Mitter <committer@example.com>
12:Signed-off-by: my@house
EOF
test_cmp expected actual
ok 116 - signoff: the same signoff NOT at the end
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Tested-by: my@house
Some Trash
Signed-off-by: C O Mitter <committer@example.com>
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
13:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 117 - signoff: tolerate garbage in conforming footer
expecting success:
append_signoff <<\EOF >actual &&
subject
Myfooter: x
Some Trash
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
11:
12:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual &&
test_config trailer.Myfooter.ifexists add &&
append_signoff <<\EOF >actual &&
subject
Myfooter: x
Some Trash
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
11:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 118 - signoff: respect trailer config
expecting success:
append_signoff <<\EOF >actual &&
subject
body
Reviewed-id: Noone
Tested-by: my@house
Change-id: Ideadbeef
Signed-off-by: C O Mitter <committer@example.com>
Bug: 1234
EOF
cat >expected <<\EOF &&
4:Subject: [PATCH] subject
8:
10:
14:Signed-off-by: C O Mitter <committer@example.com>
EOF
test_cmp expected actual
ok 119 - signoff: footer begins with non-signoff without @ sign
expecting success:
test_unconfig color.ui &&
git format-patch --stdout -1 >expect &&
test_config color.ui always &&
git format-patch --stdout -1 >actual &&
test_cmp expect actual
ok 120 - format patch ignores color.ui
expecting success:
git checkout rebuild-1 &&
test_config branch.rebuild-1.description hello &&
git format-patch --stdout --cover-letter master >actual &&
grep hello actual >/dev/null
Switched to branch 'rebuild-1'
ok 121 - cover letter using branch description (1)
expecting success:
git checkout rebuild-1 &&
test_config branch.rebuild-1.description hello &&
git format-patch --stdout --cover-letter rebuild-1~2..rebuild-1 >actual &&
grep hello actual >/dev/null
Already on 'rebuild-1'
ok 122 - cover letter using branch description (2)
expecting success:
git checkout rebuild-1 &&
test_config branch.rebuild-1.description hello &&
git format-patch --stdout --cover-letter ^master rebuild-1 >actual &&
grep hello actual >/dev/null
Already on 'rebuild-1'
ok 123 - cover letter using branch description (3)
expecting success:
git checkout rebuild-1 &&
test_config branch.rebuild-1.description hello &&
git format-patch --stdout --cover-letter master.. >actual &&
grep hello actual >/dev/null
Already on 'rebuild-1'
ok 124 - cover letter using branch description (4)
expecting success:
git checkout rebuild-1 &&
test_config branch.rebuild-1.description hello &&
git format-patch --stdout --cover-letter -2 HEAD >actual &&
grep hello actual >/dev/null
Already on 'rebuild-1'
ok 125 - cover letter using branch description (5)
expecting success:
git checkout rebuild-1 &&
test_config branch.rebuild-1.description hello &&
git format-patch --stdout --cover-letter -2 >actual &&
grep hello actual >/dev/null
Already on 'rebuild-1'
ok 126 - cover letter using branch description (6)
expecting success:
git format-patch --stdout --cover-letter >actual &&
test_line_count = 0 actual
ok 127 - cover letter with nothing
expecting success:
mkdir -p tmp &&
test_when_finished "rm -rf tmp;
git config --unset format.coverletter" &&
git config format.coverletter auto &&
git format-patch -o tmp -1 >list &&
test_line_count = 1 list &&
git format-patch -o tmp -2 >list &&
test_line_count = 3 list
ok 128 - cover letter auto
expecting success:
mkdir -p tmp &&
test_when_finished "rm -rf tmp;
git config --unset format.coverletter" &&
git config format.coverletter auto &&
git format-patch -o tmp --cover-letter -1 >list &&
test_line_count = 2 list &&
git format-patch -o tmp --cover-letter -2 >list &&
test_line_count = 3 list &&
git format-patch -o tmp --no-cover-letter -1 >list &&
test_line_count = 1 list &&
git format-patch -o tmp --no-cover-letter -2 >list &&
test_line_count = 2 list
ok 129 - cover letter auto user override
expecting success:
git format-patch --zero-commit --stdout v2..v1 >patch2 &&
grep "^From " patch2 | sort | uniq >actual &&
echo "From $ZERO_OID Mon Sep 17 00:00:00 2001" >expect &&
test_cmp expect actual
ok 130 - format-patch --zero-commit
expecting success:
git format-patch --stdout v2..v1 >patch2 &&
grep "^From " patch2 >from &&
grep "^From $OID_REGEX Mon Sep 17 00:00:00 2001$" patch2 >filtered &&
test_cmp from filtered
ok 131 - From line has expected format
expecting success:
test_config format.outputDirectory patches &&
rm -fr patches &&
git format-patch master..side &&
test $(git rev-list master..side | wc -l) -eq $(ls patches | wc -l)
patches/0001-Side-changes-1.patch
patches/0002-Side-changes-2.patch
patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
patches/0004-This-is-an-excessively-long-subject-line-for-a-messa.patch
patches/0005-foo.patch
patches/0006-one.patch
patches/0007-en.patch
patches/0008-foo-bar-foo-bar-foo-bar-foo-bar-foo-bar-foo-bar-foo-.patch
patches/0009-f-bar-f-bar-f-bar-f-bar-f-bar-f-bar-f-bar-f-bar-f-ba.patch
patches/0010-author-check.patch
patches/0011-author-check.patch
patches/0012-author-check.patch
patches/0013-author-check.patch
patches/0014-author-check.patch
patches/0015-author-check.patch
patches/0016-author-check.patch
patches/0017-author-check.patch
patches/0018-header-with-.-in-it.patch
ok 132 - format-patch format.outputDirectory option
expecting success:
test_config format.outputDirectory patches &&
rm -fr patches patchset &&
git format-patch master..side -o patchset &&
test_path_is_missing patches &&
test_path_is_dir patchset
patchset/0001-Side-changes-1.patch
patchset/0002-Side-changes-2.patch
patchset/0003-Side-changes-3-with-n-backslash-n-in-it.patch
patchset/0004-This-is-an-excessively-long-subject-line-for-a-messa.patch
patchset/0005-foo.patch
patchset/0006-one.patch
patchset/0007-en.patch
patchset/0008-foo-bar-foo-bar-foo-bar-foo-bar-foo-bar-foo-bar-foo-.patch
patchset/0009-f-bar-f-bar-f-bar-f-bar-f-bar-f-bar-f-bar-f-bar-f-ba.patch
patchset/0010-author-check.patch
patchset/0011-author-check.patch
patchset/0012-author-check.patch
patchset/0013-author-check.patch
patchset/0014-author-check.patch
patchset/0015-author-check.patch
patchset/0016-author-check.patch
patchset/0017-author-check.patch
patchset/0018-header-with-.-in-it.patch
ok 133 - format-patch -o overrides format.outputDirectory
expecting success:
git checkout side &&
git format-patch --stdout --base=HEAD~3 -1 | tail -n 7 >actual &&
echo >expected &&
echo "base-commit: $(git rev-parse HEAD~3)" >>expected &&
echo "prerequisite-patch-id: $(git show --patch HEAD~2 | git patch-id --stable | awk "{print \$1}")" >>expected &&
echo "prerequisite-patch-id: $(git show --patch HEAD~1 | git patch-id --stable | awk "{print \$1}")" >>expected &&
signature >> expected &&
test_cmp expected actual
Switched to branch 'side'
ok 134 - format-patch --base
expecting success:
test_must_fail git format-patch --base=HEAD -2 &&
test_must_fail git format-patch --base=HEAD~1 -2 &&
git format-patch --stdout --base=HEAD~2 -2 >patch &&
grep "^base-commit:" patch >actual &&
echo "base-commit: $(git rev-parse HEAD~2)" >expected &&
test_cmp expected actual
fatal: base commit should be the ancestor of revision list
fatal: base commit shouldn't be in revision list
ok 135 - format-patch --base errors out when base commit is in revision list
expecting success:
# For history as below:
#
# ---Q---P---Z---Y---*---X
# \ /
# ------------W
#
# If "format-patch Z..X" is given, P and Z can not be specified as the base commit
git checkout -b topic1 master &&
git rev-parse HEAD >commit-id-base &&
test_commit P &&
git rev-parse HEAD >commit-id-P &&
test_commit Z &&
git rev-parse HEAD >commit-id-Z &&
test_commit Y &&
git checkout -b topic2 master &&
test_commit W &&
git merge topic1 &&
test_commit X &&
test_must_fail git format-patch --base=$(cat commit-id-P) -3 &&
test_must_fail git format-patch --base=$(cat commit-id-Z) -3 &&
git format-patch --stdout --base=$(cat commit-id-base) -3 >patch &&
grep "^base-commit:" patch >actual &&
echo "base-commit: $(cat commit-id-base)" >expected &&
test_cmp expected actual
Switched to a new branch 'topic1'
[topic1 96e8131] P
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 P.t
[topic1 1eaebad] Z
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 Z.t
[topic1 4a196f5] Y
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 Y.t
Switched to a new branch 'topic2'
[topic2 365f6a5] W
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 W.t
Merging:
365f6a5 W
virtual topic1
found 1 common ancestor:
2e66419 Master accepts moral equivalent of #2
Merge made by the 'recursive' strategy.
P.t | 1 +
Y.t | 1 +
Z.t | 1 +
3 files changed, 3 insertions(+)
create mode 100644 P.t
create mode 100644 Y.t
create mode 100644 Z.t
[topic2 58239b5] X
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 X.t
fatal: base commit should be the ancestor of revision list
fatal: base commit should be the ancestor of revision list
ok 136 - format-patch --base errors out when base commit is not ancestor of revision list
expecting success:
git checkout -b upstream master &&
git checkout -b local upstream &&
git branch --set-upstream-to=upstream &&
test_commit N1 &&
test_commit N2 &&
git format-patch --stdout --base=auto -2 >patch &&
grep "^base-commit:" patch >actual &&
echo "base-commit: $(git rev-parse upstream)" >expected &&
test_cmp expected actual
Switched to a new branch 'upstream'
Switched to a new branch 'local'
Branch 'local' set up to track local branch 'upstream'.
[local 7f4e3a5] N1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 N1.t
[local ba194f4] N2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 N2.t
ok 137 - format-patch --base=auto
expecting success:
# setup criss-cross history
#
# B---M1---D
# / \ /
# A X
# \ / \
# C---M2---E
#
git checkout master &&
test_commit A &&
git checkout -b xb master &&
test_commit B &&
git checkout -b xc master &&
test_commit C &&
git checkout -b xbc xb -- &&
git merge xc &&
git checkout -b xcb xc -- &&
git branch --set-upstream-to=xbc &&
git merge xb &&
git checkout xbc &&
test_commit D &&
git checkout xcb &&
test_commit E &&
test_must_fail git format-patch --base=auto -1
Switched to branch 'master'
[master e5d9469] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
Switched to a new branch 'xb'
[xb 2ac91dd] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
Switched to a new branch 'xc'
[xc 704dab6] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 C.t
Switched to a new branch 'xbc'
Merging:
2ac91dd B
virtual xc
found 1 common ancestor:
e5d9469 A
Merge made by the 'recursive' strategy.
C.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 C.t
Switched to a new branch 'xcb'
Branch 'xcb' set up to track local branch 'xbc'.
Merging:
704dab6 C
virtual xb
found 1 common ancestor:
e5d9469 A
Merge made by the 'recursive' strategy.
B.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 B.t
Switched to branch 'xbc'
[xbc fd1aa2c] D
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 D.t
Switched to branch 'xcb'
Your branch and 'xbc' have diverged,
and have 1 and 2 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
[xcb 2809385] E
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 E.t
fatal: Could not find exact merge base.
ok 138 - format-patch errors out when history involves criss-cross
expecting success:
test_when_finished "git config --unset format.useAutoBase" &&
git checkout local &&
git config format.useAutoBase true &&
git format-patch --stdout -1 >patch &&
grep "^base-commit:" patch >actual &&
echo "base-commit: $(git rev-parse upstream)" >expected &&
test_cmp expected actual
Switched to branch 'local'
Your branch is ahead of 'upstream' by 2 commits.
(use "git push" to publish your local commits)
ok 139 - format-patch format.useAutoBaseoption
expecting success:
test_when_finished "git config --unset format.useAutoBase" &&
git config format.useAutoBase true &&
git format-patch --stdout --base=HEAD~1 -1 >patch &&
grep "^base-commit:" patch >actual &&
echo "base-commit: $(git rev-parse HEAD~1)" >expected &&
test_cmp expected actual
ok 140 - format-patch --base overrides format.useAutoBase
expecting success:
git format-patch --attach=mimemime --stdout --base=HEAD~ -1 >patch &&
sed -n -e "/^base-commit:/s/.*/1/p" -e "/^---*mimemime--$/s/.*/2/p" \
patch >actual &&
test_write_lines 1 2 >expect &&
test_cmp expect actual
ok 141 - format-patch --base with --attach
expecting success:
test_when_finished "rm -fr patches" &&
git format-patch -o patches --cover-letter --attach=mimemime --base=HEAD~ -1 &&
! egrep "^--+mimemime" patches/0000*.patch &&
egrep "^--+mimemime$" patches/0001*.patch >output &&
test_line_count = 2 output &&
egrep "^--+mimemime--$" patches/0001*.patch >output &&
test_line_count = 1 output
patches/0000-cover-letter.patch
patches/0001-N2.patch
ok 142 - format-patch --attach cover-letter only is non-multipart
expecting success:
sp=" " &&
cat >msg <<-INPUT_END &&
mboxrd should escape the body
From could trip up a loose mbox parser
>From extra escape for reversibility
>>From extra escape for reversibility 2
from lower case not escaped
Fromm bad speling not escaped
From with leading space not escaped
F
From
From$sp
From $sp
From $sp
INPUT_END
cat >expect <<-INPUT_END &&
>From could trip up a loose mbox parser
>>From extra escape for reversibility
>>>From extra escape for reversibility 2
from lower case not escaped
Fromm bad speling not escaped
From with leading space not escaped
F
From
From
From
From
INPUT_END
C=$(git commit-tree HEAD^^{tree} -p HEAD <msg) &&
git format-patch --pretty=mboxrd --stdout -1 $C~1..$C >patch &&
git grep -h --no-index -A11 \
"^>From could trip up a loose mbox parser" patch >actual &&
test_cmp expect actual
ok 143 - format-patch --pretty=mboxrd
# still have 5 known breakage(s)
# passed all remaining 138 test(s)
1..143
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4018-diff-funcname.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4018-diff-funcname/.git/
expecting success:
# a non-trivial custom pattern
git config diff.custom1.funcname "!static
!String
[^ ].*s.*" &&
# a custom pattern which matches to end of line
git config diff.custom2.funcname "......Beer\$" &&
# alternation in pattern
git config diff.custom3.funcname "Beer$" &&
git config diff.custom3.xfuncname "^[ ]*((public|static).*)$" &&
# for regexp compilation tests
echo A >A.java &&
echo B >B.java
ok 1 - setup
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 2 - builtin ada pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 3 - builtin ada wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 4 - builtin bibtex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 5 - builtin bibtex wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 6 - builtin cpp pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 7 - builtin cpp wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 8 - builtin csharp pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 9 - builtin csharp wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 10 - builtin css pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 11 - builtin css wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 12 - builtin fortran pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 13 - builtin fortran wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 14 - builtin fountain pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 15 - builtin fountain wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 16 - builtin golang pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 17 - builtin golang wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 18 - builtin html pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 19 - builtin html wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 20 - builtin java pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 21 - builtin java wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 22 - builtin matlab pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 23 - builtin matlab wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 24 - builtin objc pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 25 - builtin objc wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 26 - builtin pascal pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 27 - builtin pascal wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 28 - builtin perl pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 29 - builtin perl wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 30 - builtin php pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 31 - builtin php wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 32 - builtin python pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 33 - builtin python wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 34 - builtin ruby pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 35 - builtin ruby wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 36 - builtin tex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 37 - builtin tex wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 38 - builtin custom1 pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 39 - builtin custom1 wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 40 - builtin custom2 pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 41 - builtin custom2 wordRegex pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
-A
+B
ok 42 - builtin custom3 pattern compiles
expecting success:
echo "*.java diff=$p" >.gitattributes &&
test_expect_code 1 git diff --no-index --word-diff \
A.java B.java 2>msg &&
test_i18ngrep ! fatal msg &&
test_i18ngrep ! error msg
diff --git a/A.java b/B.java
index f70f10e..223b783 100644
--- a/A.java
+++ b/B.java
@@ -1 +1 @@
[-A-]{+B+}
ok 43 - builtin custom3 wordRegex pattern compiles
expecting success:
echo "*.java diff=java" >.gitattributes &&
test_config diff.java.funcname "!static" &&
test_expect_code 128 git diff --no-index A.java B.java 2>msg &&
test_i18ngrep ": Last expression must not be negated:" msg
fatal: Last expression must not be negated: !static
ok 44 - last regexp must not be negated
expecting success:
for i in $diffpatterns
do
echo "$i-* diff=$i"
done > .gitattributes &&
# add all test files to the index
(
cd "$TEST_DIRECTORY"/t4018 &&
git --git-dir="$TRASH_DIRECTORY/.git" add .
) &&
# place modified files in the worktree
for i in $(git ls-files)
do
sed -e "s/ChangeMe/IWasChanged/" <"$TEST_DIRECTORY/t4018/$i" >"$i" || return 1
done
ok 45 - setup hunk header tests
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 README >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ How to write RIGHT test cases
diff --git a/README b/README
index 283e01c..a55b544 100644
--- a/README
+++ b/README
@@ -3,3 +3,3 @@ How to write RIGHT test cases
-Insert the word "ChangeMe" (exactly this form) at a distance of
+Insert the word "IWasChanged" (exactly this form) at a distance of
at least two lines from the line that must appear in the hunk header.
ok 46 - hunk header: README
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-c++-function >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ Item RIGHT::DoSomething( Args with_spaces )
diff --git a/cpp-c++-function b/cpp-c++-function
index 9ee6bbe..7bb7443 100644
--- a/cpp-c++-function
+++ b/cpp-c++-function
@@ -2,3 +2,3 @@ Item RIGHT::DoSomething( Args with_spaces )
{
- ChangeMe;
+ IWasChanged;
}
ok 47 - hunk header: cpp-c++-function
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-class-constructor >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ Item::Item(int RIGHT)
diff --git a/cpp-class-constructor b/cpp-class-constructor
index ec4f115..1c9fd01 100644
--- a/cpp-class-constructor
+++ b/cpp-class-constructor
@@ -2,3 +2,3 @@ Item::Item(int RIGHT)
{
- ChangeMe;
+ IWasChanged;
}
ok 48 - hunk header: cpp-class-constructor
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-class-constructor-mem-init >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ Item::Item(int RIGHT) :
diff --git a/cpp-class-constructor-mem-init b/cpp-class-constructor-mem-init
index 49a69f3..ffaf335 100644
--- a/cpp-class-constructor-mem-init
+++ b/cpp-class-constructor-mem-init
@@ -3,3 +3,3 @@ Item::Item(int RIGHT) :
{
- ChangeMe;
+ IWasChanged;
}
ok 49 - hunk header: cpp-class-constructor-mem-init
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-class-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ class RIGHT
diff --git a/cpp-class-definition b/cpp-class-definition
index 11b61da..d624df1 100644
--- a/cpp-class-definition
+++ b/cpp-class-definition
@@ -2,3 +2,3 @@ class RIGHT
{
- int ChangeMe;
+ int IWasChanged;
};
ok 50 - hunk header: cpp-class-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-class-definition-derived >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ class RIGHT :
diff --git a/cpp-class-definition-derived b/cpp-class-definition-derived
index 3b98cd0..b4d6116 100644
--- a/cpp-class-definition-derived
+++ b/cpp-class-definition-derived
@@ -3,3 +3,3 @@ class RIGHT :
{
- int ChangeMe;
+ int IWasChanged;
};
ok 51 - hunk header: cpp-class-definition-derived
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-class-destructor >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ RIGHT::~RIGHT()
diff --git a/cpp-class-destructor b/cpp-class-destructor
index 5487665..54af7a9 100644
--- a/cpp-class-destructor
+++ b/cpp-class-destructor
@@ -2,3 +2,3 @@ RIGHT::~RIGHT()
{
- ChangeMe;
+ IWasChanged;
}
ok 52 - hunk header: cpp-class-destructor
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-function-returning-global-type >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ ::Item get::it::RIGHT()
diff --git a/cpp-function-returning-global-type b/cpp-function-returning-global-type
index 1084d59..1b57ca1 100644
--- a/cpp-function-returning-global-type
+++ b/cpp-function-returning-global-type
@@ -2,3 +2,3 @@ ::Item get::it::RIGHT()
{
- ChangeMe;
+ IWasChanged;
}
ok 53 - hunk header: cpp-function-returning-global-type
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-function-returning-nested >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ get::Item get::it::RIGHT()
diff --git a/cpp-function-returning-nested b/cpp-function-returning-nested
index d9750aa..83df216 100644
--- a/cpp-function-returning-nested
+++ b/cpp-function-returning-nested
@@ -2,3 +2,3 @@ get::Item get::it::RIGHT()
{
- ChangeMe;
+ IWasChanged;
}
ok 54 - hunk header: cpp-function-returning-nested
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-function-returning-pointer >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ const char *get_it_RIGHT(char *ptr)
diff --git a/cpp-function-returning-pointer b/cpp-function-returning-pointer
index ef15657..1339209 100644
--- a/cpp-function-returning-pointer
+++ b/cpp-function-returning-pointer
@@ -2,3 +2,3 @@ const char *get_it_RIGHT(char *ptr)
{
- ChangeMe;
+ IWasChanged;
}
ok 55 - hunk header: cpp-function-returning-pointer
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-function-returning-reference >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ string& get::it::RIGHT(char *ptr)
diff --git a/cpp-function-returning-reference b/cpp-function-returning-reference
index 01b051d..735bf10 100644
--- a/cpp-function-returning-reference
+++ b/cpp-function-returning-reference
@@ -2,3 +2,3 @@ string& get::it::RIGHT(char *ptr)
{
- ChangeMe;
+ IWasChanged;
}
ok 56 - hunk header: cpp-function-returning-reference
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-gnu-style-function >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ RIGHT(int arg)
diff --git a/cpp-gnu-style-function b/cpp-gnu-style-function
index 08c7c75..8aa213e 100644
--- a/cpp-gnu-style-function
+++ b/cpp-gnu-style-function
@@ -3,3 +3,3 @@ RIGHT(int arg)
{
- ChangeMe;
+ IWasChanged;
}
ok 57 - hunk header: cpp-gnu-style-function
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-namespace-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ namespace RIGHT
diff --git a/cpp-namespace-definition b/cpp-namespace-definition
index 6749980..151ab14 100644
--- a/cpp-namespace-definition
+++ b/cpp-namespace-definition
@@ -2,3 +2,3 @@ namespace RIGHT
{
- ChangeMe;
+ IWasChanged;
}
ok 58 - hunk header: cpp-namespace-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-operator-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ Value operator+(Value LEFT, Value RIGHT)
diff --git a/cpp-operator-definition b/cpp-operator-definition
index 1acd827..fc88630 100644
--- a/cpp-operator-definition
+++ b/cpp-operator-definition
@@ -2,3 +2,3 @@ Value operator+(Value LEFT, Value RIGHT)
{
- ChangeMe;
+ IWasChanged;
}
ok 59 - hunk header: cpp-operator-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-skip-access-specifiers >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -6,3 +6,3 @@ class RIGHT : public Baseclass
diff --git a/cpp-skip-access-specifiers b/cpp-skip-access-specifiers
index 4d4a9db..ebd6f42 100644
--- a/cpp-skip-access-specifiers
+++ b/cpp-skip-access-specifiers
@@ -6,3 +6,3 @@ class RIGHT : public Baseclass
void DoSomething();
- int ChangeMe;
+ int IWasChanged;
};
ok 60 - hunk header: cpp-skip-access-specifiers
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-skip-comment-block >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -7,3 +7,3 @@ struct item RIGHT(int i)
diff --git a/cpp-skip-comment-block b/cpp-skip-comment-block
index 3800b99..94419d1 100644
--- a/cpp-skip-comment-block
+++ b/cpp-skip-comment-block
@@ -7,3 +7,3 @@ struct item RIGHT(int i)
{
- ChangeMe;
+ IWasChanged;
}
ok 61 - hunk header: cpp-skip-comment-block
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-skip-labels >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -6,3 +6,3 @@ void RIGHT (void)
diff --git a/cpp-skip-labels b/cpp-skip-labels
index b9c10ab..3a5ccc4 100644
--- a/cpp-skip-labels
+++ b/cpp-skip-labels
@@ -6,3 +6,3 @@ void RIGHT (void)
- ChangeMe;
+ IWasChanged;
}
ok 62 - hunk header: cpp-skip-labels
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-struct-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -7,3 +7,3 @@ struct RIGHT {
diff --git a/cpp-struct-definition b/cpp-struct-definition
index 521c59f..636b51b 100644
--- a/cpp-struct-definition
+++ b/cpp-struct-definition
@@ -7,3 +7,3 @@ struct RIGHT {
- int ChangeMe;
+ int IWasChanged;
};
ok 63 - hunk header: cpp-struct-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-struct-single-line >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -6,2 +6,2 @@ struct RIGHT_iterator_tag {};
diff --git a/cpp-struct-single-line b/cpp-struct-single-line
index a0de5fb..ef36f0e 100644
--- a/cpp-struct-single-line
+++ b/cpp-struct-single-line
@@ -6,2 +6,2 @@ struct RIGHT_iterator_tag {};
-int ChangeMe;
+int IWasChanged;
ok 64 - hunk header: cpp-struct-single-line
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-template-function-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ template<class T> int RIGHT(T arg)
diff --git a/cpp-template-function-definition b/cpp-template-function-definition
index 0cdf5ba..18f812d 100644
--- a/cpp-template-function-definition
+++ b/cpp-template-function-definition
@@ -2,3 +2,3 @@ template<class T> int RIGHT(T arg)
{
- ChangeMe;
+ IWasChanged;
}
ok 65 - hunk header: cpp-template-function-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-union-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ union RIGHT {
diff --git a/cpp-union-definition b/cpp-union-definition
index 7ec94df..f67e5e0 100644
--- a/cpp-union-definition
+++ b/cpp-union-definition
@@ -2,3 +2,3 @@ union RIGHT {
double v;
- int ChangeMe;
+ int IWasChanged;
};
ok 66 - hunk header: cpp-union-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 cpp-void-c-function >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ void RIGHT (void)
diff --git a/cpp-void-c-function b/cpp-void-c-function
index 153081e..7ce1087 100644
--- a/cpp-void-c-function
+++ b/cpp-void-c-function
@@ -2,3 +2,3 @@ void RIGHT (void)
{
- ChangeMe;
+ IWasChanged;
}
ok 67 - hunk header: cpp-void-c-function
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-brace-in-col-1 >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ RIGHT label.control-label
diff --git a/css-brace-in-col-1 b/css-brace-in-col-1
index 7831577..a70b71f 100644
--- a/css-brace-in-col-1
+++ b/css-brace-in-col-1
@@ -3,3 +3,3 @@ RIGHT label.control-label
margin-top: 10px!important;
- border : 10px ChangeMe #C6C6C6;
+ border : 10px IWasChanged #C6C6C6;
}
ok 68 - hunk header: css-brace-in-col-1
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-colon-eol >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ RIGHT h1 {
diff --git a/css-colon-eol b/css-colon-eol
index 5a30553..2ed827e 100644
--- a/css-colon-eol
+++ b/css-colon-eol
@@ -2,3 +2,3 @@ RIGHT h1 {
color:
-ChangeMe;
+IWasChanged;
}
ok 69 - hunk header: css-colon-eol
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-colon-selector >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ RIGHT a:hover {
diff --git a/css-colon-selector b/css-colon-selector
index c6d71fb..eac5d97 100644
--- a/css-colon-selector
+++ b/css-colon-selector
@@ -3,3 +3,3 @@ RIGHT a:hover {
10px!important;
- border : 10px ChangeMe #C6C6C6;
+ border : 10px IWasChanged #C6C6C6;
}
ok 70 - hunk header: css-colon-selector
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-common >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ RIGHT label.control-label {
diff --git a/css-common b/css-common
index 84ed754..1226bd2 100644
--- a/css-common
+++ b/css-common
@@ -2,3 +2,3 @@ RIGHT label.control-label {
margin-top: 10px!important;
- border : 10px ChangeMe #C6C6C6;
+ border : 10px IWasChanged #C6C6C6;
}
ok 71 - hunk header: css-common
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-long-selector-list >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -4,3 +4,3 @@ div ul#RIGHT {
diff --git a/css-long-selector-list b/css-long-selector-list
index 7ccd25d..f31d086 100644
--- a/css-long-selector-list
+++ b/css-long-selector-list
@@ -4,3 +4,3 @@ div ul#RIGHT {
margin-top: 10px!important;
- border : 10px ChangeMe #C6C6C6;
+ border : 10px IWasChanged #C6C6C6;
}
ok 72 - hunk header: css-long-selector-list
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-prop-sans-indent >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ RIGHT, label.control-label {
diff --git a/css-prop-sans-indent b/css-prop-sans-indent
index a9e3c86..bd27e0b 100644
--- a/css-prop-sans-indent
+++ b/css-prop-sans-indent
@@ -3,3 +3,3 @@ RIGHT, label.control-label {
padding: 0;
-border : 10px ChangeMe #C6C6C6;
+border : 10px IWasChanged #C6C6C6;
}
ok 73 - hunk header: css-prop-sans-indent
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-short-selector-list >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ label.control, div ul#RIGHT {
diff --git a/css-short-selector-list b/css-short-selector-list
index 6a0bdee..b753956 100644
--- a/css-short-selector-list
+++ b/css-short-selector-list
@@ -2,3 +2,3 @@ label.control, div ul#RIGHT {
margin-top: 10px!important;
- border : 10px ChangeMe #C6C6C6;
+ border : 10px IWasChanged #C6C6C6;
}
ok 74 - hunk header: css-short-selector-list
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 css-trailing-space >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ RIGHT label.control-label {
diff --git a/css-trailing-space b/css-trailing-space
index 32b5606..84156d0 100644
--- a/css-trailing-space
+++ b/css-trailing-space
@@ -3,3 +3,3 @@ RIGHT label.control-label {
padding:10px;
- border : 10px ChangeMe #C6C6C6;
+ border : 10px IWasChanged #C6C6C6;
}
ok 75 - hunk header: css-trailing-space
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 custom1-pattern >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -9,3 +9,3 @@ int special, RIGHT;
diff --git a/custom1-pattern b/custom1-pattern
index e8fd59f..9d9e960 100644
--- a/custom1-pattern
+++ b/custom1-pattern
@@ -9,3 +9,3 @@ int special, RIGHT;
System.out.print(x + " bottles of beer on the wall "
- + x + " bottles of beer\n" // ChangeMe
+ + x + " bottles of beer\n" // IWasChanged
+ "Take one down, pass it around, " + (x - 1)
ok 76 - hunk header: custom1-pattern
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 custom2-match-to-end-of-line >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -5,3 +5,3 @@ RIGHT_Beer
diff --git a/custom2-match-to-end-of-line b/custom2-match-to-end-of-line
index f88ac31..7cf2919 100644
--- a/custom2-match-to-end-of-line
+++ b/custom2-match-to-end-of-line
@@ -5,3 +5,3 @@ RIGHT_Beer
{
- System.out.print("ChangeMe");
+ System.out.print("IWasChanged");
}
ok 77 - hunk header: custom2-match-to-end-of-line
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 custom3-alternation-in-pattern >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -9,3 +9,3 @@ public static void main(String RIGHT[])
diff --git a/custom3-alternation-in-pattern b/custom3-alternation-in-pattern
index 5f3769c..818aa3d 100644
--- a/custom3-alternation-in-pattern
+++ b/custom3-alternation-in-pattern
@@ -9,3 +9,3 @@ public static void main(String RIGHT[])
System.out.print(x + " bottles of beer on the wall "
- + x + " bottles of beer\n" // ChangeMe
+ + x + " bottles of beer\n" // IWasChanged
+ "Take one down, pass it around, " + (x - 1)
ok 78 - hunk header: custom3-alternation-in-pattern
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 fountain-scene >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,2 +3,2 @@ EXT. STREET RIGHT OUTSIDE - DAY
diff --git a/fountain-scene b/fountain-scene
index 6b3257d..3514c47 100644
--- a/fountain-scene
+++ b/fountain-scene
@@ -3,2 +3,2 @@ EXT. STREET RIGHT OUTSIDE - DAY
CHARACTER
-You didn't say the magic phrase, "ChangeMe".
+You didn't say the magic phrase, "IWasChanged".
ok 79 - hunk header: fountain-scene
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 golang-complex-function >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -6,3 +6,3 @@ func (t *Test) RIGHT(a Type) (Type, error) {
diff --git a/golang-complex-function b/golang-complex-function
index e057dce..2efe722 100644
--- a/golang-complex-function
+++ b/golang-complex-function
@@ -6,3 +6,3 @@ func (t *Test) RIGHT(a Type) (Type, error) {
t.a = a
- return ChangeMe, nil
+ return IWasChanged, nil
}
ok 80 - hunk header: golang-complex-function
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 golang-func >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ func RIGHT() {
diff --git a/golang-func b/golang-func
index 8e9c9ac..c1f8925 100644
--- a/golang-func
+++ b/golang-func
@@ -2,3 +2,3 @@ func RIGHT() {
a := 5
- b := ChangeMe
+ b := IWasChanged
}
ok 81 - hunk header: golang-func
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 golang-interface >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ type RIGHT interface {
diff --git a/golang-interface b/golang-interface
index 553bede..98c983f 100644
--- a/golang-interface
+++ b/golang-interface
@@ -2,3 +2,3 @@ type RIGHT interface {
a() Type
- b() ChangeMe
+ b() IWasChanged
}
ok 82 - hunk header: golang-interface
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 golang-long-func >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -3,3 +3,3 @@ func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType,
diff --git a/golang-long-func b/golang-long-func
index ac3a77b..96a9478 100644
--- a/golang-long-func
+++ b/golang-long-func
@@ -3,3 +3,3 @@ func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType,
a := 5
- b := ChangeMe
+ b := IWasChanged
}
ok 83 - hunk header: golang-long-func
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 golang-struct >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ type RIGHT struct {
diff --git a/golang-struct b/golang-struct
index 5deda77..3dd155e 100644
--- a/golang-struct
+++ b/golang-struct
@@ -2,3 +2,3 @@ type RIGHT struct {
a Type
- b ChangeMe
+ b IWasChanged
}
ok 84 - hunk header: golang-struct
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 java-class-member-function >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -5,3 +5,3 @@ public static void main(String RIGHT[])
diff --git a/java-class-member-function b/java-class-member-function
index 298bc7a..d50e1e9 100644
--- a/java-class-member-function
+++ b/java-class-member-function
@@ -5,3 +5,3 @@ public static void main(String RIGHT[])
{
- System.out.print("ChangeMe");
+ System.out.print("IWasChanged");
}
ok 85 - hunk header: java-class-member-function
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 perl-skip-end-of-heredoc >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -6,3 +6,3 @@ sub RIGHTwithheredocument {
diff --git a/perl-skip-end-of-heredoc b/perl-skip-end-of-heredoc
index c22d39b..b5d7cbd 100644
--- a/perl-skip-end-of-heredoc
+++ b/perl-skip-end-of-heredoc
@@ -6,3 +6,3 @@ sub RIGHTwithheredocument {
# to pad it out
- print "ChangeMe\n";
+ print "IWasChanged\n";
}
ok 86 - hunk header: perl-skip-end-of-heredoc
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 perl-skip-forward-decl >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -9,2 +9,2 @@ package RIGHT;
diff --git a/perl-skip-forward-decl b/perl-skip-forward-decl
index a98cb8b..a0a297b 100644
--- a/perl-skip-forward-decl
+++ b/perl-skip-forward-decl
@@ -9,2 +9,2 @@ package RIGHT;
-# ChangeMe
+# IWasChanged
ok 87 - hunk header: perl-skip-forward-decl
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 perl-skip-sub-in-pod >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -15,3 +15,3 @@ =head1 SYNOPSIS_RIGHT
diff --git a/perl-skip-sub-in-pod b/perl-skip-sub-in-pod
index e39f024..63b38e7 100644
--- a/perl-skip-sub-in-pod
+++ b/perl-skip-sub-in-pod
@@ -15,3 +15,3 @@ =head1 SYNOPSIS_RIGHT
- ChangeMe;
+ IWasChanged;
ok 88 - hunk header: perl-skip-sub-in-pod
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 perl-sub-definition >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ sub RIGHT {
diff --git a/perl-sub-definition b/perl-sub-definition
index a507d1f..63603be 100644
--- a/perl-sub-definition
+++ b/perl-sub-definition
@@ -2,3 +2,3 @@ sub RIGHT {
my ($n) = @_;
- print "ChangeMe";
+ print "IWasChanged";
}
ok 89 - hunk header: perl-sub-definition
expecting success:
test_when_finished 'cat actual' && # for debugging only
git diff -U1 perl-sub-definition-kr-brace >actual &&
grep '@@ .* @@.*RIGHT' actual
@@ -2,3 +2,3 @@ sub RIGHT
diff --git a/perl-sub-definition-kr-brace b/perl-sub-definition-kr-brace
index 330b3df..99672aa 100644
--- a/perl-sub-definition-kr-brace
+++ b/perl-sub-definition-kr-brace
@@ -2,3 +2,3 @@ sub RIGHT
{
- print "ChangeMe\n";
+ print "IWasChanged\n";
}
ok 90 - hunk header: perl-sub-definition-kr-brace
# passed all 90 test(s)
1..90
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4019-diff-wserror.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4019-diff-wserror/.git/
expecting success:
git config diff.color.whitespace "blue reverse" &&
>F &&
git add F &&
echo " Eight SP indent" >>F &&
echo " HT and SP indent" >>F &&
echo "With trailing SP " >>F &&
echo "Carriage ReturnQ" | tr Q "\015" >>F &&
echo "No problem" >>F &&
echo >>F
ok 1 - setup
expecting success:
prepare_output &&
grep Eight normal >/dev/null &&
grep HT error >/dev/null &&
grep With error >/dev/null &&
grep Return error >/dev/null &&
grep No normal >/dev/null
ok 2 - default
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F whitespace" >.gitattributes &&
prepare_output &&
grep Eight error >/dev/null &&
grep HT error >/dev/null &&
grep With error >/dev/null &&
grep Return error >/dev/null &&
grep No normal >/dev/null
ok 3 - default (attribute)
expecting success:
git config core.whitespace "tabwidth=10" &&
echo "F whitespace" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT error >/dev/null &&
grep With error >/dev/null &&
grep Return error >/dev/null &&
grep No normal >/dev/null
ok 4 - default, tabwidth=10 (attribute)
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F -whitespace" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT normal >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 5 - no check (attribute)
expecting success:
git config core.whitespace "tabwidth=10" &&
echo "F -whitespace" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT normal >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 6 - no check, tabwidth=10 (attribute), must be irrelevant
expecting success:
rm -f .gitattributes &&
git config core.whitespace -trail &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT error >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 7 - without -trail
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F whitespace=-trail" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT error >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 8 - without -trail (attribute)
expecting success:
rm -f .gitattributes &&
git config core.whitespace -space &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT normal >/dev/null &&
grep With error >/dev/null &&
grep Return error >/dev/null &&
grep No normal >/dev/null
ok 9 - without -space
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F whitespace=-space" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT normal >/dev/null &&
grep With error >/dev/null &&
grep Return error >/dev/null &&
grep No normal >/dev/null
ok 10 - without -space (attribute)
expecting success:
rm -f .gitattributes &&
git config core.whitespace indent,-trailing,-space &&
prepare_output &&
grep Eight error >/dev/null &&
grep HT normal >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 11 - with indent-non-tab only
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F whitespace=indent,-trailing,-space" >.gitattributes &&
prepare_output &&
grep Eight error >/dev/null &&
grep HT normal >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 12 - with indent-non-tab only (attribute)
expecting success:
rm -f .gitattributes &&
git config core.whitespace indent,tabwidth=10,-trailing,-space &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT normal >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 13 - with indent-non-tab only, tabwidth=10
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F whitespace=indent,-trailing,-space,tabwidth=10" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT normal >/dev/null &&
grep With normal >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 14 - with indent-non-tab only, tabwidth=10 (attribute)
expecting success:
rm -f .gitattributes &&
git config core.whitespace cr-at-eol &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT error >/dev/null &&
grep With error >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 15 - with cr-at-eol
expecting success:
test_might_fail git config --unset core.whitespace &&
echo "F whitespace=trailing,cr-at-eol" >.gitattributes &&
prepare_output &&
grep Eight normal >/dev/null &&
grep HT error >/dev/null &&
grep With error >/dev/null &&
grep Return normal >/dev/null &&
grep No normal >/dev/null
ok 16 - with cr-at-eol (attribute)
expecting success:
rm -f .gitattributes &&
test_must_fail git diff --check >output &&
grep "new blank line at" output &&
grep "trailing whitespace" output
F:6: new blank line at EOF.
F:3: trailing whitespace.
F:4: trailing whitespace.
ok 17 - trailing empty lines (1)
expecting success:
echo "F -whitespace" >.gitattributes &&
git diff --check >output &&
! test -s output
ok 18 - trailing empty lines (2)
expecting success:
printf "a\nb\n" > G &&
git add G &&
printf "x\nx\nx\na\nb\nc\n\n" > G &&
[ "$(git diff --check -- G)" = "G:7: new blank line at EOF." ]
ok 19 - checkdiff shows correct line number for trailing blank lines
expecting success:
test_might_fail git config --unset core.whitespace &&
rm -f .gitattributes &&
echo AAAQ | tr Q "\015" >G &&
git add G &&
echo BBBQ | tr Q "\015" >>G &&
git diff --color G | tr "\015" Q >output &&
grep "BBB.*${blue_grep}Q" output &&
grep "AAA.*\[mQ" output
[32m+[m[32mBBB[m[7;34mQ[m
AAA[mQ
ok 20 - do not color trailing cr in context
expecting success:
{ echo a; echo b; echo; echo; } >x &&
git add x &&
{ echo a; echo; echo; echo; echo c; echo; echo; echo; echo; } >x &&
git diff --color x >output &&
cnt=$($grep_a "${blue_grep}" output | wc -l) &&
test $cnt = 2
ok 21 - color new trailing blank lines
# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4015-diff-whitespace.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4015-diff-whitespace/.git/
expecting success:
cat <<-\EOF >x &&
do {
nothing;
} while (0);
EOF
git update-index --add x &&
cat <<-\EOF >x &&
do
{
nothing;
}
while (0);
EOF
cat <<-\EOF >expect &&
diff --git a/x b/x
index adf3937..6edc172 100644
--- a/x
+++ b/x
@@ -1,3 +1,5 @@
-do {
+do
+{
nothing;
-} while (0);
+}
+while (0);
EOF
git diff >out &&
test_cmp expect out &&
git diff -w >out &&
test_cmp expect out &&
git diff -b >out &&
test_cmp expect out
ok 1 - Ray Lehtiniemi's example
expecting success:
tr Q "\015" <<-\EOF >x &&
whitespace at beginning
whitespace change
whitespace in the middle
whitespace at end
unchanged line
CR at endQ
EOF
git update-index x &&
tr "_" " " <<-\EOF >x &&
_ whitespace at beginning
whitespace change
white space in the middle
whitespace at end__
unchanged line
CR at end
EOF
tr "Q_" "\015 " <<-\EOF >expect &&
diff --git a/x b/x
index d99af23..22d9f73 100644
--- a/x
+++ b/x
@@ -1,6 +1,6 @@
-whitespace at beginning
-whitespace change
-whitespace in the middle
-whitespace at end
+ whitespace at beginning
+whitespace change
+white space in the middle
+whitespace at end__
unchanged line
-CR at endQ
+CR at end
EOF
git diff >out &&
test_cmp expect out &&
>expect &&
git diff -w >out &&
test_cmp expect out &&
git diff -w -b >out &&
test_cmp expect out &&
git diff -w --ignore-space-at-eol >out &&
test_cmp expect out &&
git diff -w -b --ignore-space-at-eol >out &&
test_cmp expect out &&
git diff -w --ignore-cr-at-eol >out &&
test_cmp expect out &&
tr "Q_" "\015 " <<-\EOF >expect &&
diff --git a/x b/x
index d99af23..22d9f73 100644
--- a/x
+++ b/x
@@ -1,6 +1,6 @@
-whitespace at beginning
+_ whitespace at beginning
whitespace change
-whitespace in the middle
+white space in the middle
whitespace at end__
unchanged line
CR at end
EOF
git diff -b >out &&
test_cmp expect out &&
git diff -b --ignore-space-at-eol >out &&
test_cmp expect out &&
git diff -b --ignore-cr-at-eol >out &&
test_cmp expect out &&
tr "Q_" "\015 " <<-\EOF >expect &&
diff --git a/x b/x
index d99af23..22d9f73 100644
--- a/x
+++ b/x
@@ -1,6 +1,6 @@
-whitespace at beginning
-whitespace change
-whitespace in the middle
+_ whitespace at beginning
+whitespace change
+white space in the middle
whitespace at end__
unchanged line
CR at end
EOF
git diff --ignore-space-at-eol >out &&
test_cmp expect out &&
git diff --ignore-space-at-eol --ignore-cr-at-eol >out &&
test_cmp expect out &&
tr "Q_" "\015 " <<-\EOF >expect &&
diff --git a/x b/x
index_d99af23..22d9f73 100644
--- a/x
+++ b/x
@@ -1,6 +1,6 @@
-whitespace at beginning
-whitespace change
-whitespace in the middle
-whitespace at end
+_ whitespace at beginning
+whitespace_ _change
+white space in the middle
+whitespace at end__
unchanged line
CR at end
EOF
git diff --ignore-cr-at-eol >out &&
test_cmp expect out
ok 2 - another test, without options
expecting success:
test_seq 5 >x &&
git update-index x &&
test_seq 5 | sed "/3/i\\
" >x &&
git diff --ignore-blank-lines >out &&
>expect &&
test_cmp expect out
ok 3 - ignore-blank-lines: only new lines
expecting success:
test_seq 5 >x &&
git update-index x &&
test_seq 5 | sed "/3/i\\
" >x &&
git diff -w --ignore-blank-lines >out &&
>expect &&
test_cmp expect out
ok 4 - ignore-blank-lines: only new lines with space
expecting success:
cat <<-\EOF >x &&
1
2
3
4
5
6
7
EOF
git update-index x &&
cat <<-\EOF >x &&
change
1
2
3
4
5
6
7
EOF
git diff --inter-hunk-context=100 --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -1,6 +1,7 @@
+change
+
1
2
-
3
4
5
EOF
compare_diff_patch expected out.tmp
ok 5 - ignore-blank-lines: after change
expecting success:
cat <<-\EOF >x &&
1
2
3
4
5
6
7
EOF
git update-index x &&
cat <<-\EOF >x &&
1
2
3
4
5
6
7
change
EOF
git diff --inter-hunk-context=100 --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -4,5 +4,7 @@
3
4
5
+
6
7
+change
EOF
compare_diff_patch expected out.tmp
ok 6 - ignore-blank-lines: before change
expecting success:
cat <<-\EOF >x &&
1
2
3
4
5
6
7
8
9
10
EOF
git update-index x &&
cat <<-\EOF >x &&
change
1
2
3
4
5
6
7
8
9
10
change
EOF
git diff --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -1,5 +1,7 @@
+change
1
2
+
3
4
5
@@ -8,5 +8,7 @@
6
7
8
+
9
10
+change
EOF
compare_diff_patch expected out.tmp
ok 7 - ignore-blank-lines: between changes
expecting success:
test_seq 10 >x &&
git update-index x &&
cat <<-\EOF >x &&
change
1
2
3
4
5
6
7
8
9
10
change
EOF
git diff --inter-hunk-context=2 --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -1,10 +1,15 @@
+change
1
2
+
3
4
5
+
6
7
8
9
+
10
+change
EOF
compare_diff_patch expected out.tmp
ok 8 - ignore-blank-lines: between changes (with interhunkctx)
expecting success:
test_seq 10 >x &&
git update-index x &&
cat <<-\EOF >x &&
change
1
2
3
4
5
6
7
8
9
10
change
EOF
git diff --inter-hunk-context=4 --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -1,3 +1,4 @@
+change
1
2
3
@@ -8,3 +15,4 @@
8
9
10
+change
EOF
compare_diff_patch expected out.tmp
ok 9 - ignore-blank-lines: scattered spaces
expecting success:
test_seq 6 >x &&
git update-index x &&
cat <<-\EOF >x &&
change
1
2
3
4
5
6
change
EOF
git diff --inter-hunk-context=4 --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -1,6 +1,11 @@
+change
1
2
3
+
4
+
5
+
6
+change
EOF
compare_diff_patch expected out.tmp
ok 10 - ignore-blank-lines: spaces coalesce
expecting success:
test_seq 16 >x &&
git update-index x &&
cat <<-\EOF >x &&
change
1
2
3
4
5
change
6
7
8
9
10
11
change
12
13
14
15
16
change
EOF
git diff --ignore-blank-lines >out.tmp &&
cat <<-\EOF >expected &&
diff --git a/x b/x
--- a/x
+++ b/x
@@ -1,8 +1,11 @@
+change
1
2
+
3
4
5
+change
6
7
8
@@ -9,8 +13,11 @@
9
10
11
+change
12
13
14
+
15
16
+change
EOF
compare_diff_patch expected out.tmp
ok 11 - ignore-blank-lines: mix changes and blank lines
expecting success:
# This is indented with SP HT SP.
echo " foo();" >x &&
git diff --check | grep "space before tab in indent"
x:1: space before tab in indent.
ok 12 - check mixed spaces and tabs in indent
expecting success:
# This is indented with HT SP HT.
echo " foo();" >x &&
git diff --check | grep "space before tab in indent"
x:1: space before tab in indent.
ok 13 - check mixed tabs and spaces in indent
expecting success:
git commit -m "snapshot" &&
echo "foo();" >x &&
git diff --check
[master (root-commit) 212d80d] snapshot
Author: A U Thor <author@example.com>
1 file changed, 16 insertions(+)
create mode 100644 x
ok 14 - check with no whitespace errors
expecting success:
echo "foo(); " >x &&
test_must_fail git diff --check
x:1: trailing whitespace.
+foo();
ok 15 - check with trailing whitespace
expecting success:
# indent has space followed by hard tab
echo " foo();" >x &&
test_must_fail git diff --check
x:1: space before tab in indent.
+ foo();
ok 16 - check with space before tab in indent
expecting success:
git checkout x &&
git diff --check --exit-code
ok 17 - --check and --exit-code are not exclusive
expecting success:
git diff --check --quiet
ok 18 - --check and --quiet are not exclusive
expecting success:
echo "foo();" >x &&
git add x &&
git diff --cached --check
ok 19 - check staged with no whitespace errors
expecting success:
echo "foo(); " >x &&
git add x &&
test_must_fail git diff --cached --check
x:1: trailing whitespace.
+foo();
ok 20 - check staged with trailing whitespace
expecting success:
# indent has space followed by hard tab
echo " foo();" >x &&
git add x &&
test_must_fail git diff --cached --check
x:1: space before tab in indent.
+ foo();
ok 21 - check staged with space before tab in indent
expecting success:
echo "foo();" >x &&
git add x &&
git diff-index --check HEAD
ok 22 - check with no whitespace errors (diff-index)
expecting success:
echo "foo(); " >x &&
git add x &&
test_must_fail git diff-index --check HEAD
x:1: trailing whitespace.
+foo();
ok 23 - check with trailing whitespace (diff-index)
expecting success:
# indent has space followed by hard tab
echo " foo();" >x &&
git add x &&
test_must_fail git diff-index --check HEAD
x:1: space before tab in indent.
+ foo();
ok 24 - check with space before tab in indent (diff-index)
expecting success:
echo "foo();" >x &&
git add x &&
git diff-index --cached --check HEAD
ok 25 - check staged with no whitespace errors (diff-index)
expecting success:
echo "foo(); " >x &&
git add x &&
test_must_fail git diff-index --cached --check HEAD
x:1: trailing whitespace.
+foo();
ok 26 - check staged with trailing whitespace (diff-index)
expecting success:
# indent has space followed by hard tab
echo " foo();" >x &&
git add x &&
test_must_fail git diff-index --cached --check HEAD
x:1: space before tab in indent.
+ foo();
ok 27 - check staged with space before tab in indent (diff-index)
expecting success:
echo "foo();" >x &&
git commit -m "new commit" x &&
git diff-tree --check HEAD^ HEAD
[master ec7f5b8] new commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 16 deletions(-)
ok 28 - check with no whitespace errors (diff-tree)
expecting success:
echo "foo(); " >x &&
git commit -m "another commit" x &&
test_must_fail git diff-tree --check HEAD^ HEAD
[master 2d72627] another commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
x:1: trailing whitespace.
+foo();
ok 29 - check with trailing whitespace (diff-tree)
expecting success:
# indent has space followed by hard tab
echo " foo();" >x &&
git commit -m "yet another" x &&
test_must_fail git diff-tree --check HEAD^ HEAD
[master b230965] yet another
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
x:1: space before tab in indent.
+ foo();
ok 30 - check with space before tab in indent (diff-tree)
expecting success:
test_when_finished "git reset --hard HEAD^" &&
# create a whitespace error that should be ignored
echo "* -whitespace" >.gitattributes &&
git add .gitattributes &&
echo "foo(); " >x &&
git add x &&
git commit -m "add trailing space" &&
# with a worktree diff-tree ignores the whitespace error
git diff-tree --root --check HEAD &&
# without a worktree diff-tree still ignores the whitespace error
git -C .git diff-tree --root --check HEAD
[master 98c9531] add trailing space
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 .gitattributes
98c9531924020456198e0c553bd83ebe28c4fd1b
98c9531924020456198e0c553bd83ebe28c4fd1b
HEAD is now at b230965 yet another
ok 31 - check with ignored trailing whitespace attr (diff-tree)
expecting success:
git config core.whitespace "-trailing-space" &&
echo "foo (); " >x &&
git diff --check
ok 32 - check trailing whitespace (trailing-space: off)
expecting success:
git config core.whitespace "trailing-space" &&
echo "foo (); " >x &&
test_must_fail git diff --check
x:1: trailing whitespace.
+foo ();
ok 33 - check trailing whitespace (trailing-space: on)
expecting success:
# indent contains space followed by HT
git config core.whitespace "-space-before-tab" &&
echo " foo ();" >x &&
git diff --check
ok 34 - check space before tab in indent (space-before-tab: off)
expecting success:
# indent contains space followed by HT
git config core.whitespace "space-before-tab" &&
echo " foo (); " >x &&
test_must_fail git diff --check
x:1: trailing whitespace, space before tab in indent.
+ foo ();
ok 35 - check space before tab in indent (space-before-tab: on)
expecting success:
git config core.whitespace "-indent-with-non-tab" &&
echo " foo ();" >x &&
git diff --check
ok 36 - check spaces as indentation (indent-with-non-tab: off)
expecting success:
git config core.whitespace "indent-with-non-tab" &&
echo " foo ();" >x &&
test_must_fail git diff --check
x:1: indent with spaces.
+ foo ();
ok 37 - check spaces as indentation (indent-with-non-tab: on)
expecting success:
git config core.whitespace "indent-with-non-tab,tabwidth=9" &&
git diff --check
ok 38 - ditto, but tabwidth=9
expecting success:
git config core.whitespace "indent-with-non-tab" &&
echo " foo ();" >x &&
test_must_fail git diff --check
x:1: indent with spaces.
+ foo ();
ok 39 - check tabs and spaces as indentation (indent-with-non-tab: on)
expecting success:
git config core.whitespace "indent-with-non-tab,tabwidth=10" &&
test_must_fail git diff --check
x:1: indent with spaces.
+ foo ();
ok 40 - ditto, but tabwidth=10
expecting success:
git config core.whitespace "indent-with-non-tab,tabwidth=20" &&
git diff --check
ok 41 - ditto, but tabwidth=20
expecting success:
git config core.whitespace "-tab-in-indent" &&
echo " foo ();" >x &&
git diff --check
ok 42 - check tabs as indentation (tab-in-indent: off)
expecting success:
git config core.whitespace "tab-in-indent" &&
echo " foo ();" >x &&
test_must_fail git diff --check
x:1: tab in indent.
+ foo ();
ok 43 - check tabs as indentation (tab-in-indent: on)
expecting success:
git config core.whitespace "tab-in-indent" &&
echo " foo ();" >x &&
test_must_fail git diff --check
x:1: tab in indent.
+ foo ();
ok 44 - check tabs and spaces as indentation (tab-in-indent: on)
expecting success:
git config core.whitespace "tab-in-indent,tabwidth=1" &&
test_must_fail git diff --check
x:1: tab in indent.
+ foo ();
ok 45 - ditto, but tabwidth=1 (must be irrelevant)
expecting success:
git config core.whitespace "tab-in-indent,indent-with-non-tab" &&
echo "foo ();" >x &&
test_must_fail git diff --check
fatal: cannot enforce both tab-in-indent and indent-with-non-tab
ok 46 - check tab-in-indent and indent-with-non-tab conflict
expecting success:
git config --unset core.whitespace &&
echo "x whitespace" >.gitattributes &&
echo " foo ();" >x &&
git diff --check &&
rm -f .gitattributes
ok 47 - check tab-in-indent excluded from wildcard whitespace attribute
expecting success:
echo "" >x &&
echo "foo(); " >>x &&
git diff --check | grep "x:2:"
x:2: trailing whitespace.
ok 48 - line numbers in --check output are correct
expecting success:
echo "foo();" >x &&
echo "" >>x &&
git diff --check | grep "new blank line"
x:2: new blank line at EOF.
ok 49 - checkdiff detects new trailing blank lines (1)
expecting success:
{ echo a; echo b; echo; echo; } >x &&
git add x &&
{ echo a; echo; echo; echo; echo; } >x &&
git diff --check | grep "new blank line"
x:2: new blank line at EOF.
ok 50 - checkdiff detects new trailing blank lines (2)
expecting success:
git checkout x &&
mv x y &&
(
echo "/* This is new */" &&
echo "" &&
cat y
) >x &&
git diff --check
ok 51 - checkdiff allows new blank lines
expecting success:
git reset --hard &&
echo >x "hello world" &&
git add x &&
git commit -m "hello 1" &&
echo >x "hello world" &&
git diff -b >actual &&
test_cmp expect actual
HEAD is now at b230965 yet another
[master 3b4634a] hello 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 52 - whitespace-only changes not reported
expecting success:
git reset --hard &&
for i in 1 2 3 4 5 6 7 8 9; do echo "$i$i$i$i$i$i"; done >x &&
git add x &&
git commit -m "base" &&
sed -e "5s/^/ /" x >z &&
git rm x &&
git add z &&
git diff -w -M --cached |
sed -e "/^similarity index /s/[0-9][0-9]*/NUM/" >actual &&
test_cmp expect actual
HEAD is now at 3b4634a hello 1
[master 3cae429] base
Author: A U Thor <author@example.com>
1 file changed, 9 insertions(+), 1 deletion(-)
rm 'x'
ok 53 - whitespace-only changes reported across renames
expecting success:
git reset --hard &&
>empty &&
git add empty &&
git commit -m empty &&
git mv empty void &&
git diff -w --cached -M >current &&
test_cmp expected current
HEAD is now at 3cae429 base
[master 396ff3e] empty
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 empty
ok 54 - rename empty
expecting success:
git reset --hard &&
echo >x hello &&
git commit -m "one side" x &&
git checkout HEAD^ &&
echo >x goodbye &&
git commit -m "the other side" x &&
git config core.autocrlf true &&
test_must_fail git merge master &&
git diff | sed -e "1,/^@@@/d" >actual &&
! grep "^-" actual
HEAD is now at 396ff3e empty
[master 844a697] one side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 9 deletions(-)
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 396ff3e empty
[detached HEAD 6253e4a] the other side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 9 deletions(-)
Merging:
6253e4a the other side
virtual master
found 1 common ancestor:
396ff3e empty
Auto-merging x
CONFLICT (content): Merge conflict in x
Automatic merge failed; fix conflicts and then commit the result.
ok 55 - combined diff with autocrlf conversion
expecting success:
git config color.diff.plain normal &&
git config color.diff.meta bold &&
git config color.diff.frag cyan &&
git config color.diff.func normal &&
git config color.diff.old red &&
git config color.diff.new green &&
git config color.diff.commit yellow &&
git config color.diff.whitespace blue &&
git config core.autocrlf false
ok 56 - setup diff colors
expecting success:
git config core.whitespace blank-at-eol &&
git reset --hard &&
echo "test" >x &&
git commit -m "initial" x &&
echo "{NTN}" | tr "NT" "\n\t" >>x &&
git diff --color | test_decode_color >current &&
cat >expected <<-\EOF &&
<BOLD>diff --git a/x b/x<RESET>
<BOLD>index 9daeafb..2874b91 100644<RESET>
<BOLD>--- a/x<RESET>
<BOLD>+++ b/x<RESET>
<CYAN>@@ -1 +1,4 @@<RESET>
test<RESET>
<GREEN>+<RESET><GREEN>{<RESET>
<GREEN>+<RESET><BLUE> <RESET>
<GREEN>+<RESET><GREEN>}<RESET>
EOF
test_cmp expected current
HEAD is now at 6253e4a the other side
[detached HEAD 67d9b4f] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 57 - diff that introduces a line with only tabs
expecting success:
git reset --hard &&
{
echo "0. blank-at-eol " &&
echo "1. blank-at-eol "
} >x &&
git commit -a --allow-empty -m preimage &&
{
echo "0. blank-at-eol " &&
echo "1. still-blank-at-eol " &&
echo "2. and a new line "
} >x &&
git diff --color |
test_decode_color >current &&
cat >expected <<-\EOF &&
<BOLD>diff --git a/x b/x<RESET>
<BOLD>index d0233a2..700886e 100644<RESET>
<BOLD>--- a/x<RESET>
<BOLD>+++ b/x<RESET>
<CYAN>@@ -1,2 +1,3 @@<RESET>
0. blank-at-eol <RESET>
<RED>-1. blank-at-eol <RESET>
<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>
<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>
EOF
test_cmp expected current
HEAD is now at 67d9b4f initial
[detached HEAD b3cff59] preimage
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+), 1 deletion(-)
ok 58 - diff that introduces and removes ws breakages
expecting success:
git reset --hard &&
{
echo "0. blank-at-eol " &&
echo "1. blank-at-eol "
} >x &&
git commit -a --allow-empty -m preimage &&
{
echo "0. blank-at-eol " &&
echo "1. still-blank-at-eol " &&
echo "2. and a new line "
} >x &&
cat >expect.default-old <<-\EOF &&
<BOLD>diff --git a/x b/x<RESET>
<BOLD>index d0233a2..700886e 100644<RESET>
<BOLD>--- a/x<RESET>
<BOLD>+++ b/x<RESET>
<CYAN>@@ -1,2 +1,3 @@<RESET>
0. blank-at-eol <RESET>
<RED>-<RESET><RED>1. blank-at-eol<RESET><BLUE> <RESET>
<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>
<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>
EOF
cat >expect.all <<-\EOF &&
<BOLD>diff --git a/x b/x<RESET>
<BOLD>index d0233a2..700886e 100644<RESET>
<BOLD>--- a/x<RESET>
<BOLD>+++ b/x<RESET>
<CYAN>@@ -1,2 +1,3 @@<RESET>
<RESET>0. blank-at-eol<RESET><BLUE> <RESET>
<RED>-<RESET><RED>1. blank-at-eol<RESET><BLUE> <RESET>
<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>
<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>
EOF
cat >expect.none <<-\EOF
<BOLD>diff --git a/x b/x<RESET>
<BOLD>index d0233a2..700886e 100644<RESET>
<BOLD>--- a/x<RESET>
<BOLD>+++ b/x<RESET>
<CYAN>@@ -1,2 +1,3 @@<RESET>
0. blank-at-eol <RESET>
<RED>-1. blank-at-eol <RESET>
<GREEN>+1. still-blank-at-eol <RESET>
<GREEN>+2. and a new line <RESET>
EOF
HEAD is now at b3cff59 preimage
[detached HEAD bc0fedf] preimage
Author: A U Thor <author@example.com>
ok 59 - ws-error-highlight test setup
expecting success:
git diff --color --ws-error-highlight=default,old |
test_decode_color >current &&
test_cmp expect.default-old current &&
git diff --color --ws-error-highlight=all |
test_decode_color >current &&
test_cmp expect.all current &&
git diff --color --ws-error-highlight=none |
test_decode_color >current &&
test_cmp expect.none current
ok 60 - test --ws-error-highlight option
expecting success:
git -c diff.wsErrorHighlight=default,old diff --color |
test_decode_color >current &&
test_cmp expect.default-old current &&
git -c diff.wsErrorHighlight=all diff --color |
test_decode_color >current &&
test_cmp expect.all current &&
git -c diff.wsErrorHighlight=none diff --color |
test_decode_color >current &&
test_cmp expect.none current
ok 61 - test diff.wsErrorHighlight config
expecting success:
git -c diff.wsErrorHighlight=none \
diff --color --ws-error-highlight=default,old |
test_decode_color >current &&
test_cmp expect.default-old current &&
git -c diff.wsErrorHighlight=default \
diff --color --ws-error-highlight=all |
test_decode_color >current &&
test_cmp expect.all current &&
git -c diff.wsErrorHighlight=all \
diff --color --ws-error-highlight=none |
test_decode_color >current &&
test_cmp expect.none current
ok 62 - option overrides diff.wsErrorHighlight
expecting success:
git reset --hard &&
cat <<-\EOF >test.c &&
#include<stdio.h>
main()
{
printf("Hello World");
}
EOF
git add test.c &&
git commit -m "add main function" &&
git mv test.c main.c &&
test_config color.diff.oldMoved "normal red" &&
test_config color.diff.newMoved "normal green" &&
git diff HEAD --color-moved=zebra --color --no-renames | test_decode_color >actual &&
cat >expected <<-\EOF &&
<BOLD>diff --git a/main.c b/main.c<RESET>
<BOLD>new file mode 100644<RESET>
<BOLD>index 0000000..a986c57<RESET>
<BOLD>--- /dev/null<RESET>
<BOLD>+++ b/main.c<RESET>
<CYAN>@@ -0,0 +1,5 @@<RESET>
<BGREEN>+<RESET><BGREEN>#include<stdio.h><RESET>
<BGREEN>+<RESET><BGREEN>main()<RESET>
<BGREEN>+<RESET><BGREEN>{<RESET>
<BGREEN>+<RESET><BGREEN>printf("Hello World");<RESET>
<BGREEN>+<RESET><BGREEN>}<RESET>
<BOLD>diff --git a/test.c b/test.c<RESET>
<BOLD>deleted file mode 100644<RESET>
<BOLD>index a986c57..0000000<RESET>
<BOLD>--- a/test.c<RESET>
<BOLD>+++ /dev/null<RESET>
<CYAN>@@ -1,5 +0,0 @@<RESET>
<BRED>-#include<stdio.h><RESET>
<BRED>-main()<RESET>
<BRED>-{<RESET>
<BRED>-printf("Hello World");<RESET>
<BRED>-}<RESET>
EOF
test_cmp expected actual
HEAD is now at bc0fedf preimage
[detached HEAD 8f21532] add main function
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 test.c
ok 63 - detect moved code, complete file
expecting success:
test_config color.diff.oldMoved "normal red" &&
test_config color.diff.newMoved "normal green" &&
test_config color.diff.oldMovedAlternative "blue" &&
test_config color.diff.newMovedAlternative "yellow" &&
git reset --hard &&
cat <<-\EOF >main.c &&
#include<stdio.h>
int stuff()
{
printf("Hello ");
printf("World\n");
}
int secure_foo(struct user *u)
{
if (!u->is_allowed_foo)
return;
foo(u);
}
int main()
{
foo();
}
EOF
cat <<-\EOF >test.c &&
#include<stdio.h>
int bar()
{
printf("Hello World, but different\n");
}
int another_function()
{
bar();
}
EOF
git add main.c test.c &&
git commit -m "add main and test file" &&
cat <<-\EOF >main.c &&
#include<stdio.h>
int stuff()
{
printf("Hello ");
printf("World\n");
}
int main()
{
foo();
}
EOF
cat <<-\EOF >test.c &&
#include<stdio.h>
int bar()
{
printf("Hello World, but different\n");
}
int secure_foo(struct user *u)
{
foo(u);
if (!u->is_allowed_foo)
return;
}
int another_function()
{
bar();
}
EOF
git diff HEAD --no-renames --color-moved=zebra --color | test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/main.c b/main.c<RESET>
<BOLD>index 27a619c..7cf9336 100644<RESET>
<BOLD>--- a/main.c<RESET>
<BOLD>+++ b/main.c<RESET>
<CYAN>@@ -5,13 +5,6 @@<RESET> <RESET>printf("Hello ");<RESET>
printf("World\n");<RESET>
}<RESET>
<RESET>
<BRED>-int secure_foo(struct user *u)<RESET>
<BRED>-{<RESET>
<BLUE>-if (!u->is_allowed_foo)<RESET>
<BLUE>-return;<RESET>
<RED>-foo(u);<RESET>
<RED>-}<RESET>
<RED>-<RESET>
int main()<RESET>
{<RESET>
foo();<RESET>
<BOLD>diff --git a/test.c b/test.c<RESET>
<BOLD>index 1dc1d85..2bedec9 100644<RESET>
<BOLD>--- a/test.c<RESET>
<BOLD>+++ b/test.c<RESET>
<CYAN>@@ -4,6 +4,13 @@<RESET> <RESET>int bar()<RESET>
printf("Hello World, but different\n");<RESET>
}<RESET>
<RESET>
<BGREEN>+<RESET><BGREEN>int secure_foo(struct user *u)<RESET>
<BGREEN>+<RESET><BGREEN>{<RESET>
<GREEN>+<RESET><GREEN>foo(u);<RESET>
<BGREEN>+<RESET><BGREEN>if (!u->is_allowed_foo)<RESET>
<BGREEN>+<RESET><BGREEN>return;<RESET>
<GREEN>+<RESET><GREEN>}<RESET>
<GREEN>+<RESET>
int another_function()<RESET>
{<RESET>
bar();<RESET>
EOF
test_cmp expected actual
HEAD is now at 8f21532 add main function
[detached HEAD cfc6f44] add main and test file
Author: A U Thor <author@example.com>
2 files changed, 25 insertions(+), 2 deletions(-)
create mode 100644 main.c
ok 64 - detect malicious moved code, inside file
expecting success:
test_config color.diff.oldMoved "normal red" &&
test_config color.diff.newMoved "normal green" &&
test_config color.diff.oldMovedAlternative "blue" &&
test_config color.diff.newMovedAlternative "yellow" &&
# needs previous test as setup
git diff HEAD --no-renames --color-moved=plain --color | test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/main.c b/main.c<RESET>
<BOLD>index 27a619c..7cf9336 100644<RESET>
<BOLD>--- a/main.c<RESET>
<BOLD>+++ b/main.c<RESET>
<CYAN>@@ -5,13 +5,6 @@<RESET> <RESET>printf("Hello ");<RESET>
printf("World\n");<RESET>
}<RESET>
<RESET>
<BRED>-int secure_foo(struct user *u)<RESET>
<BRED>-{<RESET>
<BRED>-if (!u->is_allowed_foo)<RESET>
<BRED>-return;<RESET>
<BRED>-foo(u);<RESET>
<BRED>-}<RESET>
<BRED>-<RESET>
int main()<RESET>
{<RESET>
foo();<RESET>
<BOLD>diff --git a/test.c b/test.c<RESET>
<BOLD>index 1dc1d85..2bedec9 100644<RESET>
<BOLD>--- a/test.c<RESET>
<BOLD>+++ b/test.c<RESET>
<CYAN>@@ -4,6 +4,13 @@<RESET> <RESET>int bar()<RESET>
printf("Hello World, but different\n");<RESET>
}<RESET>
<RESET>
<BGREEN>+<RESET><BGREEN>int secure_foo(struct user *u)<RESET>
<BGREEN>+<RESET><BGREEN>{<RESET>
<BGREEN>+<RESET><BGREEN>foo(u);<RESET>
<BGREEN>+<RESET><BGREEN>if (!u->is_allowed_foo)<RESET>
<BGREEN>+<RESET><BGREEN>return;<RESET>
<BGREEN>+<RESET><BGREEN>}<RESET>
<BGREEN>+<RESET>
int another_function()<RESET>
{<RESET>
bar();<RESET>
EOF
test_cmp expected actual
ok 65 - plain moved code, inside file
expecting success:
git reset --hard &&
cat <<-\EOF >lines.txt &&
long line 1
long line 2
long line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
line 11
line 12
line 13
long line 14
long line 15
long line 16
EOF
git add lines.txt &&
git commit -m "add poetry" &&
cat <<-\EOF >lines.txt &&
line 4
line 5
line 6
line 7
line 8
line 9
long line 1
long line 2
long line 3
long line 14
long line 15
long line 16
line 10
line 11
line 12
line 13
EOF
test_config color.diff.oldMoved "magenta" &&
test_config color.diff.newMoved "cyan" &&
test_config color.diff.oldMovedAlternative "blue" &&
test_config color.diff.newMovedAlternative "yellow" &&
test_config color.diff.oldMovedDimmed "normal magenta" &&
test_config color.diff.newMovedDimmed "normal cyan" &&
test_config color.diff.oldMovedAlternativeDimmed "normal blue" &&
test_config color.diff.newMovedAlternativeDimmed "normal yellow" &&
git diff HEAD --no-renames --color-moved=dimmed_zebra --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,16 +1,16 @@<RESET>
<BMAGENTA>-long line 1<RESET>
<BMAGENTA>-long line 2<RESET>
<BMAGENTA>-long line 3<RESET>
line 4<RESET>
line 5<RESET>
line 6<RESET>
line 7<RESET>
line 8<RESET>
line 9<RESET>
<BCYAN>+<RESET><BCYAN>long line 1<RESET>
<BCYAN>+<RESET><BCYAN>long line 2<RESET>
<CYAN>+<RESET><CYAN>long line 3<RESET>
<YELLOW>+<RESET><YELLOW>long line 14<RESET>
<BYELLOW>+<RESET><BYELLOW>long line 15<RESET>
<BYELLOW>+<RESET><BYELLOW>long line 16<RESET>
line 10<RESET>
line 11<RESET>
line 12<RESET>
line 13<RESET>
<BMAGENTA>-long line 14<RESET>
<BMAGENTA>-long line 15<RESET>
<BMAGENTA>-long line 16<RESET>
EOF
test_cmp expected actual
HEAD is now at cfc6f44 add main and test file
[detached HEAD 61e6de9] add poetry
Author: A U Thor <author@example.com>
1 file changed, 16 insertions(+)
create mode 100644 lines.txt
ok 66 - detect permutations inside moved code -- dimmed_zebra
expecting success:
test_config color.diff.oldMoved "magenta" &&
test_config color.diff.newMoved "cyan" &&
test_config color.diff.oldMovedAlternative "blue" &&
test_config color.diff.newMovedAlternative "yellow" &&
test_config color.diff.oldMovedDimmed "normal magenta" &&
test_config color.diff.newMovedDimmed "normal cyan" &&
test_config color.diff.oldMovedAlternativeDimmed "normal blue" &&
test_config color.diff.newMovedAlternativeDimmed "normal yellow" &&
test_config diff.colorMoved zebra &&
git diff HEAD --no-renames --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,16 +1,16 @@<RESET>
<MAGENTA>-long line 1<RESET>
<MAGENTA>-long line 2<RESET>
<MAGENTA>-long line 3<RESET>
line 4<RESET>
line 5<RESET>
line 6<RESET>
line 7<RESET>
line 8<RESET>
line 9<RESET>
<CYAN>+<RESET><CYAN>long line 1<RESET>
<CYAN>+<RESET><CYAN>long line 2<RESET>
<CYAN>+<RESET><CYAN>long line 3<RESET>
<YELLOW>+<RESET><YELLOW>long line 14<RESET>
<YELLOW>+<RESET><YELLOW>long line 15<RESET>
<YELLOW>+<RESET><YELLOW>long line 16<RESET>
line 10<RESET>
line 11<RESET>
line 12<RESET>
line 13<RESET>
<MAGENTA>-long line 14<RESET>
<MAGENTA>-long line 15<RESET>
<MAGENTA>-long line 16<RESET>
EOF
test_cmp expected actual
ok 67 - cmd option assumes configured colored-moved
expecting success:
cat <<-\EOF >text.txt &&
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
EOF
git add text.txt &&
git commit -a -m "clean state" &&
cat <<-\EOF >text.txt &&
simply Lorem Ipsum dummy is text of the typesetting and printing industry.
EOF
git diff --color-moved --word-diff >actual &&
git diff --word-diff >expect &&
test_cmp expect actual
[detached HEAD 94a5db7] clean state
Author: A U Thor <author@example.com>
2 files changed, 7 insertions(+), 6 deletions(-)
create mode 100644 text.txt
ok 68 - no effect from --color-moved with --word-diff
expecting success:
git reset --hard &&
# Note that these lines have no leading or trailing whitespace.
cat <<-\EOF >lines.txt &&
line 1
line 2
line 3
line 4
line 5
long line 6
long line 7
long line 8
long line 9
EOF
git add lines.txt &&
git commit -m "add poetry" &&
git config color.diff.oldMoved "magenta" &&
git config color.diff.newMoved "cyan"
HEAD is now at 94a5db7 clean state
[detached HEAD 4d6cfdd] add poetry
Author: A U Thor <author@example.com>
1 file changed, 7 insertions(+), 14 deletions(-)
ok 69 - set up whitespace tests
expecting success:
q_to_tab <<-\EOF >lines.txt &&
Qlong line 6
Qlong line 7
Qlong line 8
Qchanged long line 9
line 1
line 2
line 3
line 4
line 5
EOF
git diff HEAD --no-renames --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,9 +1,9 @@<RESET>
<GREEN>+<RESET> <GREEN>long line 6<RESET>
<GREEN>+<RESET> <GREEN>long line 7<RESET>
<GREEN>+<RESET> <GREEN>long line 8<RESET>
<GREEN>+<RESET> <GREEN>changed long line 9<RESET>
line 1<RESET>
line 2<RESET>
line 3<RESET>
line 4<RESET>
line 5<RESET>
<RED>-long line 6<RESET>
<RED>-long line 7<RESET>
<RED>-long line 8<RESET>
<RED>-long line 9<RESET>
EOF
test_cmp expected actual &&
git diff HEAD --no-renames -w --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,9 +1,9 @@<RESET>
<CYAN>+<RESET> <CYAN>long line 6<RESET>
<CYAN>+<RESET> <CYAN>long line 7<RESET>
<CYAN>+<RESET> <CYAN>long line 8<RESET>
<GREEN>+<RESET> <GREEN>changed long line 9<RESET>
line 1<RESET>
line 2<RESET>
line 3<RESET>
line 4<RESET>
line 5<RESET>
<MAGENTA>-long line 6<RESET>
<MAGENTA>-long line 7<RESET>
<MAGENTA>-long line 8<RESET>
<RED>-long line 9<RESET>
EOF
test_cmp expected actual
ok 70 - move detection ignoring whitespace
expecting success:
git reset --hard &&
# Lines 6-8 have a space change, but 9 is new whitespace
q_to_tab <<-\EOF >lines.txt &&
longQline 6
longQline 7
longQline 8
long liQne 9
line 1
line 2
line 3
line 4
line 5
EOF
git diff HEAD --no-renames --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,9 +1,9 @@<RESET>
<GREEN>+<RESET><GREEN>long line 6<RESET>
<GREEN>+<RESET><GREEN>long line 7<RESET>
<GREEN>+<RESET><GREEN>long line 8<RESET>
<GREEN>+<RESET><GREEN>long li ne 9<RESET>
line 1<RESET>
line 2<RESET>
line 3<RESET>
line 4<RESET>
line 5<RESET>
<RED>-long line 6<RESET>
<RED>-long line 7<RESET>
<RED>-long line 8<RESET>
<RED>-long line 9<RESET>
EOF
test_cmp expected actual &&
git diff HEAD --no-renames -b --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,9 +1,9 @@<RESET>
<CYAN>+<RESET><CYAN>long line 6<RESET>
<CYAN>+<RESET><CYAN>long line 7<RESET>
<CYAN>+<RESET><CYAN>long line 8<RESET>
<GREEN>+<RESET><GREEN>long li ne 9<RESET>
line 1<RESET>
line 2<RESET>
line 3<RESET>
line 4<RESET>
line 5<RESET>
<MAGENTA>-long line 6<RESET>
<MAGENTA>-long line 7<RESET>
<MAGENTA>-long line 8<RESET>
<RED>-long line 9<RESET>
EOF
test_cmp expected actual
HEAD is now at 4d6cfdd add poetry
ok 71 - move detection ignoring whitespace changes
expecting success:
git reset --hard &&
# Lines 6-9 have new eol whitespace, but 9 also has it in the middle
q_to_tab <<-\EOF >lines.txt &&
long line 6Q
long line 7Q
long line 8Q
longQline 9Q
line 1
line 2
line 3
line 4
line 5
EOF
# avoid cluttering the output with complaints about our eol whitespace
test_config core.whitespace -blank-at-eol &&
git diff HEAD --no-renames --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,9 +1,9 @@<RESET>
<GREEN>+<RESET><GREEN>long line 6 <RESET>
<GREEN>+<RESET><GREEN>long line 7 <RESET>
<GREEN>+<RESET><GREEN>long line 8 <RESET>
<GREEN>+<RESET><GREEN>long line 9 <RESET>
line 1<RESET>
line 2<RESET>
line 3<RESET>
line 4<RESET>
line 5<RESET>
<RED>-long line 6<RESET>
<RED>-long line 7<RESET>
<RED>-long line 8<RESET>
<RED>-long line 9<RESET>
EOF
test_cmp expected actual &&
git diff HEAD --no-renames --ignore-space-at-eol --color-moved --color |
grep -v "index" |
test_decode_color >actual &&
cat <<-\EOF >expected &&
<BOLD>diff --git a/lines.txt b/lines.txt<RESET>
<BOLD>--- a/lines.txt<RESET>
<BOLD>+++ b/lines.txt<RESET>
<CYAN>@@ -1,9 +1,9 @@<RESET>
<CYAN>+<RESET><CYAN>long line 6 <RESET>
<CYAN>+<RESET><CYAN>long line 7 <RESET>
<CYAN>+<RESET><CYAN>long line 8 <RESET>
<GREEN>+<RESET><GREEN>long line 9 <RESET>
line 1<RESET>
line 2<RESET>
line 3<RESET>
line 4<RESET>
line 5<RESET>
<MAGENTA>-long line 6<RESET>
<MAGENTA>-long line 7<RESET>
<MAGENTA>-long line 8<RESET>
<RED>-long line 9<RESET>
EOF
test_cmp expected actual
HEAD is now at 4d6cfdd add poetry
ok 72 - move detection ignoring whitespace at eol
expecting success:
git config --unset color.diff.oldMoved &&
git config --unset color.diff.newMoved
ok 73 - clean up whitespace-test colors
expecting success:
git reset --hard &&
>bar &&
cat <<-\EOF >foo &&
irrelevant_line
line1
EOF
git add foo bar &&
git commit -m x &&
cat <<-\EOF >bar &&
line1
EOF
cat <<-\EOF >foo &&
irrelevant_line
EOF
git diff HEAD --color-moved=zebra --color --no-renames |
grep -v "index" |
test_decode_color >actual &&
cat >expected <<-\EOF &&
<BOLD>diff --git a/bar b/bar<RESET>
<BOLD>--- a/bar<RESET>
<BOLD>+++ b/bar<RESET>
<CYAN>@@ -0,0 +1 @@<RESET>
<GREEN>+<RESET><GREEN>line1<RESET>
<BOLD>diff --git a/foo b/foo<RESET>
<BOLD>--- a/foo<RESET>
<BOLD>+++ b/foo<RESET>
<CYAN>@@ -1,2 +1 @@<RESET>
irrelevant_line<RESET>
<RED>-line1<RESET>
EOF
test_cmp expected actual
HEAD is now at 4d6cfdd add poetry
[detached HEAD fc84ee4] x
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 bar
create mode 100644 foo
ok 74 - --color-moved block at end of diff output respects MIN_ALNUM_COUNT
expecting success:
git reset --hard &&
cat <<-\EOF >foo &&
nineteen chars 456789
irrelevant_line
twenty chars 234567890
EOF
>bar &&
git add foo bar &&
git commit -m x &&
cat <<-\EOF >foo &&
irrelevant_line
EOF
cat <<-\EOF >bar &&
twenty chars 234567890
nineteen chars 456789
EOF
git diff HEAD --color-moved=zebra --color --no-renames |
grep -v "index" |
test_decode_color >actual &&
cat >expected <<-\EOF &&
<BOLD>diff --git a/bar b/bar<RESET>
<BOLD>--- a/bar<RESET>
<BOLD>+++ b/bar<RESET>
<CYAN>@@ -0,0 +1,2 @@<RESET>
<BOLD;CYAN>+<RESET><BOLD;CYAN>twenty chars 234567890<RESET>
<GREEN>+<RESET><GREEN>nineteen chars 456789<RESET>
<BOLD>diff --git a/foo b/foo<RESET>
<BOLD>--- a/foo<RESET>
<BOLD>+++ b/foo<RESET>
<CYAN>@@ -1,3 +1 @@<RESET>
<RED>-nineteen chars 456789<RESET>
irrelevant_line<RESET>
<BOLD;MAGENTA>-twenty chars 234567890<RESET>
EOF
test_cmp expected actual
HEAD is now at fc84ee4 x
[detached HEAD 41bed3b] x
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+), 1 deletion(-)
ok 75 - --color-moved respects MIN_ALNUM_COUNT
expecting success:
git reset --hard &&
cat <<-\EOF >foo &&
7charsA
irrelevant_line
7charsB
7charsC
EOF
>bar &&
git add foo bar &&
git commit -m x &&
cat <<-\EOF >foo &&
irrelevant_line
EOF
cat <<-\EOF >bar &&
7charsB
7charsC
7charsA
EOF
git diff HEAD --color-moved=zebra --color --no-renames | grep -v "index" | test_decode_color >actual &&
cat >expected <<-\EOF &&
<BOLD>diff --git a/bar b/bar<RESET>
<BOLD>--- a/bar<RESET>
<BOLD>+++ b/bar<RESET>
<CYAN>@@ -0,0 +1,3 @@<RESET>
<GREEN>+<RESET><GREEN>7charsB<RESET>
<GREEN>+<RESET><GREEN>7charsC<RESET>
<GREEN>+<RESET><GREEN>7charsA<RESET>
<BOLD>diff --git a/foo b/foo<RESET>
<BOLD>--- a/foo<RESET>
<BOLD>+++ b/foo<RESET>
<CYAN>@@ -1,4 +1 @@<RESET>
<RED>-7charsA<RESET>
irrelevant_line<RESET>
<RED>-7charsB<RESET>
<RED>-7charsC<RESET>
EOF
test_cmp expected actual
HEAD is now at 41bed3b x
[detached HEAD 103bd47] x
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+), 2 deletions(-)
ok 76 - --color-moved treats adjacent blocks as separate for MIN_ALNUM_COUNT
expecting success:
test_create_repo bananas &&
echo ripe >bananas/recipe &&
git -C bananas add recipe &&
test_commit fruit &&
test_commit -C bananas recipe &&
git submodule add ./bananas &&
git add bananas &&
git commit -a -m "bananas are like a heavy library?" &&
echo foul >bananas/recipe &&
echo ripe >fruit.t &&
git diff --submodule=diff --color-moved --color >actual &&
# no move detection as the moved line is across repository boundaries.
test_decode_color <actual >decoded_actual &&
! grep BGREEN decoded_actual &&
! grep BRED decoded_actual &&
# nor did we mess with it another way
git diff --submodule=diff --color | test_decode_color >expect &&
test_cmp expect decoded_actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4015-diff-whitespace/bananas/.git/
[detached HEAD f102f4b] fruit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 fruit.t
[master (root-commit) 45e634e] recipe
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 recipe
create mode 100644 recipe.t
Adding existing repo at 'bananas' to the index
[detached HEAD 44297fa] bananas are like a heavy library?
Author: A U Thor <author@example.com>
4 files changed, 7 insertions(+), 3 deletions(-)
create mode 100644 .gitmodules
create mode 160000 bananas
ok 77 - move detection with submodules
# passed all 77 test(s)
1..77
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4022-diff-rewrite.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4022-diff-rewrite/.git/
expecting success:
cat "$TEST_DIRECTORY"/../COPYING >test &&
git add test &&
tr \
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" \
"nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM" \
<"$TEST_DIRECTORY"/../COPYING >test &&
echo "to be deleted" >test2 &&
blob=$(git hash-object test2) &&
blob=$(git rev-parse --short $blob) &&
git add test2
ok 1 - setup
expecting success:
actual=$(git diff-files -B --summary test) &&
verbose expr "$actual" : " rewrite test ([0-9]*%)$"
19
ok 2 - detect rewrite
expecting success:
rm test2 &&
git diff -- test2 >actual &&
test_cmp expect actual
ok 3 - show deletion diff without -D
expecting success:
git diff -D -- test2 >actual &&
test_cmp expect actual
ok 4 - suppress deletion diff with -D
expecting success:
git diff -B -- test >actual &&
grep "Linus Torvalds" actual
- Linus Torvalds
ok 5 - show deletion diff with -B
expecting success:
git diff -B -D -- test >actual &&
grep -v "Linus Torvalds" actual
diff --git a/test b/test
dissimilarity index 98%
index 536e555..189438f 100644
--- a/test
+++ b/test
@@ -?,? +1,360 @@
+
+ Abgr gung gur bayl inyvq irefvba bs gur TCY nf sne nf guvf cebwrpg
+ vf pbaprearq vf _guvf_ cnegvphyne irefvba bs gur yvprafr (vr i2, abg
+ i2.2 be i3.k be jungrire), hayrff rkcyvpvgyl bgurejvfr fgngrq.
+
+ UBJRIRE, va beqre gb nyybj n zvtengvba gb TCYi3 vs gung frrzf yvxr
+ n tbbq vqrn, V nyfb nfx gung crbcyr vaibyirq jvgu gur cebwrpg znxr
+ gurve cersreraprf xabja. Va cnegvphyne, vs lbh gehfg zr gb znxr gung
+ qrpvfvba, lbh zvtug abgr fb va lbhe pbclevtug zrffntr, vr fbzrguvat
+ yvxr
+
+ Guvf svyr vf yvprafrq haqre gur TCY i2, be n yngre irefvba
+ ng gur qvfpergvba bs Yvahf.
+
+ zvtug nibvq vffhrf. Ohg jr pna nyfb whfg qrpvqr gb flapuebavmr naq
+ pbagnpg nyy pbclevtug ubyqref ba erpbeq vs/jura gur bppnfvba nevfrf.
+
+ Yvahf Gbeinyqf
+
+----------------------------------------
+
+ TAH TRARENY CHOYVP YVPRAFR
+ Irefvba 2, Whar 1991
+
+ Pbclevtug (P) 1989, 1991 Serr Fbsgjner Sbhaqngvba, Vap.,
+ 51 Senaxyva Fgerrg, Svsgu Sybbe, Obfgba, ZN 02110-1301 HFN
+ Rirelbar vf crezvggrq gb pbcl naq qvfgevohgr ireongvz pbcvrf
+ bs guvf yvprafr qbphzrag, ohg punatvat vg vf abg nyybjrq.
+
+ Cernzoyr
+
+ Gur yvprafrf sbe zbfg fbsgjner ner qrfvtarq gb gnxr njnl lbhe
+serrqbz gb funer naq punatr vg. Ol pbagenfg, gur TAH Trareny Choyvp
+Yvprafr vf vagraqrq gb thnenagrr lbhe serrqbz gb funer naq punatr serr
+fbsgjner--gb znxr fher gur fbsgjner vf serr sbe nyy vgf hfref. Guvf
+Trareny Choyvp Yvprafr nccyvrf gb zbfg bs gur Serr Fbsgjner
+Sbhaqngvba'f fbsgjner naq gb nal bgure cebtenz jubfr nhgubef pbzzvg gb
+hfvat vg. (Fbzr bgure Serr Fbsgjner Sbhaqngvba fbsgjner vf pbirerq ol
+gur TAH Yrffre Trareny Choyvp Yvprafr vafgrnq.) Lbh pna nccyl vg gb
+lbhe cebtenzf, gbb.
+
+ Jura jr fcrnx bs serr fbsgjner, jr ner ersreevat gb serrqbz, abg
+cevpr. Bhe Trareny Choyvp Yvprafrf ner qrfvtarq gb znxr fher gung lbh
+unir gur serrqbz gb qvfgevohgr pbcvrf bs serr fbsgjner (naq punetr sbe
+guvf freivpr vs lbh jvfu), gung lbh erprvir fbhepr pbqr be pna trg vg
+vs lbh jnag vg, gung lbh pna punatr gur fbsgjner be hfr cvrprf bs vg
+va arj serr cebtenzf; naq gung lbh xabj lbh pna qb gurfr guvatf.
+
+ Gb cebgrpg lbhe evtugf, jr arrq gb znxr erfgevpgvbaf gung sbeovq
+nalbar gb qral lbh gurfr evtugf be gb nfx lbh gb fheeraqre gur evtugf.
+Gurfr erfgevpgvbaf genafyngr gb pregnva erfcbafvovyvgvrf sbe lbh vs lbh
+qvfgevohgr pbcvrf bs gur fbsgjner, be vs lbh zbqvsl vg.
+
+ Sbe rknzcyr, vs lbh qvfgevohgr pbcvrf bs fhpu n cebtenz, jurgure
+tengvf be sbe n srr, lbh zhfg tvir gur erpvcvragf nyy gur evtugf gung
+lbh unir. Lbh zhfg znxr fher gung gurl, gbb, erprvir be pna trg gur
+fbhepr pbqr. Naq lbh zhfg fubj gurz gurfr grezf fb gurl xabj gurve
+evtugf.
+
+ Jr cebgrpg lbhe evtugf jvgu gjb fgrcf: (1) pbclevtug gur fbsgjner, naq
+(2) bssre lbh guvf yvprafr juvpu tvirf lbh yrtny crezvffvba gb pbcl,
+qvfgevohgr naq/be zbqvsl gur fbsgjner.
+
+ Nyfb, sbe rnpu nhgube'f cebgrpgvba naq bhef, jr jnag gb znxr pregnva
+gung rirelbar haqrefgnaqf gung gurer vf ab jneenagl sbe guvf serr
+fbsgjner. Vs gur fbsgjner vf zbqvsvrq ol fbzrbar ryfr naq cnffrq ba, jr
+jnag vgf erpvcvragf gb xabj gung jung gurl unir vf abg gur bevtvany, fb
+gung nal ceboyrzf vagebqhprq ol bguref jvyy abg ersyrpg ba gur bevtvany
+nhgubef' erchgngvbaf.
+
+ Svanyyl, nal serr cebtenz vf guerngrarq pbafgnagyl ol fbsgjner
+cngragf. Jr jvfu gb nibvq gur qnatre gung erqvfgevohgbef bs n serr
+cebtenz jvyy vaqvivqhnyyl bognva cngrag yvprafrf, va rssrpg znxvat gur
+cebtenz cebcevrgnel. Gb cerirag guvf, jr unir znqr vg pyrne gung nal
+cngrag zhfg or yvprafrq sbe rirelbar'f serr hfr be abg yvprafrq ng nyy.
+
+ Gur cerpvfr grezf naq pbaqvgvbaf sbe pbclvat, qvfgevohgvba naq
+zbqvsvpngvba sbyybj.
+
+ TAH TRARENY CHOYVP YVPRAFR
+ GREZF NAQ PBAQVGVBAF SBE PBCLVAT, QVFGEVOHGVBA NAQ ZBQVSVPNGVBA
+
+ 0. Guvf Yvprafr nccyvrf gb nal cebtenz be bgure jbex juvpu pbagnvaf
+n abgvpr cynprq ol gur pbclevtug ubyqre fnlvat vg znl or qvfgevohgrq
+haqre gur grezf bs guvf Trareny Choyvp Yvprafr. Gur "Cebtenz", orybj,
+ersref gb nal fhpu cebtenz be jbex, naq n "jbex onfrq ba gur Cebtenz"
+zrnaf rvgure gur Cebtenz be nal qrevingvir jbex haqre pbclevtug ynj:
+gung vf gb fnl, n jbex pbagnvavat gur Cebtenz be n cbegvba bs vg,
+rvgure ireongvz be jvgu zbqvsvpngvbaf naq/be genafyngrq vagb nabgure
+ynathntr. (Urervansgre, genafyngvba vf vapyhqrq jvgubhg yvzvgngvba va
+gur grez "zbqvsvpngvba".) Rnpu yvprafrr vf nqqerffrq nf "lbh".
+
+Npgvivgvrf bgure guna pbclvat, qvfgevohgvba naq zbqvsvpngvba ner abg
+pbirerq ol guvf Yvprafr; gurl ner bhgfvqr vgf fpbcr. Gur npg bs
+ehaavat gur Cebtenz vf abg erfgevpgrq, naq gur bhgchg sebz gur Cebtenz
+vf pbirerq bayl vs vgf pbagragf pbafgvghgr n jbex onfrq ba gur
+Cebtenz (vaqrcraqrag bs univat orra znqr ol ehaavat gur Cebtenz).
+Jurgure gung vf gehr qrcraqf ba jung gur Cebtenz qbrf.
+
+ 1. Lbh znl pbcl naq qvfgevohgr ireongvz pbcvrf bs gur Cebtenz'f
+fbhepr pbqr nf lbh erprvir vg, va nal zrqvhz, cebivqrq gung lbh
+pbafcvphbhfyl naq nccebcevngryl choyvfu ba rnpu pbcl na nccebcevngr
+pbclevtug abgvpr naq qvfpynvzre bs jneenagl; xrrc vagnpg nyy gur
+abgvprf gung ersre gb guvf Yvprafr naq gb gur nofrapr bs nal jneenagl;
+naq tvir nal bgure erpvcvragf bs gur Cebtenz n pbcl bs guvf Yvprafr
+nybat jvgu gur Cebtenz.
+
+Lbh znl punetr n srr sbe gur culfvpny npg bs genafsreevat n pbcl, naq
+lbh znl ng lbhe bcgvba bssre jneenagl cebgrpgvba va rkpunatr sbe n srr.
+
+ 2. Lbh znl zbqvsl lbhe pbcl be pbcvrf bs gur Cebtenz be nal cbegvba
+bs vg, guhf sbezvat n jbex onfrq ba gur Cebtenz, naq pbcl naq
+qvfgevohgr fhpu zbqvsvpngvbaf be jbex haqre gur grezf bs Frpgvba 1
+nobir, cebivqrq gung lbh nyfb zrrg nyy bs gurfr pbaqvgvbaf:
+
+ n) Lbh zhfg pnhfr gur zbqvsvrq svyrf gb pneel cebzvarag abgvprf
+ fgngvat gung lbh punatrq gur svyrf naq gur qngr bs nal punatr.
+
+ o) Lbh zhfg pnhfr nal jbex gung lbh qvfgevohgr be choyvfu, gung va
+ jubyr be va cneg pbagnvaf be vf qrevirq sebz gur Cebtenz be nal
+ cneg gurerbs, gb or yvprafrq nf n jubyr ng ab punetr gb nyy guveq
+ cnegvrf haqre gur grezf bs guvf Yvprafr.
+
+ p) Vs gur zbqvsvrq cebtenz abeznyyl ernqf pbzznaqf vagrenpgviryl
+ jura eha, lbh zhfg pnhfr vg, jura fgnegrq ehaavat sbe fhpu
+ vagrenpgvir hfr va gur zbfg beqvanel jnl, gb cevag be qvfcynl na
+ naabhaprzrag vapyhqvat na nccebcevngr pbclevtug abgvpr naq n
+ abgvpr gung gurer vf ab jneenagl (be ryfr, fnlvat gung lbh cebivqr
+ n jneenagl) naq gung hfref znl erqvfgevohgr gur cebtenz haqre
+ gurfr pbaqvgvbaf, naq gryyvat gur hfre ubj gb ivrj n pbcl bs guvf
+ Yvprafr. (Rkprcgvba: vs gur Cebtenz vgfrys vf vagrenpgvir ohg
+ qbrf abg abeznyyl cevag fhpu na naabhaprzrag, lbhe jbex onfrq ba
+ gur Cebtenz vf abg erdhverq gb cevag na naabhaprzrag.)
+
+Gurfr erdhverzragf nccyl gb gur zbqvsvrq jbex nf n jubyr. Vs
+vqragvsvnoyr frpgvbaf bs gung jbex ner abg qrevirq sebz gur Cebtenz,
+naq pna or ernfbanoyl pbafvqrerq vaqrcraqrag naq frcnengr jbexf va
+gurzfryirf, gura guvf Yvprafr, naq vgf grezf, qb abg nccyl gb gubfr
+frpgvbaf jura lbh qvfgevohgr gurz nf frcnengr jbexf. Ohg jura lbh
+qvfgevohgr gur fnzr frpgvbaf nf cneg bs n jubyr juvpu vf n jbex onfrq
+ba gur Cebtenz, gur qvfgevohgvba bs gur jubyr zhfg or ba gur grezf bs
+guvf Yvprafr, jubfr crezvffvbaf sbe bgure yvprafrrf rkgraq gb gur
+ragver jubyr, naq guhf gb rnpu naq rirel cneg ertneqyrff bs jub jebgr vg.
+
+Guhf, vg vf abg gur vagrag bs guvf frpgvba gb pynvz evtugf be pbagrfg
+lbhe evtugf gb jbex jevggra ragveryl ol lbh; engure, gur vagrag vf gb
+rkrepvfr gur evtug gb pbageby gur qvfgevohgvba bs qrevingvir be
+pbyyrpgvir jbexf onfrq ba gur Cebtenz.
+
+Va nqqvgvba, zrer nttertngvba bs nabgure jbex abg onfrq ba gur Cebtenz
+jvgu gur Cebtenz (be jvgu n jbex onfrq ba gur Cebtenz) ba n ibyhzr bs
+n fgbentr be qvfgevohgvba zrqvhz qbrf abg oevat gur bgure jbex haqre
+gur fpbcr bs guvf Yvprafr.
+
+ 3. Lbh znl pbcl naq qvfgevohgr gur Cebtenz (be n jbex onfrq ba vg,
+haqre Frpgvba 2) va bowrpg pbqr be rkrphgnoyr sbez haqre gur grezf bs
+Frpgvbaf 1 naq 2 nobir cebivqrq gung lbh nyfb qb bar bs gur sbyybjvat:
+
+ n) Nppbzcnal vg jvgu gur pbzcyrgr pbeerfcbaqvat znpuvar-ernqnoyr
+ fbhepr pbqr, juvpu zhfg or qvfgevohgrq haqre gur grezf bs Frpgvbaf
+ 1 naq 2 nobir ba n zrqvhz phfgbznevyl hfrq sbe fbsgjner vagrepunatr; be,
+
+ o) Nppbzcnal vg jvgu n jevggra bssre, inyvq sbe ng yrnfg guerr
+ lrnef, gb tvir nal guveq cnegl, sbe n punetr ab zber guna lbhe
+ pbfg bs culfvpnyyl cresbezvat fbhepr qvfgevohgvba, n pbzcyrgr
+ znpuvar-ernqnoyr pbcl bs gur pbeerfcbaqvat fbhepr pbqr, gb or
+ qvfgevohgrq haqre gur grezf bs Frpgvbaf 1 naq 2 nobir ba n zrqvhz
+ phfgbznevyl hfrq sbe fbsgjner vagrepunatr; be,
+
+ p) Nppbzcnal vg jvgu gur vasbezngvba lbh erprvirq nf gb gur bssre
+ gb qvfgevohgr pbeerfcbaqvat fbhepr pbqr. (Guvf nygreangvir vf
+ nyybjrq bayl sbe abapbzzrepvny qvfgevohgvba naq bayl vs lbh
+ erprvirq gur cebtenz va bowrpg pbqr be rkrphgnoyr sbez jvgu fhpu
+ na bssre, va nppbeq jvgu Fhofrpgvba o nobir.)
+
+Gur fbhepr pbqr sbe n jbex zrnaf gur cersreerq sbez bs gur jbex sbe
+znxvat zbqvsvpngvbaf gb vg. Sbe na rkrphgnoyr jbex, pbzcyrgr fbhepr
+pbqr zrnaf nyy gur fbhepr pbqr sbe nyy zbqhyrf vg pbagnvaf, cyhf nal
+nffbpvngrq vagresnpr qrsvavgvba svyrf, cyhf gur fpevcgf hfrq gb
+pbageby pbzcvyngvba naq vafgnyyngvba bs gur rkrphgnoyr. Ubjrire, nf n
+fcrpvny rkprcgvba, gur fbhepr pbqr qvfgevohgrq arrq abg vapyhqr
+nalguvat gung vf abeznyyl qvfgevohgrq (va rvgure fbhepr be ovanel
+sbez) jvgu gur znwbe pbzcbaragf (pbzcvyre, xreary, naq fb ba) bs gur
+bcrengvat flfgrz ba juvpu gur rkrphgnoyr ehaf, hayrff gung pbzcbarag
+vgfrys nppbzcnavrf gur rkrphgnoyr.
+
+Vs qvfgevohgvba bs rkrphgnoyr be bowrpg pbqr vf znqr ol bssrevat
+npprff gb pbcl sebz n qrfvtangrq cynpr, gura bssrevat rdhvinyrag
+npprff gb pbcl gur fbhepr pbqr sebz gur fnzr cynpr pbhagf nf
+qvfgevohgvba bs gur fbhepr pbqr, rira gubhtu guveq cnegvrf ner abg
+pbzcryyrq gb pbcl gur fbhepr nybat jvgu gur bowrpg pbqr.
+
+ 4. Lbh znl abg pbcl, zbqvsl, fhoyvprafr, be qvfgevohgr gur Cebtenz
+rkprcg nf rkcerffyl cebivqrq haqre guvf Yvprafr. Nal nggrzcg
+bgurejvfr gb pbcl, zbqvsl, fhoyvprafr be qvfgevohgr gur Cebtenz vf
+ibvq, naq jvyy nhgbzngvpnyyl grezvangr lbhe evtugf haqre guvf Yvprafr.
+Ubjrire, cnegvrf jub unir erprvirq pbcvrf, be evtugf, sebz lbh haqre
+guvf Yvprafr jvyy abg unir gurve yvprafrf grezvangrq fb ybat nf fhpu
+cnegvrf erznva va shyy pbzcyvnapr.
+
+ 5. Lbh ner abg erdhverq gb npprcg guvf Yvprafr, fvapr lbh unir abg
+fvtarq vg. Ubjrire, abguvat ryfr tenagf lbh crezvffvba gb zbqvsl be
+qvfgevohgr gur Cebtenz be vgf qrevingvir jbexf. Gurfr npgvbaf ner
+cebuvovgrq ol ynj vs lbh qb abg npprcg guvf Yvprafr. Gurersber, ol
+zbqvslvat be qvfgevohgvat gur Cebtenz (be nal jbex onfrq ba gur
+Cebtenz), lbh vaqvpngr lbhe npprcgnapr bs guvf Yvprafr gb qb fb, naq
+nyy vgf grezf naq pbaqvgvbaf sbe pbclvat, qvfgevohgvat be zbqvslvat
+gur Cebtenz be jbexf onfrq ba vg.
+
+ 6. Rnpu gvzr lbh erqvfgevohgr gur Cebtenz (be nal jbex onfrq ba gur
+Cebtenz), gur erpvcvrag nhgbzngvpnyyl erprvirf n yvprafr sebz gur
+bevtvany yvprafbe gb pbcl, qvfgevohgr be zbqvsl gur Cebtenz fhowrpg gb
+gurfr grezf naq pbaqvgvbaf. Lbh znl abg vzcbfr nal shegure
+erfgevpgvbaf ba gur erpvcvragf' rkrepvfr bs gur evtugf tenagrq urerva.
+Lbh ner abg erfcbafvoyr sbe rasbepvat pbzcyvnapr ol guveq cnegvrf gb
+guvf Yvprafr.
+
+ 7. Vs, nf n pbafrdhrapr bs n pbheg whqtzrag be nyyrtngvba bs cngrag
+vasevatrzrag be sbe nal bgure ernfba (abg yvzvgrq gb cngrag vffhrf),
+pbaqvgvbaf ner vzcbfrq ba lbh (jurgure ol pbheg beqre, nterrzrag be
+bgurejvfr) gung pbagenqvpg gur pbaqvgvbaf bs guvf Yvprafr, gurl qb abg
+rkphfr lbh sebz gur pbaqvgvbaf bs guvf Yvprafr. Vs lbh pnaabg
+qvfgevohgr fb nf gb fngvfsl fvzhygnarbhfyl lbhe boyvtngvbaf haqre guvf
+Yvprafr naq nal bgure cregvarag boyvtngvbaf, gura nf n pbafrdhrapr lbh
+znl abg qvfgevohgr gur Cebtenz ng nyy. Sbe rknzcyr, vs n cngrag
+yvprafr jbhyq abg crezvg eblnygl-serr erqvfgevohgvba bs gur Cebtenz ol
+nyy gubfr jub erprvir pbcvrf qverpgyl be vaqverpgyl guebhtu lbh, gura
+gur bayl jnl lbh pbhyq fngvfsl obgu vg naq guvf Yvprafr jbhyq or gb
+ersenva ragveryl sebz qvfgevohgvba bs gur Cebtenz.
+
+Vs nal cbegvba bs guvf frpgvba vf uryq vainyvq be harasbeprnoyr haqre
+nal cnegvphyne pvephzfgnapr, gur onynapr bs gur frpgvba vf vagraqrq gb
+nccyl naq gur frpgvba nf n jubyr vf vagraqrq gb nccyl va bgure
+pvephzfgnaprf.
+
+Vg vf abg gur checbfr bs guvf frpgvba gb vaqhpr lbh gb vasevatr nal
+cngragf be bgure cebcregl evtug pynvzf be gb pbagrfg inyvqvgl bs nal
+fhpu pynvzf; guvf frpgvba unf gur fbyr checbfr bs cebgrpgvat gur
+vagrtevgl bs gur serr fbsgjner qvfgevohgvba flfgrz, juvpu vf
+vzcyrzragrq ol choyvp yvprafr cenpgvprf. Znal crbcyr unir znqr
+trarebhf pbagevohgvbaf gb gur jvqr enatr bs fbsgjner qvfgevohgrq
+guebhtu gung flfgrz va eryvnapr ba pbafvfgrag nccyvpngvba bs gung
+flfgrz; vg vf hc gb gur nhgube/qbabe gb qrpvqr vs ur be fur vf jvyyvat
+gb qvfgevohgr fbsgjner guebhtu nal bgure flfgrz naq n yvprafrr pnaabg
+vzcbfr gung pubvpr.
+
+Guvf frpgvba vf vagraqrq gb znxr gubebhtuyl pyrne jung vf oryvrirq gb
+or n pbafrdhrapr bs gur erfg bs guvf Yvprafr.
+
+ 8. Vs gur qvfgevohgvba naq/be hfr bs gur Cebtenz vf erfgevpgrq va
+pregnva pbhagevrf rvgure ol cngragf be ol pbclevtugrq vagresnprf, gur
+bevtvany pbclevtug ubyqre jub cynprf gur Cebtenz haqre guvf Yvprafr
+znl nqq na rkcyvpvg trbtencuvpny qvfgevohgvba yvzvgngvba rkpyhqvat
+gubfr pbhagevrf, fb gung qvfgevohgvba vf crezvggrq bayl va be nzbat
+pbhagevrf abg guhf rkpyhqrq. Va fhpu pnfr, guvf Yvprafr vapbecbengrf
+gur yvzvgngvba nf vs jevggra va gur obql bs guvf Yvprafr.
+
+ 9. Gur Serr Fbsgjner Sbhaqngvba znl choyvfu erivfrq naq/be arj irefvbaf
+bs gur Trareny Choyvp Yvprafr sebz gvzr gb gvzr. Fhpu arj irefvbaf jvyy
+or fvzvyne va fcvevg gb gur cerfrag irefvba, ohg znl qvssre va qrgnvy gb
+nqqerff arj ceboyrzf be pbapreaf.
+
+Rnpu irefvba vf tvira n qvfgvathvfuvat irefvba ahzore. Vs gur Cebtenz
+fcrpvsvrf n irefvba ahzore bs guvf Yvprafr juvpu nccyvrf gb vg naq "nal
+yngre irefvba", lbh unir gur bcgvba bs sbyybjvat gur grezf naq pbaqvgvbaf
+rvgure bs gung irefvba be bs nal yngre irefvba choyvfurq ol gur Serr
+Fbsgjner Sbhaqngvba. Vs gur Cebtenz qbrf abg fcrpvsl n irefvba ahzore bs
+guvf Yvprafr, lbh znl pubbfr nal irefvba rire choyvfurq ol gur Serr Fbsgjner
+Sbhaqngvba.
+
+ 10. Vs lbh jvfu gb vapbecbengr cnegf bs gur Cebtenz vagb bgure serr
+cebtenzf jubfr qvfgevohgvba pbaqvgvbaf ner qvssrerag, jevgr gb gur nhgube
+gb nfx sbe crezvffvba. Sbe fbsgjner juvpu vf pbclevtugrq ol gur Serr
+Fbsgjner Sbhaqngvba, jevgr gb gur Serr Fbsgjner Sbhaqngvba; jr fbzrgvzrf
+znxr rkprcgvbaf sbe guvf. Bhe qrpvfvba jvyy or thvqrq ol gur gjb tbnyf
+bs cerfreivat gur serr fgnghf bs nyy qrevingvirf bs bhe serr fbsgjner naq
+bs cebzbgvat gur funevat naq erhfr bs fbsgjner trarenyyl.
+
+ AB JNEENAGL
+
+ 11. ORPNHFR GUR CEBTENZ VF YVPRAFRQ SERR BS PUNETR, GURER VF AB JNEENAGL
+SBE GUR CEBTENZ, GB GUR RKGRAG CREZVGGRQ OL NCCYVPNOYR YNJ. RKPRCG JURA
+BGUREJVFR FGNGRQ VA JEVGVAT GUR PBCLEVTUG UBYQREF NAQ/BE BGURE CNEGVRF
+CEBIVQR GUR CEBTENZ "NF VF" JVGUBHG JNEENAGL BS NAL XVAQ, RVGURE RKCERFFRQ
+BE VZCYVRQ, VAPYHQVAT, OHG ABG YVZVGRQ GB, GUR VZCYVRQ JNEENAGVRF BS
+ZREPUNAGNOVYVGL NAQ SVGARFF SBE N CNEGVPHYNE CHECBFR. GUR RAGVER EVFX NF
+GB GUR DHNYVGL NAQ CRESBEZNAPR BS GUR CEBTENZ VF JVGU LBH. FUBHYQ GUR
+CEBTENZ CEBIR QRSRPGVIR, LBH NFFHZR GUR PBFG BS NYY ARPRFFNEL FREIVPVAT,
+ERCNVE BE PBEERPGVBA.
+
+ 12. VA AB RIRAG HAYRFF ERDHVERQ OL NCCYVPNOYR YNJ BE NTERRQ GB VA JEVGVAT
+JVYY NAL PBCLEVTUG UBYQRE, BE NAL BGURE CNEGL JUB ZNL ZBQVSL NAQ/BE
+ERQVFGEVOHGR GUR CEBTENZ NF CREZVGGRQ NOBIR, OR YVNOYR GB LBH SBE QNZNTRF,
+VAPYHQVAT NAL TRARENY, FCRPVNY, VAPVQRAGNY BE PBAFRDHRAGVNY QNZNTRF NEVFVAT
+BHG BS GUR HFR BE VANOVYVGL GB HFR GUR CEBTENZ (VAPYHQVAT OHG ABG YVZVGRQ
+GB YBFF BS QNGN BE QNGN ORVAT ERAQRERQ VANPPHENGR BE YBFFRF FHFGNVARQ OL
+LBH BE GUVEQ CNEGVRF BE N SNVYHER BS GUR CEBTENZ GB BCRENGR JVGU NAL BGURE
+CEBTENZF), RIRA VS FHPU UBYQRE BE BGURE CNEGL UNF ORRA NQIVFRQ BS GUR
+CBFFVOVYVGL BS FHPU QNZNTRF.
+
+ RAQ BS GREZF NAQ PBAQVGVBAF
+
+ Ubj gb Nccyl Gurfr Grezf gb Lbhe Arj Cebtenzf
+
+ Vs lbh qrirybc n arj cebtenz, naq lbh jnag vg gb or bs gur terngrfg
+cbffvoyr hfr gb gur choyvp, gur orfg jnl gb npuvrir guvf vf gb znxr vg
+serr fbsgjner juvpu rirelbar pna erqvfgevohgr naq punatr haqre gurfr grezf.
+
+ Gb qb fb, nggnpu gur sbyybjvat abgvprf gb gur cebtenz. Vg vf fnsrfg
+gb nggnpu gurz gb gur fgneg bs rnpu fbhepr svyr gb zbfg rssrpgviryl
+pbairl gur rkpyhfvba bs jneenagl; naq rnpu svyr fubhyq unir ng yrnfg
+gur "pbclevtug" yvar naq n cbvagre gb jurer gur shyy abgvpr vf sbhaq.
+
+ <bar yvar gb tvir gur cebtenz'f anzr naq n oevrs vqrn bs jung vg qbrf.>
+ Pbclevtug (P) <lrne> <anzr bs nhgube>
+
+ Guvf cebtenz vf serr fbsgjner; lbh pna erqvfgevohgr vg naq/be zbqvsl
+ vg haqre gur grezf bs gur TAH Trareny Choyvp Yvprafr nf choyvfurq ol
+ gur Serr Fbsgjner Sbhaqngvba; rvgure irefvba 2 bs gur Yvprafr, be
+ (ng lbhe bcgvba) nal yngre irefvba.
+
+ Guvf cebtenz vf qvfgevohgrq va gur ubcr gung vg jvyy or hfrshy,
+ ohg JVGUBHG NAL JNEENAGL; jvgubhg rira gur vzcyvrq jneenagl bs
+ ZREPUNAGNOVYVGL be SVGARFF SBE N CNEGVPHYNE CHECBFR. Frr gur
+ TAH Trareny Choyvp Yvprafr sbe zber qrgnvyf.
+
+ Lbh fubhyq unir erprvirq n pbcl bs gur TAH Trareny Choyvp Yvprafr nybat
+ jvgu guvf cebtenz; vs abg, jevgr gb gur Serr Fbsgjner Sbhaqngvba, Vap.,
+ 51 Senaxyva Fgerrg, Svsgu Sybbe, Obfgba, ZN 02110-1301 HFN.
+
+Nyfb nqq vasbezngvba ba ubj gb pbagnpg lbh ol ryrpgebavp naq cncre znvy.
+
+Vs gur cebtenz vf vagrenpgvir, znxr vg bhgchg n fubeg abgvpr yvxr guvf
+jura vg fgnegf va na vagrenpgvir zbqr:
+
+ Tabzbivfvba irefvba 69, Pbclevtug (P) lrne anzr bs nhgube
+ Tabzbivfvba pbzrf jvgu NOFBYHGRYL AB JNEENAGL; sbe qrgnvyf glcr `fubj j'.
+ Guvf vf serr fbsgjner, naq lbh ner jrypbzr gb erqvfgevohgr vg
+ haqre pregnva pbaqvgvbaf; glcr `fubj p' sbe qrgnvyf.
+
+Gur ulcbgurgvpny pbzznaqf `fubj j' naq `fubj p' fubhyq fubj gur nccebcevngr
+cnegf bs gur Trareny Choyvp Yvprafr. Bs pbhefr, gur pbzznaqf lbh hfr znl
+or pnyyrq fbzrguvat bgure guna `fubj j' naq `fubj p'; gurl pbhyq rira or
+zbhfr-pyvpxf be zrah vgrzf--jungrire fhvgf lbhe cebtenz.
+
+Lbh fubhyq nyfb trg lbhe rzcyblre (vs lbh jbex nf n cebtenzzre) be lbhe
+fpubby, vs nal, gb fvta n "pbclevtug qvfpynvzre" sbe gur cebtenz, vs
+arprffnel. Urer vf n fnzcyr; nygre gur anzrf:
+
+ Lblbqlar, Vap., urerol qvfpynvzf nyy pbclevtug vagrerfg va gur cebtenz
+ `Tabzbivfvba' (juvpu znxrf cnffrf ng pbzcvyref) jevggra ol Wnzrf Unpxre.
+
+ <fvtangher bs Gl Pbba>, 1 Ncevy 1989
+ Gl Pbba, Cerfvqrag bs Ivpr
+
+Guvf Trareny Choyvp Yvprafr qbrf abg crezvg vapbecbengvat lbhe cebtenz vagb
+cebcevrgnel cebtenzf. Vs lbhe cebtenz vf n fhoebhgvar yvoenel, lbh znl
+pbafvqre vg zber hfrshy gb crezvg yvaxvat cebcevrgnel nccyvpngvbaf jvgu gur
+yvoenel. Vs guvf vf jung lbh jnag gb qb, hfr gur TAH Yrffre Trareny
+Choyvp Yvprafr vafgrnq bs guvf Yvprafr.
ok 6 - suppress deletion diff with -B -D
expecting success:
test_seq 1 99 >seq &&
printf 100 >>seq &&
git add seq &&
git commit seq -m seq
[master (root-commit) 3d16c3d] seq
Author: A U Thor <author@example.com>
1 file changed, 100 insertions(+)
create mode 100644 seq
ok 7 - prepare a file that ends with an incomplete line
expecting success:
test_seq 1 5 >seq &&
test_seq 9331 9420 >>seq &&
test_seq 96 100 >>seq
ok 8 - rewrite the middle 90% of sequence file and terminate with newline
expecting success:
git diff -B seq >res &&
grep "dissimilarity index" res
dissimilarity index 92%
ok 9 - confirm that sequence file is considered a rewrite
expecting success:
git diff seq >res &&
grep "^\\\\ " res &&
! grep "^..*\\\\ " res
\ No newline at end of file
ok 10 - no newline at eof is on its own line without -B
expecting success:
git diff -B seq >res &&
grep "^\\\\ " res &&
! grep "^..*\\\\ " res
\ No newline at end of file
ok 11 - no newline at eof is on its own line with -B
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4021-format-patch-numbered.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4021-format-patch-numbered/.git/
expecting success:
echo A > file &&
git add file &&
git commit -m First &&
echo B >> file &&
git commit -a -m Second &&
echo C >> file &&
git commit -a -m Third
[master (root-commit) 0391078] First
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master 9b70645] Second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[master ac960a8] Third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
git format-patch --stdout HEAD~1 >patch0.single &&
test_single_no_numbered patch0.single
ok 2 - single patch defaults to no numbers
expecting success:
git format-patch --stdout HEAD~2 >patch0.multiple &&
test_numbered patch0.multiple
Subject: [PATCH 1/2] Second
Subject: [PATCH 2/2] Third
ok 3 - multiple patch defaults to numbered
expecting success:
git format-patch --numbered --stdout HEAD~1 >patch1 &&
test_single_numbered patch1
Subject: [PATCH 1/1] Third
ok 4 - Use --numbered
expecting success:
git config format.numbered true &&
git format-patch --stdout HEAD~2 >patch2 &&
test_numbered patch2
Subject: [PATCH 1/2] Second
Subject: [PATCH 2/2] Third
ok 5 - format.numbered = true
expecting success:
git format-patch --stdout HEAD^ > patch3 &&
test_single_numbered patch3
Subject: [PATCH 1/1] Third
ok 6 - format.numbered && single patch
expecting success:
git format-patch --no-numbered --stdout HEAD~2 >patch4 &&
test_no_numbered patch4
ok 7 - format.numbered && --no-numbered
expecting success:
git format-patch --keep-subject --stdout HEAD^ >patch4a &&
grep "^Subject: Third" patch4a
Subject: Third
ok 8 - format.numbered && --keep-subject
expecting success:
git config format.numbered auto &&
git format-patch --stdout HEAD~2 > patch5 &&
test_numbered patch5
Subject: [PATCH 1/2] Second
Subject: [PATCH 2/2] Third
ok 9 - format.numbered = auto
expecting success:
git format-patch --stdout HEAD^ > patch6 &&
test_single_no_numbered patch6
ok 10 - format.numbered = auto && single patch
expecting success:
git format-patch --no-numbered --stdout HEAD~2 > patch7 &&
test_no_numbered patch7
ok 11 - format.numbered = auto && --no-numbered
expecting success:
git format-patch --start-number 3 --numbered --stdout HEAD~1 > patch8 &&
grep "^Subject: \[PATCH 3/3\]" patch8
Subject: [PATCH 3/3] Third
ok 12 - --start-number && --numbered
expecting success:
git format-patch --cover-letter --stdout HEAD~1 >patch9.single &&
test_single_cover_letter_numbered patch9.single
Subject: [PATCH 0/1] *** SUBJECT HERE ***
Subject: [PATCH 1/1] Third
ok 13 - single patch with cover-letter defaults to numbers
expecting success:
git format-patch --no-numbered --stdout --cover-letter HEAD~1 >patch10 &&
test_no_numbered patch10
ok 14 - Use --no-numbered and --cover-letter single patch
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4024-diff-optimize-common.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4024-diff-optimize-common/.git/
expecting success:
for n in $sample
do
( zs $n ; echo a ) >file-a$n &&
( echo b; zs $n; echo ) >file-b$n &&
( printf c; zs $n ) >file-c$n &&
( echo d; zs $n ) >file-d$n &&
git add file-a$n file-b$n file-c$n file-d$n &&
( zs $n ; echo A ) >file-a$n &&
( echo B; zs $n; echo ) >file-b$n &&
( printf C; zs $n ) >file-c$n &&
( echo D; zs $n ) >file-d$n &&
expect_pattern $n || return 1
done >expect
ok 1 - setup
expecting success:
for n in $sample
do
git diff -U0 file-?$n
done | zc >actual &&
test_cmp expect actual
ok 2 - diff -U0
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4023-diff-rename-typechange.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4023-diff-rename-typechange/.git/
expecting success:
rm -f foo bar &&
cat "$TEST_DIRECTORY"/../COPYING >foo &&
test_ln_s_add linklink bar &&
git add foo &&
git commit -a -m Initial &&
git tag one &&
git rm -f foo bar &&
cat "$TEST_DIRECTORY"/../COPYING >bar &&
test_ln_s_add linklink foo &&
git add bar &&
git commit -a -m Second &&
git tag two &&
git rm -f foo bar &&
cat "$TEST_DIRECTORY"/../COPYING >foo &&
git add foo &&
git commit -a -m Third &&
git tag three &&
mv foo bar &&
test_ln_s_add linklink foo &&
git add bar &&
git commit -a -m Fourth &&
git tag four &&
# This is purely for sanity check
git rm -f foo bar &&
cat "$TEST_DIRECTORY"/../COPYING >foo &&
cat "$TEST_DIRECTORY"/../Makefile >bar &&
git add foo bar &&
git commit -a -m Fifth &&
git tag five &&
git rm -f foo bar &&
cat "$TEST_DIRECTORY"/../Makefile >foo &&
cat "$TEST_DIRECTORY"/../COPYING >bar &&
git add foo bar &&
git commit -a -m Sixth &&
git tag six
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[master (root-commit) 1d4b936] Initial
Author: A U Thor <author@example.com>
2 files changed, 361 insertions(+)
create mode 120000 bar
create mode 100644 foo
rm 'bar'
rm 'foo'
[master 9e794dc] Second
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
rename foo => bar (100%)
rename bar => foo (100%)
rm 'bar'
rm 'foo'
[master dcde355] Third
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename bar => foo (100%)
[master 749f2c0] Fourth
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 360 deletions(-)
copy foo => bar (100%)
rewrite foo (100%)
mode change 100644 => 120000
rm 'bar'
rm 'foo'
[master b4eb98b] Fifth
Author: A U Thor <author@example.com>
2 files changed, 3028 insertions(+), 360 deletions(-)
rewrite bar (98%)
copy bar => foo (100%)
rm 'bar'
rm 'foo'
[master 4ba0ea1] Sixth
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
rename foo => bar (100%)
rename bar => foo (100%)
ok 1 - setup
expecting success:
git diff-tree five six -r --name-status -B -M | sort >actual &&
{
echo "R100 foo bar"
echo "R100 bar foo"
} | sort >expect &&
test_cmp expect actual
ok 2 - cross renames to be detected for regular files
expecting success:
git diff-tree one two -r --name-status -B -M | sort >actual &&
{
echo "R100 foo bar"
echo "R100 bar foo"
} | sort >expect &&
test_cmp expect actual
ok 3 - cross renames to be detected for typechange
expecting success:
git diff-tree three four -r --name-status -B -M | sort >actual &&
{
# see -B -M (#6) in t4008
echo "C100 foo bar"
echo "T100 foo"
} | sort >expect &&
test_cmp expect actual
ok 4 - moves and renames
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4025-hunk-header.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4025-hunk-header/.git/
expecting success:
(
echo "A $NS"
for c in B C D E F G H I J K
do
echo " $c"
done
echo "L $NS"
for c in M N O P Q R S T U V
do
echo " $c"
done
) >file &&
git add file &&
sed -e "/^ [EP]/s/$/ modified/" <file >file+ &&
mv file+ file
ok 1 - setup
expecting success:
git diff | sed -n -e "s/^.*@@//p" >actual &&
(
echo " A $N$N$N$N$N$N$N$N$N2"
echo " L $N$N$N$N$N$N$N$N$N1"
) >expected &&
test_cmp actual expected
ok 2 - hunk header truncation with an overly long line
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4020-diff-external.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4020-diff-external/.git/
expecting success:
test_tick &&
echo initial >file &&
git add file &&
git commit -m initial &&
test_tick &&
echo second >file &&
before=$(git hash-object file) &&
before=$(git rev-parse --short $before) &&
git add file &&
git commit -m second &&
test_tick &&
echo third >file
[master (root-commit) b6d2089] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master f3562cd] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
GIT_EXTERNAL_DIFF=echo git diff | {
read path oldfile oldhex oldmode newfile newhex newmode &&
test "z$path" = zfile &&
test "z$oldmode" = z100644 &&
test "z$newhex" = "z$ZERO_OID" &&
test "z$newmode" = z100644 &&
oh=$(git rev-parse --verify HEAD:file) &&
test "z$oh" = "z$oldhex"
}
ok 2 - GIT_EXTERNAL_DIFF environment
expecting success:
GIT_EXTERNAL_DIFF=echo git log -p -1 HEAD |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 3 - GIT_EXTERNAL_DIFF environment should apply only to diff
expecting success:
GIT_EXTERNAL_DIFF=echo git diff --no-ext-diff |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 4 - GIT_EXTERNAL_DIFF environment and --no-ext-diff
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
expecting success:
rm -f file &&
ln -s elif file &&
GIT_EXTERNAL_DIFF=echo git diff | {
read path oldfile oldhex oldmode newfile newhex newmode &&
test "z$path" = zfile &&
test "z$oldmode" = z100644 &&
test "z$newhex" = "z$ZERO_OID" &&
test "z$newmode" = z120000 &&
oh=$(git rev-parse --verify HEAD:file) &&
test "z$oh" = "z$oldhex"
} &&
GIT_EXTERNAL_DIFF=echo git diff --no-ext-diff >actual &&
git diff >expect &&
test_cmp expect actual
ok 5 - typechange diff
expecting success:
git reset --hard &&
echo third >file &&
test_config diff.external echo &&
git diff | {
read path oldfile oldhex oldmode newfile newhex newmode &&
test "z$path" = zfile &&
test "z$oldmode" = z100644 &&
test "z$newhex" = "z$ZERO_OID" &&
test "z$newmode" = z100644 &&
oh=$(git rev-parse --verify HEAD:file) &&
test "z$oh" = "z$oldhex"
}
HEAD is now at f3562cd second
ok 6 - diff.external
expecting success:
test_config diff.external echo &&
git log -p -1 HEAD |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 7 - diff.external should apply only to diff
expecting success:
test_config diff.external echo &&
git diff --no-ext-diff |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 8 - diff.external and --no-ext-diff
expecting success:
git reset --hard &&
echo third >file &&
git config diff.parrot.command echo &&
echo >.gitattributes "file diff=parrot" &&
git diff | {
read path oldfile oldhex oldmode newfile newhex newmode &&
test "z$path" = zfile &&
test "z$oldmode" = z100644 &&
test "z$newhex" = "z$ZERO_OID" &&
test "z$newmode" = z100644 &&
oh=$(git rev-parse --verify HEAD:file) &&
test "z$oh" = "z$oldhex"
}
HEAD is now at f3562cd second
ok 9 - diff attribute
expecting success:
git log -p -1 HEAD |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 10 - diff attribute should apply only to diff
expecting success:
git diff --no-ext-diff |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 11 - diff attribute and --no-ext-diff
expecting success:
git config --unset diff.parrot.command &&
git config diff.color.command echo &&
echo >.gitattributes "file diff=color" &&
git diff | {
read path oldfile oldhex oldmode newfile newhex newmode &&
test "z$path" = zfile &&
test "z$oldmode" = z100644 &&
test "z$newhex" = "z$ZERO_OID" &&
test "z$newmode" = z100644 &&
oh=$(git rev-parse --verify HEAD:file) &&
test "z$oh" = "z$oldhex"
}
ok 12 - diff attribute
expecting success:
git log -p -1 HEAD |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 13 - diff attribute should apply only to diff
expecting success:
git diff --no-ext-diff |
grep "^diff --git a/file b/file"
diff --git a/file b/file
ok 14 - diff attribute and --no-ext-diff
expecting success:
>.gitattributes &&
test_config diff.external "echo ext-global" &&
GIT_EXTERNAL_DIFF="echo ext-env" git diff | grep ext-env
ext-env file /tmp/SxZUGc_file e019be006cf33489e2d0177a3837a2384eddebc5 100644 file 0000000000000000000000000000000000000000 100644
ok 15 - GIT_EXTERNAL_DIFF trumps diff.external
expecting success:
test_config diff.foo.command "echo ext-attribute" &&
test_config diff.external "echo ext-global" &&
echo "file diff=foo" >.gitattributes &&
GIT_EXTERNAL_DIFF="echo ext-env" git diff | grep ext-attribute
ext-attribute file /tmp/Z9YDQe_file e019be006cf33489e2d0177a3837a2384eddebc5 100644 file 0000000000000000000000000000000000000000 100644
ok 16 - attributes trump GIT_EXTERNAL_DIFF and diff.external
expecting success:
echo >.gitattributes "file -diff" &&
git diff | grep Binary
Binary files a/file and b/file differ
ok 17 - no diff with -diff
expecting success:
after=$(git hash-object file) &&
after=$(git rev-parse --short $after) &&
echo >.gitattributes "file diff" &&
git diff >actual &&
sed -e "s/^index .*/index $before..$after 100644/" \
"$TEST_DIRECTORY"/t4020/diff.NUL >expected-diff &&
test_cmp expected-diff actual
ok 18 - force diff with "diff"
expecting success:
echo anotherfile > file2 &&
git add file2 &&
git commit -m "added 2nd file" &&
echo modified >file2 &&
GIT_EXTERNAL_DIFF=echo git diff
[master 314ec38] added 2nd file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
file /tmp/65OCad_file e019be006cf33489e2d0177a3837a2384eddebc5 100644 file 0000000000000000000000000000000000000000 100644
file2 /tmp/WAHZec_file2 abc9fa522731419e7eaa3d472e3cb3d99e475c49 100644 file2 0000000000000000000000000000000000000000 100644
ok 19 - GIT_EXTERNAL_DIFF with more than one changed files
expecting success:
write_script external-diff.sh <<-\EOF &&
echo $GIT_DIFF_PATH_COUNTER of $GIT_DIFF_PATH_TOTAL >>counter.txt
EOF
>counter.txt &&
cat >expect <<-\EOF &&
1 of 2
2 of 2
EOF
GIT_EXTERNAL_DIFF=./external-diff.sh git diff &&
test_cmp expect counter.txt
ok 20 - GIT_EXTERNAL_DIFF path counter/total
expecting success:
touch file.ext &&
git add file.ext &&
echo with extension > file.ext &&
GIT_EXTERNAL_DIFF=echo git diff file.ext | grep ......_file\.ext &&
git update-index --force-remove file.ext &&
rm file.ext
file.ext /tmp/6YcKCd_file.ext e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 file.ext 0000000000000000000000000000000000000000 100644
ok 21 - GIT_EXTERNAL_DIFF generates pretty paths
expecting success:
test_config core.autocrlf true &&
GIT_EXTERNAL_DIFF=./fake-diff.sh git diff &&
test $(wc -l < crlfed.txt) = $(cat crlfed.txt | keep_only_cr | wc -c)
warning: LF will be replaced by CRLF in file2.
The file will have its original line endings in your working directory.
ok 22 - external diff with autocrlf = true
expecting success:
test_config core.autocrlf true &&
git add file &&
git update-index --assume-unchanged file &&
echo second >file &&
git diff --cached >actual &&
test_cmp expected-diff actual
ok 23 - diff --cached
expecting success:
git update-index --no-assume-unchanged file &&
rm -f file* &&
git reset --hard
HEAD is now at 314ec38 added 2nd file
ok 24 - clean up crlf leftovers
expecting success:
git init sub &&
( cd sub && test_commit sub1 ) &&
git add sub &&
test_tick &&
git commit -m "add submodule" &&
( cd sub && test_commit sub2 ) &&
write_script gather_pre_post.sh <<-\EOF &&
echo "$1 $4" # path, mode
cat "$2" # old file
cat "$5" # new file
EOF
GIT_EXTERNAL_DIFF=./gather_pre_post.sh git diff >actual &&
cat >expected <<-EOF &&
sub 160000
Subproject commit $(git rev-parse HEAD:sub)
Subproject commit $(cd sub && git rev-parse HEAD)
EOF
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4020-diff-external/sub/.git/
[master (root-commit) e2fb92c] sub1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 sub1.t
warning: adding embedded git repository: sub
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <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 bcd8781] add submodule
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 160000 sub
[master 6a9164c] sub2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 sub2.t
ok 25 - submodule diff
# passed all 25 test(s)
1..25
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4028-format-patch-mime-headers.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4028-format-patch-mime-headers/.git/
expecting success:
echo content >file &&
git add file &&
git commit -m one &&
echo more >>file &&
git commit -a -m "two
utf-8 body: ñ"
[master (root-commit) 75744dd] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master d11c97b] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - create commit with utf-8 body
expecting success:
rm -f 0001-two.patch &&
git format-patch HEAD^ &&
grep -i "content-type: text/plain; charset=utf-8" 0001-two.patch
0001-two.patch
Content-Type: text/plain; charset=UTF-8
ok 2 - patch has mime headers
expecting success:
rm -f 0001-two.patch &&
git config format.headers "x-foo: bar" &&
git format-patch HEAD^ &&
grep -i "x-foo: bar" 0001-two.patch &&
grep -i "content-type: text/plain; charset=utf-8" 0001-two.patch
0001-two.patch
x-foo: bar
Content-Type: text/plain; charset=UTF-8
ok 3 - patch has mime and extra headers
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4026-color.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4026-color/.git/
expecting success:
color "reset" "[m"
ok 1 - reset
expecting success:
color "" ""
ok 2 - empty color is empty
expecting success:
color "bold red" "[1;31m"
ok 3 - attribute before color name
expecting success:
color "red bold" "[1;31m"
ok 4 - color name before attribute
expecting success:
color "ul blue red" "[4;34;41m"
ok 5 - attr fg bg
expecting success:
color "blue ul red" "[4;34;41m"
ok 6 - fg attr bg
expecting success:
color "blue red ul" "[4;34;41m"
ok 7 - fg bg attr
expecting success:
color "blue bold dim ul blink reverse" "[1;2;4;5;7;34m"
ok 8 - fg bg attr...
expecting success:
color "nobold nodim noul noblink noreverse" "[22;24;25;27m"
ok 9 - attr negation
expecting success:
color "no-bold no-blink" "[22;25m"
ok 10 - "no-" variant of negation
expecting success:
color "254 255 bold dim ul blink reverse" "[1;2;4;5;7;38;5;254;48;5;255m"
ok 11 - long color specification
expecting success:
color \
"#ffffff #ffffff bold nobold dim nodim italic noitalic
ul noul blink noblink reverse noreverse strike nostrike" \
"[1;2;3;4;5;7;9;22;23;24;25;27;29;38;2;255;255;255;48;2;255;255;255m"
ok 12 - absurdly long color specification
expecting success:
color "0 7" "[30;47m"
ok 13 - 0-7 are aliases for basic ANSI color names
expecting success:
color "254 bold 255" "[1;38;5;254;48;5;255m"
ok 14 - 256 colors
expecting success:
color "#ff00ff black" "[38;2;255;0;255;40m"
ok 15 - 24-bit colors
expecting success:
color "normal black" "[40m"
ok 16 - "normal" yields no color at all"
expecting success:
color "-1 black" "[40m"
ok 17 - -1 is a synonym for "normal"
expecting success:
invalid_color "-2"
error: invalid color value: -2
fatal: unable to parse default color value
ok 18 - color too small
expecting success:
invalid_color "256"
error: invalid color value: 256
fatal: unable to parse default color value
ok 19 - color too big
expecting success:
invalid_color "3X"
error: invalid color value: 3X
fatal: unable to parse default color value
ok 20 - extra character after color number
expecting success:
invalid_color "redX"
error: invalid color value: redX
fatal: unable to parse default color value
ok 21 - extra character after color name
expecting success:
invalid_color "dimX"
error: invalid color value: dimX
fatal: unable to parse default color value
ok 22 - extra character after attribute
expecting success:
git config color.diff.nosuchslotwilleverbedefined white &&
git diff --color
ok 23 - unknown color slots are ignored (diff)
expecting success:
git config color.branch.nosuchslotwilleverbedefined white &&
git branch -a
ok 24 - unknown color slots are ignored (branch)
expecting success:
git config color.status.nosuchslotwilleverbedefined white &&
{ git status; ret=$?; } &&
case $ret in 0|1) : ok ;; *) false ;; esac
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
ok 25 - unknown color slots are ignored (status)
# passed all 25 test(s)
1..25
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4029-diff-trailing-space.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4029-diff-trailing-space/.git/
expecting success:
printf "\nx\n" > f &&
before=$(git hash-object f) &&
before=$(git rev-parse --short $before) &&
git add f &&
git commit -q -m. f &&
printf "\ny\n" > f &&
after=$(git hash-object f) &&
after=$(git rev-parse --short $after) &&
sed -e "s/^index .*/index $before..$after 100644/" expected >exp &&
git config --bool diff.suppressBlankEmpty true &&
git diff f > actual &&
test_cmp exp actual &&
perl -i.bak -p -e "s/^\$/ /" exp &&
git config --bool diff.suppressBlankEmpty false &&
git diff f > actual &&
test_cmp exp actual &&
git config --bool --unset diff.suppressBlankEmpty &&
git diff f > actual &&
test_cmp exp actual
ok 1 - diff honors config option, diff.suppressBlankEmpty
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4031-diff-rewrite-binary.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4031-diff-rewrite-binary/.git/
expecting success:
make_file "\\0" &&
git add file &&
make_file "\\01"
ok 1 - create binary file with changes
expecting success:
git diff >diff &&
grep "Binary files a/file and b/file differ" diff
Binary files a/file and b/file differ
ok 2 - vanilla diff is binary
expecting success:
git diff -B >diff &&
grep "dissimilarity index" diff &&
grep "Binary files a/file and b/file differ" diff
dissimilarity index 99%
Binary files a/file and b/file differ
ok 3 - rewrite diff is binary
expecting success:
git diff -B --binary >diff &&
grep "dissimilarity index" diff &&
grep "GIT binary patch" diff
dissimilarity index 99%
GIT binary patch
ok 4 - rewrite diff can show binary patch
expecting success:
git diff -B --numstat --summary >diff &&
grep -e "- - " diff &&
grep " rewrite file" diff
- - file
rewrite file (99%)
ok 5 - rewrite diff --numstat shows binary changes
expecting success:
git diff -B --stat --summary >diff &&
grep "Bin" diff &&
test_i18ngrep "0 insertions.*0 deletions" diff &&
grep " rewrite file" diff
file | Bin 902 -> 902 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
rewrite file (99%)
ok 6 - diff --stat counts binary rewrite as 0 lines
expecting success:
echo file diff=foo >.gitattributes &&
git config diff.foo.textconv "\"$(pwd)\""/dump
ok 7 - setup textconv
expecting success:
git diff -B >diff &&
grep "dissimilarity index" diff &&
grep "^-61" diff &&
grep "^-0" diff
dissimilarity index 99%
-61
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
ok 8 - rewrite diff respects textconv
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4030-diff-textconv.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4030-diff-textconv/.git/
expecting success:
printf "\\0\\n" >file &&
git add file &&
git commit -m one &&
printf "\\01\\n" >>file &&
git add file &&
git commit -m two
[master (root-commit) d29459e] one
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
[master 35e3c88] two
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
ok 1 - setup binary file with history
expecting success:
git diff HEAD^ HEAD >diff &&
find_diff <diff >actual &&
test_cmp expect.binary actual
ok 2 - file is considered binary by porcelain
expecting success:
git diff-tree -p HEAD^ HEAD >diff &&
find_diff <diff >actual &&
test_cmp expect.binary actual
ok 3 - file is considered binary by plumbing
expecting success:
echo file diff=foo >.gitattributes &&
git config diff.foo.textconv "\"$(pwd)\""/hexdump &&
git config diff.fail.textconv false
ok 4 - setup textconv filters
expecting success:
git diff HEAD^ HEAD >diff &&
find_diff <diff >actual &&
test_cmp expect.text actual
ok 5 - diff produces text
expecting success:
git show HEAD >diff &&
find_diff <diff >actual &&
test_cmp expect.text actual
ok 6 - show commit produces text
expecting success:
git diff-tree -p HEAD^ HEAD >diff &&
find_diff <diff >actual &&
test_cmp expect.binary actual
ok 7 - diff-tree produces binary
expecting success:
git log -1 -p >log &&
find_diff <log >actual &&
test_cmp expect.text actual
ok 8 - log produces text
expecting success:
git format-patch --no-binary --stdout HEAD^ >patch &&
find_diff <patch >actual &&
test_cmp expect.binary actual
ok 9 - format-patch produces binary
expecting success:
git reset --soft HEAD^ &&
git status -v >diff &&
find_diff <diff >actual &&
test_cmp expect.text actual &&
git reset --soft HEAD@{1}
ok 10 - status -v produces text
expecting success:
git show HEAD:file >actual &&
printf "\\0\\n\\01\\n" >expect &&
test_cmp expect actual
ok 11 - show blob produces binary
expecting success:
git show --textconv HEAD:file >actual &&
printf "0\\n1\\n" >expect &&
test_cmp expect actual
ok 12 - show --textconv blob produces text
expecting success:
git show --no-textconv HEAD:file >actual &&
printf "\\0\\n\\01\\n" >expect &&
test_cmp expect actual
ok 13 - show --no-textconv blob produces binary
expecting success:
echo one >expect &&
git log --root --format=%s -G0 >actual &&
test_cmp expect actual
ok 14 - grep-diff (-G) operates on textconv data (add)
expecting success:
echo two >expect &&
git log --root --format=%s -G1 >actual &&
test_cmp expect actual
ok 15 - grep-diff (-G) operates on textconv data (modification)
expecting success:
echo one >expect &&
git log --root --format=%s -S0 >actual &&
test_cmp expect actual
ok 16 - pickaxe (-S) operates on textconv data (add)
expecting success:
echo two >expect &&
git log --root --format=%s -S1 >actual &&
test_cmp expect actual
ok 17 - pickaxe (-S) operates on textconv data (modification)
expecting success:
echo file diff=fail >.gitattributes &&
git diff --stat HEAD^ HEAD >actual &&
test_i18ncmp expect.stat actual &&
head -n1 <expect.stat >expect.line1 &&
head -n1 <actual >actual.line1 &&
test_cmp expect.line1 actual.line1
ok 18 - diffstat does not run textconv
expecting success:
rm -f file &&
test_ln_s_add frotz file &&
git commit -m typechange &&
git show >diff &&
find_diff <diff >actual &&
test_cmp expect.typechange actual
checking prerequisite: SYMLINKS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports symbolic links
ln -s x y && test -h y
)
prerequisite SYMLINKS ok
[master 41440b2] typechange
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rewrite file (100%)
mode change 100644 => 120000
ok 19 - textconv does not act on symlinks
# passed all 19 test(s)
1..19
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4027-diff-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4027-diff-submodule/.git/
expecting success:
test_tick &&
test_create_repo sub &&
(
cd sub &&
echo hello >world &&
git add world &&
git commit -m submodule
) &&
test_tick &&
echo frotz >nitfol &&
git add nitfol sub &&
git commit -m superproject &&
(
cd sub &&
echo goodbye >world &&
git add world &&
git commit -m "submodule #2"
) &&
set x $(
cd sub &&
git rev-list HEAD
) &&
echo ":160000 160000 $3 $ZERO_OID M sub" >expect &&
subtip=$3 subprev=$2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4027-diff-submodule/sub/.git/
[master (root-commit) 4431e0b] submodule
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
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) 5b035b6] superproject
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 nitfol
create mode 160000 sub
[master 2dd69d6] submodule #2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
git diff --raw --abbrev=40 HEAD >actual &&
test_cmp expect actual
ok 2 - git diff --raw HEAD
expecting success:
git diff-index --raw HEAD >actual.index &&
test_cmp expect actual.index
ok 3 - git diff-index --raw HEAD
expecting success:
git diff-files --raw >actual.files &&
test_cmp expect actual.files
ok 4 - git diff-files --raw
expecting success:
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev &&
test_cmp expect.body actual.body
ok 5 - git diff HEAD
expecting success:
echo >>sub/world &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev-dirty &&
test_cmp expect.body actual.body
ok 6 - git diff HEAD with dirty submodule (work tree)
expecting success:
(
cd sub &&
git reset --hard &&
echo >>world &&
git add world
) &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev-dirty &&
test_cmp expect.body actual.body
HEAD is now at 2dd69d6 submodule #2
ok 7 - git diff HEAD with dirty submodule (index)
expecting success:
(
cd sub &&
git reset --hard &&
git clean -qfdx &&
>cruft
) &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev-dirty &&
test_cmp expect.body actual.body
HEAD is now at 2dd69d6 submodule #2
ok 8 - git diff HEAD with dirty submodule (untracked)
expecting success:
git commit -m "x" sub &&
echo >>sub/world &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual.body &&
git diff --ignore-submodules HEAD >actual2 &&
! test -s actual2 &&
git diff --ignore-submodules=untracked HEAD >actual3 &&
sed -e "1,/^@@/d" actual3 >actual3.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual3.body &&
git diff --ignore-submodules=dirty HEAD >actual4 &&
! test -s actual4
[master e6ee575] x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 9 - git diff HEAD with dirty submodule (work tree, refs match)
expecting success:
git config diff.ignoreSubmodules dirty &&
git diff HEAD >actual &&
! test -s actual &&
git config --add -f .gitmodules submodule.subname.ignore none &&
git config --add -f .gitmodules submodule.subname.path sub &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual.body &&
git config -f .gitmodules submodule.subname.ignore all &&
git config -f .gitmodules submodule.subname.path sub &&
git diff HEAD >actual2 &&
! test -s actual2 &&
git config -f .gitmodules submodule.subname.ignore untracked &&
git diff HEAD >actual3 &&
sed -e "1,/^@@/d" actual3 >actual3.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual3.body &&
git config -f .gitmodules submodule.subname.ignore dirty &&
git diff HEAD >actual4 &&
! test -s actual4 &&
git config submodule.subname.ignore none &&
git config submodule.subname.path sub &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual.body &&
git config --remove-section submodule.subname &&
git config --remove-section -f .gitmodules submodule.subname &&
git config --unset diff.ignoreSubmodules &&
rm .gitmodules
ok 10 - git diff HEAD with dirty submodule (work tree, refs match) [.gitmodules]
expecting success:
(
cd sub &&
git reset --hard &&
echo >>world &&
git add world
) &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual.body
HEAD is now at 2dd69d6 submodule #2
ok 11 - git diff HEAD with dirty submodule (index, refs match)
expecting success:
(
cd sub &&
git reset --hard &&
git clean -qfdx &&
>cruft
) &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual.body &&
git diff --ignore-submodules=all HEAD >actual2 &&
! test -s actual2 &&
git diff --ignore-submodules=untracked HEAD >actual3 &&
! test -s actual3 &&
git diff --ignore-submodules=dirty HEAD >actual4 &&
! test -s actual4
HEAD is now at 2dd69d6 submodule #2
ok 12 - git diff HEAD with dirty submodule (untracked, refs match)
expecting success:
git config --add -f .gitmodules submodule.subname.ignore all &&
git config --add -f .gitmodules submodule.subname.path sub &&
git diff HEAD >actual2 &&
! test -s actual2 &&
git config -f .gitmodules submodule.subname.ignore untracked &&
git diff HEAD >actual3 &&
! test -s actual3 &&
git config -f .gitmodules submodule.subname.ignore dirty &&
git diff HEAD >actual4 &&
! test -s actual4 &&
git config submodule.subname.ignore none &&
git config submodule.subname.path sub &&
git diff HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subprev $subprev-dirty &&
test_cmp expect.body actual.body &&
git config --remove-section submodule.subname &&
git config --remove-section -f .gitmodules submodule.subname &&
rm .gitmodules
ok 13 - git diff HEAD with dirty submodule (untracked, refs match) [.gitmodules]
expecting success:
git diff HEAD^..HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev &&
test_cmp expect.body actual.body &&
git diff --ignore-submodules=dirty HEAD^..HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev &&
test_cmp expect.body actual.body &&
git diff --ignore-submodules HEAD^..HEAD >actual &&
! test -s actual
ok 14 - git diff between submodule commits
expecting success:
git diff HEAD^..HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev &&
test_cmp expect.body actual.body &&
git config --add -f .gitmodules submodule.subname.ignore dirty &&
git config --add -f .gitmodules submodule.subname.path sub &&
git diff HEAD^..HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev &&
test_cmp expect.body actual.body &&
git config -f .gitmodules submodule.subname.ignore all &&
git diff HEAD^..HEAD >actual &&
! test -s actual &&
git config submodule.subname.ignore dirty &&
git config submodule.subname.path sub &&
git diff HEAD^..HEAD >actual &&
sed -e "1,/^@@/d" actual >actual.body &&
expect_from_to >expect.body $subtip $subprev &&
git config --remove-section submodule.subname &&
git config --remove-section -f .gitmodules submodule.subname &&
rm .gitmodules
ok 15 - git diff between submodule commits [.gitmodules]
expecting success:
: >empty &&
rm -rf sub/* sub/.git &&
git diff > actual.empty &&
test_cmp empty actual.empty
ok 16 - git diff (empty submodule dir)
expecting success:
# 39 efs
c=fffffffffffffffffffffffffffffffffffffff &&
(
echo "000000 $ZERO_OID 0 sub" &&
echo "160000 1$c 1 sub" &&
echo "160000 2$c 2 sub" &&
echo "160000 3$c 3 sub"
) | git update-index --index-info &&
echo >expect.nosub 'diff --cc sub
index 2ffffff,3ffffff..0000000
--- a/sub
+++ b/sub
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 2fffffffffffffffffffffffffffffffffffffff
-Subproject commit 3fffffffffffffffffffffffffffffffffffffff
++Subproject commit 0000000000000000000000000000000000000000' &&
hh=$(git rev-parse HEAD) &&
sed -e "s/$ZERO_OID/$hh/" expect.nosub >expect.withsub
ok 17 - conflicted submodule setup
expecting success:
rm -fr sub && mkdir sub &&
git diff >actual &&
test_cmp expect.nosub actual
ok 18 - combined (empty submodule)
expecting success:
rm -fr sub &&
git clone --no-checkout . sub &&
git diff >actual &&
test_cmp expect.withsub actual
Cloning into 'sub'...
done.
ok 19 - combined (with submodule)
# passed all 19 test(s)
1..19
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4033-diff-patience.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4033-diff-patience/.git/
expecting success:
printf "a\nb\nc\n" >pre &&
printf "a\nbX\nc\n" >post &&
test_must_fail git diff --no-index \
--patience --ignore-space-at-eol pre post >diff &&
grep "^+.*X" diff
+bX
ok 1 - --ignore-space-at-eol with a single appended character
expecting success:
test_must_fail git diff --no-index "--$STRATEGY" file1 file2 > output &&
test_cmp expect output
ok 2 - patience diff
expecting success:
mv file2 expect &&
git apply < output &&
test_cmp expect file2
ok 3 - patience diff output is valid
expecting success:
test_must_fail git diff --no-index "--$STRATEGY" uniq1 uniq2 > output &&
test_cmp expect output
ok 4 - completely different files
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4032-diff-inter-hunk-context.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4032-diff-inter-hunk-context/.git/
expecting success:
test 2 = 2
ok 1 - diff -U0, 1 common line: count hunks (2)
expecting success:
git diff -U0 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.2 actual
ok 2 - diff -U0, 1 common line: check output
expecting success:
test 2 = 2
ok 3 - diff -U0 --inter-hunk-context=0, 1 common line: count hunks (2)
expecting success:
git diff -U0 --inter-hunk-context=0 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.2 actual
ok 4 - diff -U0 --inter-hunk-context=0, 1 common line: check output
expecting success:
test 1 = 1
ok 5 - diff -U0 --inter-hunk-context=1, 1 common line: count hunks (1)
expecting success:
git diff -U0 --inter-hunk-context=1 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.1 actual
ok 6 - diff -U0 --inter-hunk-context=1, 1 common line: check output
expecting success:
test 1 = 1
ok 7 - diff -U0 --inter-hunk-context=2, 1 common line: count hunks (1)
expecting success:
git diff -U0 --inter-hunk-context=2 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.1 actual
ok 8 - diff -U0 --inter-hunk-context=2, 1 common line: check output
expecting success:
test 1 = 1
ok 9 - diff -U1, 1 common line: count hunks (1)
expecting success:
test 2 = 2
ok 10 - diff -U0, 2 common lines: count hunks (2)
expecting success:
test 2 = 2
ok 11 - diff -U0 --inter-hunk-context=0, 2 common lines: count hunks (2)
expecting success:
test 2 = 2
ok 12 - diff -U0 --inter-hunk-context=1, 2 common lines: count hunks (2)
expecting success:
test 1 = 1
ok 13 - diff -U0 --inter-hunk-context=2, 2 common lines: count hunks (1)
expecting success:
test 1 = 1
ok 14 - diff -U1, 2 common lines: count hunks (1)
expecting success:
test 2 = 2
ok 15 - diff -U1, 3 common lines: count hunks (2)
expecting success:
test 2 = 2
ok 16 - diff -U1 --inter-hunk-context=0, 3 common lines: count hunks (2)
expecting success:
test 1 = 1
ok 17 - diff -U1 --inter-hunk-context=1, 3 common lines: count hunks (1)
expecting success:
test 1 = 1
ok 18 - diff -U1 --inter-hunk-context=2, 3 common lines: count hunks (1)
expecting success:
test 2 = 2
ok 19 - diff -U3, 9 common lines: count hunks (2)
expecting success:
test 2 = 2
ok 20 - diff -U3 --inter-hunk-context=2, 9 common lines: count hunks (2)
expecting success:
test 1 = 1
ok 21 - diff -U3 --inter-hunk-context=3, 9 common lines: count hunks (1)
expecting success:
test 2 = 2
ok 22 - (diff.interHunkContext=0) diff -U0, 1 common line: count hunks (2)
expecting success:
git diff -U0 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.2 actual
ok 23 - (diff.interHunkContext=0) diff -U0, 1 common line: check output
expecting success:
test 1 = 1
ok 24 - (diff.interHunkContext=1) diff -U0, 1 common line: count hunks (1)
expecting success:
git diff -U0 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.1 actual
ok 25 - (diff.interHunkContext=1) diff -U0, 1 common line: check output
expecting success:
test 1 = 1
ok 26 - (diff.interHunkContext=2) diff -U0, 1 common line: count hunks (1)
expecting success:
git diff -U0 f1 | grep -v '^index ' >actual &&
test_cmp expected.f1.0.1 actual
ok 27 - (diff.interHunkContext=2) diff -U0, 1 common line: check output
expecting success:
test 1 = 1
ok 28 - (diff.interHunkContext=3) diff -U3, 9 common lines: count hunks (1)
expecting success:
test 2 = 2
ok 29 - (diff.interHunkContext=0) diff -U0, 2 common lines: count hunks (2)
expecting success:
test 2 = 2
ok 30 - (diff.interHunkContext=1) diff -U0, 2 common lines: count hunks (2)
expecting success:
test 1 = 1
ok 31 - (diff.interHunkContext=2) diff -U0, 2 common lines: count hunks (1)
expecting success:
test 2 = 2
ok 32 - (diff.interHunkContext=0) diff -U1, 3 common lines: count hunks (2)
expecting success:
test 1 = 1
ok 33 - (diff.interHunkContext=1) diff -U1, 3 common lines: count hunks (1)
expecting success:
test 1 = 1
ok 34 - (diff.interHunkContext=2) diff -U1, 3 common lines: count hunks (1)
expecting success:
test 2 = 2
ok 35 - (diff.interHunkContext=2) diff -U3, 9 common lines: count hunks (2)
expecting success:
test 1 = 1
ok 36 - (diff.interHunkContext=3) diff -U3, 9 common lines: count hunks (1)
expecting success:
git config diff.interHunkContext asdf &&
test_must_fail git diff &&
git config diff.interHunkContext -1 &&
test_must_fail git diff
fatal: bad numeric config value 'asdf' for 'diff.interhunkcontext': invalid unit
fatal: bad config variable 'diff.interhunkcontext' in file '.git/config' at line 7
ok 37 - diff.interHunkContext invalid
# passed all 37 test(s)
1..37
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4036-format-patch-signer-mime.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4036-format-patch-signer-mime/.git/
expecting success:
>F &&
git add F &&
git commit -m initial &&
echo new line >F &&
test_tick &&
git commit -m "This adds some lines to F" F
[master (root-commit) af30a31] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 F
[master 4fcb302] This adds some lines to F
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
git format-patch --stdout -1 >output &&
! grep Content-Type output
ok 2 - format normally
expecting success:
git format-patch -s --stdout -1 >output &&
! grep Content-Type output
ok 3 - format with signoff without funny signer name
expecting success:
GIT_COMMITTER_NAME="はまの ふにおう" \
git format-patch -s --stdout -1 >output &&
grep Content-Type output
Content-Type: text/plain; charset=UTF-8
ok 4 - format with non ASCII signer name
expecting success:
GIT_COMMITTER_NAME="はまの ふにおう" \
git format-patch -s --stdout -1 --attach >output &&
test $(grep -ci ^MIME-Version: output) = 1
ok 5 - attach and signoff do not duplicate mime headers
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4035-diff-quiet.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4035-diff-quiet/.git/
expecting success:
echo 1 >a &&
git add . &&
git commit -m first &&
echo 2 >b &&
git add . &&
git commit -a -m second &&
mkdir -p test-outside/repo && (
cd test-outside/repo &&
git init &&
echo "1 1" >a &&
git add . &&
git commit -m 1
) &&
mkdir -p test-outside/non/git && (
cd test-outside/non/git &&
echo "1 1" >a &&
echo "1 1" >matching-file &&
echo "1 1 " >trailing-space &&
echo "1 1" >extra-space &&
echo "2" >never-match
)
[master (root-commit) 587215f] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[master 27c91c4] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4035-diff-quiet/test-outside/repo/.git/
[master (root-commit) 0a5ee14] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
ok 1 - setup
expecting success:
test_expect_code 1 git diff-tree --quiet HEAD^ HEAD >cnt &&
test_line_count = 0 cnt
ok 2 - git diff-tree HEAD^ HEAD
expecting success:
test_expect_code 0 git diff-tree --quiet HEAD^ HEAD -- a >cnt &&
test_line_count = 0 cnt
ok 3 - git diff-tree HEAD^ HEAD -- a
expecting success:
test_expect_code 1 git diff-tree --quiet HEAD^ HEAD -- b >cnt &&
test_line_count = 0 cnt
ok 4 - git diff-tree HEAD^ HEAD -- b
expecting success:
echo $(git rev-parse HEAD) |
test_expect_code 1 git diff-tree --quiet --stdin >cnt &&
test_line_count = 1 cnt
ok 5 - echo HEAD | git diff-tree --stdin
expecting success:
test_expect_code 0 git diff-tree --quiet HEAD HEAD >cnt &&
test_line_count = 0 cnt
ok 6 - git diff-tree HEAD HEAD
expecting success:
test_expect_code 0 git diff-files --quiet >cnt &&
test_line_count = 0 cnt
ok 7 - git diff-files
expecting success:
test_expect_code 0 git diff-index --quiet --cached HEAD >cnt &&
test_line_count = 0 cnt
ok 8 - git diff-index --cached HEAD
expecting success:
test_expect_code 1 git diff-index --quiet --cached HEAD^ >cnt &&
test_line_count = 0 cnt
ok 9 - git diff-index --cached HEAD^
expecting success:
echo text >>b &&
echo 3 >c &&
git add . &&
test_expect_code 1 git diff-index --quiet --cached HEAD^ >cnt &&
test_line_count = 0 cnt
warning: adding embedded git repository: test-outside/repo
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> test-outside/repo
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached test-outside/repo
hint:
hint: See "git help submodule" for more information.
ok 10 - git diff-index --cached HEAD^
expecting success:
git commit -m "text in b" &&
test_expect_code 1 git diff-tree --quiet -Stext HEAD^ HEAD -- b >cnt &&
test_line_count = 0 cnt
[master f4e9037] text in b
Author: A U Thor <author@example.com>
9 files changed, 8 insertions(+)
create mode 100644 c
create mode 100644 cnt
create mode 100644 test-outside/non/git/a
create mode 100644 test-outside/non/git/extra-space
create mode 100644 test-outside/non/git/matching-file
create mode 100644 test-outside/non/git/never-match
create mode 100644 test-outside/non/git/trailing-space
create mode 160000 test-outside/repo
ok 11 - git diff-tree -Stext HEAD^ HEAD -- b
expecting success:
test_expect_code 0 git diff-tree --quiet -Snot-found HEAD^ HEAD -- b >cnt &&
test_line_count = 0 cnt
ok 12 - git diff-tree -Snot-found HEAD^ HEAD -- b
expecting success:
echo 3 >>c &&
test_expect_code 1 git diff-files --quiet >cnt &&
test_line_count = 0 cnt
ok 13 - git diff-files
expecting success:
git update-index c &&
test_expect_code 1 git diff-index --quiet --cached HEAD >cnt &&
test_line_count = 0 cnt
ok 14 - git diff-index --cached HEAD
expecting success:
(
cd test-outside/repo &&
test_expect_code 0 git diff --quiet a ../non/git/matching-file &&
test_expect_code 1 git diff --quiet a ../non/git/extra-space
)
ok 15 - git diff, one file outside repo
expecting success:
(
GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&
export GIT_CEILING_DIRECTORIES &&
cd test-outside/non/git &&
test_expect_code 0 git diff --quiet a matching-file &&
test_expect_code 1 git diff --quiet a extra-space
)
ok 16 - git diff, both files outside repo
expecting success:
(
cd test-outside/repo &&
test_expect_code 0 git diff --quiet --ignore-space-at-eol a ../non/git/trailing-space &&
test_expect_code 1 git diff --quiet --ignore-space-at-eol a ../non/git/extra-space
)
ok 17 - git diff --ignore-space-at-eol, one file outside repo
expecting success:
(
GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&
export GIT_CEILING_DIRECTORIES &&
cd test-outside/non/git &&
test_expect_code 0 git diff --quiet --ignore-space-at-eol a trailing-space &&
test_expect_code 1 git diff --quiet --ignore-space-at-eol a extra-space
)
ok 18 - git diff --ignore-space-at-eol, both files outside repo
expecting success:
(
cd test-outside/repo &&
test_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/trailing-space &&
test_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/extra-space &&
test_expect_code 1 git diff --quiet --ignore-all-space a ../non/git/never-match
)
ok 19 - git diff --ignore-all-space, one file outside repo
expecting success:
(
GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&
export GIT_CEILING_DIRECTORIES &&
cd test-outside/non/git &&
test_expect_code 0 git diff --quiet --ignore-all-space a trailing-space &&
test_expect_code 0 git diff --quiet --ignore-all-space a extra-space &&
test_expect_code 1 git diff --quiet --ignore-all-space a never-match
)
ok 20 - git diff --ignore-all-space, both files outside repo
expecting success:
test-tool chmtime +10 a &&
echo modified >>b &&
test_expect_code 1 git diff --quiet
ok 21 - git diff --quiet ignores stat-change only entries
expecting success:
echo "crlf.txt text=auto" >.gitattributes &&
printf "Hello\r\nWorld\r\n" >crlf.txt &&
git add .gitattributes crlf.txt &&
printf "Hello\r\nWorld\n" >crlf.txt &&
git diff --quiet crlf.txt
warning: CRLF will be replaced by LF in crlf.txt.
The file will have its original line endings in your working directory.
warning: CRLF will be replaced by LF in crlf.txt.
The file will have its original line endings in your working directory.
ok 22 - git diff --quiet on a path that need conversion
# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4037-diff-r-t-dirs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4037-diff-r-t-dirs/.git/
expecting success:
mkdir dc dr dt &&
>dc/1 &&
>dr/2 &&
>dt/3 &&
>fc &&
>fr &&
>ft &&
git add . &&
test_tick &&
git commit -m initial &&
rm -fr dt dr ft fr &&
mkdir da ft &&
for p in dc/1 da/4 dt ft/5 fc
do
echo hello >$p || exit
done &&
git add -u &&
git add . &&
test_tick &&
git commit -m second
[master (root-commit) 26fc746] initial
Author: A U Thor <author@example.com>
6 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dc/1
create mode 100644 dr/2
create mode 100644 dt/3
create mode 100644 fc
create mode 100644 fr
create mode 100644 ft
[master 25e238e] second
Author: A U Thor <author@example.com>
9 files changed, 5 insertions(+)
create mode 100644 da/4
delete mode 100644 dr/2
create mode 100644 dt
delete mode 100644 dt/3
delete mode 100644 fr
delete mode 100644 ft
create mode 100644 ft/5
ok 1 - setup
expecting success:
git diff-tree -r -t --name-status HEAD^ HEAD >actual &&
test_cmp expect actual
ok 2 - verify
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4034-diff-words.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4034-diff-words/.git/
expecting success:
git config diff.color.old red &&
git config diff.color.new green &&
git config diff.color.func magenta
ok 1 - setup
expecting success:
cp pre.simple pre &&
cp post.simple post
ok 2 - set up pre and post with runs of whitespace
expecting success:
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index 330b04f..5ed8eff 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,3 +1,7 @@<RESET>
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
a = b + c<RESET>
<GREEN>aa = a<RESET>
<GREEN>aeff = aeff * ( aaa )<RESET>
EOF
word_diff --color-words &&
word_diff --word-diff=color &&
word_diff --color --word-diff=color
ok 3 - word diff with runs of whitespace
expecting success:
sed s/#.*$// >expect <<-\EOF &&
diff --git a/pre b/post
index 330b04f..5ed8eff 100644
--- a/pre
+++ b/post
@@ -1,3 +1,7 @@
-h(4)
+h(4),hh[44]
~
# significant space
~
a = b + c
~
~
+aa = a
~
~
+aeff = aeff * ( aaa )
~
EOF
word_diff --word-diff=porcelain
ok 4 - --word-diff=porcelain
expecting success:
cat >expect <<-\EOF &&
diff --git a/pre b/post
index 330b04f..5ed8eff 100644
--- a/pre
+++ b/post
@@ -1,3 +1,7 @@
[-h(4)-]{+h(4),hh[44]+}
a = b + c
{+aa = a+}
{+aeff = aeff * ( aaa )+}
EOF
word_diff --word-diff=plain &&
word_diff --word-diff=plain --no-color
ok 5 - --word-diff=plain
expecting success:
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index 330b04f..5ed8eff 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,3 +1,7 @@<RESET>
<RED>[-h(4)-]<RESET><GREEN>{+h(4),hh[44]+}<RESET>
a = b + c<RESET>
<GREEN>{+aa = a+}<RESET>
<GREEN>{+aeff = aeff * ( aaa )+}<RESET>
EOF
word_diff --word-diff=plain --color
ok 6 - --word-diff=plain --color
expecting success:
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index 330b04f..5ed8eff 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1 +1 @@<RESET>
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
<CYAN>@@ -3,0 +4,4 @@<RESET> <RESET><MAGENTA>a = b + c<RESET>
<GREEN>aa = a<RESET>
<GREEN>aeff = aeff * ( aaa )<RESET>
EOF
word_diff --color-words --unified=0
ok 7 - word diff without context
expecting success:
cp expect.letter-runs-are-words expect &&
word_diff --color-words="[a-z]+"
ok 8 - word diff with a regular expression
expecting success:
git config diff.testdriver.wordRegex "[^[:space:]]" &&
cat <<-\EOF >.gitattributes
pre diff=testdriver
post diff=testdriver
EOF
ok 9 - set up a diff driver
expecting success:
cp expect.letter-runs-are-words expect &&
word_diff --color-words="[a-z]+"
ok 10 - option overrides .gitattributes
expecting success:
cp expect.non-whitespace-is-word expect &&
word_diff --color-words
ok 11 - use regex supplied by driver
expecting success:
git config diff.wordRegex "[[:alnum:]]+"
ok 12 - set up diff.wordRegex option
expecting success:
cp expect.letter-runs-are-words expect &&
word_diff --color-words="[a-z]+"
ok 13 - command-line overrides config
expecting success:
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index 330b04f..5ed8eff 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,3 +1,7 @@<RESET>
h(4),<GREEN>{+hh+}<RESET>[44]
a = b + c<RESET>
<GREEN>{+aa = a+}<RESET>
<GREEN>{+aeff = aeff * ( aaa+}<RESET> )
EOF
word_diff --color --word-diff-regex="[a-z]+"
ok 14 - command-line overrides config: --word-diff-regex
expecting success:
cp expect.non-whitespace-is-word expect &&
word_diff --color-words
ok 15 - .gitattributes override config
expecting success:
test_unconfig diff.testdriver.wordRegex
ok 16 - setup: remove diff driver regex
expecting success:
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index 330b04f..5ed8eff 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,3 +1,7 @@<RESET>
h(4),<GREEN>hh[44<RESET>]
a = b + c<RESET>
<GREEN>aa = a<RESET>
<GREEN>aeff = aeff * ( aaa<RESET> )
EOF
word_diff --color-words
ok 17 - use configured regex
expecting success:
echo "aaa (aaa)" >pre &&
echo "aaa (aaa) aaa" >post &&
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index c29453b..be22f37 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1 +1 @@<RESET>
aaa (aaa) <GREEN>aaa<RESET>
EOF
word_diff --color-words="a+"
ok 18 - test parsing words for newline
expecting success:
echo "(:" >pre &&
echo "(" >post &&
cat >expect <<-\EOF &&
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index 289cb9d..2d06f37 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1 +1 @@<RESET>
(<RED>:<RESET>
EOF
word_diff --color-words=.
ok 19 - test when words are only removed at the end
expecting success:
echo "(:" >pre &&
echo "(" >post &&
cat >expect <<-\EOF &&
diff --git a/pre b/post
index 289cb9d..2d06f37 100644
--- a/pre
+++ b/post
@@ -1 +1 @@
-(:
+(
EOF
word_diff --word-diff=plain --word-diff=none
ok 20 - --word-diff=none
expecting success:
test_unconfig diff.wordregex
ok 21 - unset default driver
expecting success:
cp "$TEST_DIRECTORY/t4034/ada/pre" \
"$TEST_DIRECTORY/t4034/ada/post" \
"$TEST_DIRECTORY/t4034/ada/expect" . &&
echo "* diff=ada" >.gitattributes &&
word_diff --color-words
ok 22 - diff driver 'ada'
expecting success:
cp "$TEST_DIRECTORY/t4034/bibtex/pre" \
"$TEST_DIRECTORY/t4034/bibtex/post" \
"$TEST_DIRECTORY/t4034/bibtex/expect" . &&
echo "* diff=bibtex" >.gitattributes &&
word_diff --color-words
ok 23 - diff driver 'bibtex'
expecting success:
cp "$TEST_DIRECTORY/t4034/cpp/pre" \
"$TEST_DIRECTORY/t4034/cpp/post" \
"$TEST_DIRECTORY/t4034/cpp/expect" . &&
echo "* diff=cpp" >.gitattributes &&
word_diff --color-words
ok 24 - diff driver 'cpp'
expecting success:
cp "$TEST_DIRECTORY/t4034/csharp/pre" \
"$TEST_DIRECTORY/t4034/csharp/post" \
"$TEST_DIRECTORY/t4034/csharp/expect" . &&
echo "* diff=csharp" >.gitattributes &&
word_diff --color-words
ok 25 - diff driver 'csharp'
expecting success:
cp "$TEST_DIRECTORY/t4034/css/pre" \
"$TEST_DIRECTORY/t4034/css/post" \
"$TEST_DIRECTORY/t4034/css/expect" . &&
echo "* diff=css" >.gitattributes &&
word_diff --color-words
ok 26 - diff driver 'css'
expecting success:
cp "$TEST_DIRECTORY/t4034/fortran/pre" \
"$TEST_DIRECTORY/t4034/fortran/post" \
"$TEST_DIRECTORY/t4034/fortran/expect" . &&
echo "* diff=fortran" >.gitattributes &&
word_diff --color-words
ok 27 - diff driver 'fortran'
expecting success:
cp "$TEST_DIRECTORY/t4034/html/pre" \
"$TEST_DIRECTORY/t4034/html/post" \
"$TEST_DIRECTORY/t4034/html/expect" . &&
echo "* diff=html" >.gitattributes &&
word_diff --color-words
ok 28 - diff driver 'html'
expecting success:
cp "$TEST_DIRECTORY/t4034/java/pre" \
"$TEST_DIRECTORY/t4034/java/post" \
"$TEST_DIRECTORY/t4034/java/expect" . &&
echo "* diff=java" >.gitattributes &&
word_diff --color-words
ok 29 - diff driver 'java'
expecting success:
cp "$TEST_DIRECTORY/t4034/matlab/pre" \
"$TEST_DIRECTORY/t4034/matlab/post" \
"$TEST_DIRECTORY/t4034/matlab/expect" . &&
echo "* diff=matlab" >.gitattributes &&
word_diff --color-words
ok 30 - diff driver 'matlab'
expecting success:
cp "$TEST_DIRECTORY/t4034/objc/pre" \
"$TEST_DIRECTORY/t4034/objc/post" \
"$TEST_DIRECTORY/t4034/objc/expect" . &&
echo "* diff=objc" >.gitattributes &&
word_diff --color-words
ok 31 - diff driver 'objc'
expecting success:
cp "$TEST_DIRECTORY/t4034/pascal/pre" \
"$TEST_DIRECTORY/t4034/pascal/post" \
"$TEST_DIRECTORY/t4034/pascal/expect" . &&
echo "* diff=pascal" >.gitattributes &&
word_diff --color-words
ok 32 - diff driver 'pascal'
expecting success:
cp "$TEST_DIRECTORY/t4034/perl/pre" \
"$TEST_DIRECTORY/t4034/perl/post" \
"$TEST_DIRECTORY/t4034/perl/expect" . &&
echo "* diff=perl" >.gitattributes &&
word_diff --color-words
ok 33 - diff driver 'perl'
expecting success:
cp "$TEST_DIRECTORY/t4034/php/pre" \
"$TEST_DIRECTORY/t4034/php/post" \
"$TEST_DIRECTORY/t4034/php/expect" . &&
echo "* diff=php" >.gitattributes &&
word_diff --color-words
ok 34 - diff driver 'php'
expecting success:
cp "$TEST_DIRECTORY/t4034/python/pre" \
"$TEST_DIRECTORY/t4034/python/post" \
"$TEST_DIRECTORY/t4034/python/expect" . &&
echo "* diff=python" >.gitattributes &&
word_diff --color-words
ok 35 - diff driver 'python'
expecting success:
cp "$TEST_DIRECTORY/t4034/ruby/pre" \
"$TEST_DIRECTORY/t4034/ruby/post" \
"$TEST_DIRECTORY/t4034/ruby/expect" . &&
echo "* diff=ruby" >.gitattributes &&
word_diff --color-words
ok 36 - diff driver 'ruby'
expecting success:
cp "$TEST_DIRECTORY/t4034/tex/pre" \
"$TEST_DIRECTORY/t4034/tex/post" \
"$TEST_DIRECTORY/t4034/tex/expect" . &&
echo "* diff=tex" >.gitattributes &&
word_diff --color-words
ok 37 - diff driver 'tex'
expecting success:
cat >expect <<-\EOF &&
diff --git a/pre b/post
index a1a53b5..bc8fe6d 100644
--- a/pre
+++ b/post
@@ -1,3 +1,3 @@
a
[-b-]{+c+}
EOF
cat >pre <<-\EOF &&
a
b
EOF
cat >post <<-\EOF &&
a
c
EOF
test_config diff.suppress-blank-empty true &&
word_diff --word-diff=plain
ok 38 - word-diff with diff.sbe
expecting success:
cat >expect <<-\EOF &&
diff --git a/pre b/post
index 7bf316e..3dd0303 100644
--- a/pre
+++ b/post
@@ -1 +1 @@
a a [-a-]{+ab+} a a
EOF
printf "%s" "a a a a a" >pre &&
printf "%s" "a a ab a a" >post &&
word_diff --word-diff=plain
ok 39 - word-diff with no newline at EOF
expecting success:
echo "a b; c" >a.tex &&
echo "a b; c" >z.txt &&
git add a.tex z.txt &&
git commit -minitial &&
# modify both
echo "a bx; c" >a.tex &&
echo "a bx; c" >z.txt &&
git commit -mmodified -a
[master (root-commit) 761b58b] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 a.tex
create mode 100644 z.txt
[master 603beaa] modified
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
ok 40 - setup history with two files
expecting success:
echo "*.tex diff=tex" >.gitattributes &&
test_config diff.tex.wordRegex "[a-z]+|." &&
cat >expect <<-\EOF &&
diff --git a/a.tex b/a.tex
--- a/a.tex
+++ b/a.tex
@@ -1 +1 @@
a [-b-]{+bx+}; c
diff --git a/z.txt b/z.txt
--- a/z.txt
+++ b/z.txt
@@ -1 +1 @@
a [-b;-]{+bx;+} c
EOF
git diff --word-diff HEAD~ >actual &&
compare_diff_patch expect actual
ok 41 - wordRegex for the first file does not apply to the second
# passed all 41 test(s)
1..41
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4039-diff-assume-unchanged.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4039-diff-assume-unchanged/.git/
expecting success:
echo zero > zero &&
git add zero &&
git commit -m zero &&
echo one > one &&
echo two > two &&
git add one two &&
git commit -m onetwo &&
git update-index --assume-unchanged one &&
echo borked >> one &&
test "$(git ls-files -v one)" = "h one"
[master (root-commit) 93e1f48] zero
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 zero
[master 3580198] onetwo
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 one
create mode 100644 two
ok 1 - setup
expecting success:
git diff-index HEAD^ -- one | grep -q 5626abf0f72e58d7a153368ba57db4c673c0e171
ok 2 - diff-index does not examine assume-unchanged entries
expecting success:
rm one &&
test -z "$(git diff-files -- one)"
ok 3 - diff-files does not examine assume-unchanged entries
expecting success:
echo content >exec &&
chmod +x exec &&
git add exec &&
git commit -m exec &&
git update-index --assume-unchanged exec &&
>expect &&
git diff-files --find-copies-harder -- exec >actual &&
test_cmp expect actual
[master c54ad9a] exec
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100755 exec
ok 4 - find-copies-harder is not confused by mode bits
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4040-whitespace-status.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4040-whitespace-status/.git/
expecting success:
mkdir a b &&
echo >c &&
echo >a/d &&
echo >b/e &&
git add . &&
test_tick &&
git commit -m initial &&
echo " " >a/d &&
test_tick &&
git commit -a -m second &&
echo " " >a/d &&
echo " " >b/e &&
git add a/d
[master (root-commit) b80f2e3] initial
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 a/d
create mode 100644 b/e
create mode 100644 c
[master 13a0478] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
test_must_fail git diff --exit-code HEAD^ HEAD &&
test_must_fail git diff-tree --exit-code HEAD^ HEAD
diff --git a/a/d b/a/d
index 8b13789..8d1c8b6 100644
--- a/a/d
+++ b/a/d
@@ -1 +1 @@
-
+
:040000 040000 13061aad4970f02b314943ec46981e9ef332cae2 ac592974c686387705f2617b895d6585cc0a0d46 M a
ok 2 - diff-tree --exit-code
expecting success:
git diff -b --exit-code HEAD^ HEAD &&
git diff-tree -b -p --exit-code HEAD^ HEAD &&
git diff-tree -b --exit-code HEAD^ HEAD
:040000 040000 13061aad4970f02b314943ec46981e9ef332cae2 ac592974c686387705f2617b895d6585cc0a0d46 M a
ok 3 - diff-tree -b --exit-code
expecting success:
test_must_fail git diff --cached --exit-code HEAD &&
test_must_fail git diff-index --cached --exit-code HEAD
diff --git a/a/d b/a/d
index 8d1c8b6..1a4baf5 100644
--- a/a/d
+++ b/a/d
@@ -1 +1 @@
-
+
:100644 100644 8d1c8b69c3fce7bea45c73efd06983e3c419a92f 1a4baf536d705b9c814847cb7a708a0e63d5b976 M a/d
ok 4 - diff-index --cached --exit-code
expecting success:
git diff -b --cached --exit-code HEAD &&
git diff-index -b -p --cached --exit-code HEAD
ok 5 - diff-index -b -p --cached --exit-code
expecting success:
test_must_fail git diff --exit-code HEAD &&
test_must_fail git diff-index --exit-code HEAD
diff --git a/a/d b/a/d
index 8d1c8b6..1a4baf5 100644
--- a/a/d
+++ b/a/d
@@ -1 +1 @@
-
+
diff --git a/b/e b/b/e
index 8b13789..8d1c8b6 100644
--- a/b/e
+++ b/b/e
@@ -1 +1 @@
-
+
:100644 100644 8d1c8b69c3fce7bea45c73efd06983e3c419a92f 1a4baf536d705b9c814847cb7a708a0e63d5b976 M a/d
:100644 100644 8b137891791fe96927ad78e64b0aad7bded08bdc 0000000000000000000000000000000000000000 M b/e
ok 6 - diff-index --exit-code
expecting success:
git diff -b --exit-code HEAD &&
git diff-index -b -p --exit-code HEAD
ok 7 - diff-index -b -p --exit-code
expecting success:
test_must_fail git diff --exit-code &&
test_must_fail git diff-files --exit-code
diff --git a/b/e b/b/e
index 8b13789..8d1c8b6 100644
--- a/b/e
+++ b/b/e
@@ -1 +1 @@
-
+
:100644 100644 8b137891791fe96927ad78e64b0aad7bded08bdc 0000000000000000000000000000000000000000 M b/e
ok 8 - diff-files --exit-code
expecting success:
git diff -b --exit-code &&
git diff-files -b -p --exit-code
ok 9 - diff-files -b -p --exit-code
expecting success:
git reset --hard &&
rm a/d &&
echo x >>b/e &&
test_must_fail git diff-files --diff-filter=M --quiet
HEAD is now at 13a0478 second
ok 10 - diff-files --diff-filter --quiet
expecting success:
git commit -a -m "worktree state" &&
test_must_fail git diff-tree --diff-filter=M --quiet HEAD^ HEAD
[master c0a31dc] worktree state
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 a/d
ok 11 - diff-tree --diff-filter --quiet
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4042-diff-textconv-caching.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4042-diff-textconv-caching/.git/
expecting success:
echo foo content 1 >foo.bin &&
echo bar content 1 >bar.bin &&
git add . &&
git commit -m one &&
foo1=$(git rev-parse --short HEAD:foo.bin) &&
bar1=$(git rev-parse --short HEAD:bar.bin) &&
echo foo content 2 >foo.bin &&
echo bar content 2 >bar.bin &&
git commit -a -m two &&
foo2=$(git rev-parse --short HEAD:foo.bin) &&
bar2=$(git rev-parse --short HEAD:bar.bin) &&
echo "*.bin diff=magic" >.gitattributes &&
git config diff.magic.textconv ./helper &&
git config diff.magic.cachetextconv true
[master (root-commit) a79a37d] one
Author: A U Thor <author@example.com>
3 files changed, 5 insertions(+)
create mode 100644 bar.bin
create mode 100644 foo.bin
create mode 100755 helper
[master ece858c] two
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
ok 1 - setup
expecting success:
git diff HEAD^ HEAD >actual &&
test_cmp expect actual
ok 2 - first textconv works
expecting success:
git diff HEAD^ HEAD >actual &&
test_cmp expect actual
ok 3 - cached textconv produces same output
expecting success:
rm -f helper.out &&
git diff HEAD^ HEAD >actual &&
test_cmp expect actual &&
! test -r helper.out
ok 4 - cached textconv does not run helper
expecting success:
echo other >other &&
git config diff.magic.textconv "./helper other" &&
git diff HEAD^ HEAD >actual &&
test_cmp expect actual
ok 5 - changing textconv invalidates cache
expecting success:
git config diff.moremagic.textconv ./helper &&
echo foo.bin diff=moremagic >>.gitattributes &&
git diff HEAD^ HEAD >actual &&
test_cmp expect actual
ok 6 - switching diff driver produces correct results
expecting success:
git log --no-walk -p refs/notes/textconv/magic HEAD
commit e0528bb3505c1d8d84db9cfc7fb54393ba70eef0
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:13:34 2018 +0000
./helper other
diff --git a/1345db2c9189a61ef9932f66b656afc986bee58f b/1345db2c9189a61ef9932f66b656afc986bee58f
new file mode 100644
index 0000000..01b25c5
--- /dev/null
+++ b/1345db2c9189a61ef9932f66b656afc986bee58f
@@ -0,0 +1,2 @@
+converted: other
+converted: foo content 2
diff --git a/28283d51eeb71548ff81d02404b90103b494b983 b/28283d51eeb71548ff81d02404b90103b494b983
new file mode 100644
index 0000000..dcd63a4
--- /dev/null
+++ b/28283d51eeb71548ff81d02404b90103b494b983
@@ -0,0 +1,2 @@
+converted: other
+converted: bar content 2
diff --git a/d5b9fe314e6004caf906e730045d20689167b3fb b/d5b9fe314e6004caf906e730045d20689167b3fb
new file mode 100644
index 0000000..7ef0353
--- /dev/null
+++ b/d5b9fe314e6004caf906e730045d20689167b3fb
@@ -0,0 +1,2 @@
+converted: other
+converted: foo content 1
diff --git a/fcf91668044fda4a569b9374589b26dada7adc49 b/fcf91668044fda4a569b9374589b26dada7adc49
new file mode 100644
index 0000000..5ead606
--- /dev/null
+++ b/fcf91668044fda4a569b9374589b26dada7adc49
@@ -0,0 +1,2 @@
+converted: other
+converted: bar content 1
commit ece858ce4f1a8f63b0990f873d361c8af7fdc571
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:13:33 2018 +0000
two
diff --git a/bar.bin b/bar.bin
index fcf9166..28283d5 100644
--- a/bar.bin
+++ b/bar.bin
@@ -1,2 +1,2 @@
converted: other
-converted: bar content 1
+converted: bar content 2
diff --git a/foo.bin b/foo.bin
index d5b9fe3..1345db2 100644
--- a/foo.bin
+++ b/foo.bin
@@ -1 +1 @@
-converted: foo content 1
+converted: foo content 2
ok 7 - log notes cache and still use cache for -p
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4043-diff-rename-binary.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4043-diff-rename-binary/.git/
expecting success:
git init &&
echo foo > foo &&
echo "barQ" | q_to_nul > bar &&
git add . &&
git commit -m "Initial commit"
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4043-diff-rename-binary/.git/
[master (root-commit) 3459b77] Initial commit
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 bar
create mode 100644 foo
ok 1 - prepare repository
expecting success:
mkdir sub &&
git mv bar foo sub/ &&
git commit -m "Moved to sub/"
[master 7b6cef4] Moved to sub/
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
rename bar => sub/bar (100%)
rename foo => sub/foo (100%)
ok 2 - move the files into a "sub" directory
expecting success:
git show -C -C --raw --binary --numstat >patch-with-stat &&
tail -n 11 patch-with-stat >current &&
test_cmp expected current
ok 3 - git show -C -C report renames
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4044-diff-index-unique-abbrev.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4044-diff-index-unique-abbrev/.git/
checking prerequisite: SHA1
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
)
prerequisite SHA1 ok
expecting success:
echo 4827 > foo &&
git add foo &&
git commit -m "initial" &&
git cat-file -p HEAD: > actual &&
test_cmp expect_initial actual &&
echo 11742 > foo &&
git commit -a -m "update" &&
git cat-file -p HEAD: > actual &&
test_cmp expect_update actual
[master (root-commit) f19e8c0] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
[master 8203227] update
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success:
git diff HEAD^..HEAD | grep index > actual &&
test_cmp expect actual
ok 2 - diff does not produce ambiguous index line
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4045-diff-relative.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4045-diff-relative/.git/
expecting success:
git commit --allow-empty -m empty &&
echo content >file1 &&
mkdir subdir &&
echo other content >subdir/file2 &&
blob=$(git hash-object subdir/file2) &&
git add . &&
git commit -m one
[master (root-commit) e15c7b9] empty
Author: A U Thor <author@example.com>
[master 97750de] one
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 file1
create mode 100644 subdir/file2
ok 1 - setup
expecting success:
git -C '.' diff -p --relative=subdir/ HEAD^ >actual &&
test_cmp expected actual
ok 2 - -p --relative=subdir/
expecting success:
git -C '.' diff -p --relative=subdir HEAD^ >actual &&
test_cmp expected actual
ok 3 - -p --relative=subdir
expecting success:
git -C 'subdir' diff -p --relative HEAD^ >actual &&
test_cmp expected actual
ok 4 - -p --relative
expecting success:
git -C '.' diff -p --relative=sub HEAD^ >actual &&
test_cmp expected actual
ok 5 - -p --relative=sub
expecting success:
echo '1 0 file2' >expected &&
git -C '.' diff --numstat --relative=subdir/ HEAD^ >actual &&
test_cmp expected actual
ok 6 - --numstat --relative=subdir/
expecting success:
echo '1 0 file2' >expected &&
git -C '.' diff --numstat --relative=subdir HEAD^ >actual &&
test_cmp expected actual
ok 7 - --numstat --relative=subdir
expecting success:
echo '1 0 file2' >expected &&
git -C 'subdir' diff --numstat --relative HEAD^ >actual &&
test_cmp expected actual
ok 8 - --numstat --relative
expecting success:
echo '1 0 dir/file2' >expected &&
git -C '.' diff --numstat --relative=sub HEAD^ >actual &&
test_cmp expected actual
ok 9 - --numstat --relative=sub
expecting success:
git -C '.' diff --stat --relative=subdir/ HEAD^ >actual &&
test_i18ncmp expected actual
ok 10 - --stat --relative=subdir/
expecting success:
git -C '.' diff --stat --relative=subdir HEAD^ >actual &&
test_i18ncmp expected actual
ok 11 - --stat --relative=subdir
expecting success:
git -C 'subdir' diff --stat --relative HEAD^ >actual &&
test_i18ncmp expected actual
ok 12 - --stat --relative
expecting success:
git -C '.' diff --stat --relative=sub HEAD^ >actual &&
test_i18ncmp expected actual
ok 13 - --stat --relative=sub
expecting success:
git -C '.' diff --no-abbrev --raw --relative=subdir/ HEAD^ >actual &&
test_cmp expected actual
ok 14 - --raw --relative=subdir/
expecting success:
git -C '.' diff --no-abbrev --raw --relative=subdir HEAD^ >actual &&
test_cmp expected actual
ok 15 - --raw --relative=subdir
expecting success:
git -C 'subdir' diff --no-abbrev --raw --relative HEAD^ >actual &&
test_cmp expected actual
ok 16 - --raw --relative
expecting success:
git -C '.' diff --no-abbrev --raw --relative=sub HEAD^ >actual &&
test_cmp expected actual
ok 17 - --raw --relative=sub
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4046-diff-unmerged.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4046-diff-unmerged/.git/
expecting success:
for i in 0 1 2 3
do
blob=$(echo $i | git hash-object --stdin) &&
eval "blob$i=$blob" &&
eval "m$i=\"100644 \$blob$i $i\"" || return 1
done &&
paths= &&
for b in o x
do
for o in o x
do
for t in o x
do
path="$b$o$t" &&
case "$path" in ooo) continue ;; esac
paths="$paths$path " &&
p=" $path" &&
case "$b" in x) echo "$m1$p" ;; esac &&
case "$o" in x) echo "$m2$p" ;; esac &&
case "$t" in x) echo "$m3$p" ;; esac ||
return 1
done
done
done >ls-files-s.expect &&
git update-index --index-info <ls-files-s.expect &&
git ls-files -s >ls-files-s.actual &&
test_cmp ls-files-s.expect ls-files-s.actual
ok 1 - setup
expecting success:
for path in $paths
do
>"$path" &&
echo ":000000 100644 $ZERO_OID $ZERO_OID U $path"
done >diff-files-0.expect &&
git diff-files -0 >diff-files-0.actual &&
test_cmp diff-files-0.expect diff-files-0.actual
ok 2 - diff-files -0
expecting success:
for path in $paths
do
>"$path" &&
echo ":000000 100644 $ZERO_OID $ZERO_OID U $path" &&
case "$path" in
x??) echo ":100644 100644 $blob1 $ZERO_OID M $path"
esac
done >diff-files-1.expect &&
git diff-files -1 >diff-files-1.actual &&
test_cmp diff-files-1.expect diff-files-1.actual
ok 3 - diff-files -1
expecting success:
for path in $paths
do
>"$path" &&
echo ":000000 100644 $ZERO_OID $ZERO_OID U $path" &&
case "$path" in
?x?) echo ":100644 100644 $blob2 $ZERO_OID M $path"
esac
done >diff-files-2.expect &&
git diff-files -2 >diff-files-2.actual &&
test_cmp diff-files-2.expect diff-files-2.actual &&
git diff-files >diff-files-default-2.actual &&
test_cmp diff-files-2.expect diff-files-default-2.actual
ok 4 - diff-files -2
expecting success:
for path in $paths
do
>"$path" &&
echo ":000000 100644 $ZERO_OID $ZERO_OID U $path" &&
case "$path" in
??x) echo ":100644 100644 $blob3 $ZERO_OID M $path"
esac
done >diff-files-3.expect &&
git diff-files -3 >diff-files-3.actual &&
test_cmp diff-files-3.expect diff-files-3.actual
ok 5 - diff-files -3
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4041-diff-submodule-option.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/sm1/.git/
expecting success:
git add sm1 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 0000000...$head1 (new submodule)
EOF
test_cmp expected actual
warning: adding embedded git repository: sm1
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> sm1
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached sm1
hint:
hint: See "git help submodule" for more information.
ok 1 - added submodule
expecting success:
git config diff.submodule log &&
git add sm1 &&
git diff --cached >actual &&
cat >expected <<-EOF &&
Submodule sm1 0000000...$head1 (new submodule)
EOF
git config --unset diff.submodule &&
test_cmp expected actual
ok 2 - added submodule, set diff.submodule
expecting success:
test_config diff.submodule log &&
git add sm1 &&
git diff --submodule=short --cached >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
new file mode 160000
index 0000000..$head1
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
+Subproject commit $fullhead1
EOF
test_cmp expected actual
ok 3 - --submodule=short overrides diff.submodule
expecting success:
test_config diff.submodule log &&
git diff-index -p HEAD >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
new file mode 160000
index 0000000..$head1
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
+Subproject commit $fullhead1
EOF
test_cmp expected actual
ok 4 - diff.submodule does not affect plumbing
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head1..$head2:
> Add foo3 ($added foo3)
EOF
test_cmp expected actual
ok 5 - modified submodule(forward)
expecting success:
git diff --submodule=log >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head1..$head2:
> Add foo3 ($added foo3)
EOF
test_cmp expected actual
ok 6 - modified submodule(forward)
expecting success:
git diff --submodule >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head1..$head2:
> Add foo3 ($added foo3)
EOF
test_cmp expected actual
ok 7 - modified submodule(forward) --submodule
expecting success:
git diff --submodule=short >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
index $head1..$head2 160000
--- a/sm1
+++ b/sm1
@@ -1 +1 @@
-Subproject commit $fullhead1
+Subproject commit $fullhead2
EOF
test_cmp expected actual
ok 8 - modified submodule(forward) --submodule=short
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head2..$head3 (rewind):
< Add foo3 ($added foo3)
< Add foo2 ($added foo2)
EOF
test_cmp expected actual
ok 9 - modified submodule(backward)
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head2...$head4:
> Add foo5 ($added foo5)
> Add foo4 ($added foo4)
< Add foo3 ($added foo3)
< Add foo2 ($added foo2)
EOF
test_cmp expected actual
ok 10 - modified submodule(backward and forward)
expecting success:
git diff --submodule=log --cached >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head4...0000000 (submodule deleted)
diff --git a/sm1 b/sm1
new file mode 100644
index 0000000..$head5
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
+sm1
EOF
test_cmp expected actual
ok 11 - typechanged submodule(submodule->blob), --cached
expecting success:
git diff --submodule=log >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
deleted file mode 100644
index $head5..0000000
--- a/sm1
+++ /dev/null
@@ -1 +0,0 @@
-sm1
Submodule sm1 0000000...$head4 (new submodule)
EOF
test_cmp expected actual
ok 12 - typechanged submodule(submodule->blob)
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head4...0000000 (submodule deleted)
diff --git a/sm1 b/sm1
new file mode 100644
index 0000000..$head5
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
+sm1
EOF
test_cmp expected actual
ok 13 - typechanged submodule(submodule->blob)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/sm1/.git/
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head4...$head6 (commits not present)
EOF
test_cmp expected actual
ok 14 - nonexistent commit
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
deleted file mode 100644
index $head5..0000000
--- a/sm1
+++ /dev/null
@@ -1 +0,0 @@
-sm1
Submodule sm1 0000000...$head6 (new submodule)
EOF
test_cmp expected actual
ok 15 - typechanged submodule(blob->submodule)
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
EOF
test_cmp expected actual
ok 16 - submodule is up to date
expecting success:
echo new > sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains untracked content
EOF
test_cmp expected actual
ok 17 - submodule contains untracked content
expecting success:
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
! test -s actual
ok 18 - submodule contains untracked content (untracked ignored)
expecting success:
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
! test -s actual
ok 19 - submodule contains untracked content (dirty ignored)
expecting success:
git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
! test -s actual
ok 20 - submodule contains untracked content (all ignored)
expecting success:
echo new > sm1/foo6 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains untracked content
Submodule sm1 contains modified content
EOF
test_cmp expected actual
ok 21 - submodule contains untracked and modifed content
expecting success:
echo new > sm1/foo6 &&
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains modified content
EOF
test_cmp expected actual
ok 22 - submodule contains untracked and modifed content (untracked ignored)
expecting success:
echo new > sm1/foo6 &&
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
! test -s actual
ok 23 - submodule contains untracked and modifed content (dirty ignored)
expecting success:
echo new > sm1/foo6 &&
git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
! test -s actual
ok 24 - submodule contains untracked and modifed content (all ignored)
expecting success:
rm -f sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains modified content
EOF
test_cmp expected actual
ok 25 - submodule contains modifed content
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 26 - submodule is modified
expecting success:
echo new > sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains untracked content
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 27 - modified submodule contains untracked content
expecting success:
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 28 - modified submodule contains untracked content (untracked ignored)
expecting success:
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 29 - modified submodule contains untracked content (dirty ignored)
expecting success:
git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
! test -s actual
ok 30 - modified submodule contains untracked content (all ignored)
expecting success:
echo modification >> sm1/foo6 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains untracked content
Submodule sm1 contains modified content
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 31 - modified submodule contains untracked and modifed content
expecting success:
echo modification >> sm1/foo6 &&
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains modified content
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 32 - modified submodule contains untracked and modifed content (untracked ignored)
expecting success:
echo modification >> sm1/foo6 &&
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 33 - modified submodule contains untracked and modifed content (dirty ignored)
expecting success:
echo modification >> sm1/foo6 &&
git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
! test -s actual
ok 34 - modified submodule contains untracked and modifed content (all ignored)
expecting success:
rm -f sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 contains modified content
Submodule sm1 $head6..$head8:
> change
EOF
test_cmp expected actual
ok 35 - modified submodule contains modifed content
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6...0000000 (submodule deleted)
EOF
test_cmp expected actual
ok 36 - deleted submodule
expecting success:
test_create_repo sm2 &&
head7=$(add_file sm2 foo8 foo9) &&
git add sm2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/sm2/.git/
warning: adding embedded git repository: sm2
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> sm2
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached sm2
hint:
hint: See "git help submodule" for more information.
ok 37 - create second submodule
expecting success:
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6...0000000 (submodule deleted)
Submodule sm2 0000000...$head7 (new submodule)
EOF
test_cmp expected actual
ok 38 - multiple submodules
expecting success:
git diff-index -p --submodule=log HEAD sm2 >actual &&
cat >expected <<-EOF &&
Submodule sm2 0000000...$head7 (new submodule)
EOF
test_cmp expected actual
ok 39 - path filter
expecting success:
git diff-index -p --submodule=log HEAD^ >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6...0000000 (submodule deleted)
Submodule sm2 0000000...$head7 (new submodule)
EOF
test_cmp expected actual
ok 40 - given commit
expecting success:
git diff-index -p --submodule HEAD^ >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6...0000000 (submodule deleted)
Submodule sm2 0000000...$head7 (new submodule)
EOF
test_cmp expected actual
ok 41 - given commit --submodule
expecting success:
git diff-index -p --submodule=short HEAD^ >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
deleted file mode 160000
index $head6..0000000
--- a/sm1
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit $fullhead6
diff --git a/sm2 b/sm2
new file mode 160000
index 0000000..$head7
--- /dev/null
+++ b/sm2
@@ -0,0 +1 @@
+Subproject commit $fullhead7
EOF
test_cmp expected actual
ok 42 - given commit --submodule=short
expecting success:
(cd sm2 &&
REAL="$(pwd)/../.real" &&
mv .git "$REAL"
echo "gitdir: $REAL" >.git)
ok 43 - setup .git file for sm2
expecting success:
git diff --submodule HEAD^ >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head6...0000000 (submodule deleted)
Submodule sm2 0000000...$head7 (new submodule)
EOF
test_cmp expected actual
ok 44 - diff --submodule with .git file
expecting success:
mkdir sub_alt &&
(cd sub_alt &&
git init &&
echo a >a &&
git add a &&
git commit -m a
) &&
mkdir super &&
(cd super &&
git clone -s ../sub_alt sub &&
git init &&
git add sub &&
git commit -m "sub a"
) &&
(cd sub_alt &&
sha1_before=$(git rev-parse --short HEAD)
echo b >b &&
git add b &&
git commit -m b &&
sha1_after=$(git rev-parse --short HEAD) &&
{
echo "Submodule sub $sha1_before..$sha1_after:" &&
echo " > b"
} >../expected
) &&
(cd super &&
(cd sub &&
git fetch &&
git checkout origin/master
) &&
git diff --submodule > ../actual
) &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/sub_alt/.git/
[master (root-commit) b7442a0] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
Cloning into 'sub'...
done.
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/super/.git/
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) d9c5753] sub a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 160000 sub
[master 8e02ef5] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b
From /<<PKGBUILDDIR>>/t/trash directory.t4041-diff-submodule-option/super/../sub_alt
b7442a0..8e02ef5 master -> origin/master
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 8e02ef5 b
ok 45 - diff --submodule with objects referenced by alternates
# passed all 45 test(s)
1..45
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4038-diff-combined.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4038-diff-combined/.git/
expecting success:
>file &&
git add file &&
test_tick &&
git commit -m initial &&
git branch withone &&
git branch sansone &&
git checkout withone &&
setup_helper one withone sidewithone &&
git checkout sansone &&
setup_helper "" sansone sidesansone
[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 branch 'withone'
[withone 61ad3a5] withone
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
Switched to branch 'sidewithone'
[sidewithone 04e7a65] sidewithone
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
Merging:
04e7a65 sidewithone
virtual withone
found 1 common ancestor:
1bd44cb initial
Auto-merging file
CONFLICT (content): Merge conflict in file
Automatic merge failed; fix conflicts and then commit the result.
[sidewithone 70465e9] merge withone into sidewithone
Author: A U Thor <author@example.com>
Switched to branch 'sansone'
[sansone e4cdba2] sansone
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
Switched to branch 'sidesansone'
[sidesansone d31bb1b] sidesansone
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
Merging:
d31bb1b sidesansone
virtual sansone
found 1 common ancestor:
1bd44cb initial
Auto-merging file
CONFLICT (content): Merge conflict in file
Automatic merge failed; fix conflicts and then commit the result.
[sidesansone a02eb57] merge sansone into sidesansone
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success:
git show sidewithone -- >sidewithone &&
verify_helper sidewithone
ok 2 - check combined output (1)
expecting success:
git show sidesansone -- >sidesansone &&
verify_helper sidesansone
ok 3 - check combined output (2)
expecting success:
>file &&
git add file &&
git commit --amend -C HEAD &&
git show >out &&
grep "diff --cc file" out
[sidesansone 3fd518e] merge sansone into sidesansone
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
diff --cc file
ok 4 - diagnose truncated file
expecting success:
blob=$(echo file | git hash-object --stdin -w) &&
base_tree=$(echo "100644 blob $blob file" | git mktree) &&
trees= &&
for i in $(test_seq 1 40)
do
blob=$(echo file$i | git hash-object --stdin -w) &&
trees="$trees$(echo "100644 blob $blob file" | git mktree)$LF"
done
ok 5 - setup for --cc --raw
expecting success:
four_trees=$(echo "$trees" | sed -e 4q) &&
git diff --cc --raw $four_trees $base_tree >out &&
# Check for four leading colons in the output:
grep "^::::[^:]" out
::::100644 100644 100644 100644 100644 6c493ff 7c8ac2f bfd6a65 f73f309 e212970 MMMM file
ok 6 - check --cc --raw with four trees
expecting success:
git diff --cc --raw $trees $base_tree >out &&
# Check for forty leading colons in the output:
grep "^::::::::::::::::::::::::::::::::::::::::[^:]" out
::::::::::::::::::::::::::::::::::::::::100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 100644 6c493ff 7c8ac2f bfd6a65 4806cb9 8d80099 c52d680 efe3974 2050b92 07205b5 e1aa36f dd63810 d7a00d8 b5ac9e5 c76bce1 1d22d08 1b22815 10a5e40 e78cb60 1b9d597 e4c0bb4 536442d 9e692b7 02e835e 4bed7f0 ae12143 7202624 4c12e08 33b3d68 a633d0e a1d5983 c1288dc eb6edd8 769381d 9089a6c 83be741 3a76ef8 67335ff 834f228 62e8e47 f73f309 e212970 MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM file
ok 7 - check --cc --raw with forty trees
expecting success:
git checkout master &&
>test &&
git add test &&
git commit -m initial &&
tr -d Q <<-\EOF >test &&
always coalesce
eol space coalesce Q
space change coalesce
all spa ces coalesce
eol spaces Q
space change
all spa ces
EOF
git commit -m "test space change" -a &&
git checkout -b side HEAD^ &&
tr -d Q <<-\EOF >test &&
always coalesce
eol space coalesce
space change coalesce
all spaces coalesce
eol spaces
space change
all spaces
EOF
git commit -m "test other space changes" -a &&
test_must_fail git merge master &&
tr -d Q <<-\EOF >test &&
eol spaces Q
space change
all spa ces
EOF
git commit -m merged -a
Switched to branch 'master'
[master ac9d179] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test
[master c5936ee] test space change
Author: A U Thor <author@example.com>
1 file changed, 7 insertions(+)
Switched to a new branch 'side'
[side 29c6253] test other space changes
Author: A U Thor <author@example.com>
1 file changed, 7 insertions(+)
Merging:
29c6253 test other space changes
virtual master
found 1 common ancestor:
ac9d179 initial
Auto-merging test
CONFLICT (content): Merge conflict in test
Automatic merge failed; fix conflicts and then commit the result.
[side 373c494] merged
Author: A U Thor <author@example.com>
ok 8 - setup combined ignore spaces
expecting success:
git show >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
--always coalesce
- eol space coalesce
- space change coalesce
- all spaces coalesce
- eol spaces
- space change
- all spaces
-eol space coalesce Q
-space change coalesce
-all spa ces coalesce
+ eol spaces Q
+ space change
+ all spa ces
EOF
compare_diff_patch expected actual
ok 9 - check combined output (no ignore space)
expecting success:
git show --ignore-space-at-eol >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
--always coalesce
--eol space coalesce
- space change coalesce
- all spaces coalesce
-space change coalesce
-all spa ces coalesce
eol spaces Q
- space change
- all spaces
+ space change
+ all spa ces
EOF
compare_diff_patch expected actual
ok 10 - check combined output (ignore space at eol)
expecting success:
git show -b >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
--always coalesce
--eol space coalesce
--space change coalesce
- all spaces coalesce
-all spa ces coalesce
eol spaces Q
space change
- all spaces
+ all spa ces
EOF
compare_diff_patch expected actual
ok 11 - check combined output (ignore space change)
expecting success:
git show -w >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
--always coalesce
--eol space coalesce
--space change coalesce
--all spaces coalesce
eol spaces Q
space change
all spa ces
EOF
compare_diff_patch expected actual
ok 12 - check combined output (ignore all spaces)
expecting success:
>test &&
git add test &&
git commit -m initial &&
test_seq 4 >test &&
git commit -a -m empty1 &&
git branch side1 &&
git checkout HEAD^ &&
test_seq 5 >test &&
git commit -a -m empty2 &&
test_must_fail git merge side1 &&
>test &&
git commit -a -m merge &&
git show >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
--1
--2
--3
--4
- 5
EOF
compare_diff_patch expected actual
[side ca25ef5] initial
Author: A U Thor <author@example.com>
1 file changed, 3 deletions(-)
[side 2f38b7d] empty1
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at ca25ef5 initial
[detached HEAD a65ae3c] empty2
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
Merging:
a65ae3c empty2
virtual side1
found 1 common ancestor:
ca25ef5 initial
Auto-merging test
CONFLICT (content): Merge conflict in test
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 8ab2551] merge
Author: A U Thor <author@example.com>
ok 13 - combine diff coalesce simple
expecting success:
>test &&
git add test &&
git commit -m initial --allow-empty &&
cat <<-\EOF >test &&
3
1
2
3
4
EOF
git commit -a -m empty1 &&
git branch -f side1 &&
git checkout HEAD^ &&
cat <<-\EOF >test &&
1
3
5
4
EOF
git commit -a -m empty2 &&
git branch -f side2 &&
test_must_fail git merge side1 &&
>test &&
git commit -a -m merge &&
git show >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
-3
--1
-2
--3
- 5
--4
EOF
compare_diff_patch expected actual &&
git checkout -f side1 &&
test_must_fail git merge side2 &&
>test &&
git commit -a -m merge &&
git show >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
- 3
--1
- 2
--3
-5
--4
EOF
compare_diff_patch expected actual
[detached HEAD 567514d] initial
Author: A U Thor <author@example.com>
[detached HEAD edcd94a] empty1
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
Previous HEAD position was edcd94a empty1
HEAD is now at 567514d initial
[detached HEAD 4e10910] empty2
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
Merging:
4e10910 empty2
virtual side1
found 1 common ancestor:
567514d initial
Auto-merging test
CONFLICT (content): Merge conflict in test
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 2f37ae9] merge
Author: A U Thor <author@example.com>
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
2f37ae9 merge
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> 2f37ae9
Switched to branch 'side1'
Merging:
edcd94a empty1
virtual side2
found 1 common ancestor:
567514d initial
Auto-merging test
CONFLICT (content): Merge conflict in test
Automatic merge failed; fix conflicts and then commit the result.
[side1 33886e5] merge
Author: A U Thor <author@example.com>
ok 14 - combine diff coalesce tricky
checking known breakage:
>test &&
git add test &&
git commit -m initial --allow-empty &&
cat <<-\EOF >test &&
3
1
2
3
4
EOF
git commit -a -m empty1 &&
git checkout -B side1 &&
git checkout HEAD^ &&
cat <<-\EOF >test &&
1
3
7
5
4
EOF
git commit -a -m empty2 &&
git branch -f side2 &&
git checkout HEAD^ &&
cat <<-\EOF >test &&
3
1
6
5
4
EOF
git commit -a -m empty3 &&
>test &&
git add test &&
TREE=$(git write-tree) &&
COMMIT=$(git commit-tree -p HEAD -p side1 -p side2 -m merge $TREE) &&
git show $COMMIT >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
-- 3
---1
- 6
- 2
--3
-7
- -5
---4
EOF
compare_diff_patch expected actual
[side1 562f35c] initial
Author: A U Thor <author@example.com>
[side1 f31b6a2] empty1
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
Reset branch 'side1'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 562f35c initial
[detached HEAD 0cc2d14] empty2
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
Previous HEAD position was 0cc2d14 empty2
HEAD is now at 562f35c initial
[detached HEAD 22de592] empty3
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
--- .tmp-1 2018-06-24 06:13:37.817605402 +0000
+++ .tmp-2 2018-06-24 06:13:37.827605659 +0000
@@ -1,8 +1,9 @@
-- 3
---1
- 6
+- 5
- 2
--3
-7
-- -5
+ -5
---4
not ok 15 - combine diff coalesce three parents # TODO known breakage
expecting success:
git commit -m initial --allow-empty &&
cat <<-\EOF >test &&
1
2
3
4
EOF
git add test &&
git commit -a -m side1 &&
git checkout -B side1 &&
git checkout HEAD^ &&
cat <<-\EOF >test &&
0
1
2
3
4modified
EOF
git add test &&
git commit -m side2 &&
git branch -f side2 &&
test_must_fail git merge --no-commit side1 &&
cat <<-\EOF >test &&
1
2
3
4modified
EOF
git add test &&
git commit -a -m merge &&
git diff-tree -c -p HEAD >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
- 0
1
2
3
-4
+4modified
EOF
compare_diff_patch expected actual
[detached HEAD 78a948b] initial
Author: A U Thor <author@example.com>
1 file changed, 5 deletions(-)
[detached HEAD dd67d51] side1
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
Switched to and reset branch 'side1'
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 78a948b initial
[detached HEAD bb8b62e] side2
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
Merging:
bb8b62e side2
virtual side1
found 1 common ancestor:
78a948b initial
Auto-merging test
CONFLICT (content): Merge conflict in test
Automatic merge failed; fix conflicts and then commit the result.
[detached HEAD 9dfd023] merge
Author: A U Thor <author@example.com>
ok 16 - combine diff missing delete bug
expecting success:
# create a directory and a file that sort differently in trees
# versus byte-wise (implied "/" sorts after ".")
git checkout -f master &&
mkdir foo &&
echo base >foo/one &&
echo base >foo/two &&
echo base >foo.ext &&
git add foo foo.ext &&
git commit -m base &&
# one side modifies a file in the directory, along with the root
# file...
echo master >foo/one &&
echo master >foo.ext &&
git commit -a -m master &&
# the other side modifies the other file in the directory
git checkout -b other HEAD^ &&
echo other >foo/two &&
git commit -a -m other &&
# And now we merge. The files in the subdirectory will resolve cleanly,
# meaning that a combined diff will not find them interesting. But it
# will find the tree itself interesting, because it had to be merged.
git checkout master &&
git merge other &&
printf "MM\tfoo\n" >expect &&
git diff-tree -c --name-status -t HEAD >actual.tmp &&
sed 1d <actual.tmp >actual &&
test_cmp expect actual
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
9dfd023 merge
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> 9dfd023
Switched to branch 'master'
[master eeef54b] base
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 foo.ext
create mode 100644 foo/one
create mode 100644 foo/two
[master d5b0bfd] master
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
Switched to a new branch 'other'
[other 387c20f] other
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'master'
Merging:
d5b0bfd master
virtual other
found 1 common ancestor:
eeef54b base
Merge made by the 'recursive' strategy.
foo/two | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
ok 17 - combine diff gets tree sorting right
# still have 1 known breakage(s)
# passed all remaining 16 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4049-diff-stat-count.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4049-diff-stat-count/.git/
expecting success:
>a &&
>b &&
>c &&
>d &&
git add a b c d &&
git commit -m initial
[master (root-commit) d621c5e] initial
Author: A U Thor <author@example.com>
4 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
create mode 100644 b
create mode 100644 c
create mode 100644 d
ok 1 - setup
expecting success:
git reset --hard &&
test_chmod +x b d &&
echo a >a &&
echo c >c &&
cat >expect <<-\EOF &&
a | 1 +
b | 0
...
4 files changed, 2 insertions(+)
EOF
git diff --stat --stat-count=2 HEAD >actual &&
test_i18ncmp expect actual
HEAD is now at d621c5e initial
ok 2 - mode-only change show as a 0-line change
expecting success:
git reset --hard &&
echo a >a &&
echo c >c &&
cat "$TEST_DIRECTORY"/test-binary-1.png >d &&
cat >expect <<-\EOF &&
a | 1 +
c | 1 +
...
3 files changed, 2 insertions(+)
EOF
git diff --stat --stat-count=2 >actual &&
test_i18ncmp expect actual
HEAD is now at d621c5e initial
ok 3 - binary changes do not count in lines
expecting success:
git reset --hard &&
echo a >a &&
echo b >b &&
git ls-files -s a >x &&
git rm -f d &&
for stage in 1 2 3
do
sed -e "s/ 0 a/ $stage d/" x
done |
git update-index --index-info &&
echo d >d &&
cat >expect <<-\EOF &&
a | 1 +
b | 1 +
...
3 files changed, 3 insertions(+)
EOF
git diff --stat --stat-count=2 >actual &&
test_i18ncmp expect actual
HEAD is now at d621c5e initial
rm 'd'
ok 4 - exclude unmerged entries from total file count
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4050-diff-histogram.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4050-diff-histogram/.git/
expecting success:
test_must_fail git diff --no-index "--$STRATEGY" file1 file2 > output &&
test_cmp expect output
ok 1 - histogram diff
expecting success:
mv file2 expect &&
git apply < output &&
test_cmp expect file2
ok 2 - histogram diff output is valid
expecting success:
test_must_fail git diff --no-index "--$STRATEGY" uniq1 uniq2 > output &&
test_cmp expect output
ok 3 - completely different files
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4048-diff-combined-binary.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4048-diff-combined-binary/.git/
expecting success:
echo oneQ1 | q_to_nul >binary &&
git add binary &&
git commit -m one &&
echo twoQ2 | q_to_nul >binary &&
git commit -a -m two &&
git checkout -b branch-binary HEAD^ &&
echo threeQ3 | q_to_nul >binary &&
git commit -a -m three &&
test_must_fail git merge master &&
echo resolvedQhooray | q_to_nul >binary &&
git commit -a -m resolved
[master (root-commit) 29fa7e1] one
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 binary
[master fc3e01f] two
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
Switched to a new branch 'branch-binary'
[branch-binary 2947982] three
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
warning: Cannot merge binary files: binary (HEAD vs. master)
Merging:
2947982 three
virtual master
found 1 common ancestor:
29fa7e1 one
Auto-merging binary
CONFLICT (content): Merge conflict in binary
Automatic merge failed; fix conflicts and then commit the result.
[branch-binary 551ff92] resolved
Author: A U Thor <author@example.com>
ok 1 - setup binary merge conflict
expecting success:
git show --format=%s -m >actual &&
test_cmp expect actual
ok 2 - diff -m indicates binary-ness
expecting success:
git show --format=%s -c >actual &&
test_cmp expect actual
ok 3 - diff -c indicates binary-ness
expecting success:
git show --format=%s --cc >actual &&
test_cmp expect actual
ok 4 - diff --cc indicates binary-ness
expecting success:
git checkout master &&
test_commit one text &&
test_commit two text &&
git checkout -b branch-text HEAD^ &&
test_commit three text &&
test_must_fail git merge master &&
test_commit resolved text &&
echo text -diff >.gitattributes
Switched to branch 'master'
[master 0448ed1] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 text
[master a5ce521] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'branch-text'
[branch-text aa5fa8e] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Merging:
aa5fa8e three
virtual master
found 1 common ancestor:
0448ed1 one
Auto-merging text
CONFLICT (content): Merge conflict in text
Automatic merge failed; fix conflicts and then commit the result.
[branch-text 216f1af] resolved
Author: A U Thor <author@example.com>
ok 5 - setup non-binary with binary attribute
expecting success:
git show --format=%s -m >actual &&
test_cmp expect actual
ok 6 - diff -m respects binary attribute
expecting success:
git show --format=%s -c >actual &&
test_cmp expect actual
ok 7 - diff -c respects binary attribute
expecting success:
git show --format=%s --cc >actual &&
test_cmp expect actual
ok 8 - diff --cc respects binary attribute
expecting success:
echo "text diff=upcase" >.gitattributes &&
git config diff.upcase.textconv "tr a-z A-Z <"
ok 9 - setup textconv attribute
expecting success:
git show --format=%s -m >actual &&
test_cmp expect actual
ok 10 - diff -m respects textconv attribute
expecting success:
git show --format=%s -c >actual &&
test_cmp expect actual
ok 11 - diff -c respects textconv attribute
expecting success:
git show --format=%s --cc >actual &&
test_cmp expect actual
ok 12 - diff --cc respects textconv attribute
expecting success:
git diff-tree HEAD -c -p >full &&
tail -n +2 full >actual &&
test_cmp expect actual
ok 13 - diff-tree plumbing does not respect textconv
expecting success:
git reset --hard HEAD^ &&
test_must_fail git merge master &&
git diff >actual &&
test_cmp expect actual
HEAD is now at aa5fa8e three
Merging:
aa5fa8e three
virtual master
found 1 common ancestor:
0448ed1 one
Auto-merging text
CONFLICT (content): Merge conflict in text
Automatic merge failed; fix conflicts and then commit the result.
ok 14 - diff --cc respects textconv on worktree file
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4051-diff-function-context.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4051-diff-function-context/.git/
expecting success:
cat "$dir/includes.c" "$dir/dummy.c" "$dir/dummy.c" "$dir/hello.c" \
"$dir/dummy.c" "$dir/dummy.c" >file.c &&
commit_and_tag initial file.c &&
grep -v "delete me from hello" <file.c >file.c.new &&
mv file.c.new file.c &&
commit_and_tag changed_hello file.c &&
grep -v "delete me from includes" <file.c >file.c.new &&
mv file.c.new file.c &&
commit_and_tag changed_includes file.c &&
cat "$dir/appended1.c" >>file.c &&
commit_and_tag appended file.c &&
cat "$dir/appended2.c" >>file.c &&
commit_and_tag extended file.c &&
grep -v "Begin of second part" <file.c >file.c.new &&
mv file.c.new file.c &&
commit_and_tag long_common_tail file.c &&
git checkout initial &&
cat "$dir/hello.c" "$dir/dummy.c" >file.c &&
commit_and_tag hello_dummy file.c &&
# overlap function context of 1st change and -u context of 2nd change
grep -v "delete me from hello" <"$dir/hello.c" >file.c &&
sed "2a\\
extra line" <"$dir/dummy.c" >>file.c &&
commit_and_tag changed_hello_dummy file.c &&
git checkout initial &&
grep -v "delete me from hello" <file.c >file.c.new &&
mv file.c.new file.c &&
cat "$dir/appended1.c" >>file.c &&
commit_and_tag changed_hello_appended file.c
[master (root-commit) 9f6e181] initial
Author: A U Thor <author@example.com>
1 file changed, 72 insertions(+)
create mode 100644 file.c
[master 5e132d0] changed_hello
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
[master 964b054] changed_includes
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
[master d0cff11] appended
Author: A U Thor <author@example.com>
1 file changed, 15 insertions(+)
[master d16114c] extended
Author: A U Thor <author@example.com>
1 file changed, 35 insertions(+)
[master fa474ba] long_common_tail
Author: A U Thor <author@example.com>
1 file changed, 1 deletion(-)
Note: checking out '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 performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 9f6e181 initial
[detached HEAD cf16009] hello_dummy
Author: A U Thor <author@example.com>
1 file changed, 31 insertions(+), 72 deletions(-)
rewrite file.c (61%)
[detached HEAD d307f65] changed_hello_dummy
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Previous HEAD position was d307f65 changed_hello_dummy
HEAD is now at 9f6e181 initial
[detached HEAD aca4ec7] changed_hello_appended
Author: A U Thor <author@example.com>
1 file changed, 15 insertions(+), 1 deletion(-)
ok 1 - setup
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 2 - changed function
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was aca4ec7 changed_hello_appended
HEAD is now at 9f6e181 initial
HEAD is now at 9f6e181 initial
ok 3 - diff applies
expecting success:
grep "^ .*Hello comment" changed_hello.diff
* Hello comment.
ok 4 - context includes comment
expecting success:
grep "^ .*Begin of hello" changed_hello.diff
static void hello(void) // Begin of hello
ok 5 - context includes begin
expecting success:
grep "^ .*End of hello" changed_hello.diff
} // End of hello
ok 6 - context includes end
expecting success:
test $(grep -c "^[ +-].*Begin" changed_hello.diff) -le 1
ok 7 - context does not include other functions
expecting success:
test "$(first_context_line <changed_hello.diff)" != " "
ok 8 - context does not include preceding empty lines
expecting success:
test "$(last_context_line <changed_hello.diff)" != " "
ok 9 - context does not include trailing empty lines
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 10 - changed includes
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was 9f6e181 initial
HEAD is now at 5e132d0 changed_hello
HEAD is now at 5e132d0 changed_hello
ok 11 - diff applies
expecting success:
grep "^ .*Begin.h" changed_includes.diff
#include <Begin.h>
ok 12 - context includes begin
expecting success:
grep "^ .*End.h" changed_includes.diff
#include <End.h>
ok 13 - context includes end
expecting success:
test $(grep -c "^[ +-].*Begin" changed_includes.diff) -le 1
ok 14 - context does not include other functions
expecting success:
test "$(last_context_line <changed_includes.diff)" != " "
ok 15 - context does not include trailing empty lines
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 16 - appended function
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was 5e132d0 changed_hello
HEAD is now at 964b054 changed_includes
HEAD is now at 964b054 changed_includes
ok 17 - diff applies
expecting success:
grep "^[+].*Begin of first part" appended.diff
+int appended(void) // Begin of first part
ok 18 - context includes begin
expecting success:
grep "^[+].*End of first part" appended.diff
+ printf("End of first part\n");
ok 19 - context includes end
expecting success:
test $(grep -c "^[ +-].*Begin" appended.diff) -le 1
ok 20 - context does not include other functions
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 21 - appended function part
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was 964b054 changed_includes
HEAD is now at d0cff11 appended
HEAD is now at d0cff11 appended
ok 22 - diff applies
expecting success:
grep "^ .*Begin of first part" extended.diff
int appended(void) // Begin of first part
ok 23 - context includes begin
expecting success:
grep "^[+].*End of second part" extended.diff
+} // End of second part
ok 24 - context includes end
expecting success:
test $(grep -c "^[ +-].*Begin" extended.diff) -le 2
ok 25 - context does not include other functions
expecting success:
test "$(first_context_line <extended.diff)" != " "
ok 26 - context does not include preceding empty lines
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 27 - change with long common tail and no context
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was d0cff11 appended
HEAD is now at d16114c extended
HEAD is now at d16114c extended
ok 28 - diff applies
expecting success:
grep "^ .*Begin of first part" long_common_tail.diff
int appended(void) // Begin of first part
ok 29 - context includes begin
expecting success:
grep "^ .*End of second part" long_common_tail.diff
} // End of second part
ok 30 - context includes end
expecting success:
test $(grep -c "^[ +-].*Begin" long_common_tail.diff) -le 2
ok 31 - context does not include other functions
expecting success:
test "$(first_context_line <long_common_tail.diff.diff)" != " "
t4051-diff-function-context.sh: 4: eval: cannot open long_common_tail.diff.diff: No such file
ok 32 - context does not include preceding empty lines
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 33 - changed function plus appended function
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was d16114c extended
HEAD is now at 9f6e181 initial
HEAD is now at 9f6e181 initial
ok 34 - diff applies
expecting success:
grep "^ .*Begin of hello" changed_hello_appended.diff &&
grep "^[+].*Begin of first part" changed_hello_appended.diff
static void hello(void) // Begin of hello
+int appended(void) // Begin of first part
ok 35 - context includes begin
expecting success:
grep "^ .*End of hello" changed_hello_appended.diff &&
grep "^[+].*End of first part" changed_hello_appended.diff
} // End of hello
+ printf("End of first part\n");
ok 36 - context includes end
expecting success:
test $(grep -c "^[ +-].*Begin" changed_hello_appended.diff) -le 2
ok 37 - context does not include other functions
expecting success:
git diff $options "$name^" "$name" >"$name.diff"
ok 38 - changed two consecutive functions
expecting success:
test_when_finished "git reset --hard" &&
git checkout --detach "$name^" &&
git apply --index "$name.diff" &&
git diff --exit-code "$name"
Previous HEAD position was 9f6e181 initial
HEAD is now at cf16009 hello_dummy
HEAD is now at cf16009 hello_dummy
ok 39 - diff applies
expecting success:
grep "^ .*Begin of hello" changed_hello_dummy.diff &&
grep "^ .*Begin of dummy" changed_hello_dummy.diff
static void hello(void) // Begin of hello
static int dummy(void) // Begin of dummy
ok 40 - context includes begin
expecting success:
grep "^ .*End of hello" changed_hello_dummy.diff &&
grep "^ .*End of dummy" changed_hello_dummy.diff
} // End of hello
} // End of dummy
ok 41 - context includes end
expecting success:
test $(grep -c "^@@" changed_hello_dummy.diff) -eq 1
ok 42 - overlapping hunks are merged
# passed all 42 test(s)
1..42
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4053-diff-no-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4053-diff-no-index/.git/
expecting success:
mkdir a &&
mkdir b &&
echo 1 >a/1 &&
echo 2 >a/2 &&
git init repo &&
echo 1 >repo/a &&
mkdir -p non/git &&
echo 1 >non/git/a &&
echo 1 >non/git/b
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4053-diff-no-index/repo/.git/
ok 1 - setup
expecting success:
test_expect_code 1 git diff --no-index a b >cnt &&
test_line_count = 14 cnt
ok 2 - git diff --no-index directories
expecting success:
(
cd repo &&
test_expect_code 0 git diff --no-index a ../non/git/a &&
test_expect_code 0 git diff --no-index ../non/git/a ../non/git/b
)
ok 3 - git diff --no-index relative path outside repo
expecting success:
(
cd repo &&
echo broken >.git/index &&
git diff --no-index a ../non/git/a
)
ok 4 - git diff --no-index with broken index
expecting success:
(
cd repo &&
git diff ../non/git/a ../non/git/b
)
ok 5 - git diff outside repo with broken index
expecting success:
(
GIT_CEILING_DIRECTORIES=$TRASH_DIRECTORY/non &&
export GIT_CEILING_DIRECTORIES &&
cd non/git &&
test_must_fail git diff --no-index a 2>actual.err &&
echo "usage: git diff --no-index <path> <path>" >expect.err &&
test_cmp expect.err actual.err
)
ok 6 - git diff --no-index executed outside repo gives correct error message
expecting success:
(
cd repo &&
echo in-repo >a &&
echo non-repo >../non/git/a &&
mkdir sub &&
echo sub-repo >sub/a &&
test_must_fail git diff --no-index sub/a ../non/git/a >expect &&
test_must_fail git diff --no-index sub/a ../non/git/ >actual &&
test_cmp expect actual &&
test_must_fail git diff --no-index a ../non/git/a >expect &&
test_must_fail git diff --no-index a ../non/git/ >actual &&
test_cmp expect actual &&
test_must_fail git diff --no-index ../non/git/a a >expect &&
test_must_fail git diff --no-index ../non/git a >actual &&
test_cmp expect actual
)
ok 7 - diff D F and diff F D
expecting success:
(
cd non/git &&
mkdir d e e/sub &&
echo 1 >d/sub &&
echo 2 >e/sub/file &&
printf "D\td/sub\nA\te/sub/file\n" >expect &&
test_must_fail git diff --no-index --name-status d e >actual &&
test_cmp expect actual
)
ok 8 - turning a file into a directory
expecting success:
echo "diff --git a/../../non/git/a b/../../non/git/b" >expect &&
test_expect_code 1 \
git -C repo/sub \
diff --no-index ../../non/git/a ../../non/git/b >actual &&
head -n 1 <actual >actual.head &&
test_cmp expect actual.head
ok 9 - diff from repo subdir shows real paths (explicit)
expecting success:
echo "diff --git a/../../non/git/a b/../../non/git/b" >expect &&
test_expect_code 1 \
git -C repo/sub \
diff ../../non/git/a ../../non/git/b >actual &&
head -n 1 <actual >actual.head &&
test_cmp expect actual.head
ok 10 - diff from repo subdir shows real paths (implicit)
expecting success:
echo "diff --git ../../non/git/a ../../non/git/b" >expect &&
test_config -C repo diff.noprefix true &&
test_expect_code 1 \
git -C repo/sub \
diff --no-index ../../non/git/a ../../non/git/b >actual &&
head -n 1 <actual >actual.head &&
test_cmp expect actual.head
ok 11 - diff --no-index from repo subdir respects config (explicit)
expecting success:
echo "diff --git ../../non/git/a ../../non/git/b" >expect &&
test_config -C repo diff.noprefix true &&
test_expect_code 1 \
git -C repo/sub \
diff ../../non/git/a ../../non/git/b >actual &&
head -n 1 <actual >actual.head &&
test_cmp expect actual.head
ok 12 - diff --no-index from repo subdir respects config (implicit)
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4054-diff-bogus-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4054-diff-bogus-tree/.git/
expecting success:
bogus_tree=$(
printf "100644 fooQQQQQQQQQQQQQQQQQQQQQ" |
q_to_nul |
git hash-object -w --stdin -t tree
)
ok 1 - create bogus tree
expecting success:
echo bar >foo &&
git add foo &&
good_tree=$(git write-tree) &&
blob=$(git rev-parse :foo)
ok 2 - create tree with matching file
expecting success:
echo ":000000 100644 $ZERO_OID $ZERO_OID A foo" >expect &&
git diff-tree $EMPTY_TREE $bogus_tree >actual &&
test_cmp expect actual
ok 3 - raw diff shows null sha1 (addition)
expecting success:
echo ":100644 000000 $ZERO_OID $ZERO_OID D foo" >expect &&
git diff-tree $bogus_tree $EMPTY_TREE >actual &&
test_cmp expect actual
ok 4 - raw diff shows null sha1 (removal)
expecting success:
echo ":100644 100644 $blob $ZERO_OID M foo" >expect &&
git diff-tree $good_tree $bogus_tree >actual &&
test_cmp expect actual
ok 5 - raw diff shows null sha1 (modification)
expecting success:
echo ":100644 100644 $ZERO_OID $blob M foo" >expect &&
git diff-tree $bogus_tree $good_tree >actual &&
test_cmp expect actual
ok 6 - raw diff shows null sha1 (other direction)
expecting success:
echo ":100644 100644 $ZERO_OID $blob M foo" >expect &&
git diff-tree -R $good_tree $bogus_tree >actual &&
test_cmp expect actual
ok 7 - raw diff shows null sha1 (reverse)
expecting success:
echo ":100644 100644 $ZERO_OID $blob M foo" >expect &&
git diff-index $bogus_tree >actual &&
test_cmp expect actual
ok 8 - raw diff shows null sha1 (index)
expecting success:
test_must_fail git diff-tree -p $EMPTY_TREE $bogus_tree
fatal: unable to read 0000000000000000000000000000000000000000
ok 9 - patch fails due to bogus sha1 (addition)
expecting success:
test_must_fail git diff-tree -p $bogus_tree $EMPTY_TREE
fatal: unable to read 0000000000000000000000000000000000000000
ok 10 - patch fails due to bogus sha1 (removal)
expecting success:
test_must_fail git diff-tree -p $good_tree $bogus_tree
fatal: unable to read 0000000000000000000000000000000000000000
ok 11 - patch fails due to bogus sha1 (modification)
expecting success:
test_must_fail git diff-tree -p $bogus_tree $good_tree
fatal: unable to read 0000000000000000000000000000000000000000
ok 12 - patch fails due to bogus sha1 (other direction)
expecting success:
test_must_fail git diff-tree -R -p $good_tree $bogus_tree
fatal: unable to read 0000000000000000000000000000000000000000
ok 13 - patch fails due to bogus sha1 (reverse)
expecting success:
test_must_fail git diff-index -p $bogus_tree
fatal: unable to read 0000000000000000000000000000000000000000
ok 14 - patch fails due to bogus sha1 (index)
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4047-diff-dirstat.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4047-diff-dirstat/.git/
expecting success:
mkdir unchanged &&
mkdir changed &&
mkdir rearranged &&
mkdir src &&
mkdir src/copy &&
mkdir src/copy/unchanged &&
mkdir src/copy/changed &&
mkdir src/copy/rearranged &&
mkdir src/move &&
mkdir src/move/unchanged &&
mkdir src/move/changed &&
mkdir src/move/rearranged &&
cat <<EOF >unchanged/text &&
unchanged line #0
unchanged line #1
unchanged line #2
unchanged line #3
unchanged line #4
unchanged line #5
unchanged line #6
unchanged line #7
unchanged line #8
unchanged line #9
EOF
cat <<EOF >changed/text &&
changed line #0
changed line #1
changed line #2
changed line #3
changed line #4
changed line #5
changed line #6
changed line #7
changed line #8
changed line #9
EOF
cat <<EOF >rearranged/text &&
rearranged line #0
rearranged line #1
rearranged line #2
rearranged line #3
rearranged line #4
rearranged line #5
rearranged line #6
rearranged line #7
rearranged line #8
rearranged line #9
EOF
cat <<EOF >src/copy/unchanged/text &&
copy unchanged line #0
copy unchanged line #1
copy unchanged line #2
copy unchanged line #3
copy unchanged line #4
copy unchanged line #5
copy unchanged line #6
copy unchanged line #7
copy unchanged line #8
copy unchanged line #9
EOF
cat <<EOF >src/copy/changed/text &&
copy changed line #0
copy changed line #1
copy changed line #2
copy changed line #3
copy changed line #4
copy changed line #5
copy changed line #6
copy changed line #7
copy changed line #8
copy changed line #9
EOF
cat <<EOF >src/copy/rearranged/text &&
copy rearranged line #0
copy rearranged line #1
copy rearranged line #2
copy rearranged line #3
copy rearranged line #4
copy rearranged line #5
copy rearranged line #6
copy rearranged line #7
copy rearranged line #8
copy rearranged line #9
EOF
cat <<EOF >src/move/unchanged/text &&
move unchanged line #0
move unchanged line #1
move unchanged line #2
move unchanged line #3
move unchanged line #4
move unchanged line #5
move unchanged line #6
move unchanged line #7
move unchanged line #8
move unchanged line #9
EOF
cat <<EOF >src/move/changed/text &&
move changed line #0
move changed line #1
move changed line #2
move changed line #3
move changed line #4
move changed line #5
move changed line #6
move changed line #7
move changed line #8
move changed line #9
EOF
cat <<EOF >src/move/rearranged/text &&
move rearranged line #0
move rearranged line #1
move rearranged line #2
move rearranged line #3
move rearranged line #4
move rearranged line #5
move rearranged line #6
move rearranged line #7
move rearranged line #8
move rearranged line #9
EOF
git add . &&
git commit -m "initial" &&
mkdir dst &&
mkdir dst/copy &&
mkdir dst/copy/unchanged &&
mkdir dst/copy/changed &&
mkdir dst/copy/rearranged &&
mkdir dst/move &&
mkdir dst/move/unchanged &&
mkdir dst/move/changed &&
mkdir dst/move/rearranged &&
cat <<EOF >changed/text &&
CHANGED XXXXXXX line #0
changed line #1
changed line #2
changed line #3
changed line #4
changed line #5
changed line #6
changed line #7
changed line #8
changed line #9
EOF
cat <<EOF >rearranged/text &&
rearranged line #1
rearranged line #0
rearranged line #2
rearranged line #3
rearranged line #4
rearranged line #5
rearranged line #6
rearranged line #7
rearranged line #8
rearranged line #9
EOF
cat <<EOF >dst/copy/unchanged/text &&
copy unchanged line #0
copy unchanged line #1
copy unchanged line #2
copy unchanged line #3
copy unchanged line #4
copy unchanged line #5
copy unchanged line #6
copy unchanged line #7
copy unchanged line #8
copy unchanged line #9
EOF
cat <<EOF >dst/copy/changed/text &&
copy XXXCHANGED line #0
copy changed line #1
copy changed line #2
copy changed line #3
copy changed line #4
copy changed line #5
copy changed line #6
copy changed line #7
copy changed line #8
copy changed line #9
EOF
cat <<EOF >dst/copy/rearranged/text &&
copy rearranged line #1
copy rearranged line #0
copy rearranged line #2
copy rearranged line #3
copy rearranged line #4
copy rearranged line #5
copy rearranged line #6
copy rearranged line #7
copy rearranged line #8
copy rearranged line #9
EOF
cat <<EOF >dst/move/unchanged/text &&
move unchanged line #0
move unchanged line #1
move unchanged line #2
move unchanged line #3
move unchanged line #4
move unchanged line #5
move unchanged line #6
move unchanged line #7
move unchanged line #8
move unchanged line #9
EOF
cat <<EOF >dst/move/changed/text &&
move XXXCHANGED line #0
move changed line #1
move changed line #2
move changed line #3
move changed line #4
move changed line #5
move changed line #6
move changed line #7
move changed line #8
move changed line #9
EOF
cat <<EOF >dst/move/rearranged/text &&
move rearranged line #1
move rearranged line #0
move rearranged line #2
move rearranged line #3
move rearranged line #4
move rearranged line #5
move rearranged line #6
move rearranged line #7
move rearranged line #8
move rearranged line #9
EOF
git add . &&
git rm -r src/move/unchanged &&
git rm -r src/move/changed &&
git rm -r src/move/rearranged &&
git commit -m "changes" &&
git config diff.renames false
[master (root-commit) f946e81] initial
Author: A U Thor <author@example.com>
9 files changed, 90 insertions(+)
create mode 100644 changed/text
create mode 100644 rearranged/text
create mode 100644 src/copy/changed/text
create mode 100644 src/copy/rearranged/text
create mode 100644 src/copy/unchanged/text
create mode 100644 src/move/changed/text
create mode 100644 src/move/rearranged/text
create mode 100644 src/move/unchanged/text
create mode 100644 unchanged/text
rm 'src/move/unchanged/text'
rm 'src/move/changed/text'
rm 'src/move/rearranged/text'
[master d921d61] changes
Author: A U Thor <author@example.com>
8 files changed, 34 insertions(+), 4 deletions(-)
create mode 100644 dst/copy/changed/text
create mode 100644 dst/copy/rearranged/text
create mode 100644 dst/copy/unchanged/text
rename {src => dst}/move/changed/text (90%)
rename {src => dst}/move/rearranged/text (100%)
rename {src => dst}/move/unchanged/text (100%)
ok 1 - setup
expecting success:
git diff --numstat HEAD^..HEAD >actual_diff_stat &&
test_cmp expect_diff_stat actual_diff_stat &&
git diff --numstat -M HEAD^..HEAD >actual_diff_stat_M &&
test_cmp expect_diff_stat_M actual_diff_stat_M &&
git diff --numstat -C -C HEAD^..HEAD >actual_diff_stat_CC &&
test_cmp expect_diff_stat_CC actual_diff_stat_CC
ok 2 - sanity check setup (--numstat)
expecting success:
test_must_fail git show --dirstat10 &&
test_must_fail git show --dirstat10,files &&
test_must_fail git show -X=20 &&
test_must_fail git show -X=20,cumulative
fatal: unrecognized argument: --dirstat10
fatal: unrecognized argument: --dirstat10,files
fatal: Failed to parse --dirstat/-X option parameter:
Unknown dirstat parameter '=20'
fatal: Failed to parse --dirstat/-X option parameter:
Unknown dirstat parameter '=20'
ok 3 - various ways to misspell --dirstat
expecting success:
git diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 4 - vanilla --dirstat
expecting success:
git diff -X HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff -X -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff -X -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 5 - vanilla -X
expecting success:
git diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 6 - explicit defaults: --dirstat=changes,noncumulative,3
expecting success:
git diff -Xchanges,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff -Xchanges,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff -Xchanges,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 7 - explicit defaults: -Xchanges,noncumulative,3
expecting success:
git diff --dirstat=files,10,cumulative,changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,10,cumulative,changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,10,cumulative,changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC &&
git diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 8 - later options override earlier options:
expecting success:
git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 9 - non-defaults in config overridden by explicit defaults on command line
expecting success:
git diff --dirstat=0 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=0 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 10 - --dirstat=0
expecting success:
git diff -X0 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff -X0 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff -X0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 11 - -X0
expecting success:
git -c diff.dirstat=0 diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=0 diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=0 diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 12 - diff.dirstat=0
expecting success:
git diff --dirstat=0 --cumulative HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=0 --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=0 --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 13 - --dirstat=0 --cumulative
expecting success:
git diff --dirstat=0,cumulative HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 14 - --dirstat=0,cumulative
expecting success:
git diff -X0,cumulative HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff -X0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff -X0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 15 - -X0,cumulative
expecting success:
git -c diff.dirstat=0,cumulative diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=0,cumulative diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=0,cumulative diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 16 - diff.dirstat=0,cumulative
expecting success:
git -c diff.dirstat=0 diff --dirstat=cumulative HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=0 diff --dirstat=cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=0 diff --dirstat=cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 17 - diff.dirstat=0 & --dirstat=cumulative
expecting success:
git diff --dirstat-by-file HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat-by-file -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat-by-file -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 18 - --dirstat-by-file
expecting success:
git diff --dirstat=files HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 19 - --dirstat=files
expecting success:
git -c diff.dirstat=files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 20 - diff.dirstat=files
expecting success:
git diff --dirstat-by-file=10 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat-by-file=10 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat-by-file=10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 21 - --dirstat-by-file=10
expecting success:
git diff --dirstat=files,10 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,10 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 22 - --dirstat=files,10
expecting success:
git -c diff.dirstat=10,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=10,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=10,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 23 - diff.dirstat=10,files
expecting success:
git diff --dirstat-by-file --cumulative HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat-by-file --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat-by-file --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 24 - --dirstat-by-file --cumulative
expecting success:
git diff --dirstat=files,cumulative HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 25 - --dirstat=files,cumulative
expecting success:
git -c diff.dirstat=cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 26 - diff.dirstat=cumulative,files
expecting success:
git diff --dirstat=files,cumulative,10 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,cumulative,10 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,cumulative,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 27 - --dirstat=files,cumulative,10
expecting success:
git -c diff.dirstat=10,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=10,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=10,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 28 - diff.dirstat=10,cumulative,files
expecting success:
git diff --dirstat=files,cumulative,16.7 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,cumulative,16.7 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,cumulative,16.7 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 29 - --dirstat=files,cumulative,16.7
expecting success:
git -c diff.dirstat=16.7,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=16.7,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=16.7,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 30 - diff.dirstat=16.7,cumulative,files
expecting success:
git -c diff.dirstat=16.70,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=16.70,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=16.70,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 31 - diff.dirstat=16.70,cumulative,files
expecting success:
git diff --dirstat=files,cumulative,27.2 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,cumulative,27.2 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,cumulative,27.2 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 32 - --dirstat=files,cumulative,27.2
expecting success:
git diff --dirstat=files,cumulative,27.09 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=files,cumulative,27.09 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=files,cumulative,27.09 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 33 - --dirstat=files,cumulative,27.09
expecting success:
git diff --dirstat=lines HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=lines -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=lines -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 34 - --dirstat=lines
expecting success:
git -c diff.dirstat=lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 35 - diff.dirstat=lines
expecting success:
git diff --dirstat=lines,0 HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git diff --dirstat=lines,0 -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git diff --dirstat=lines,0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 36 - --dirstat=lines,0
expecting success:
git -c diff.dirstat=0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
git -c diff.dirstat=0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
git -c diff.dirstat=0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
ok 37 - diff.dirstat=0,lines
expecting success:
test_must_fail git diff --dirstat=future_param,lines,0 HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&
test_debug "cat actual_error" &&
test_cmp /dev/null actual_diff_dirstat &&
test_i18ngrep -q "future_param" actual_error &&
test_i18ngrep -q "\--dirstat" actual_error
ok 38 - --dirstat=future_param,lines,0 should fail loudly
expecting success:
test_must_fail git diff --dirstat=dummy1,cumulative,2dummy HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&
test_debug "cat actual_error" &&
test_cmp /dev/null actual_diff_dirstat &&
test_i18ngrep -q "dummy1" actual_error &&
test_i18ngrep -q "2dummy" actual_error &&
test_i18ngrep -q "\--dirstat" actual_error
ok 39 - --dirstat=dummy1,cumulative,2dummy should report both unrecognized parameters
expecting success:
git -c diff.dirstat=future_param,0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&
test_debug "cat actual_error" &&
test_cmp expect_diff_dirstat actual_diff_dirstat &&
test_i18ngrep -q "future_param" actual_error &&
test_i18ngrep -q "diff\\.dirstat" actual_error &&
git -c diff.dirstat=future_param,0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M 2>actual_error &&
test_debug "cat actual_error" &&
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
test_i18ngrep -q "future_param" actual_error &&
test_i18ngrep -q "diff\\.dirstat" actual_error &&
git -c diff.dirstat=future_param,0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC 2>actual_error &&
test_debug "cat actual_error" &&
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC &&
test_i18ngrep -q "future_param" actual_error &&
test_i18ngrep -q "diff\\.dirstat" actual_error
ok 40 - diff.dirstat=future_param,0,lines should warn, but still work
expecting success:
git diff --shortstat --dirstat=changes HEAD^..HEAD >out &&
grep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_changes &&
test_line_count = 1 actual_diff_shortstat_dirstat_changes &&
git diff --shortstat --dirstat=lines HEAD^..HEAD >out &&
grep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_lines &&
test_line_count = 1 actual_diff_shortstat_dirstat_lines &&
git diff --shortstat --dirstat=files HEAD^..HEAD >out &&
grep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_files &&
test_line_count = 1 actual_diff_shortstat_dirstat_files
ok 41 - --shortstat --dirstat should output only one dirstat
# passed all 41 test(s)
1..41
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4052-stat-output.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4052-stat-output/.git/
expecting success:
>"$name" &&
git add "$name" &&
git commit -m message &&
echo a >"$name" &&
git commit -m message "$name"
[master (root-commit) 3f628f5] message
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[master 9d3729b] message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - preparation
expecting success:
git format-patch -1 --stdout >output &&
grep " | " output >actual &&
test_cmp expect72 actual
ok 2 - format-patch: small change with long name gives more space to the name
expecting success:
git $cmd $args >output &&
grep " | " output >actual &&
test_cmp expect80 actual
ok 3 - diff: small change with long name gives more space to the name
expecting success:
git $cmd $args >output &&
grep " | " output >actual &&
test_cmp expect80 actual
ok 4 - show: small change with long name gives more space to the name
expecting success:
git $cmd $args >output &&
grep " | " output >actual &&
test_cmp expect80 actual
ok 5 - log: small change with long name gives more space to the name
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 6 - format-patch --stat=width: a long name is given more room when the bar is short
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 7 - format-patch --stat-width=width with long name
expecting success:
git $cmd $args --stat=60,30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 8 - format-patch --stat=...,name-width with long name
expecting success:
git $cmd $args --stat-name-width=30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 9 - format-patch --stat-name-width with long name
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 10 - diff --stat=width: a long name is given more room when the bar is short
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 11 - diff --stat-width=width with long name
expecting success:
git $cmd $args --stat=60,30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 12 - diff --stat=...,name-width with long name
expecting success:
git $cmd $args --stat-name-width=30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 13 - diff --stat-name-width with long name
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 14 - show --stat=width: a long name is given more room when the bar is short
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 15 - show --stat-width=width with long name
expecting success:
git $cmd $args --stat=60,30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 16 - show --stat=...,name-width with long name
expecting success:
git $cmd $args --stat-name-width=30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 17 - show --stat-name-width with long name
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 18 - log --stat=width: a long name is given more room when the bar is short
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 19 - log --stat-width=width with long name
expecting success:
git $cmd $args --stat=60,30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 20 - log --stat=...,name-width with long name
expecting success:
git $cmd $args --stat-name-width=30 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 21 - log --stat-name-width with long name
expecting success:
>abcd &&
git add abcd &&
git commit -m message &&
i=0 &&
while test $i -lt 1000
do
echo $i && i=$(($i + 1))
done >abcd &&
git commit -m message abcd
[master 1b86f2e] message
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 abcd
[master 166d476] message
Author: A U Thor <author@example.com>
1 file changed, 1000 insertions(+)
ok 22 - preparation for big change tests
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 23 - format-patch ignores COLUMNS (big change)
expecting success:
COLUMNS=200 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 24 - format-patch --graph ignores COLUMNS (big change)
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 25 - diff respects COLUMNS (big change)
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 26 - show respects COLUMNS (big change)
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 27 - log respects COLUMNS (big change)
expecting success:
COLUMNS=200 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 28 - log --graph respects COLUMNS (big change)
expecting success:
COLUMNS=40 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 29 - format-patch ignores not enough COLUMNS (big change)
expecting success:
COLUMNS=40 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 30 - format-patch --graph ignores not enough COLUMNS (big change)
expecting success:
COLUMNS=40 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 31 - diff respects not enough COLUMNS (big change)
expecting success:
COLUMNS=40 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 32 - show respects not enough COLUMNS (big change)
expecting success:
COLUMNS=40 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 33 - log respects not enough COLUMNS (big change)
expecting success:
COLUMNS=40 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 34 - log --graph respects not enough COLUMNS (big change)
expecting success:
git -c diff.statGraphWidth=26 $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 35 - format-patch ignores statGraphWidth config
expecting success:
git -c diff.statGraphWidth=26 $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 36 - format-patch --graph ignores statGraphWidth config
expecting success:
git -c diff.statGraphWidth=26 $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 37 - diff respects statGraphWidth config
expecting success:
git -c diff.statGraphWidth=26 $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 38 - show respects statGraphWidth config
expecting success:
git -c diff.statGraphWidth=26 $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 39 - log respects statGraphWidth config
expecting success:
git -c diff.statGraphWidth=26 $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 40 - log --graph respects statGraphWidth config
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 41 - format-patch --stat=width with big change
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 42 - format-patch --stat-width=width with big change
expecting success:
git $cmd $args --stat-graph-width=26 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 43 - format-patch --stat-graph-width with big change
expecting success:
git $cmd $args --stat-width=40 --graph >output &&
grep " | " output >actual &&
test_cmp expect-graph actual
ok 44 - format-patch --stat-width=width --graph with big change
expecting success:
git $cmd $args --stat-graph-width=26 --graph >output &&
grep " | " output >actual &&
test_cmp expect-graph actual
ok 45 - format-patch --stat-graph-width --graph with big change
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 46 - diff --stat=width with big change
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 47 - diff --stat-width=width with big change
expecting success:
git $cmd $args --stat-graph-width=26 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 48 - diff --stat-graph-width with big change
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 49 - show --stat=width with big change
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 50 - show --stat-width=width with big change
expecting success:
git $cmd $args --stat-graph-width=26 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 51 - show --stat-graph-width with big change
expecting success:
git $cmd $args --stat=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 52 - log --stat=width with big change
expecting success:
git $cmd $args --stat-width=40 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 53 - log --stat-width=width with big change
expecting success:
git $cmd $args --stat-graph-width=26 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 54 - log --stat-graph-width with big change
expecting success:
git $cmd $args --stat-width=40 --graph >output &&
grep " | " output >actual &&
test_cmp expect-graph actual
ok 55 - log --stat-width=width --graph with big change
expecting success:
git $cmd $args --stat-graph-width=26 --graph >output &&
grep " | " output >actual &&
test_cmp expect-graph actual
ok 56 - log --stat-graph-width --graph with big change
expecting success:
cp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
git add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
git commit -m message
[master 43bbcd1] message
Author: A U Thor <author@example.com>
1 file changed, 1000 insertions(+)
create mode 100644 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ok 57 - preparation for long filename tests
expecting success:
git $cmd $args --stat-width=60 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 58 - format-patch --stat=width with big change is more balanced
expecting success:
git $cmd $args --stat-width=60 --graph >output &&
grep " | " output >actual &&
test_cmp expect-graph actual
ok 59 - format-patch --stat=width --graph with big change is balanced
expecting success:
git $cmd $args --stat-width=60 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 60 - diff --stat=width with big change is more balanced
expecting success:
git $cmd $args --stat-width=60 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 61 - show --stat=width with big change is more balanced
expecting success:
git $cmd $args --stat-width=60 >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 62 - log --stat=width with big change is more balanced
expecting success:
git $cmd $args --stat-width=60 --graph >output &&
grep " | " output >actual &&
test_cmp expect-graph actual
ok 63 - log --stat=width --graph with big change is balanced
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 64 - format-patch ignores COLUMNS (long filename)
expecting success:
COLUMNS=200 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 65 - format-patch --graph ignores COLUMNS (long filename)
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 66 - diff respects COLUMNS (long filename)
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 67 - show respects COLUMNS (long filename)
expecting success:
COLUMNS=200 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 68 - log respects COLUMNS (long filename)
expecting success:
COLUMNS=200 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 69 - log --graph respects COLUMNS (long filename)
expecting success:
COLUMNS=1 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 70 - format-patch ignores prefix greater than COLUMNS (big change)
expecting success:
COLUMNS=1 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 71 - format-patch --graph ignores prefix greater than COLUMNS (big change)
expecting success:
COLUMNS=1 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 72 - diff respects prefix greater than COLUMNS (big change)
expecting success:
COLUMNS=1 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 73 - show respects prefix greater than COLUMNS (big change)
expecting success:
COLUMNS=1 git $cmd $args >output &&
grep " | " output >actual &&
test_cmp "$expect" actual
ok 74 - log respects prefix greater than COLUMNS (big change)
expecting success:
COLUMNS=1 git $cmd $args --graph >output &&
grep " | " output >actual &&
test_cmp "$expect-graph" actual
ok 75 - log --graph respects prefix greater than COLUMNS (big change)
expecting success:
git checkout -b branch HEAD^^ &&
COLUMNS=100 git merge --stat --no-ff master^ >output &&
grep " | " output >actual &&
test_cmp expect actual
Switched to a new branch 'branch'
ok 76 - merge --stat respects COLUMNS (big change)
expecting success:
COLUMNS=100 git merge --stat --no-ff master >output &&
grep " | " output >actual &&
test_cmp expect actual
ok 77 - merge --stat respects COLUMNS (long filename)
# passed all 77 test(s)
1..77
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4055-diff-context.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4055-diff-context/.git/
expecting success:
cat >template <<-\EOF &&
firstline
b
c
d
e
f
preline
TARGET
postline
i
j
k
l
m
n
EOF
sed "/TARGET/d" >x <template &&
git update-index --add x &&
git commit -m initial &&
sed "s/TARGET/ADDED/" >x <template &&
git update-index --add x &&
git commit -m next &&
sed "s/TARGET/MODIFIED/" >x <template
[master (root-commit) 6a63682] initial
Author: A U Thor <author@example.com>
1 file changed, 14 insertions(+)
create mode 100644 x
[master af611ff] next
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success:
git diff >output &&
! grep "^ d" output &&
grep "^ e" output &&
grep "^ j" output &&
! grep "^ k" output
e
j
ok 2 - the default number of context lines is 3
expecting success:
git log -1 -p >output &&
! grep firstline output &&
git config diff.context 8 &&
git log -1 -p >output &&
grep "^ firstline" output
firstline
ok 3 - diff.context honored by "log"
expecting success:
git config diff.context 8 &&
git log -U4 -1 >output &&
! grep "^ firstline" output
ok 4 - The -U option overrides diff.context
expecting success:
git config diff.context 8 &&
git diff >output &&
grep "^ firstline" output
firstline
ok 5 - diff.context honored by "diff"
expecting success:
git config diff.context 8 &&
git diff-files -p >output &&
! grep "^ firstline" output
ok 6 - plumbing not affected
expecting success:
git config diff.context no &&
test_must_fail git diff 2>output &&
test_i18ngrep "bad numeric config value" output
fatal: bad numeric config value 'no' for 'diff.context': invalid unit
ok 7 - non-integer config parsing
expecting success:
git config diff.context -1 &&
test_must_fail git diff 2>output &&
test_i18ngrep "bad config variable" output
fatal: bad config variable 'diff.context' in file '.git/config' at line 7
ok 8 - negative integer config parsing
expecting success:
git config diff.context 0 &&
git diff >output &&
grep "^-ADDED" output &&
grep "^+MODIFIED" output
-ADDED
+MODIFIED
ok 9 - -U0 is valid, so is diff.context=0
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4058-diff-duplicates.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4058-diff-duplicates/.git/
expecting success:
blob_one=$(echo one | git hash-object -w --stdin) &&
blob_two=$(echo two | git hash-object -w --stdin) &&
inner_one_a=$(make_tree \
100644 inner $blob_one
) &&
inner_one_b=$(make_tree \
100644 inner $blob_two \
100644 inner $blob_two \
100644 inner $blob_two
) &&
outer_one=$(make_tree \
040000 outer $inner_one_a \
040000 outer $inner_one_b
) &&
inner_two=$(make_tree \
100644 inner $blob_one \
100644 inner $blob_two \
100644 inner $blob_two \
100644 inner $blob_two
) &&
outer_two=$(make_tree \
040000 outer $inner_two
) &&
git tag one $outer_one &&
git tag two $outer_two
ok 1 - create trees with duplicate entries
expecting success:
{
printf ":000000 100644 $ZERO_OID $blob_two A\touter/inner\n" &&
printf ":000000 100644 $ZERO_OID $blob_two A\touter/inner\n" &&
printf ":000000 100644 $ZERO_OID $blob_two A\touter/inner\n" &&
printf ":100644 000000 $blob_two $ZERO_OID D\touter/inner\n" &&
printf ":100644 000000 $blob_two $ZERO_OID D\touter/inner\n" &&
printf ":100644 000000 $blob_two $ZERO_OID D\touter/inner\n"
} >expect &&
git diff-tree -r --no-abbrev one two >actual &&
test_cmp expect actual
ok 2 - diff-tree between trees
expecting success:
# same expectation as above, since we disable rename detection
git diff-tree -M -r --no-abbrev one two >actual &&
test_cmp expect actual
warning: skipping rename detection, detected duplicate destination 'outer/inner'
ok 3 - diff-tree with renames
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4056-diff-order.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4056-diff-order/.git/
expecting success:
mkdir c &&
create_files 1 &&
create_files 2 &&
cat >order_file_1 <<-\EOF &&
*Makefile
*.txt
*.h
EOF
cat >order_file_2 <<-\EOF &&
*Makefile
*.h
*.c
EOF
cat >expect_none <<-\EOF &&
a.h
b.c
c/Makefile
d.txt
EOF
cat >expect_1 <<-\EOF &&
c/Makefile
d.txt
a.h
b.c
EOF
cat >expect_2 <<-\EOF
c/Makefile
a.h
b.c
d.txt
EOF
[master (root-commit) 8a5d30a] 1
Author: A U Thor <author@example.com>
4 files changed, 4 insertions(+)
create mode 100644 a.h
create mode 100644 b.c
create mode 100644 c/Makefile
create mode 100644 d.txt
[master 6b6b5ae] 2
Author: A U Thor <author@example.com>
4 files changed, 4 insertions(+), 4 deletions(-)
ok 1 - setup
expecting success:
git diff --name-only HEAD^..HEAD >actual &&
test_cmp expect_none actual
ok 2 - no order (=tree object order)
expecting success:
rm -f bogus_file &&
test_must_fail git diff -Obogus_file --name-only HEAD^..HEAD
fatal: failed to read orderfile 'bogus_file': No such file or directory
ok 3 - missing orderfile
checking prerequisite: SANITY
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
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 ||
error "bug in test sript: 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 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
)
rm: cannot remove 'SANETESTD.1/x': Permission denied
prerequisite SANITY ok
expecting success:
>unreadable_file &&
chmod -r unreadable_file &&
test_must_fail git diff -Ounreadable_file --name-only HEAD^..HEAD
fatal: failed to read orderfile 'unreadable_file': Permission denied
ok 4 - unreadable orderfile
expecting success:
mkdir subdir &&
git -C subdir diff -O../order_file_1 --output ../actual --name-only HEAD^..HEAD &&
test_cmp expect_1 actual
ok 5 - orderfile using option from subdir with --output
expecting success:
git diff -Oorder_file_$i --name-only HEAD^..HEAD >actual &&
test_cmp expect_$i actual
ok 6 - orderfile using option (1)
checking prerequisite: PIPE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir" &&
# test whether the filesystem supports FIFOs
test_have_prereq !MINGW,!CYGWIN &&
rm -f testfifo && mkfifo testfifo
)
prerequisite PIPE ok
expecting success:
rm -f order_fifo &&
mkfifo order_fifo &&
{
cat order_file_$i >order_fifo &
} &&
git diff -O order_fifo --name-only HEAD^..HEAD >actual &&
wait &&
test_cmp expect_$i actual
ok 7 - orderfile is fifo (1)
expecting success:
git -c diff.orderfile=order_file_$i diff --name-only HEAD^..HEAD >actual &&
test_cmp expect_$i actual
ok 8 - orderfile using config (1)
expecting success:
git -c diff.orderfile=order_file_$i diff -O/dev/null --name-only HEAD^..HEAD >actual &&
test_cmp expect_none actual
ok 9 - cancelling configured orderfile (1)
expecting success:
git diff -Oorder_file_$i --name-only HEAD^..HEAD >actual &&
test_cmp expect_$i actual
ok 10 - orderfile using option (2)
expecting success:
rm -f order_fifo &&
mkfifo order_fifo &&
{
cat order_file_$i >order_fifo &
} &&
git diff -O order_fifo --name-only HEAD^..HEAD >actual &&
wait &&
test_cmp expect_$i actual
ok 11 - orderfile is fifo (2)
expecting success:
git -c diff.orderfile=order_file_$i diff --name-only HEAD^..HEAD >actual &&
test_cmp expect_$i actual
ok 12 - orderfile using config (2)
expecting success:
git -c diff.orderfile=order_file_$i diff -O/dev/null --name-only HEAD^..HEAD >actual &&
test_cmp expect_none actual
ok 13 - cancelling configured orderfile (2)
expecting success:
git checkout -b tmp HEAD~ &&
create_files 3 &&
git checkout master &&
git merge --no-commit -s ours tmp &&
create_files 5
Switched to a new branch 'tmp'
[tmp e01420a] 3
Author: A U Thor <author@example.com>
4 files changed, 4 insertions(+), 4 deletions(-)
Switched to branch 'master'
Automatic merge went well; stopped before committing as requested
[master d1d5943] 5
Author: A U Thor <author@example.com>
ok 14 - setup for testing combine-diff order
expecting success:
git diff --name-only HEAD HEAD^ HEAD^2 >actual &&
test_cmp expect_none actual
ok 15 - combine-diff: no order (=tree object order)
expecting success:
git diff -Oorder_file_$i --name-only HEAD HEAD^ HEAD^2 >actual &&
test_cmp expect_$i actual
ok 16 - combine-diff: orderfile using option (1)
expecting success:
git diff -Oorder_file_$i --name-only HEAD HEAD^ HEAD^2 >actual &&
test_cmp expect_$i actual
ok 17 - combine-diff: orderfile using option (2)
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4057-diff-combined-paths.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4057-diff-combined-paths/.git/
expecting success:
for i in $(test_seq 1 9)
do
echo $i >$i.txt &&
git add $i.txt
done &&
git commit -m "init" &&
git checkout -b side &&
for i in $(test_seq 2 9)
do
echo $i/2 >>$i.txt
done &&
git commit -a -m "side 2-9" &&
git checkout master &&
echo 1/2 >1.txt &&
git commit -a -m "master 1" &&
git merge side &&
>diffc.expect &&
diffc_verify
[master (root-commit) 1fbbb2a] init
Author: A U Thor <author@example.com>
9 files changed, 9 insertions(+)
create mode 100644 1.txt
create mode 100644 2.txt
create mode 100644 3.txt
create mode 100644 4.txt
create mode 100644 5.txt
create mode 100644 6.txt
create mode 100644 7.txt
create mode 100644 8.txt
create mode 100644 9.txt
Switched to a new branch 'side'
[side fb314ef] side 2-9
Author: A U Thor <author@example.com>
8 files changed, 8 insertions(+)
Switched to branch 'master'
[master f4c0b90] master 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Merging:
f4c0b90 master 1
virtual side
found 1 common ancestor:
1fbbb2a init
Merge made by the 'recursive' strategy.
2.txt | 1 +
3.txt | 1 +
4.txt | 1 +
5.txt | 1 +
6.txt | 1 +
7.txt | 1 +
8.txt | 1 +
9.txt | 1 +
8 files changed, 8 insertions(+)
ok 1 - trivial merge - combine-diff empty
expecting success:
git checkout side &&
for i in $(test_seq 2 9)
do
echo $i/3 >>$i.txt
done &&
echo "4side" >>4.txt &&
git commit -a -m "side 2-9 +4" &&
git checkout master &&
for i in $(test_seq 1 9)
do
echo $i/3 >>$i.txt
done &&
echo "4master" >>4.txt &&
git commit -a -m "master 1-9 +4" &&
test_must_fail git merge side &&
cat <<-\EOF >4.txt &&
4
4/2
4/3
4master
4side
EOF
git add 4.txt &&
git commit -m "merge side (2)" &&
echo 4.txt >diffc.expect &&
diffc_verify
Switched to branch 'side'
[side 60ff448] side 2-9 +4
Author: A U Thor <author@example.com>
8 files changed, 9 insertions(+)
Switched to branch 'master'
[master 7841ba2] master 1-9 +4
Author: A U Thor <author@example.com>
9 files changed, 10 insertions(+)
Merging:
7841ba2 master 1-9 +4
virtual side
found 1 common ancestor:
fb314ef side 2-9
Auto-merging 4.txt
CONFLICT (content): Merge conflict in 4.txt
Automatic merge failed; fix conflicts and then commit the result.
[master 3f4a599] merge side (2)
Author: A U Thor <author@example.com>
ok 2 - only one trully conflicting path
expecting success:
git checkout side &&
for i in $(test_seq 5 9)
do
echo $i/4 >>$i.txt
done &&
git commit -a -m "side 5-9" &&
git checkout master &&
for i in $(test_seq 1 3)
do
echo $i/4 >>$i.txt
done &&
git commit -a -m "master 1-3 +4hello" &&
git merge side &&
echo "Hello World" >4hello.txt &&
git add 4hello.txt &&
git commit --amend &&
echo 4hello.txt >diffc.expect &&
diffc_verify
Switched to branch 'side'
[side f217e5b] side 5-9
Author: A U Thor <author@example.com>
5 files changed, 5 insertions(+)
Switched to branch 'master'
[master d7645d0] master 1-3 +4hello
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
Merging:
d7645d0 master 1-3 +4hello
virtual side
found 1 common ancestor:
60ff448 side 2-9 +4
Merge made by the 'recursive' strategy.
5.txt | 1 +
6.txt | 1 +
7.txt | 1 +
8.txt | 1 +
9.txt | 1 +
5 files changed, 5 insertions(+)
[master 8a3c987] Merge branch 'side'
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:13:49 2018 +0000
ok 3 - merge introduces new file
expecting success:
git checkout side &&
for i in $(test_seq 5 9)
do
echo $i/5 >>$i.txt
done &&
git commit -a -m "side 5-9" &&
git checkout master &&
for i in $(test_seq 1 3)
do
echo $i/4 >>$i.txt
done &&
git commit -a -m "master 1-3" &&
git merge side &&
git rm 4.txt &&
git commit --amend &&
echo 4.txt >diffc.expect &&
diffc_verify
Switched to branch 'side'
[side 782579f] side 5-9
Author: A U Thor <author@example.com>
5 files changed, 5 insertions(+)
Switched to branch 'master'
[master 19127b9] master 1-3
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
Merging:
19127b9 master 1-3
virtual side
found 1 common ancestor:
f217e5b side 5-9
Merge made by the 'recursive' strategy.
5.txt | 1 +
6.txt | 1 +
7.txt | 1 +
8.txt | 1 +
9.txt | 1 +
5 files changed, 5 insertions(+)
rm '4.txt'
[master 59949b1] Merge branch 'side'
Author: A U Thor <author@example.com>
Date: Sun Jun 24 06:13:49 2018 +0000
ok 4 - merge removed a file
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4059-diff-submodule-not-initialized.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4059-diff-submodule-not-initialized/.git/
expecting success:
test_create_repo sm2 &&
add_file . foo &&
add_file sm2 foo1 foo2 &&
smhead1=$(git -C sm2 rev-parse --short --verify HEAD)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4059-diff-submodule-not-initialized/sm2/.git/
36d39d8
1beffeb
ok 1 - setup - submodules
expecting success:
git submodule add ./sm2 sm1 &&
commit_file sm1 .gitmodules &&
git diff-tree -p --no-commit-id --submodule=log HEAD -- sm1 >actual &&
cat >expected <<-EOF &&
Submodule sm1 0000000...$smhead1 (new submodule)
EOF
test_cmp expected actual
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t4059-diff-submodule-not-initialized/sm1'...
done.
ok 2 - setup - git submodule add
expecting success:
rm -rf sm1 &&
git diff-tree -p --no-commit-id --submodule=log HEAD -- sm1 >actual &&
cat >expected <<-EOF &&
Submodule sm1 0000000...$smhead1 (new submodule)
EOF
test_cmp expected actual
ok 3 - submodule directory removed
expecting success:
git submodule update --checkout sm1 &&
smhead2=$(add_file sm1 foo3 foo4) &&
commit_file sm1 &&
git diff-tree -p --no-commit-id --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $smhead1..$smhead2:
> Add foo4 ($added foo4)
> Add foo3 ($added foo3)
EOF
test_cmp expected actual
Submodule path 'sm1': checked out '1beffeb46f4c598c329381e14c03d952fb2e60d8'
ok 4 - setup - submodule multiple commits
expecting success:
rm -rf sm1 &&
git diff-tree -p --no-commit-id --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $smhead1..$smhead2:
> Add foo4 ($added foo4)
> Add foo3 ($added foo3)
EOF
test_cmp expected actual
ok 5 - submodule removed multiple commits
expecting success:
git clone . sm3 &&
git -C sm3 diff-tree -p --no-commit-id --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $smhead1...$smhead2 (commits not present)
EOF
test_cmp expected actual
Cloning into 'sm3'...
done.
ok 6 - submodule not initialized in new clone
expecting success:
git submodule update --checkout sm1 &&
git mv sm1 sm4 &&
commit_file sm4 &&
git diff-tree -p --no-commit-id --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm4 0000000...$smhead2 (new submodule)
EOF
test_cmp expected actual
Submodule path 'sm1': checked out 'b762e6a22f976e7e5d55bfe47bb4c4694f97a64c'
ok 7 - setup submodule moved
expecting success:
smhead3=$(add_file sm4 foo6 foo7) &&
commit_file sm4 &&
rm -rf sm4 &&
git diff-tree -p --no-commit-id --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm4 $smhead2..$smhead3:
> Add foo7 ($added foo7)
> Add foo6 ($added foo6)
EOF
test_cmp expected actual
ok 8 - submodule moved then removed
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4062-diff-pickaxe.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4062-diff-pickaxe/.git/
expecting success:
test_commit initial &&
printf "%04096d" 0 >4096-zeroes.txt &&
git add 4096-zeroes.txt &&
test_tick &&
git commit -m "A 4k file"
[master (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
[master 98d74df] A 4k file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4096-zeroes.txt
ok 1 - setup
expecting success:
git diff --name-only -G "^(0{64}){64}$" HEAD^ >out &&
test 4096-zeroes.txt = "$(cat out)"
ok 2 - -G matches
expecting success:
git diff --name-only -S0 --pickaxe-regex HEAD^ >out &&
verbose test 4096-zeroes.txt = "$(cat out)"
ok 3 - -S --pickaxe-regex
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t4063-diff-blobs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t4063-diff-blobs/.git/
expecting success:
echo one >one &&
echo two >two &&
chmod +x two &&
git add . &&
# cover systems where modes are ignored
git update-index --chmod=+x two &&
git commit -m base &&
sha1_one=$(git rev-parse HEAD:one) &&
sha1_two=$(git rev-parse HEAD:two)
[master (root-commit) 770b4b7] base
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 one
create mode 100755 two
ok 1 - create some blobs
expecting success:
run_diff $sha1_one $sha1_two
ok 2 - diff by sha1
expecting success:
check_index $sha1_one $sha1_two
index 5626abf0f72e58d7a153368ba57db4c673c0e171..f719efd430d52bcfc8566a43b2eb655688d38871 100644
ok 3 - index of sha1 diff
expecting success:
check_paths $sha1_one $sha1_two
diff --git a/5626abf0f72e58d7a153368ba57db4c673c0e171 b/f719efd430d52bcfc8566a43b2eb655688d38871
ok 4 - sha1 diff uses arguments as paths
expecting success:
! grep mode diff
ok 5 - sha1 diff has no mode change
expecting success:
run_diff HEAD:one HEAD:two
ok 6 - diff by tree:path (run)
expecting success:
check_index $sha1_one $sha1_two
index 5626abf0f72e58d7a153368ba57db4c673c0e171..f719efd430d52bcfc8566a43b2eb655688d38871
ok 7 - index of tree:path diff
expecting success:
check_paths one two
diff --git a/one b/two
ok 8 - tree:path diff uses filenames as paths
expecting success:
check_mode 100644 100755
old mode 100644
new mode 100755
ok 9 - tree:path diff shows mode change
expecting success:
run_diff HEAD:one..HEAD:two
ok 10 - diff by ranged tree:path
expecting success:
check_index $sha1_one $sha1_two
index 5626abf0f72e58d7a153368ba57db4c673c0e171..f719efd430d52bcfc8566a43b2eb655688d38871
ok 11 - index of ranged tree:path diff
expecting success:
check_paths one two
diff --git a/one b/two
ok 12 - ranged tree:path diff uses filenames as paths
expecting success:
check_mode 100644 100755
old mode 100644
new mode 100755
ok 13 - ranged tree:path diff shows mode change
expecting success:
run_diff HEAD:one two
ok 14 - diff blob against file
expecting success:
check_index $sha1_one $sha1_two