Log for failed build of git-core_1:1.5.4.3-1ubuntu2 (dist=intrepid-autotest)
Build Daemon user
noreply at buildd.ubuntu.com
Sat Jul 5 16:27:43 BST 2008
Automatic build of git-core_1:1.5.4.3-1ubuntu2 on king by sbuild/amd64 1.170.5
Build started at 20080705-1618
******************************************************************************
Checking available source versions...
Fetching source files...
Reading package lists...
Building dependency tree...
Reading state information...
Need to get 2094kB of source archives.
Get:1 http://archive.internal intrepid-autotest/main git-core 1:1.5.4.3-1ubuntu2 (dsc) [969B]
Get:2 http://archive.internal intrepid-autotest/main git-core 1:1.5.4.3-1ubuntu2 (tar) [1900kB]
Get:3 http://archive.internal intrepid-autotest/main git-core 1:1.5.4.3-1ubuntu2 (diff) [194kB]
Fetched 2094kB in 0s (30.7MB/s)
Download complete and in download only mode
** Using build dependencies supplied by package:
Build-Depends: asciidoc (>> 8.0.0), cvs, gettext, libcurl4-gnutls-dev | libcurl3-gnutls-dev, libdbd-sqlite3-perl, libexpat1-dev, libsvn-perl | libsvn-core-perl, libz-dev, subversion, tcl8.4, unzip, xmlto
Checking for already installed source dependencies...
asciidoc: missing
cvs: missing
gettext: missing
libcurl4-gnutls-dev: missing
libcurl3-gnutls-dev: missing
libdbd-sqlite3-perl: missing
libexpat1-dev: missing
libsvn-perl: missing
libsvn-core-perl: missing
libz-dev: missing
subversion: missing
tcl8.4: missing
unzip: missing
xmlto: missing
Checking for source dependency conflicts...
libz-dev is a virtual package provided by: zlib1g-dev
Using zlib1g-dev (only possibility)
/usr/bin/sudo /usr/bin/apt-get --purge $CHROOT_OPTIONS -q -y install asciidoc cvs gettext libcurl4-gnutls-dev libdbd-sqlite3-perl libexpat1-dev libsvn-perl libz-dev subversion tcl8.4 unzip xmlto
Reading package lists...
Building dependency tree...
Reading state information...
Package libz-dev is a virtual package provided by:
zlib1g-dev 1:1.2.3.3.dfsg-12ubuntu1
You should explicitly select one to install.
E: Package libz-dev has no installation candidate
libz-dev is a virtual package provided by: zlib1g-dev
Using zlib1g-dev (only possibility)
/usr/bin/sudo /usr/bin/apt-get --purge $CHROOT_OPTIONS -q -y install asciidoc cvs gettext libcurl4-gnutls-dev libdbd-sqlite3-perl libexpat1-dev libsvn-perl subversion tcl8.4 unzip xmlto zlib1g-dev
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
upstart-compat-sysv system-services startup-tasks sysvutils upstart
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
ca-certificates comerr-dev docbook-xml docbook-xsl gettext-base libapr1
libaprutil1 libcurl3-gnutls libdbi-perl libexpat1 libgcrypt11
libgcrypt11-dev libglib2.0-0 libgnutls-dev libgnutls13 libgnutls26
libgpg-error-dev libgpg-error0 libidn11 libidn11-dev libkadm55 libkeyutils1
libkrb5-dev libkrb53 libldap-2.4-2 libldap2-dev liblzo2-2
libmysqlclient15off libncursesw5 libneon27-gnutls libnet-daemon-perl
libopencdk10 libplrpc-perl libpq5 libreadline5 libsasl2-2 libsasl2-modules
libsqlite3-0 libssl0.9.8 libsvn1 libtasn1-3 libtasn1-3-dev libxml2
libxml2-utils libxslt1.1 mime-support mysql-common openssl pkg-config python
python2.5 readline-common sgml-base sgml-data update-inetd xml-core xsltproc
Suggested packages:
doc-base docbook docbook-dsssl docbook-defguide libsaxon-java libxalan2-java
xalan gettext-doc libcurl3-dbg dbishell rng-tools libgcrypt11-doc gnutls-doc
gnutls-bin guile-gnutls krb5-doc krb5-user libcompress-zlib-perl
libsasl2-modules-otp libsasl2-modules-ldap libsasl2-modules-sql
libsasl2-modules-gssapi-mit libsasl2-modules-gssapi-heimdal openssl-doc
python-doc python-tk python-profiler python2.5-doc sgml-base-doc perlsgml
doc-html-w3 opensp subversion-tools db4.6-util tclreadline zip debhelper
Recommended packages:
docbook-utils fop source-highlight vim-addon-manager info info-browser
netbase docbook-xsl-doc-html docbook-xsl-doc-pdf docbook-xsl-doc-text
docbook-xsl-doc curl wget lynx libglib2.0-data libgpmg1 file libpaper-utils
The following NEW packages will be installed:
asciidoc ca-certificates comerr-dev cvs docbook-xml docbook-xsl gettext
gettext-base libapr1 libaprutil1 libcurl3-gnutls libcurl4-gnutls-dev
libdbd-sqlite3-perl libdbi-perl libexpat1 libexpat1-dev libgcrypt11
libgcrypt11-dev libglib2.0-0 libgnutls-dev libgnutls13 libgnutls26
libgpg-error-dev libgpg-error0 libidn11 libidn11-dev libkadm55 libkeyutils1
libkrb5-dev libkrb53 libldap-2.4-2 libldap2-dev liblzo2-2
libmysqlclient15off libncursesw5 libneon27-gnutls libnet-daemon-perl
libopencdk10 libplrpc-perl libpq5 libreadline5 libsasl2-2 libsasl2-modules
libsqlite3-0 libssl0.9.8 libsvn-perl libsvn1 libtasn1-3 libtasn1-3-dev
libxml2 libxml2-utils libxslt1.1 mime-support mysql-common openssl
pkg-config python python2.5 readline-common sgml-base sgml-data subversion
tcl8.4 unzip update-inetd xml-core xmlto xsltproc zlib1g-dev
0 upgraded, 69 newly installed, 0 to remove and 0 not upgraded.
Need to get 4118kB/28.9MB of archives.
After unpacking 97.2MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
libssl0.9.8 openssl ca-certificates gettext-base libgpg-error0 libgcrypt11
liblzo2-2 libopencdk10 libtasn1-3 libgnutls13 libidn11 libkeyutils1 libkrb53
libsasl2-modules libsasl2-2 libldap-2.4-2 libcurl3-gnutls libncursesw5
readline-common libreadline5 libsqlite3-0 mime-support python2.5 python
update-inetd libexpat1 asciidoc cvs sgml-base xml-core sgml-data docbook-xml
docbook-xsl gettext libapr1 mysql-common libmysqlclient15off libpq5
libaprutil1 libgnutls26 libgpg-error-dev libgcrypt11-dev zlib1g-dev
libtasn1-3-dev libgnutls-dev libglib2.0-0 pkg-config libidn11-dev libkadm55
comerr-dev libkrb5-dev libldap2-dev libcurl4-gnutls-dev libnet-daemon-perl
libplrpc-perl libdbi-perl libdbd-sqlite3-perl libexpat1-dev libxml2
libneon27-gnutls libsvn1 libsvn-perl libxml2-utils libxslt1.1 subversion
tcl8.4 unzip xsltproc xmlto
Authentication warning overridden.
Get:1 http://ftpmaster.internal intrepid/main asciidoc 8.2.6-1.1 [715kB]
Get:2 http://ftpmaster.internal intrepid/main libnet-daemon-perl 0.38-1.1 [45.9kB]
Get:3 http://ftpmaster.internal intrepid/main libplrpc-perl 0.2017-1.1 [35.0kB]
Get:4 http://ftpmaster.internal intrepid/main libdbi-perl 1.605-1 [789kB]
Get:5 http://ftpmaster.internal intrepid/main libdbd-sqlite3-perl 1.14-2build2 [54.5kB]
Get:6 http://ftpmaster.internal intrepid/main libneon27-gnutls 0.28.2-2 [119kB]
Get:7 http://ftpmaster.internal intrepid/main libsvn1 1.5.0dfsg1-1ubuntu2 [788kB]
Get:8 http://ftpmaster.internal intrepid/main libsvn-perl 1.5.0dfsg1-1ubuntu2 [1083kB]
Get:9 http://ftpmaster.internal intrepid/main subversion 1.5.0dfsg1-1ubuntu2 [319kB]
Get:10 http://ftpmaster.internal intrepid/main unzip 5.52-11ubuntu1 [170kB]
Fetched 4118kB in 0s (11.9MB/s)
Selecting previously deselected package libssl0.9.8.
(Reading database ... 10564 files and directories currently installed.)
Unpacking libssl0.9.8 (from .../libssl0.9.8_0.9.8g-10.1ubuntu1_amd64.deb) ...
Selecting previously deselected package openssl.
Unpacking openssl (from .../openssl_0.9.8g-10.1ubuntu1_amd64.deb) ...
Selecting previously deselected package ca-certificates.
Unpacking ca-certificates (from .../ca-certificates_20080514-0ubuntu1_all.deb) ...
Selecting previously deselected package gettext-base.
Unpacking gettext-base (from .../gettext-base_0.17-3ubuntu1_amd64.deb) ...
Selecting previously deselected package libgpg-error0.
Unpacking libgpg-error0 (from .../libgpg-error0_1.4-2ubuntu7_amd64.deb) ...
Selecting previously deselected package libgcrypt11.
Unpacking libgcrypt11 (from .../libgcrypt11_1.4.1-1ubuntu1_amd64.deb) ...
Selecting previously deselected package liblzo2-2.
Unpacking liblzo2-2 (from .../liblzo2-2_2.03-1_amd64.deb) ...
Selecting previously deselected package libopencdk10.
Unpacking libopencdk10 (from .../libopencdk10_0.6.6-1ubuntu1_amd64.deb) ...
Selecting previously deselected package libtasn1-3.
Unpacking libtasn1-3 (from .../libtasn1-3_1.4-1_amd64.deb) ...
Selecting previously deselected package libgnutls13.
Unpacking libgnutls13 (from .../libgnutls13_2.0.4-1ubuntu3_amd64.deb) ...
Selecting previously deselected package libidn11.
Unpacking libidn11 (from .../libidn11_1.8+20080606-1_amd64.deb) ...
Selecting previously deselected package libkeyutils1.
Unpacking libkeyutils1 (from .../libkeyutils1_1.2-7_amd64.deb) ...
Selecting previously deselected package libkrb53.
Unpacking libkrb53 (from .../libkrb53_1.6.dfsg.4~beta1-3_amd64.deb) ...
Selecting previously deselected package libsasl2-modules.
Unpacking libsasl2-modules (from .../libsasl2-modules_2.1.22.dfsg1-21ubuntu1_amd64.deb) ...
Selecting previously deselected package libsasl2-2.
Unpacking libsasl2-2 (from .../libsasl2-2_2.1.22.dfsg1-21ubuntu1_amd64.deb) ...
Selecting previously deselected package libldap-2.4-2.
Unpacking libldap-2.4-2 (from .../libldap-2.4-2_2.4.10-1ubuntu1_amd64.deb) ...
Selecting previously deselected package libcurl3-gnutls.
Unpacking libcurl3-gnutls (from .../libcurl3-gnutls_7.18.2-1ubuntu1_amd64.deb) ...
Selecting previously deselected package libncursesw5.
Unpacking libncursesw5 (from .../libncursesw5_5.6+20071124-1ubuntu2_amd64.deb) ...
Selecting previously deselected package readline-common.
Unpacking readline-common (from .../readline-common_5.2-3build1_all.deb) ...
Selecting previously deselected package libreadline5.
Unpacking libreadline5 (from .../libreadline5_5.2-3build1_amd64.deb) ...
Selecting previously deselected package libsqlite3-0.
Unpacking libsqlite3-0 (from .../libsqlite3-0_3.5.9-3_amd64.deb) ...
Selecting previously deselected package mime-support.
Unpacking mime-support (from .../mime-support_3.44-1_all.deb) ...
Selecting previously deselected package python2.5.
Unpacking python2.5 (from .../python2.5_2.5.2-7ubuntu2_amd64.deb) ...
Selecting previously deselected package python.
Unpacking python (from .../python_2.5.2-1ubuntu1_all.deb) ...
Selecting previously deselected package update-inetd.
Unpacking update-inetd (from .../update-inetd_4.30_all.deb) ...
Selecting previously deselected package libexpat1.
Unpacking libexpat1 (from .../libexpat1_2.0.1-4_amd64.deb) ...
Selecting previously deselected package asciidoc.
Unpacking asciidoc (from .../asciidoc_8.2.6-1.1_all.deb) ...
Selecting previously deselected package cvs.
Unpacking cvs (from .../cvs_1%3a1.12.13-11_amd64.deb) ...
Selecting previously deselected package sgml-base.
Unpacking sgml-base (from .../sgml-base_1.26_all.deb) ...
Selecting previously deselected package xml-core.
Unpacking xml-core (from .../archives/xml-core_0.11_all.deb) ...
Selecting previously deselected package sgml-data.
Unpacking sgml-data (from .../sgml-data_2.0.3_all.deb) ...
Selecting previously deselected package docbook-xml.
Unpacking docbook-xml (from .../docbook-xml_4.5-5_all.deb) ...
Selecting previously deselected package docbook-xsl.
Unpacking docbook-xsl (from .../docbook-xsl_1.73.2.dfsg.1-4_all.deb) ...
Selecting previously deselected package gettext.
Unpacking gettext (from .../gettext_0.17-3ubuntu1_amd64.deb) ...
Selecting previously deselected package libapr1.
Unpacking libapr1 (from .../libapr1_1.2.12-4_amd64.deb) ...
Selecting previously deselected package mysql-common.
Unpacking mysql-common (from .../mysql-common_5.0.51a-6ubuntu3_all.deb) ...
Selecting previously deselected package libmysqlclient15off.
Unpacking libmysqlclient15off (from .../libmysqlclient15off_5.0.51a-6ubuntu3_amd64.deb) ...
Selecting previously deselected package libpq5.
Unpacking libpq5 (from .../libpq5_8.3.3-1_amd64.deb) ...
Selecting previously deselected package libaprutil1.
Unpacking libaprutil1 (from .../libaprutil1_1.2.12+dfsg-7_amd64.deb) ...
Selecting previously deselected package libgnutls26.
Unpacking libgnutls26 (from .../libgnutls26_2.4.1-1_amd64.deb) ...
Selecting previously deselected package libgpg-error-dev.
Unpacking libgpg-error-dev (from .../libgpg-error-dev_1.4-2ubuntu7_amd64.deb) ...
Selecting previously deselected package libgcrypt11-dev.
Unpacking libgcrypt11-dev (from .../libgcrypt11-dev_1.4.1-1ubuntu1_amd64.deb) ...
Selecting previously deselected package zlib1g-dev.
Unpacking zlib1g-dev (from .../zlib1g-dev_1%3a1.2.3.3.dfsg-12ubuntu1_amd64.deb) ...
Selecting previously deselected package libtasn1-3-dev.
Unpacking libtasn1-3-dev (from .../libtasn1-3-dev_1.4-1_amd64.deb) ...
Selecting previously deselected package libgnutls-dev.
Unpacking libgnutls-dev (from .../libgnutls-dev_2.4.1-1_amd64.deb) ...
Selecting previously deselected package libglib2.0-0.
Unpacking libglib2.0-0 (from .../libglib2.0-0_2.17.3-1ubuntu1_amd64.deb) ...
Selecting previously deselected package pkg-config.
Unpacking pkg-config (from .../pkg-config_0.22-1_amd64.deb) ...
Selecting previously deselected package libidn11-dev.
Unpacking libidn11-dev (from .../libidn11-dev_1.8+20080606-1_amd64.deb) ...
Selecting previously deselected package libkadm55.
Unpacking libkadm55 (from .../libkadm55_1.6.dfsg.4~beta1-3_amd64.deb) ...
Selecting previously deselected package comerr-dev.
Unpacking comerr-dev (from .../comerr-dev_2.1-1.40.8-2ubuntu2_amd64.deb) ...
Selecting previously deselected package libkrb5-dev.
Unpacking libkrb5-dev (from .../libkrb5-dev_1.6.dfsg.4~beta1-3_amd64.deb) ...
Selecting previously deselected package libldap2-dev.
Unpacking libldap2-dev (from .../libldap2-dev_2.4.10-1ubuntu1_amd64.deb) ...
Selecting previously deselected package libcurl4-gnutls-dev.
Unpacking libcurl4-gnutls-dev (from .../libcurl4-gnutls-dev_7.18.2-1ubuntu1_amd64.deb) ...
Selecting previously deselected package libnet-daemon-perl.
Unpacking libnet-daemon-perl (from .../libnet-daemon-perl_0.38-1.1_all.deb) ...
Selecting previously deselected package libplrpc-perl.
Unpacking libplrpc-perl (from .../libplrpc-perl_0.2017-1.1_all.deb) ...
Selecting previously deselected package libdbi-perl.
Unpacking libdbi-perl (from .../libdbi-perl_1.605-1_amd64.deb) ...
Selecting previously deselected package libdbd-sqlite3-perl.
Unpacking libdbd-sqlite3-perl (from .../libdbd-sqlite3-perl_1.14-2build2_amd64.deb) ...
Selecting previously deselected package libexpat1-dev.
Unpacking libexpat1-dev (from .../libexpat1-dev_2.0.1-4_amd64.deb) ...
Selecting previously deselected package libxml2.
Unpacking libxml2 (from .../libxml2_2.6.32.dfsg-2ubuntu1_amd64.deb) ...
Selecting previously deselected package libneon27-gnutls.
Unpacking libneon27-gnutls (from .../libneon27-gnutls_0.28.2-2_amd64.deb) ...
Selecting previously deselected package libsvn1.
Unpacking libsvn1 (from .../libsvn1_1.5.0dfsg1-1ubuntu2_amd64.deb) ...
Selecting previously deselected package libsvn-perl.
Unpacking libsvn-perl (from .../libsvn-perl_1.5.0dfsg1-1ubuntu2_amd64.deb) ...
Selecting previously deselected package libxml2-utils.
Unpacking libxml2-utils (from .../libxml2-utils_2.6.32.dfsg-2ubuntu1_amd64.deb) ...
Selecting previously deselected package libxslt1.1.
Unpacking libxslt1.1 (from .../libxslt1.1_1.1.24-1ubuntu1_amd64.deb) ...
Selecting previously deselected package subversion.
Unpacking subversion (from .../subversion_1.5.0dfsg1-1ubuntu2_amd64.deb) ...
Selecting previously deselected package tcl8.4.
Unpacking tcl8.4 (from .../tcl8.4_8.4.19-2_amd64.deb) ...
Selecting previously deselected package unzip.
Unpacking unzip (from .../unzip_5.52-11ubuntu1_amd64.deb) ...
Selecting previously deselected package xsltproc.
Unpacking xsltproc (from .../xsltproc_1.1.24-1ubuntu1_amd64.deb) ...
Selecting previously deselected package xmlto.
Unpacking xmlto (from .../xmlto_0.0.20-1_amd64.deb) ...
Setting up libssl0.9.8 (0.9.8g-10.1ubuntu1) ...
Setting up openssl (0.9.8g-10.1ubuntu1) ...
Setting up ca-certificates (20080514-0ubuntu1) ...
Updating certificates in /etc/ssl/certs....done.
Running hooks in /etc/ca-certificates/update.d....done.
Setting up gettext-base (0.17-3ubuntu1) ...
Setting up libgpg-error0 (1.4-2ubuntu7) ...
Setting up libgcrypt11 (1.4.1-1ubuntu1) ...
Setting up liblzo2-2 (2.03-1) ...
Setting up libopencdk10 (0.6.6-1ubuntu1) ...
Setting up libtasn1-3 (1.4-1) ...
Setting up libgnutls13 (2.0.4-1ubuntu3) ...
Setting up libidn11 (1.8+20080606-1) ...
Setting up libkeyutils1 (1.2-7) ...
Setting up libkrb53 (1.6.dfsg.4~beta1-3) ...
Setting up libncursesw5 (5.6+20071124-1ubuntu2) ...
Setting up readline-common (5.2-3build1) ...
Setting up libreadline5 (5.2-3build1) ...
Setting up libsqlite3-0 (3.5.9-3) ...
Setting up mime-support (3.44-1) ...
Setting up python2.5 (2.5.2-7ubuntu2) ...
Setting up python (2.5.2-1ubuntu1) ...
Setting up update-inetd (4.30) ...
Setting up libexpat1 (2.0.1-4) ...
Setting up asciidoc (8.2.6-1.1) ...
Setting up cvs (1.12.13-11) ...
Setting up sgml-base (1.26) ...
Setting up xml-core (0.11) ...
Setting up sgml-data (2.0.3) ...
Setting up docbook-xml (4.5-5) ...
Setting up docbook-xsl (1.73.2.dfsg.1-4) ...
Setting up gettext (0.17-3ubuntu1) ...
Setting up libapr1 (1.2.12-4) ...
Setting up mysql-common (5.0.51a-6ubuntu3) ...
Setting up libmysqlclient15off (5.0.51a-6ubuntu3) ...
Setting up libgnutls26 (2.4.1-1) ...
Setting up libgpg-error-dev (1.4-2ubuntu7) ...
Setting up libgcrypt11-dev (1.4.1-1ubuntu1) ...
Setting up zlib1g-dev (1.2.3.3.dfsg-12ubuntu1) ...
Setting up libtasn1-3-dev (1.4-1) ...
Setting up libgnutls-dev (2.4.1-1) ...
Setting up libglib2.0-0 (2.17.3-1ubuntu1) ...
Setting up pkg-config (0.22-1) ...
Setting up libidn11-dev (1.8+20080606-1) ...
Setting up libkadm55 (1.6.dfsg.4~beta1-3) ...
Setting up comerr-dev (2.1-1.40.8-2ubuntu2) ...
Setting up libkrb5-dev (1.6.dfsg.4~beta1-3) ...
Setting up libnet-daemon-perl (0.38-1.1) ...
Setting up libplrpc-perl (0.2017-1.1) ...
Setting up libdbi-perl (1.605-1) ...
Setting up libdbd-sqlite3-perl (1.14-2build2) ...
Setting up libexpat1-dev (2.0.1-4) ...
Setting up libxml2 (2.6.32.dfsg-2ubuntu1) ...
Setting up libneon27-gnutls (0.28.2-2) ...
Setting up libxml2-utils (2.6.32.dfsg-2ubuntu1) ...
Setting up libxslt1.1 (1.1.24-1ubuntu1) ...
Setting up tcl8.4 (8.4.19-2) ...
Setting up unzip (5.52-11ubuntu1) ...
Setting up xsltproc (1.1.24-1ubuntu1) ...
Setting up xmlto (0.0.20-1) ...
Setting up libsasl2-modules (2.1.22.dfsg1-21ubuntu1) ...
Setting up libsasl2-2 (2.1.22.dfsg1-21ubuntu1) ...
Setting up libldap-2.4-2 (2.4.10-1ubuntu1) ...
Setting up libcurl3-gnutls (7.18.2-1ubuntu1) ...
Setting up libpq5 (8.3.3-1) ...
Setting up libaprutil1 (1.2.12+dfsg-7) ...
Setting up libldap2-dev (2.4.10-1ubuntu1) ...
Setting up libcurl4-gnutls-dev (7.18.2-1ubuntu1) ...
Setting up libsvn1 (1.5.0dfsg1-1ubuntu2) ...
Setting up libsvn-perl (1.5.0dfsg1-1ubuntu2) ...
Setting up subversion (1.5.0dfsg1-1ubuntu2) ...
modified:
sbuild.conf
Checking correctness of source dependencies...
Toolchain package versions: libc6-dev_2.8~20080505-0ubuntu6 make_3.81-5 dpkg-dev_1.14.20ubuntu1 linux-libc-dev_2.6.26-3.9 gcc-4.3_4.3.1-3ubuntu1 g++-4.3_4.3.1-3ubuntu1 binutils_2.18.50.20080610-0ubuntu1 libstdc++6_4.3.1-3ubuntu1 libstdc++6-4.3-dev_4.3.1-3ubuntu1
------------------------------------------------------------------------------
dpkg-source: extracting git-core in git-core-1.5.4.3
dpkg-source: unpacking git-core_1.5.4.3.orig.tar.gz
dpkg-source: applying /home/buildd/build-intrepid-autotest/git-core_1.5.4.3-1ubuntu2.diff.gz
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set LDFLAGS to default value: -Wl,-Bsymbolic-functions
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: source package git-core
dpkg-buildpackage: source version 1:1.5.4.3-1ubuntu2
dpkg-buildpackage: host architecture amd64
/usr/bin/fakeroot debian/rules clean
/usr/bin/make clean NO_OPENSSL=1 GITWEB_CONFIG=/etc/gitweb.conf prefix=/usr mandir=/usr/share/man INSTALLDIRS=vendor WITH_P4IMPORT=1 PYTHON_PATH=/usr/bin/python TCLTK_PATH=/usr/bin/wish8.4
make[1]: Entering directory `/build/buildd/git-core-1.5.4.3'
GIT_VERSION = 1.5.4.3
make[1]: Leaving directory `/build/buildd/git-core-1.5.4.3'
make[1]: Entering directory `/build/buildd/git-core-1.5.4.3'
rm -f *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o xdiff/*.o \
libgit.a xdiff/lib.a
rm -f git-fetch-pack git-hash-object git-index-pack git-fast-import git-daemon git-merge-index git-mktag git-mktree git-patch-id git-receive-pack git-send-pack git-shell git-show-index git-unpack-file git-update-server-info git-upload-pack git-pack-redundant git-var git-merge-tree git-imap-send git-merge-recursive git-http-push git-bisect git-checkout git-clone git-merge-one-file git-mergetool git-parse-remote git-pull git-rebase git-rebase--interactive git-repack git-request-pull git-sh-setup git-am git-merge git-merge-stupid git-merge-octopus git-merge-resolve git-lost-found git-quiltimport git-submodule git-filter-branch git-stash git-help--browse git-add--interactive git-archimport git-cvsimport git-relink git-cvsserver git-remote git-cvsexportcommit git-send-email git-svn git-instaweb git-merge-subtree git-format-patch git-show git-whatchanged git-cherry git-get-tar-commit-id git-init git-repo-config git-fsck-objects git-cherry-pick git-peek-remote git-status git-add git-annotate git-apply git-archive git-blame git-branch git-bundle git-cat-file git-check-attr git-checkout-index git-check-ref-format git-clean git-commit git-commit-tree git-count-objects git-describe git-diff git-diff-files git-diff-index git-diff-tree git-fast-export git-fetch git-fetch-pack git-fetch--tool git-fmt-merge-msg git-for-each-ref git-fsck git-gc git-grep git-init-db git-log git-ls-files git-ls-tree git-ls-remote git-mailinfo git-mailsplit git-merge-base git-merge-file git-merge-ours git-mv git-name-rev git-pack-objects git-prune git-prune-packed git-push git-read-tree git-reflog git-send-pack git-config git-rerere git-reset git-rev-list git-rev-parse git-revert git-rm git-shortlog git-show-branch git-stripspace git-symbolic-ref git-tag git-tar-tree git-unpack-objects git-update-index git-update-ref git-upload-archive git-verify-pack git-verify-tag git-write-tree git-show-ref git-pack-refs git-http-fetch git
rm -f test-chmtime test-genrandom test-date test-delta test-sha1 test-match-trees test-absolute-path test-parse-options
rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*
rm -f -r autom4te.cache
rm -f config.log config.mak.autogen config.mak.append config.status config.cache
rm -f -r git-1.5.4.3 .doc-tmp-dir
rm -f git-1.5.4.3.tar.gz git-core_1.5.4.3-*.tar.gz
rm -f git-htmldocs-1.5.4.3.tar.gz git-manpages-1.5.4.3.tar.gz
rm -f gitweb/gitweb.cgi
/usr/bin/make -C Documentation/ clean
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/Documentation'
rm -f doc.dep+ doc.dep
/usr/bin/perl ./build-docdep.perl >doc.dep+
mv doc.dep+ doc.dep
/usr/bin/make -C ../ GIT-VERSION-FILE
make[3]: Entering directory `/build/buildd/git-core-1.5.4.3'
make[3]: `GIT-VERSION-FILE' is up to date.
make[3]: Leaving directory `/build/buildd/git-core-1.5.4.3'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/Documentation'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/Documentation'
/usr/bin/make -C ../ GIT-VERSION-FILE
make[3]: Entering directory `/build/buildd/git-core-1.5.4.3'
make[3]: `GIT-VERSION-FILE' is up to date.
make[3]: Leaving directory `/build/buildd/git-core-1.5.4.3'
rm -f *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
rm -f *.texi *.texi+ git.info gitman.info
rm -f howto-index.txt howto/*.html doc.dep
rm -f technical/api-*.html technical/api-index.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 *.made
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/Documentation'
/usr/bin/make -C perl clean
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
rm -f ppport.h
rm -f perl.mak
rm -f perl.mak.old
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
/usr/bin/make -C templates/ clean
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/templates'
rm -f -r blt boilerplates.made
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/templates'
/usr/bin/make -C t/ clean
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/t'
rm -f -r trash
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/t'
/usr/bin/make -C gitk-git clean
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/gitk-git'
rm -f gitk-wish po/*.msg
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/gitk-git'
/usr/bin/make -C git-gui clean
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/git-gui'
GITGUI_VERSION = 0.9.2.7.g3bae
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/git-gui'
rm -rf git-gui lib/tclIndex po/*.msg
rm -rf GIT-VERSION-FILE GIT-GUI-VARS
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/git-gui'
rm -f GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS
make[1]: Leaving directory `/build/buildd/git-core-1.5.4.3'
! test -e patch-stamp || \
for i in `ls -1r debian/diff/*.diff || :`; do patch -p1 -R <$i; done
rm -rf '/build/buildd/git-core-1.5.4.3/tmp'
rm -f patch-stamp build-arch-stamp build-indep-stamp
rm -rf '/build/buildd/git-core-1.5.4.3/debian/git'-core '/build/buildd/git-core-1.5.4.3/debian/git'-doc '/build/buildd/git-core-1.5.4.3/debian/git'-arch '/build/buildd/git-core-1.5.4.3/debian/git'-cvs \
'/build/buildd/git-core-1.5.4.3/debian/git'-svn '/build/buildd/git-core-1.5.4.3/debian/git'-email '/build/buildd/git-core-1.5.4.3/debian/git'-daemon-run '/build/buildd/git-core-1.5.4.3/debian/git'-gui \
'/build/buildd/git-core-1.5.4.3/debian/git'k '/build/buildd/git-core-1.5.4.3/debian/git'web
rm -f debian/files debian/substvars changelog
debian/rules build
for i in `ls -1 debian/diff/*.diff || :`; do \
patch -p1 <$i || exit 1; \
done
patching file pager.c
patching file builtin-tag.c
patching file git-sh-setup.sh
patching file t/t7005-editor.sh
patching file ident.c
patching file gitk-git/gitk
touch patch-stamp
gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.1-3ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.3.1 (Ubuntu 4.3.1-3ubuntu1)
DESTDIR='/build/buildd/git-core-1.5.4.3/debian/git'-core /usr/bin/make all \
CC='gcc' CFLAGS='-g -Wall -O2' NO_OPENSSL=1 GITWEB_CONFIG=/etc/gitweb.conf prefix=/usr mandir=/usr/share/man INSTALLDIRS=vendor WITH_P4IMPORT=1 PYTHON_PATH=/usr/bin/python TCLTK_PATH=/usr/bin/wish8.4
make[1]: Entering directory `/build/buildd/git-core-1.5.4.3'
GIT_VERSION = 1.5.4.3
make[1]: Leaving directory `/build/buildd/git-core-1.5.4.3'
make[1]: Entering directory `/build/buildd/git-core-1.5.4.3'
GEN common-cmds.h
* new build flags or prefix
CC git.o
git.c: In function 'handle_alias':
git.c:220: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
CC builtin-add.o
CC builtin-annotate.o
CC builtin-apply.o
CC builtin-archive.o
CC builtin-blame.o
CC builtin-branch.o
CC builtin-bundle.o
CC builtin-cat-file.o
CC builtin-check-attr.o
CC builtin-checkout-index.o
CC builtin-check-ref-format.o
CC builtin-clean.o
CC builtin-commit.o
CC builtin-commit-tree.o
CC builtin-count-objects.o
CC builtin-describe.o
CC builtin-diff.o
CC builtin-diff-files.o
CC builtin-diff-index.o
CC builtin-diff-tree.o
CC builtin-fast-export.o
CC builtin-fetch.o
CC builtin-fetch-pack.o
CC builtin-fetch--tool.o
CC builtin-fmt-merge-msg.o
builtin-fmt-merge-msg.c: In function 'cmd_fmt_merge_msg':
builtin-fmt-merge-msg.c:296: warning: format not a string literal and no format arguments
builtin-fmt-merge-msg.c:300: warning: format not a string literal and no format arguments
builtin-fmt-merge-msg.c:308: warning: format not a string literal and no format arguments
builtin-fmt-merge-msg.c:313: warning: format not a string literal and no format arguments
builtin-fmt-merge-msg.c:319: warning: format not a string literal and no format arguments
builtin-fmt-merge-msg.c:324: warning: format not a string literal and no format arguments
CC builtin-for-each-ref.o
CC builtin-fsck.o
builtin-fsck.c: In function 'check_unreachable_object':
builtin-fsck.c:162: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC builtin-gc.o
CC builtin-grep.o
CC builtin-init-db.o
CC builtin-log.o
builtin-log.c: In function 'show_object':
builtin-log.c:290: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC builtin-ls-files.o
CC builtin-ls-tree.o
CC builtin-ls-remote.o
CC builtin-mailinfo.o
CC builtin-mailsplit.o
CC builtin-merge-base.o
CC builtin-merge-file.o
builtin-merge-file.c: In function 'cmd_merge_file':
builtin-merge-file.c:27: warning: ignoring return value of 'freopen', declared with attribute warn_unused_result
CC builtin-merge-ours.o
CC builtin-mv.o
CC builtin-name-rev.o
builtin-name-rev.c: In function 'cmd_name_rev':
builtin-name-rev.c:246: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
builtin-name-rev.c:255: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC builtin-pack-objects.o
CC builtin-prune.o
CC builtin-prune-packed.o
CC builtin-push.o
CC builtin-read-tree.o
CC builtin-reflog.o
CC builtin-send-pack.o
CC builtin-config.o
CC builtin-rerere.o
builtin-rerere.c: In function 'handle_file':
builtin-rerere.c:110: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
builtin-rerere.c:112: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
builtin-rerere.c: In function 'merge':
builtin-rerere.c:181: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
builtin-rerere.c: In function 'copy_file':
builtin-rerere.c:281: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC builtin-reset.o
CC builtin-rev-list.o
CC builtin-rev-parse.o
CC builtin-revert.o
CC builtin-rm.o
CC builtin-shortlog.o
CC builtin-show-branch.o
CC builtin-stripspace.o
CC builtin-symbolic-ref.o
CC builtin-tag.o
builtin-tag.c: In function 'show_reference':
builtin-tag.c:119: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC builtin-tar-tree.o
CC builtin-unpack-objects.o
CC builtin-update-index.o
CC builtin-update-ref.o
CC builtin-upload-archive.o
CC builtin-verify-pack.o
CC builtin-verify-tag.o
CC builtin-write-tree.o
CC builtin-show-ref.o
CC builtin-pack-refs.o
CC builtin-http-fetch.o
CC blob.o
CC commit.o
CC connect.o
connect.c: In function 'get_port':
connect.c:467: warning: ignoring return value of 'strtol', declared with attribute warn_unused_result
CC csum-file.o
CC cache-tree.o
CC base85.o
CC date.o
CC diff-delta.o
CC entry.o
CC exec_cmd.o
CC ident.o
CC pretty.o
CC interpolate.o
CC hash.o
CC lockfile.o
CC patch-ids.o
CC object.o
CC pack-check.o
CC pack-write.o
CC patch-delta.o
CC path.o
CC pkt-line.o
CC sideband.o
CC reachable.o
CC reflog-walk.o
CC quote.o
quote.c: In function 'quote_c_style_counted':
quote.c:189: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
quote.c:202: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
quote.c: In function 'write_name_quotedpfx':
quote.c:257: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC read-cache.o
CC refs.o
CC run-command.o
CC dir.o
CC object-refs.o
CC server-info.o
CC setup.o
setup.c: In function 'setup_git_directory_gently':
setup.c:315: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
CC sha1_file.o
CC sha1_name.o
CC strbuf.o
CC tag.o
CC tree.o
CC usage.o
CC config.o
CC environment.o
environment.c: In function 'get_git_work_tree':
environment.c:92: warning: format not a string literal and no format arguments
CC ctype.o
CC copy.o
CC revision.o
CC pager.o
CC tree-walk.o
CC xdiff-interface.o
CC write_or_die.o
CC trace.o
CC list-objects.o
CC grep.o
grep.c: In function 'grep_buffer_1':
grep.c:458: warning: format not a string literal and no format arguments
grep.c:468: warning: format not a string literal and no format arguments
grep.c:479: warning: format not a string literal and no format arguments
CC match-trees.o
CC alloc.o
CC merge-file.o
CC path-list.o
CC help.o
CC unpack-trees.o
CC diff.o
diff.c: In function 'print_word':
diff.c:396: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
diff.c: In function 'emit_line':
diff.c:514: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC diff-lib.o
CC diffcore-break.o
CC diffcore-order.o
CC diffcore-pickaxe.o
CC diffcore-rename.o
CC tree-diff.o
CC combine-diff.o
CC diffcore-delta.o
CC log-tree.o
CC color.o
CC wt-status.o
CC archive-zip.o
CC archive-tar.o
CC shallow.o
CC utf8.o
utf8.c: In function 'print_spaces':
utf8.c:267: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
utf8.c:270: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
utf8.c: In function 'print_wrapped_text':
utf8.c:298: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC convert.o
CC attr.o
CC decorate.o
CC progress.o
CC mailmap.o
CC symlinks.o
CC remote.o
CC transport.o
transport.c: In function 'get_refs_via_curl':
transport.c:453: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
CC bundle.o
bundle.c: In function 'verify_bundle':
bundle.c:117: warning: format not a string literal and no format arguments
bundle.c:141: warning: format not a string literal and no format arguments
CC walker.o
CC parse-options.o
CC ws.o
ws.c: In function 'check_and_emit_line':
ws.c:157: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
ws.c:161: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
ws.c:163: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
ws.c:172: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
ws.c:187: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
ws.c:195: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC archive.o
CC http.o
http.c: In function 'http_fetch_ref':
http.c:619: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
CC http-walker.o
http-walker.c: In function 'start_object_request':
http-walker.c:191: warning: ignoring return value of 'ftruncate', declared with attribute warn_unused_result
http-walker.c: In function 'fetch_alternates':
http-walker.c:622: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
In function 'fetch_indices',
inlined from 'fetch_pack' at http-walker.c:729:
http-walker.c:664: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
CC mozilla-sha1/sha1.o
CC compat/strlcpy.o
AR libgit.a
CC xdiff/xdiffi.o
CC xdiff/xprepare.o
CC xdiff/xutils.o
CC xdiff/xemit.o
CC xdiff/xmerge.o
AR xdiff/lib.a
LINK git
BUILTIN git-fetch-pack
CC hash-object.o
LINK git-hash-object
CC index-pack.o
LINK git-index-pack
CC fast-import.o
fast-import.c: In function 'validate_raw_date':
fast-import.c:1716: warning: ignoring return value of 'strtoul', declared with attribute warn_unused_result
fast-import.c:1725: warning: ignoring return value of 'strtoul', declared with attribute warn_unused_result
fast-import.c: In function 'cmd_progress':
fast-import.c:2281: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
LINK git-fast-import
CC daemon.o
daemon.c: In function 'main':
daemon.c:1192: warning: ignoring return value of 'freopen', declared with attribute warn_unused_result
LINK git-daemon
CC merge-index.o
LINK git-merge-index
CC mktag.o
LINK git-mktag
CC mktree.o
LINK git-mktree
CC patch-id.o
LINK git-patch-id
CC receive-pack.o
LINK git-receive-pack
BUILTIN git-send-pack
CC shell.o
LINK git-shell
CC show-index.o
LINK git-show-index
CC unpack-file.o
LINK git-unpack-file
CC update-server-info.o
LINK git-update-server-info
CC upload-pack.o
LINK git-upload-pack
CC pack-redundant.o
LINK git-pack-redundant
CC var.o
LINK git-var
CC merge-tree.o
LINK git-merge-tree
CC imap-send.o
LINK git-imap-send
CC merge-recursive.o
merge-recursive.c: In function 'update_file_flags':
merge-recursive.c:581: warning: ignoring return value of 'symlink', declared with attribute warn_unused_result
LINK git-merge-recursive
CC http-push.o
http-push.c: In function 'start_fetch_loose':
http-push.c:316: warning: ignoring return value of 'ftruncate', declared with attribute warn_unused_result
http-push.c: In function 'unlock_remote':
http-push.c:1319: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'remote_ls':
http-push.c:1458: warning: call to '_curl_easy_setopt_err_read_cb' declared with attribute warning: curl_easy_setopt expects a curl_read_callback argument for this option
http-push.c:1460: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'lock_remote':
http-push.c:1211: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c:1241: warning: call to '_curl_easy_setopt_err_read_cb' declared with attribute warning: curl_easy_setopt expects a curl_read_callback argument for this option
http-push.c:1243: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'update_remote':
http-push.c:1712: warning: call to '_curl_easy_setopt_err_read_cb' declared with attribute warning: curl_easy_setopt expects a curl_read_callback argument for this option
http-push.c:1713: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
In function 'refresh_lock',
inlined from 'check_locks' at http-push.c:638:
http-push.c:605: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'start_put':
http-push.c:541: warning: call to '_curl_easy_setopt_err_read_cb' declared with attribute warning: curl_easy_setopt expects a curl_read_callback argument for this option
http-push.c:542: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'fetch_symref':
http-push.c:2017: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'delete_remote_branch':
http-push.c:2139: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
In function 'start_move',
inlined from 'finish_request' at http-push.c:708,
inlined from 'process_response' at http-push.c:186:
http-push.c:572: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
In function 'start_mkcol',
inlined from 'fill_active_slot' at http-push.c:812:
http-push.c:375: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
http-push.c: In function 'update_remote_info_refs':
http-push.c:1953: warning: call to '_curl_easy_setopt_err_read_cb' declared with attribute warning: curl_easy_setopt expects a curl_read_callback argument for this option
http-push.c:1954: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
In function 'locking_available',
inlined from 'main' at http-push.c:2249:
http-push.c:1534: warning: call to '_curl_easy_setopt_err_read_cb' declared with attribute warning: curl_easy_setopt expects a curl_read_callback argument for this option
http-push.c:1536: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
In function 'fetch_indices',
inlined from 'main' at http-push.c:2269:
http-push.c:1026: warning: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option
LINK git-http-push
GEN git-bisect
GEN git-checkout
GEN git-clone
GEN git-merge-one-file
GEN git-mergetool
GEN git-parse-remote
GEN git-pull
GEN git-rebase
GEN git-rebase--interactive
GEN git-repack
GEN git-request-pull
GEN git-sh-setup
GEN git-am
GEN git-merge
GEN git-merge-stupid
GEN git-merge-octopus
GEN git-merge-resolve
GEN git-lost-found
GEN git-quiltimport
GEN git-submodule
GEN git-filter-branch
GEN git-stash
GEN git-help--browse
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
/usr/bin/perl Makefile.PL PREFIX='/usr'
Writing perl.mak for Git
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
GEN git-add--interactive
GEN git-archimport
GEN git-cvsimport
GEN git-relink
GEN git-cvsserver
GEN git-remote
GEN git-cvsexportcommit
GEN git-send-email
GEN git-svn
GEN gitweb/gitweb.cgi
GEN git-instaweb
BUILTIN git-merge-subtree
BUILTIN git-format-patch
BUILTIN git-show
BUILTIN git-whatchanged
BUILTIN git-cherry
BUILTIN git-get-tar-commit-id
BUILTIN git-init
BUILTIN git-repo-config
BUILTIN git-fsck-objects
BUILTIN git-cherry-pick
BUILTIN git-peek-remote
BUILTIN git-status
BUILTIN git-add
BUILTIN git-annotate
BUILTIN git-apply
BUILTIN git-archive
BUILTIN git-blame
BUILTIN git-branch
BUILTIN git-bundle
BUILTIN git-cat-file
BUILTIN git-check-attr
BUILTIN git-checkout-index
BUILTIN git-check-ref-format
BUILTIN git-clean
BUILTIN git-commit
BUILTIN git-commit-tree
BUILTIN git-count-objects
BUILTIN git-describe
BUILTIN git-diff
BUILTIN git-diff-files
BUILTIN git-diff-index
BUILTIN git-diff-tree
BUILTIN git-fast-export
BUILTIN git-fetch
BUILTIN git-fetch--tool
BUILTIN git-fmt-merge-msg
BUILTIN git-for-each-ref
BUILTIN git-fsck
BUILTIN git-gc
BUILTIN git-grep
BUILTIN git-init-db
BUILTIN git-log
BUILTIN git-ls-files
BUILTIN git-ls-tree
BUILTIN git-ls-remote
BUILTIN git-mailinfo
BUILTIN git-mailsplit
BUILTIN git-merge-base
BUILTIN git-merge-file
BUILTIN git-merge-ours
BUILTIN git-mv
BUILTIN git-name-rev
BUILTIN git-pack-objects
BUILTIN git-prune
BUILTIN git-prune-packed
BUILTIN git-push
BUILTIN git-read-tree
BUILTIN git-reflog
BUILTIN git-config
BUILTIN git-rerere
BUILTIN git-reset
BUILTIN git-rev-list
BUILTIN git-rev-parse
BUILTIN git-revert
BUILTIN git-rm
BUILTIN git-shortlog
BUILTIN git-show-branch
BUILTIN git-stripspace
BUILTIN git-symbolic-ref
BUILTIN git-tag
BUILTIN git-tar-tree
BUILTIN git-unpack-objects
BUILTIN git-update-index
BUILTIN git-update-ref
BUILTIN git-upload-archive
BUILTIN git-verify-pack
BUILTIN git-verify-tag
BUILTIN git-write-tree
BUILTIN git-show-ref
BUILTIN git-pack-refs
BUILTIN git-http-fetch
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/git-gui'
GITGUI_VERSION = 0.9.2.7.g3bae
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/git-gui'
* new locations or Tcl/Tk interpreter
GEN git-gui
INDEX lib/
MSGFMT po/de.msg 371 translated.
MSGFMT po/fr.msg 371 translated.
MSGFMT po/hu.msg 371 translated.
MSGFMT po/it.msg 370 translated, 1 untranslated.
MSGFMT po/ja.msg 371 translated.
MSGFMT po/ru.msg 367 translated, 4 untranslated.
MSGFMT po/sv.msg 371 translated.
MSGFMT po/zh_cn.msg 53 translated, 56 fuzzy, 253 untranslated.
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/gitk-git'
GEN gitk-wish
Generating catalog po/de.msg
msgfmt --statistics --tcl po/de.po -l de -d po/
163 translated messages.
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/gitk-git'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
make[3]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
cp private-Error.pm blib/lib/Error.pm
cp Git.pm blib/lib/Git.pm
Manifying blib/man3/private-Error.3pm
Manifying blib/man3/Git.3pm
make[3]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/templates'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/templates'
CC test-chmtime.o
LINK test-chmtime
CC test-genrandom.o
LINK test-genrandom
CC test-date.o
LINK test-date
CC test-delta.o
LINK test-delta
CC test-sha1.o
LINK test-sha1
CC test-match-trees.o
LINK test-match-trees
CC test-absolute-path.o
LINK test-absolute-path
CC test-parse-options.o
LINK test-parse-options
make[1]: Leaving directory `/build/buildd/git-core-1.5.4.3'
test -z 'test' || \
DESTDIR='/build/buildd/git-core-1.5.4.3/debian/git'-core /usr/bin/make test \
CC='gcc' CFLAGS='-g -Wall -O2' NO_OPENSSL=1 GITWEB_CONFIG=/etc/gitweb.conf prefix=/usr mandir=/usr/share/man INSTALLDIRS=vendor WITH_P4IMPORT=1 PYTHON_PATH=/usr/bin/python TCLTK_PATH=/usr/bin/wish8.4 || \
GIT_TEST_OPTS=--verbose DESTDIR='/build/buildd/git-core-1.5.4.3/debian/git'-core /usr/bin/make test \
CC='gcc' CFLAGS='-g -Wall -O2' NO_OPENSSL=1 GITWEB_CONFIG=/etc/gitweb.conf prefix=/usr mandir=/usr/share/man INSTALLDIRS=vendor WITH_P4IMPORT=1 PYTHON_PATH=/usr/bin/python TCLTK_PATH=/usr/bin/wish8.4
make[1]: Entering directory `/build/buildd/git-core-1.5.4.3'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/gitk-git'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/gitk-git'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
make[3]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
make[3]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/templates'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/templates'
/usr/bin/make -C t/ all
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/t'
*** t0000-basic.sh ***
* ok 1: .git/objects should be empty after git init in an empty repo.
* ok 2: .git/objects should have 3 subdirectories.
* ok 3: git update-index without --add should fail adding.
* ok 4: git update-index with --add should succeed.
* ok 5: writing tree out with git write-tree
* ok 6: validate object ID of a known tree.
* ok 7: git update-index without --remove should fail removing.
* ok 8: git update-index with --remove should be able to remove.
* ok 9: git write-tree should be able to write an empty tree.
* ok 10: validate object ID of a known tree.
* ok 11: adding various types of objects with git update-index --add.
* ok 12: showing stage with git ls-files --stage
* ok 13: validate git ls-files output for a known tree.
* ok 14: writing tree out with git write-tree.
* ok 15: validate object ID for a known tree.
* ok 16: showing tree with git ls-tree
* ok 17: git ls-tree output for a known tree.
* ok 18: showing tree with git ls-tree -r
* ok 19: git ls-tree -r output for a known tree.
* ok 20: showing tree with git ls-tree -r -t
* ok 21: git ls-tree -r output for a known tree.
* ok 22: writing partial tree out with git write-tree --prefix.
* ok 23: validate object ID for a known tree.
* ok 24: writing partial tree out with git write-tree --prefix.
* ok 25: validate object ID for a known tree.
* ok 26: put invalid objects into the index.
* ok 27: writing this tree without --missing-ok.
* ok 28: writing this tree with --missing-ok.
* ok 29: git read-tree followed by write-tree should be idempotent.
* ok 30: validate git diff-files output for a know cache/work tree state.
* ok 31: git update-index --refresh should succeed.
* ok 32: no diff after checkout and git update-index --refresh.
* ok 33: git commit-tree records the correct tree in a commit.
* ok 34: git commit-tree records the correct parent in a commit.
* ok 35: git commit-tree omits duplicated parent in a commit.
* ok 36: update-index D/F conflict
* ok 37: absolute path works as expected
* passed all 37 test(s)
*** t0001-init.sh ***
* ok 1: plain
* ok 2: plain with GIT_WORK_TREE
* ok 3: plain bare
* ok 4: plain bare with GIT_WORK_TREE
* ok 5: GIT_DIR bare
* ok 6: GIT_DIR non-bare
* ok 7: GIT_DIR & GIT_WORK_TREE (1)
* ok 8: GIT_DIR & GIT_WORK_TREE (2)
* passed all 8 test(s)
*** t0003-attributes.sh ***
* ok 1: setup
* ok 2: attribute test
* passed all 2 test(s)
*** t0010-racy-git.sh ***
* ok 1: Racy GIT trial #0 part A
* ok 2: Racy GIT trial #0 part B
* ok 3: Racy GIT trial #1 part A
* ok 4: Racy GIT trial #1 part B
* ok 5: Racy GIT trial #2 part A
* ok 6: Racy GIT trial #2 part B
* ok 7: Racy GIT trial #3 part A
* ok 8: Racy GIT trial #3 part B
* ok 9: Racy GIT trial #4 part A
* ok 10: Racy GIT trial #4 part B
* passed all 10 test(s)
*** t0020-crlf.sh ***
* ok 1: setup
* ok 2: update with autocrlf=input
* ok 3: update with autocrlf=true
* ok 4: checkout with autocrlf=true
* ok 5: checkout with autocrlf=input
* ok 6: apply patch (autocrlf=input)
* ok 7: apply patch --cached (autocrlf=input)
* ok 8: apply patch --index (autocrlf=input)
* ok 9: apply patch (autocrlf=true)
* ok 10: apply patch --cached (autocrlf=true)
* ok 11: apply patch --index (autocrlf=true)
* ok 12: .gitattributes says two is binary
* ok 13: .gitattributes says two is input
* ok 14: .gitattributes says two and three are text
* ok 15: in-tree .gitattributes (1)
* ok 16: in-tree .gitattributes (2)
* ok 17: in-tree .gitattributes (3)
* ok 18: in-tree .gitattributes (4)
* ok 19: invalid .gitattributes (must not crash)
* passed all 19 test(s)
*** t0021-conversion.sh ***
* ok 1: setup
* ok 2: check
* ok 3: expanded_in_repo
* passed all 3 test(s)
*** t0022-crlf-rename.sh ***
* ok 1: setup
* ok 2: diff -M
* passed all 2 test(s)
*** t0023-crlf-am.sh ***
* ok 1: setup
* ok 2: am
* passed all 2 test(s)
*** t0030-stripspace.sh ***
* ok 1: long lines without spaces should be unchanged
* ok 2: lines with spaces at the beginning should be unchanged
* ok 3: lines with intermediate spaces should be unchanged
* ok 4: consecutive blank lines should be unified
* ok 5: only consecutive blank lines should be completely removed
* ok 6: consecutive blank lines at the beginning should be removed
* ok 7: consecutive blank lines at the end should be removed
* ok 8: text without newline at end should end with newline
* ok 9: text plus spaces without newline at end should end with newline
* ok 10: text plus spaces without newline at end should not show spaces
* ok 11: text plus spaces without newline should show the correct lines
* ok 12: text plus spaces at end should not show spaces
* ok 13: text plus spaces at end should be cleaned and newline must remain
* ok 14: spaces with newline at end should be replaced with empty string
* ok 15: spaces without newline at end should not show spaces
* ok 16: spaces without newline at end should be replaced with empty string
* ok 17: consecutive text lines should be unchanged
* ok 18: strip comments, too
* passed all 18 test(s)
*** t0040-parse-options.sh ***
* ok 1: test help
* ok 2: short options
* ok 3: long options
* ok 4: intermingled arguments
* ok 5: unambiguously abbreviated option
* ok 6: unambiguously abbreviated option with "="
* ok 7: ambiguously abbreviated option
* ok 8: non ambiguous option (after two options it abbreviates)
* ok 9: detect possible typos
* passed all 9 test(s)
*** t1000-read-tree-m-3way.sh ***
* ok 1: adding test file NN and Z/NN
* ok 2: adding test file ND and Z/ND
* ok 3: adding test file NM and Z/NM
* ok 4: adding test file DN and Z/DN
* ok 5: adding test file DD and Z/DD
* ok 6: adding test file DM and Z/DM
* ok 7: adding test file MN and Z/MN
* ok 8: adding test file MD and Z/MD
* ok 9: adding test file MM and Z/MM
* ok 10: adding test file SS
* ok 11: adding test file TT
* ok 12: prepare initial tree
* ok 13: change in branch A (removal)
* ok 14: change in branch A (modification)
* ok 15: change in branch A (modification)
* ok 16: change in branch A (modification)
* ok 17: change in branch A (modification)
* ok 18: change in branch A (modification)
* ok 19: change in branch A (modification)
* ok 20: change in branch A (addition)
* ok 21: change in branch A (addition)
* ok 22: change in branch A (addition)
* ok 23: change in branch A (addition)
* ok 24: change in branch A (addition)
* ok 25: change in branch A (edit)
* ok 26: change in branch A (change file to directory)
* ok 27: recording branch A tree
* ok 28: reading original tree and checking out
* ok 29: change in branch B (removal)
* ok 30: change in branch B (modification)
* ok 31: change in branch B (modification)
* ok 32: change in branch B (modification)
* ok 33: change in branch B (modification)
* ok 34: change in branch B (modification)
* ok 35: change in branch B (modification)
* ok 36: change in branch B (addition)
* ok 37: change in branch B (addition)
* ok 38: change in branch B (addition)
* ok 39: change in branch B (addition)
* ok 40: change in branch B (addition and modification)
* ok 41: change in branch B (modification)
* ok 42: change in branch B (addition of a file to conflict with directory)
* ok 43: recording branch B tree
* ok 44: keep contents of 3 trees for easy access
* ok 45: 3-way merge with git read-tree -m, empty cache
* ok 46: 3-way merge with git read-tree -m, match H
* ok 47: 1 - must not have an entry not in A.
* ok 48: 2 - must match B in !O && !A && B case.
* ok 49: 2 - matching B alone is OK in !O && !A && B case.
* ok 50: 3 - must match A in !O && A && !B case.
* ok 51: 3 - matching A alone is OK in !O && A && !B case.
* ok 52: 3 (fail) - must match A in !O && A && !B case.
* ok 53: 4 - must match and be up-to-date in !O && A && B && A!=B case.
* ok 54: 4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.
* ok 55: 4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.
* ok 56: 5 - must match in !O && A && B && A==B case.
* ok 57: 5 - must match in !O && A && B && A==B case.
* ok 58: 5 (fail) - must match A in !O && A && B && A==B case.
* ok 59: 6 - must not exist in O && !A && !B case
* ok 60: 7 - must not exist in O && !A && B && O!=B case
* ok 61: 8 - must not exist in O && !A && B && O==B case
* ok 62: 9 - must match and be up-to-date in O && A && !B && O!=A case
* ok 63: 9 (fail) - must match and be up-to-date in O && A && !B && O!=A case
* ok 64: 9 (fail) - must match and be up-to-date in O && A && !B && O!=A case
* ok 65: 10 - must match and be up-to-date in O && A && !B && O==A case
* ok 66: 10 (fail) - must match and be up-to-date in O && A && !B && O==A case
* ok 67: 10 (fail) - must match and be up-to-date in O && A && !B && O==A case
* ok 68: 11 - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
* ok 69: 11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
* ok 70: 11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
* ok 71: 12 - must match A in O && A && B && O!=A && A==B case
* ok 72: 12 - must match A in O && A && B && O!=A && A==B case
* ok 73: 12 (fail) - must match A in O && A && B && O!=A && A==B case
* ok 74: 13 - must match A in O && A && B && O!=A && O==B case
* ok 75: 13 - must match A in O && A && B && O!=A && O==B case
* ok 76: 14 - must match and be up-to-date in O && A && B && O==A && O!=B case
* ok 77: 14 - may match B in O && A && B && O==A && O!=B case
* ok 78: 14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case
* ok 79: 14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case
* ok 80: 15 - must match A in O && A && B && O==A && O==B case
* ok 81: 15 - must match A in O && A && B && O==A && O==B case
* ok 82: 15 (fail) - must match A in O && A && B && O==A && O==B case
* ok 83: 16 - A matches in one and B matches in another.
* passed all 83 test(s)
*** t1001-read-tree-m-2way.sh ***
* ok 1: setup
* ok 2: 1, 2, 3 - no carry forward
* ok 3: 4 - carry forward local addition.
* ok 4: 5 - carry forward local addition.
* ok 5: 6 - local addition already has the same.
* ok 6: 7 - local addition already has the same.
* ok 7: 8 - conflicting addition.
* ok 8: 9 - conflicting addition.
* ok 9: 10 - path removed.
* ok 10: 11 - dirty path removed.
* ok 11: 12 - unmatching local changes being removed.
* ok 12: 13 - unmatching local changes being removed.
* ok 13: 14 - unchanged in two heads.
* ok 14: 15 - unchanged in two heads.
* ok 15: 16 - conflicting local change.
* ok 16: 17 - conflicting local change.
* ok 17: 18 - local change already having a good result.
* ok 18: 19 - local change already having a good result, further modified.
* ok 19: 20 - no local change, use new tree.
* ok 20: 21 - no local change, dirty cache.
* ok 21: 22 - local change cache updated.
* ok 22: DF vs DF/DF case setup.
* ok 23: DF vs DF/DF case test.
* passed all 23 test(s)
*** t1002-read-tree-m-u-2way.sh ***
* ok 1: setup
* ok 2: 1, 2, 3 - no carry forward
* ok 3: 4 - carry forward local addition.
* ok 4: 5 - carry forward local addition.
* ok 5: 6 - local addition already has the same.
* ok 6: 7 - local addition already has the same.
* ok 7: 8 - conflicting addition.
* ok 8: 9 - conflicting addition.
* ok 9: 10 - path removed.
* ok 10: 11 - dirty path removed.
* ok 11: 12 - unmatching local changes being removed.
* ok 12: 13 - unmatching local changes being removed.
* ok 13: 14 - unchanged in two heads.
* ok 14: 15 - unchanged in two heads.
* ok 15: 16 - conflicting local change.
* ok 16: 17 - conflicting local change.
* ok 17: 18 - local change already having a good result.
* ok 18: 19 - local change already having a good result, further modified.
* ok 19: 20 - no local change, use new tree.
* ok 20: 21 - no local change, dirty cache.
* ok 21: DF vs DF/DF case setup.
* ok 22: DF vs DF/DF case test.
* passed all 22 test(s)
*** t1003-read-tree-prefix.sh ***
* ok 1: setup
* ok 2: read-tree --prefix
* passed all 2 test(s)
*** t1004-read-tree-m-u-wf.sh ***
* ok 1: two-way setup
* ok 2: two-way not clobbering
* ok 3: two-way with incorrect --exclude-per-directory (1)
* ok 4: two-way with incorrect --exclude-per-directory (2)
* ok 5: two-way clobbering a ignored file
* ok 6: three-way not complaining on an untracked path in both
* ok 7: three-way not clobbering a working tree file
* ok 8: three-way not complaining on an untracked file
* passed all 8 test(s)
*** t1020-subdirectory.sh ***
* ok 1: setup
* ok 2: update-index and ls-files
* ok 3: cat-file
* ok 4: diff-files
* ok 5: write-tree
* ok 6: checkout-index
* ok 7: read-tree
* ok 8: no file/rev ambiguity check inside .git
* ok 9: no file/rev ambiguity check inside a bare repo
* ok 10: detection should not be fooled by a symlink
* passed all 10 test(s)
*** t1100-commit-tree-options.sh ***
* ok 1: test preparation: write empty tree
* ok 2: construct commit
* ok 3: read commit
* ok 4: compare commit
* passed all 4 test(s)
*** t1200-tutorial.sh ***
* ok 1: blob
* ok 2: blob 557db03
* ok 3: git diff-files -p
* ok 4: git diff
* ok 5: tree
* ok 6: git diff-index -p HEAD
* ok 7: git diff HEAD
* ok 8: git whatchanged -p --root
* ok 9: git tag my-first-tag
M hello
Switched to a new branch "mybranch"
* ok 10: git checkout -b mybranch
* ok 11: git branch
M hello
Already on branch "mybranch"
Created commit ab99871: Some work.
1 files changed, 2 insertions(+), 0 deletions(-)
Switched to branch "master"
Created commit 6fa4906: Some fun.
2 files changed, 2 insertions(+), 0 deletions(-)
* ok 12: git resolve now fails
Created commit 67c353b: Merged "mybranch" changes.
* passed all 12 test(s)
*** t1300-repo-config.sh ***
* ok 1: initial
* ok 2: mixed case
* ok 3: similar section
* ok 4: similar section
* ok 5: replace with non-match
* ok 6: replace with non-match (actually matching)
* ok 7: non-match result
* ok 8: unset with cont. lines
* ok 9: unset with cont. lines is correct
* ok 10: multiple unset
* ok 11: multiple unset is correct
* ok 12: --replace-all
* ok 13: all replaced
* ok 14: really mean test
* ok 15: really really mean test
* ok 16: get value
* ok 17: unset
* ok 18: multivar
* ok 19: non-match
* ok 20: non-match value
* ok 21: ambiguous get
* ok 22: get multivar
* ok 23: multivar replace
* ok 24: ambiguous value
* ok 25: ambiguous unset
* ok 26: invalid unset
* ok 27: multivar unset
* ok 28: invalid key
* ok 29: correct key
* ok 30: hierarchical section
* ok 31: hierarchical section value
* ok 32: working --list
* ok 33: --get-regexp
* ok 34: --add
* ok 35: get variable with no value
* ok 36: get variable with empty value
* ok 37: get-regexp variable with no value
* ok 38: get-regexp variable with empty value
* ok 39: get bool variable with no value
* ok 40: get bool variable with empty value
* ok 41: no arguments, but no crash
* ok 42: new section is partial match of another
* ok 43: new variable inserts into proper section
* ok 44: alternative GIT_CONFIG (non-existing file should fail)
* ok 45: alternative GIT_CONFIG
* ok 46: alternative GIT_CONFIG (--file)
* ok 47: --set in alternative GIT_CONFIG
* ok 48: rename section
* ok 49: rename succeeded
* ok 50: rename non-existing section
* ok 51: rename succeeded
* ok 52: rename another section
* ok 53: rename succeeded
* ok 54: remove section
* ok 55: section was removed properly
* ok 56: section ending
* ok 57: numbers
* ok 58: invalid unit
* ok 59: bool
* ok 60: invalid bool (--get)
* ok 61: invalid bool (set)
* ok 62: set --bool
* ok 63: set --int
* ok 64: quoting
* ok 65: key with newline
* ok 66: value with newline
* ok 67: value continued on next line
* ok 68: --null --list
* ok 69: --null --get-regexp
* ok 70: symlinked configuration
* passed all 70 test(s)
*** t1301-shared-repo.sh ***
* ok 1: shared=all
* ok 2: update-server-info honors core.sharedRepository
* passed all 2 test(s)
*** t1302-repo-version.sh ***
* ok 1: gitdir selection on normal repos
* ok 2: gitdir selection on unsupported repo
* ok 3: gitdir not required mode
* ok 4: gitdir required mode on normal repos
* ok 5: gitdir required mode on unsupported repo
* passed all 5 test(s)
*** t1303-wacky-config.sh ***
* ok 1: modify same key
* ok 2: add key in same section
* ok 3: add key in different section
* passed all 3 test(s)
*** t1400-update-ref.sh ***
* ok 1: setup
* ok 2: create refs/heads/master
* ok 3: create refs/heads/master
* ok 4: fail to create refs/heads/gu/fixes
* ok 5: create refs/heads/master (by HEAD)
* ok 6: create refs/heads/master (by HEAD)
* ok 7: (not) create HEAD with old sha1
* ok 8: (not) prior created .git/refs/heads/master
* ok 9: create HEAD
* ok 10: (not) change HEAD with wrong SHA1
* ok 11: (not) changed .git/refs/heads/master
* ok 12: create refs/heads/master (logged by touch)
* ok 13: update refs/heads/master (logged by touch)
* ok 14: set refs/heads/master (logged by touch)
* ok 15: verifying refs/heads/master's log
* ok 16: enable core.logAllRefUpdates
* ok 17: create refs/heads/master (logged by config)
* ok 18: update refs/heads/master (logged by config)
* ok 19: set refs/heads/master (logged by config)
* ok 20: verifying refs/heads/master's log
* ok 21: Query "master@{May 25 2005}" (before history)
* ok 22: Query master@{2005-05-25} (before history)
* ok 23: Query "master@{May 26 2005 23:31:59}" (1 second before history)
* ok 24: Query "master@{May 26 2005 23:32:00}" (exactly history start)
* ok 25: Query "master@{2005-05-26 23:33:01}" (middle of history with gap)
* ok 26: Query "master@{2005-05-26 23:38:00}" (middle of history)
* ok 27: Query "master@{2005-05-26 23:43:00}" (exact end of history)
* ok 28: Query "master@{2005-05-28}" (past end of history)
* ok 29: creating initial files
* ok 30: git-commit logged updates
* ok 31: git cat-file blob master:F (expect OTHER)
* ok 32: git cat-file blob master@{2005-05-26 23:30}:F (expect TEST)
* ok 33: git cat-file blob master@{2005-05-26 23:42}:F (expect OTHER)
* passed all 33 test(s)
*** t1410-reflog.sh ***
* ok 1: setup
* ok 2: rewind
* ok 3: corrupt and check
* ok 4: reflog expire --dry-run should not touch reflog
* ok 5: reflog expire
* ok 6: prune and fsck
* ok 7: recover and check
* ok 8: prune --expire
* passed all 8 test(s)
*** t1420-lost-found.sh ***
* ok 1: setup
* ok 2: lost and found something
* passed all 2 test(s)
*** t1500-rev-parse.sh ***
* ok 1: toplevel: is-bare-repository
* ok 2: toplevel: is-inside-git-dir
* ok 3: toplevel: is-inside-work-tree
* ok 4: toplevel: prefix
* ok 5: .git/: is-bare-repository
* ok 6: .git/: is-inside-git-dir
* ok 7: .git/: is-inside-work-tree
* ok 8: .git/: prefix
* ok 9: .git/objects/: is-bare-repository
* ok 10: .git/objects/: is-inside-git-dir
* ok 11: .git/objects/: is-inside-work-tree
* ok 12: .git/objects/: prefix
* ok 13: subdirectory: is-bare-repository
* ok 14: subdirectory: is-inside-git-dir
* ok 15: subdirectory: is-inside-work-tree
* ok 16: subdirectory: prefix
* ok 17: core.bare = true: is-bare-repository
* ok 18: core.bare = true: is-inside-git-dir
* ok 19: core.bare = true: is-inside-work-tree
* ok 20: core.bare undefined: is-bare-repository
* ok 21: core.bare undefined: is-inside-git-dir
* ok 22: core.bare undefined: is-inside-work-tree
* ok 23: GIT_DIR=../.git, core.bare = false: is-bare-repository
* ok 24: GIT_DIR=../.git, core.bare = false: is-inside-git-dir
* ok 25: GIT_DIR=../.git, core.bare = false: is-inside-work-tree
* ok 26: GIT_DIR=../.git, core.bare = false: prefix
* ok 27: GIT_DIR=../.git, core.bare = true: is-bare-repository
* ok 28: GIT_DIR=../.git, core.bare = true: is-inside-git-dir
* ok 29: GIT_DIR=../.git, core.bare = true: is-inside-work-tree
* ok 30: GIT_DIR=../.git, core.bare = true: prefix
* ok 31: GIT_DIR=../.git, core.bare undefined: is-bare-repository
* ok 32: GIT_DIR=../.git, core.bare undefined: is-inside-git-dir
* ok 33: GIT_DIR=../.git, core.bare undefined: is-inside-work-tree
* ok 34: GIT_DIR=../.git, core.bare undefined: prefix
* ok 35: GIT_DIR=../repo.git, core.bare = false: is-bare-repository
* ok 36: GIT_DIR=../repo.git, core.bare = false: is-inside-git-dir
* ok 37: GIT_DIR=../repo.git, core.bare = false: is-inside-work-tree
* ok 38: GIT_DIR=../repo.git, core.bare = false: prefix
* ok 39: GIT_DIR=../repo.git, core.bare = true: is-bare-repository
* ok 40: GIT_DIR=../repo.git, core.bare = true: is-inside-git-dir
* ok 41: GIT_DIR=../repo.git, core.bare = true: is-inside-work-tree
* ok 42: GIT_DIR=../repo.git, core.bare = true: prefix
* ok 43: GIT_DIR=../repo.git, core.bare undefined: is-bare-repository
* ok 44: GIT_DIR=../repo.git, core.bare undefined: is-inside-git-dir
* ok 45: GIT_DIR=../repo.git, core.bare undefined: is-inside-work-tree
* ok 46: GIT_DIR=../repo.git, core.bare undefined: prefix
* passed all 46 test(s)
*** t1501-worktree.sh ***
* core.worktree = relative path
* ok 1: outside: is-bare-repository
* ok 2: outside: is-inside-git-dir
* ok 3: outside: is-inside-work-tree
* ok 4: inside: is-bare-repository
* ok 5: inside: is-inside-git-dir
* ok 6: inside: is-inside-work-tree
* ok 7: inside: prefix
* ok 8: subdirectory: is-bare-repository
* ok 9: subdirectory: is-inside-git-dir
* ok 10: subdirectory: is-inside-work-tree
* ok 11: subdirectory: prefix
* core.worktree = absolute path
* ok 12: outside: is-bare-repository
* ok 13: outside: is-inside-git-dir
* ok 14: outside: is-inside-work-tree
* ok 15: inside: is-bare-repository
* ok 16: inside: is-inside-git-dir
* ok 17: inside: is-inside-work-tree
* ok 18: inside: prefix
* ok 19: subdirectory: is-bare-repository
* ok 20: subdirectory: is-inside-git-dir
* ok 21: subdirectory: is-inside-work-tree
* ok 22: subdirectory: prefix
* GIT_WORK_TREE=relative path (override core.worktree)
* ok 23: outside: is-bare-repository
* ok 24: outside: is-inside-git-dir
* ok 25: outside: is-inside-work-tree
* ok 26: inside: is-bare-repository
* ok 27: inside: is-inside-git-dir
* ok 28: inside: is-inside-work-tree
* ok 29: inside: prefix
* ok 30: subdirectory: is-bare-repository
* ok 31: subdirectory: is-inside-git-dir
* ok 32: subdirectory: is-inside-work-tree
* ok 33: subdirectory: prefix
* GIT_WORK_TREE=absolute path, work tree below git dir
* ok 34: outside: is-bare-repository
* ok 35: outside: is-inside-git-dir
* ok 36: outside: is-inside-work-tree
* ok 37: in repo.git: is-bare-repository
* ok 38: in repo.git: is-inside-git-dir
* ok 39: in repo.git: is-inside-work-tree
* ok 40: in repo.git/objects: is-bare-repository
* ok 41: in repo.git/objects: is-inside-git-dir
* ok 42: in repo.git/objects: is-inside-work-tree
* ok 43: in repo.git/work: is-bare-repository
* ok 44: in repo.git/work: is-inside-git-dir
* ok 45: in repo.git/work: is-inside-work-tree
* ok 46: in repo.git/work: prefix
* ok 47: in repo.git/sub/dir: is-bare-repository
* ok 48: in repo.git/sub/dir: is-inside-git-dir
* ok 49: in repo.git/sub/dir: is-inside-work-tree
* ok 50: in repo.git/sub/dir: prefix
* ok 51: repo finds its work tree
* ok 52: repo finds its work tree from work tree, too
* ok 53: _gently() groks relative GIT_DIR & GIT_WORK_TREE
* passed all 53 test(s)
*** t2000-checkout-cache-clash.sh ***
* ok 1: git update-index --add various paths.
* ok 2: git checkout-index without -f should fail on conflicting work tree.
* ok 3: git checkout-index with -f should succeed.
* ok 4: git checkout-index conflicting paths.
* passed all 4 test(s)
*** t2001-checkout-cache-clash.sh ***
* ok 1: git update-index --add path0/file0
* ok 2: writing tree out with git write-tree
* ok 3: git update-index --add path1/file1
* ok 4: writing tree out with git write-tree
* ok 5: read previously written tree and checkout.
* ok 6: git update-index --add a symlink.
* ok 7: writing tree out with git write-tree
* ok 8: read previously written tree and checkout.
* ok 9: checking out conflicting path with -f
* passed all 9 test(s)
*** t2002-checkout-cache-u.sh ***
* ok 1: preparation
* ok 2: without -u, git checkout-index smudges stat information.
* ok 3: with -u, git checkout-index picks up stat information from new files.
* passed all 3 test(s)
*** t2003-checkout-cache-mkdir.sh ***
* ok 1: setup
* ok 2: have symlink in place where dir is expected.
* ok 3: use --prefix=path2/
* ok 4: use --prefix=tmp-
* ok 5: use --prefix=tmp- but with a conflicting file and dir
* ok 6: use --prefix=tmp/orary/ where tmp is a symlink
* ok 7: use --prefix=tmp/orary- where tmp is a symlink
* ok 8: use --prefix=tmp- where tmp-path1 is a symlink
* passed all 8 test(s)
*** t2004-checkout-cache-temp.sh ***
* ok 1: preparation
* ok 2: checkout one stage 0 to temporary file
* ok 3: checkout all stage 0 to temporary files
* ok 4: prepare 3-way merge
* ok 5: checkout one stage 2 to temporary file
* ok 6: checkout all stage 2 to temporary files
* ok 7: checkout all stages/one file to nothing
* ok 8: checkout all stages/one file to temporary files
* ok 9: checkout some stages/one file to temporary files
* ok 10: checkout all stages/all files to temporary files
* ok 11: -- path0: no entry
* ok 12: -- path1: all 3 stages
* ok 13: -- path2: no stage 1, have stage 2 and 3
* ok 14: -- path3: no stage 2, have stage 1 and 3
* ok 15: -- path4: no stage 3, have stage 1 and 3
* ok 16: -- asubdir/path5: no stage 2 and 3 have stage 1
* ok 17: checkout --temp within subdir
* ok 18: checkout --temp symlink
* passed all 18 test(s)
*** t2005-checkout-index-symlinks.sh ***
* ok 1: preparation
* ok 2: the checked-out symlink must be a file
* ok 3: the file must be the blob we added during the setup
* passed all 3 test(s)
*** t2007-checkout-symlink.sh ***
* ok 1: setup
* ok 2: switch from symlink to dir
Already on branch "master"
* ok 3: switch from dir to symlink
* passed all 3 test(s)
*** t2008-checkout-subdir.sh ***
* ok 1: setup
* ok 2: remove and restore with relative path
* ok 3: checkout with empty prefix
* ok 4: checkout with simple prefix
* ok 5: relative path outside tree should fail
* ok 6: incorrect relative path to file should fail (1)
* ok 7: incorrect relative path should fail (2)
* ok 8: incorrect relative path should fail (3)
* passed all 8 test(s)
*** t2050-git-dir-relative.sh ***
* ok 1: Setting up post-commit hook
* ok 2: post-commit hook used ordinarily
* ok 3: post-commit-hook created and used from top dir
* ok 4: post-commit-hook from sub dir
* passed all 4 test(s)
*** t2100-update-cache-badpath.sh ***
* ok 1: git update-index --add to add various paths.
* ok 2: git update-index to add conflicting path path0/file0 should fail.
* ok 3: git update-index to add conflicting path path1/file1 should fail.
* ok 4: git update-index to add conflicting path path2 should fail.
* ok 5: git update-index to add conflicting path path3 should fail.
* passed all 5 test(s)
*** t2101-update-index-reupdate.sh ***
* ok 1: update-index --add
* ok 2: update-index --again
* ok 3: update-index --remove --again
* ok 4: first commit
* ok 5: update-index again
* ok 6: update-index --update from subdir
* ok 7: update-index --update with pathspec
* passed all 7 test(s)
*** t2102-update-index-symlinks.sh ***
* ok 1: preparation
* ok 2: modify the symbolic link
* ok 3: the index entry must still be a symbolic link
* passed all 3 test(s)
*** t2200-add-update.sh ***
* ok 1: setup
* ok 2: update
* ok 3: update noticed a removal
* ok 4: update touched correct path
* ok 5: update did not touch other tracked files
* ok 6: update did not touch untracked files
* ok 7: cache tree has not been corrupted
* ok 8: update from a subdirectory
* ok 9: change gets noticed
* ok 10: replace a file with a symlink
* ok 11: add everything changed
* ok 12: touch and then add -u
* ok 13: touch and then add explicitly
* passed all 13 test(s)
*** t3000-ls-files-others.sh ***
* ok 1: git ls-files --others to show output.
* ok 2: git ls-files --others should pick up symlinks.
* ok 3: git ls-files --others --directory to show output.
* ok 4: git ls-files --others --directory should not get confused.
* passed all 4 test(s)
*** t3001-ls-files-others-exclude.sh ***
* ok 1: git ls-files --others with various exclude options.
* ok 2: git ls-files --others with
line endings.
* ok 3: git-status honours core.excludesfile
* passed all 3 test(s)
*** t3002-ls-files-dashpath.sh ***
* ok 1: setup
* ok 2: git ls-files without path restriction.
* ok 3: git ls-files with path restriction.
* ok 4: git ls-files with path restriction with --.
* ok 5: git ls-files with path restriction with -- --.
* ok 6: git ls-files with no path restriction.
* passed all 6 test(s)
*** t3010-ls-files-killed-modified.sh ***
* ok 1: git update-index --add to add various paths.
* ok 2: git ls-files -k to show killed files.
* ok 3: validate git ls-files -k output.
* ok 4: git ls-files -m to show modified files.
* ok 5: validate git ls-files -m output.
* passed all 5 test(s)
*** t3020-ls-files-error-unmatch.sh ***
Created initial commit 87cf8a9: add foo bar
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
create mode 100644 foo
* ok 1: git ls-files --error-unmatch should fail with unmatched path.
* ok 2: git ls-files --error-unmatch should succeed eith matched paths.
* passed all 2 test(s)
*** t3030-merge-recursive.sh ***
* ok 1: setup 1
* ok 2: setup 2
* ok 3: setup 3
* ok 4: setup 4
* ok 5: setup 5
* ok 6: setup 6
* ok 7: merge-recursive simple
* ok 8: merge-recursive result
* ok 9: merge-recursive remove conflict
* ok 10: merge-recursive remove conflict
* ok 11: merge-recursive d/f simple
* ok 12: merge-recursive result
* ok 13: merge-recursive d/f conflict
* ok 14: merge-recursive d/f conflict result
* ok 15: merge-recursive d/f conflict the other way
* ok 16: merge-recursive d/f conflict result the other way
* ok 17: merge-recursive d/f conflict
* ok 18: merge-recursive d/f conflict result
* ok 19: merge-recursive d/f conflict
* ok 20: merge-recursive d/f conflict result
* ok 21: reset and 3-way merge
* ok 22: reset and bind merge
* passed all 22 test(s)
*** t3040-subprojects-basic.sh ***
* ok 1: Super project creation
* ok 2: create subprojects
* ok 3: check if fsck ignores the subprojects
* ok 4: check if commit in a subproject detected
* ok 5: check if a changed subproject HEAD can be committed
* ok 6: check if diff-index works for subproject elements
* ok 7: check if diff-tree works for subproject elements
* ok 8: check if git diff works for subproject elements
* ok 9: check if clone works
* ok 10: removing and adding subproject
* ok 11: checkout in superproject
* passed all 11 test(s)
*** t3050-subprojects-fetch.sh ***
* ok 1: setup
* ok 2: clone
* ok 3: advance
* ok 4: fetch
* passed all 4 test(s)
*** t3060-ls-files-with-tree.sh ***
* ok 1: setup
* ok 2: git -ls-files --with-tree should succeed from subdir
* ok 3: git -ls-files --with-tree should add entries from named tree.
* passed all 3 test(s)
*** t3100-ls-tree-restrict.sh ***
* ok 1: setup
* ok 2: ls-tree plain
* ok 3: ls-tree recursive
* ok 4: ls-tree recursive with -t
* ok 5: ls-tree recursive with -d
* ok 6: ls-tree filtered with path
* ok 7: ls-tree filtered with path1 path0
* ok 8: ls-tree filtered with path0/
* ok 9: ls-tree filtered with path2
* ok 10: ls-tree filtered with path2/
* ok 11: ls-tree filtered with path2/baz
* ok 12: ls-tree filtered with path2/bak
* ok 13: ls-tree -t filtered with path2/bak
* passed all 13 test(s)
*** t3101-ls-tree-dirname.sh ***
* ok 1: setup
* ok 2: ls-tree plain
* ok 3: ls-tree recursive
* ok 4: ls-tree filter 1.txt
* ok 5: ls-tree filter path1/b/c/1.txt
* ok 6: ls-tree filter all 1.txt files
* ok 7: ls-tree filter directories
* ok 8: ls-tree filter odd names
* ok 9: ls-tree filter missing files and extra slashes
* passed all 9 test(s)
*** t3200-branch.sh ***
* ok 1: prepare a trivial repository
* ok 2: git branch --help should not have created a bogus branch
* ok 3: git branch abc should create a branch
* ok 4: git branch a/b/c should create a branch
* ok 5: git branch -l d/e/f should create a branch and a log
* ok 6: git branch -d d/e/f should delete a branch and a log
* ok 7: git branch j/k should work after branch j has been deleted
* ok 8: git branch l should work after branch l/m has been deleted
* ok 9: git branch -m m m/m should work
* ok 10: git branch -m n/n n should work
* ok 11: git branch -m o/o o should fail when o/p exists
* ok 12: git branch -m q r/q should fail when r exists
* ok 13: git branch -m q q2 without config should succeed
* ok 14: git branch -m s/s s should work when s/t is deleted
* ok 15: config information was renamed, too
* ok 16: git branch -m u v should fail when the reflog for u is a symlink
* ok 17: test tracking setup via --track
* ok 18: test tracking setup (non-wildcard, matching)
* ok 19: test tracking setup (non-wildcard, not matching)
* ok 20: test tracking setup via config
* ok 21: avoid ambiguous track
* ok 22: test overriding tracking setup via --no-track
* ok 23: no tracking without .fetch entries
* ok 24: test tracking setup via --track but deeper
* ok 25: test deleting branch deletes branch config
* ok 26: test deleting branch without config
* ok 27: git checkout -b g/h/i -l should create a branch and a log
* passed all 27 test(s)
*** t3201-branch-contains.sh ***
* ok 1: setup
* ok 2: branch --contains=master
* ok 3: branch --contains master
* ok 4: branch --contains=side
* passed all 4 test(s)
*** t3210-pack-refs.sh ***
* ok 1: prepare a trivial repository
* ok 2: see if git show-ref works as expected
* ok 3: see if a branch still exists when packed
* ok 4: git branch c/d should barf if branch c exists
* ok 5: see if a branch still exists after git pack-refs --prune
* ok 6: see if git pack-refs --prune remove ref files
* ok 7: git branch g should work when git branch g/h has been deleted
* ok 8: git branch i/j/k should barf if branch i exists
* ok 9: test git branch k after branch k/l/m and k/lm have been deleted
* ok 10: test git branch n after some branch deletion and pruning
* ok 11: pack, prune and repack
* passed all 11 test(s)
*** t3300-funny-names.sh ***
* ok 1: git ls-files no-funny
* ok 2: git ls-files with-funny
* ok 3: git ls-files -z with-funny
* ok 4: git ls-tree with funny
* ok 5: git diff-index with-funny
* ok 6: git diff-tree with-funny
* ok 7: git diff-index -z with-funny
* ok 8: git diff-tree -z with-funny
* ok 9: git diff-tree -C with-funny
* ok 10: git diff-tree delete with-funny
* ok 11: git diff-tree delete with-funny
* ok 12: git diff-tree delete with-funny
* ok 13: git diff-tree rename with-funny applied
* ok 14: git diff-tree delete with-funny applied
* ok 15: git apply non-git diff
* passed all 15 test(s)
*** t3400-rebase.sh ***
* ok 1: prepare repository with topic branches
* ok 2: rebase against master
* ok 3: the rebase operation should not have destroyed author information
* ok 4: rebase after merge master
* ok 5: rebase of history with merges is linearized
* ok 6: rebase of history with merges after upstream merge is linearized
* ok 7: rebase a single mode change
* passed all 7 test(s)
*** t3401-rebase-partial.sh ***
* ok 1: prepare repository with topic branch
* ok 2: pick top patch from topic branch into master
* ok 3: rebase topic branch against new master and check git-am did not get halted
* ok 4: rebase --merge topic branch that was partially merged upstream
* passed all 4 test(s)
*** t3402-rebase-merge.sh ***
* ok 1: setup
* ok 2: reference merge
* ok 3: rebase
* ok 4: test-rebase@{1} is pre rebase
* ok 5: merge and rebase should match
* ok 6: rebase the other way
* ok 7: merge and rebase should match
* ok 8: picking rebase
* passed all 8 test(s)
*** t3403-rebase-skip.sh ***
* ok 1: setup
* ok 2: rebase with git am -3 (default)
* ok 3: rebase --skip with am -3
* ok 4: rebase moves back to skip-reference
* ok 5: checkout skip-merge
* ok 6: rebase with --merge
* ok 7: rebase --skip with --merge
* ok 8: merge and reference trees equal
* ok 9: moved back to branch correctly
* passed all 9 test(s)
*** t3404-rebase-interactive.sh ***
* ok 1: setup
* ok 2: no changes are a nop
* ok 3: test the [branch] option
* ok 4: rebase on top of a non-conflicting commit
* ok 5: reflog for the branch shows state before rebase
* ok 6: exchange two commits
* ok 7: stop on conflicting pick
* ok 8: abort
* ok 9: retain authorship
* ok 10: squash
* ok 11: retain authorship when squashing
* ok 12: -p handles "no changes" gracefully
* ok 13: preserve merges with -p
* ok 14: --continue tries to commit
* ok 15: verbose flag is heeded, even after --continue
* ok 16: multi-squash only fires up editor once
* ok 17: squash works as expected
* ok 18: interrupted squash works as expected
* ok 19: interrupted squash works as expected (case 2)
* ok 20: ignore patch if in upstream
* ok 21: --continue tries to commit, even for "edit"
* ok 22: rebase a detached HEAD
* ok 23: rebase a commit violating pre-commit
* ok 24: rebase with a file named HEAD in worktree
* passed all 24 test(s)
*** t3405-rebase-malformed.sh ***
* ok 1: setup
* ok 2: rebase
* passed all 2 test(s)
*** t3406-rebase-message.sh ***
* ok 1: setup
* ok 2: rebase -m
* passed all 2 test(s)
*** t3500-cherry.sh ***
* ok 1: prepare repository with topic branch, and check cherry finds the 2 patches from there
* ok 2: check that cherry with limit returns only the top patch
* ok 3: cherry-pick one of the 2 patches, and check cherry recognized one and only one as new
* passed all 3 test(s)
*** t3501-revert-cherry-pick.sh ***
* ok 1: setup
* ok 2: cherry-pick after renaming branch
* ok 3: revert after renaming branch
* passed all 3 test(s)
*** t3502-cherry-pick-merge.sh ***
* ok 1: setup
* ok 2: cherry-pick a non-merge with -m should fail
* ok 3: cherry pick a merge without -m should fail
* ok 4: cherry pick a merge (1)
* ok 5: cherry pick a merge (2)
* ok 6: cherry pick a merge relative to nonexistent parent should fail
* ok 7: revert a non-merge with -m should fail
* ok 8: revert a merge without -m should fail
* ok 9: revert a merge (1)
* ok 10: revert a merge (2)
* ok 11: revert a merge relative to nonexistent parent should fail
* passed all 11 test(s)
*** t3600-rm.sh ***
* ok 1: Initialize test directory
* ok 2: Determine rm behavior
* ok 3: Pre-check that foo exists and is in index before git rm foo
* ok 4: Test that git rm foo succeeds
* ok 5: Test that git rm --cached foo succeeds if the index matches the file
* ok 6: Test that git rm --cached foo succeeds if the index matches the file
* ok 7: Test that git rm --cached foo fails if the index matches neither the file nor HEAD
* ok 8: Test that git rm --cached -f foo works in case where --cached only did not
* ok 9: Post-check that foo exists but is not in index after git rm foo
* ok 10: Pre-check that bar exists and is in index before "git rm bar"
* ok 11: Test that "git rm bar" succeeds
* ok 12: Post-check that bar does not exist and is not in index after "git rm -f bar"
* ok 13: Test that "git rm -- -q" succeeds (remove a file that looks like an option)
* ok 14: Test that "git rm -f" succeeds with embedded space, tab, or newline characters.
* ok 15: Test that "git rm -f" fails if its rm fails
* ok 16: When the rm in "git rm -f" fails, it should not remove the file from the index
* ok 17: Remove nonexistent file with --ignore-unmatch
* ok 18: "rm" command printed
* ok 19: "rm" command suppressed with --quiet
* ok 20: Re-add foo and baz
* ok 21: Modify foo -- rm should refuse
* ok 22: Modified foo -- rm -f should work
* ok 23: Re-add foo and baz for HEAD tests
* ok 24: foo is different in index from HEAD -- rm should refuse
* ok 25: but with -f it should work.
* ok 26: Recursive test setup
* ok 27: Recursive without -r fails
* ok 28: Recursive with -r but dirty
* ok 29: Recursive with -r -f
* ok 30: Remove nonexistent file returns nonzero exit status
* passed all 30 test(s)
*** t3700-add.sh ***
* ok 1: Test of git add
* ok 2: Post-check that foo is in the index
* ok 3: Test that "git add -- -q" works
* ok 4: git add: Test that executable bit is not used if core.filemode=0
* ok 5: git add: filemode=0 should not get confused by symlink
* ok 6: git update-index --add: Test that executable bit is not used...
* ok 7: git add: filemode=0 should not get confused by symlink
* ok 8: git update-index --add: Test that executable bit is not used...
* ok 9: .gitignore test setup
* ok 10: .gitignore is honored
* ok 11: error out when attempting to add ignored ones without -f
* ok 12: error out when attempting to add ignored ones without -f
* ok 13: add ignored ones with -f
* ok 14: add ignored ones with -f
* ok 15: add ignored ones with -f
* ok 16: .gitignore with subdirectory
* ok 17: check correct prefix detection
* ok 18: git add with filemode=0, symlinks=0, and unmerged entries
* ok 19: git add with filemode=0, symlinks=0 prefers stage 2 over stage 1
* ok 20: git add --refresh
* passed all 20 test(s)
*** t3800-mktag.sh ***
Created initial commit 03c9ac9: Initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 A
* ok 1: Tag object length check
* ok 2: "object" line label check
* ok 3: "object" line SHA1 check
* ok 4: "type" line label check
* ok 5: "type" line eol check
* ok 6: "tag" line label check #1
* ok 7: "tag" line label check #2
* ok 8: "type" line type-name length check
* ok 9: verify object (SHA1/type) check
* ok 10: verify tag-name check
* ok 11: "tagger" line label check #1
* ok 12: "tagger" line label check #2
* ok 13: create valid tag
* ok 14: check mytag
* passed all 14 test(s)
*** t3900-i18n-commit.sh ***
* ok 1: setup
* ok 2: no encoding header for base case
* ok 3: ISO-8859-1 setup
* ok 4: EUCJP setup
* ok 5: ISO-2022-JP setup
* ok 6: check encoding header for ISO-8859-1
* ok 7: check encoding header for EUCJP
* ok 8: check encoding header for ISO-2022-JP
* ok 9: config to remove customization
* ok 10: ISO-8859-1 should be shown in UTF-8 now
* ok 11: EUCJP should be shown in UTF-8 now
* ok 12: ISO-2022-JP should be shown in UTF-8 now
* ok 13: config to add customization
* ok 14: ISO-8859-1 should be shown in itself now
* ok 15: EUCJP should be shown in itself now
* ok 16: ISO-2022-JP should be shown in itself now
* ok 17: config to tweak customization
* ok 18: ISO-8859-1 should be shown in UTF-8 now
* ok 19: EUCJP should be shown in UTF-8 now
* ok 20: ISO-2022-JP should be shown in UTF-8 now
* ok 21: EUCJP should be shown in EUCJP now
* ok 22: ISO-2022-JP should be shown in EUCJP now
* ok 23: EUCJP should be shown in ISO-2022-JP now
* ok 24: ISO-2022-JP should be shown in ISO-2022-JP now
* ok 25: No conversion with ISO-8859-1
* ok 26: No conversion with EUCJP
* ok 27: No conversion with ISO-2022-JP
* passed all 27 test(s)
*** t3901-i18n-patch.sh ***
* ok 1: setup
* ok 2: format-patch output (ISO-8859-1)
* ok 3: format-patch output (UTF-8)
* ok 4: rebase (U/U)
* ok 5: rebase (U/L)
* ok 6: rebase (L/L)
* ok 7: rebase (L/U)
* ok 8: cherry-pick(U/U)
* ok 9: cherry-pick(L/L)
* ok 10: cherry-pick(U/L)
* ok 11: cherry-pick(L/U)
* ok 12: rebase --merge (U/U)
* ok 13: rebase --merge (U/L)
* ok 14: rebase --merge (L/L)
* ok 15: rebase --merge (L/U)
* passed all 15 test(s)
*** t3902-quoted.sh ***
* ok 1: setup
* ok 2: check fully quoted output from ls-files
* ok 3: check fully quoted output from diff-files
* ok 4: check fully quoted output from diff-index
* ok 5: check fully quoted output from diff-tree
* ok 6: setting core.quotepath
* ok 7: check fully quoted output from ls-files
* ok 8: check fully quoted output from diff-files
* ok 9: check fully quoted output from diff-index
* ok 10: check fully quoted output from diff-tree
* passed all 10 test(s)
*** t3903-stash.sh ***
* ok 1: stash some dirty working directory
* ok 2: parents of stash
* ok 3: apply needs clean working directory
* ok 4: apply stashed changes
* ok 5: apply stashed changes (including index)
* ok 6: unstashing in a subdirectory
* passed all 6 test(s)
*** t4000-diff-format.sh ***
* ok 1: update-index --add two files with and without +x.
* ok 2: git diff-files -p after editing work tree.
* ok 3: validate git diff-files -p output.
* passed all 3 test(s)
*** t4001-diff-rename.sh ***
* ok 1: update-index --add a file.
* ok 2: write that tree.
* ok 3: renamed and edited the file.
* ok 4: git diff-index -p -M after rename and editing.
* ok 5: validate the output.
* ok 6: favour same basenames over different ones
* ok 7: favour same basenames even with minor differences
* passed all 7 test(s)
*** t4002-diff-basic.sh ***
* ok 1: adding test file NN and Z/NN
* ok 2: adding test file ND and Z/ND
* ok 3: adding test file NM and Z/NM
* ok 4: adding test file DN and Z/DN
* ok 5: adding test file DD and Z/DD
* ok 6: adding test file DM and Z/DM
* ok 7: adding test file MN and Z/MN
* ok 8: adding test file MD and Z/MD
* ok 9: adding test file MM and Z/MM
* ok 10: adding test file SS
* ok 11: adding test file TT
* ok 12: prepare initial tree
* ok 13: change in branch A (removal)
* ok 14: change in branch A (modification)
* ok 15: change in branch A (modification)
* ok 16: change in branch A (modification)
* ok 17: change in branch A (modification)
* ok 18: change in branch A (modification)
* ok 19: change in branch A (modification)
* ok 20: change in branch A (addition)
* ok 21: change in branch A (addition)
* ok 22: change in branch A (addition)
* ok 23: change in branch A (addition)
* ok 24: change in branch A (addition)
* ok 25: change in branch A (edit)
* ok 26: change in branch A (change file to directory)
* ok 27: recording branch A tree
* ok 28: reading original tree and checking out
* ok 29: change in branch B (removal)
* ok 30: change in branch B (modification)
* ok 31: change in branch B (modification)
* ok 32: change in branch B (modification)
* ok 33: change in branch B (modification)
* ok 34: change in branch B (modification)
* ok 35: change in branch B (modification)
* ok 36: change in branch B (addition)
* ok 37: change in branch B (addition)
* ok 38: change in branch B (addition)
* ok 39: change in branch B (addition)
* ok 40: change in branch B (addition and modification)
* ok 41: change in branch B (modification)
* ok 42: change in branch B (addition of a file to conflict with directory)
* ok 43: recording branch B tree
* ok 44: keep contents of 3 trees for easy access
* ok 45: diff-tree of known trees.
* ok 46: diff-tree of known trees.
* ok 47: diff-tree of known trees.
* ok 48: diff-tree of known trees.
* ok 49: diff-tree of known trees.
* ok 50: diff-tree of known trees.
* ok 51: diff-cache O with A in cache
* ok 52: diff-cache O with B in cache
* ok 53: diff-cache A with B in cache
* ok 54: diff-files with O in cache and A checked out
* ok 55: diff-files with O in cache and B checked out
* ok 56: diff-files with A in cache and B checked out
* ok 57: diff-tree O A == diff-tree -R A O
* ok 58: diff-tree -r O A == diff-tree -r -R A O
* ok 59: diff-tree B A == diff-tree -R A B
* ok 60: diff-tree -r B A == diff-tree -r -R A B
* passed all 60 test(s)
*** t4003-diff-rename-1.sh ***
* ok 1: prepare reference tree
* ok 2: prepare work tree
* ok 3: validate output from rename/copy detection (#1)
* ok 4: prepare work tree again
* ok 5: validate output from rename/copy detection (#2)
* ok 6: prepare work tree once again
* ok 7: validate output from rename/copy detection (#3)
* passed all 7 test(s)
*** t4004-diff-rename-symlink.sh ***
* ok 1: prepare reference tree
* ok 2: prepare work tree
* ok 3: validate diff output
* passed all 3 test(s)
*** t4005-diff-rename-2.sh ***
* ok 1: prepare reference tree
* ok 2: prepare work tree
* ok 3: validate output from rename/copy detection (#1)
* ok 4: prepare work tree again
* ok 5: validate output from rename/copy detection (#2)
* ok 6: prepare work tree once again
* ok 7: validate output from rename/copy detection (#3)
* passed all 7 test(s)
*** t4006-diff-mode.sh ***
* ok 1: setup
* ok 2: chmod
* ok 3: verify
* passed all 3 test(s)
*** t4007-rename-3.sh ***
* ok 1: prepare reference tree
* ok 2: prepare work tree
* ok 3: validate the result (#1)
* ok 4: validate the result (#2)
* ok 5: tweak work tree
* ok 6: validate the result (#3)
* ok 7: validate the result (#4)
* passed all 7 test(s)
*** t4008-diff-break-rewrite.sh ***
* ok 1: setup
* ok 2: change file1 with copy-edit of file0 and remove file0
* ok 3: run diff with -B
* ok 4: validate result of -B (#1)
* ok 5: run diff with -B and -M
* ok 6: validate result of -B -M (#2)
* ok 7: swap file0 and file1
* ok 8: run diff with -B
* ok 9: validate result of -B (#3)
* ok 10: run diff with -B and -M
* ok 11: validate result of -B -M (#4)
* ok 12: make file0 into something completely different
* ok 13: run diff with -B
* ok 14: validate result of -B (#5)
* ok 15: run diff with -B -M
* ok 16: validate result of -B -M (#6)
* ok 17: run diff with -M
* ok 18: validate result of -M (#7)
* ok 19: file1 edited to look like file0 and file0 rename-edited to file2
* ok 20: run diff with -B
* ok 21: validate result of -B (#8)
* ok 22: run diff with -B -M
* ok 23: validate result of -B -M (#9)
* passed all 23 test(s)
*** t4009-diff-rename-4.sh ***
* ok 1: prepare reference tree
* ok 2: prepare work tree
* ok 3: validate output from rename/copy detection (#1)
* ok 4: prepare work tree again
* ok 5: validate output from rename/copy detection (#2)
* ok 6: prepare work tree once again
* ok 7: validate output from rename/copy detection (#3)
* passed all 7 test(s)
*** t4010-diff-pathspec.sh ***
* ok 1: setup
* ok 2: limit to path should show nothing
* ok 3: limit to path1 should show path1/file1
* ok 4: limit to path1/ should show path1/file1
* ok 5: limit to file0 should show file0
* ok 6: limit to file0/ should emit nothing.
* passed all 6 test(s)
*** t4011-diff-symlink.sh ***
* ok 1: diff new symlink
* ok 2: diff unchanged symlink
* ok 3: diff removed symlink
* ok 4: diff identical, but newly created symlink
* ok 5: diff different symlink
* passed all 5 test(s)
*** t4012-diff-binary.sh ***
* ok 1: prepare repository
* ok 2: diff without --binary
* ok 3: diff with --binary
* ok 4: apply detecting corrupt patch correctly
* ok 5: apply detecting corrupt patch correctly
* ok 6: initial commit
* ok 7: diff-index with --binary
* ok 8: apply binary patch
* passed all 8 test(s)
*** t4013-diff-various.sh ***
* ok 1: setup
* ok 2: git diff-tree initial
* ok 3: git diff-tree -r initial
* ok 4: git diff-tree -r --abbrev initial
* ok 5: git diff-tree -r --abbrev=4 initial
* ok 6: git diff-tree --root initial
* ok 7: git diff-tree --root --abbrev initial
* ok 8: git diff-tree --root -r initial
* ok 9: git diff-tree --root -r --abbrev initial
* ok 10: git diff-tree --root -r --abbrev=4 initial
* ok 11: git diff-tree -p initial
* ok 12: git diff-tree --root -p initial
* ok 13: git diff-tree --patch-with-stat initial
* ok 14: git diff-tree --root --patch-with-stat initial
* ok 15: git diff-tree --patch-with-raw initial
* ok 16: git diff-tree --root --patch-with-raw initial
* ok 17: git diff-tree --pretty initial
* ok 18: git diff-tree --pretty --root initial
* ok 19: git diff-tree --pretty -p initial
* ok 20: git diff-tree --pretty --stat initial
* ok 21: git diff-tree --pretty --summary initial
* ok 22: git diff-tree --pretty --stat --summary initial
* ok 23: git diff-tree --pretty --root -p initial
* ok 24: git diff-tree --pretty --root --stat initial
* ok 25: git diff-tree --pretty --root --summary initial
* ok 26: git diff-tree --pretty --root --summary -r initial
* ok 27: git diff-tree --pretty --root --stat --summary initial
* ok 28: git diff-tree --pretty --patch-with-stat initial
* ok 29: git diff-tree --pretty --root --patch-with-stat initial
* ok 30: git diff-tree --pretty --patch-with-raw initial
* ok 31: git diff-tree --pretty --root --patch-with-raw initial
* ok 32: git diff-tree --pretty=oneline initial
* ok 33: git diff-tree --pretty=oneline --root initial
* ok 34: git diff-tree --pretty=oneline -p initial
* ok 35: git diff-tree --pretty=oneline --root -p initial
* ok 36: git diff-tree --pretty=oneline --patch-with-stat initial
* ok 37: git diff-tree --pretty=oneline --root --patch-with-stat initial
* ok 38: git diff-tree --pretty=oneline --patch-with-raw initial
* ok 39: git diff-tree --pretty=oneline --root --patch-with-raw initial
* ok 40: git diff-tree --pretty side
* ok 41: git diff-tree --pretty -p side
* ok 42: git diff-tree --pretty --patch-with-stat side
* ok 43: git diff-tree master
* ok 44: git diff-tree -p master
* ok 45: git diff-tree -p -m master
* ok 46: git diff-tree -c master
* ok 47: git diff-tree -c --abbrev master
* ok 48: git diff-tree --cc master
* ok 49: git diff-tree -c --stat master
* ok 50: git diff-tree --cc --stat master
* ok 51: git diff-tree -c --stat --summary master
* ok 52: git diff-tree --cc --stat --summary master
* ok 53: git diff-tree -c --stat --summary side
* ok 54: git diff-tree --cc --stat --summary side
* ok 55: git diff-tree --cc --patch-with-stat master
* ok 56: git diff-tree --cc --patch-with-stat --summary master
* ok 57: git diff-tree --cc --patch-with-stat --summary side
* ok 58: git log master
* ok 59: git log -p master
* ok 60: git log --root master
* ok 61: git log --root -p master
* ok 62: git log --patch-with-stat master
* ok 63: git log --root --patch-with-stat master
* ok 64: git log --root --patch-with-stat --summary master
* ok 65: git log --root -c --patch-with-stat --summary master
* ok 66: git log --root --cc --patch-with-stat --summary master
* ok 67: git log -SF master
* ok 68: git log -SF -p master
* ok 69: git whatchanged master
* ok 70: git whatchanged -p master
* ok 71: git whatchanged --root master
* ok 72: git whatchanged --root -p master
* ok 73: git whatchanged --patch-with-stat master
* ok 74: git whatchanged --root --patch-with-stat master
* ok 75: git whatchanged --root --patch-with-stat --summary master
* ok 76: git whatchanged --root -c --patch-with-stat --summary master
* ok 77: git whatchanged --root --cc --patch-with-stat --summary master
* ok 78: git whatchanged -SF master
* ok 79: git whatchanged -SF -p master
* ok 80: git log --patch-with-stat master -- dir/
* ok 81: git whatchanged --patch-with-stat master -- dir/
* ok 82: git log --patch-with-stat --summary master -- dir/
* ok 83: git whatchanged --patch-with-stat --summary master -- dir/
* ok 84: git show initial
* ok 85: git show --root initial
* ok 86: git show side
* ok 87: git show master
* ok 88: git show --stat side
* ok 89: git show --stat --summary side
* ok 90: git show --patch-with-stat side
* ok 91: git show --patch-with-raw side
* ok 92: git show --patch-with-stat --summary side
* ok 93: git format-patch --stdout initial..side
* ok 94: git format-patch --stdout initial..master^
* ok 95: git format-patch --stdout initial..master
* ok 96: git format-patch --attach --stdout initial..side
* ok 97: git format-patch --attach --stdout initial..master^
* ok 98: git format-patch --attach --stdout initial..master
* ok 99: git format-patch --inline --stdout initial..side
* ok 100: git format-patch --inline --stdout initial..master^
* ok 101: git format-patch --inline --stdout initial..master
* ok 102: git format-patch --inline --stdout --subject-prefix=TESTCASE initial..master
* ok 103: git config format.subjectprefix DIFFERENT_PREFIX
* ok 104: git format-patch --inline --stdout initial..master^^
* ok 105: git diff --abbrev initial..side
* ok 106: git diff -r initial..side
* ok 107: git diff --stat initial..side
* ok 108: git diff -r --stat initial..side
* ok 109: git diff initial..side
* ok 110: git diff --patch-with-stat initial..side
* ok 111: git diff --patch-with-raw initial..side
* ok 112: git diff --patch-with-stat -r initial..side
* ok 113: git diff --patch-with-raw -r initial..side
* ok 114: git diff --name-status dir2 dir
* passed all 114 test(s)
*** t4014-format-patch.sh ***
* ok 1: setup
* ok 2: format-patch --ignore-if-in-upstream
* ok 3: format-patch --ignore-if-in-upstream
* ok 4: format-patch result applies
* ok 5: format-patch --ignore-if-in-upstream result applies
* ok 6: commit did not screw up the log message
* ok 7: format-patch did not screw up the log message
* ok 8: replay did not screw up the log message
* passed all 8 test(s)
*** t4015-diff-whitespace.sh ***
* ok 1: Ray's example without options
* ok 2: Ray's example with -w
* ok 3: Ray's example with -b
* ok 4: another test, without options
* ok 5: another test, with -w
* ok 6: another test, with -b
* ok 7: check mixed spaces and tabs in indent
* ok 8: check mixed tabs and spaces in indent
* ok 9: check with no whitespace errors
* ok 10: check with trailing whitespace
* ok 11: check with space before tab in indent
* ok 12: --check and --exit-code are not exclusive
* ok 13: --check and --quiet are not exclusive
* ok 14: check staged with no whitespace errors
* ok 15: check staged with trailing whitespace
* ok 16: check staged with space before tab in indent
* ok 17: check with no whitespace errors (diff-index)
* ok 18: check with trailing whitespace (diff-index)
* ok 19: check with space before tab in indent (diff-index)
* ok 20: check staged with no whitespace errors (diff-index)
* ok 21: check staged with trailing whitespace (diff-index)
* ok 22: check staged with space before tab in indent (diff-index)
* ok 23: check with no whitespace errors (diff-tree)
* ok 24: check with trailing whitespace (diff-tree)
* ok 25: check with space before tab in indent (diff-tree)
* ok 26: check trailing whitespace (trailing-space: off)
* ok 27: check trailing whitespace (trailing-space: on)
* ok 28: check space before tab in indent (space-before-tab: off)
* ok 29: check space before tab in indent (space-before-tab: on)
* ok 30: check spaces as indentation (indent-with-non-tab: off)
* ok 31: check spaces as indentation (indent-with-non-tab: on)
* ok 32: check tabs and spaces as indentation (indent-with-non-tab: on)
* ok 33: line numbers in --check output are correct
* passed all 33 test(s)
*** t4016-diff-quote.sh ***
* ok 1: setup
* ok 2: git diff --summary -M HEAD
* ok 3: git diff --stat -M HEAD
* passed all 3 test(s)
*** t4017-diff-retval.sh ***
* ok 1: setup
* ok 2: git diff-tree HEAD^ HEAD
* ok 3: git diff-tree HEAD^ HEAD -- a
* ok 4: git diff-tree HEAD^ HEAD -- b
* ok 5: echo HEAD | git diff-tree --stdin
* ok 6: git diff-tree HEAD HEAD
* ok 7: git diff-files
* ok 8: git diff-index --cached HEAD
* ok 9: git diff-index --cached HEAD^
* ok 10: git diff-index --cached HEAD^
* ok 11: git diff-tree -Stext HEAD^ HEAD -- b
* ok 12: git diff-tree -Snot-found HEAD^ HEAD -- b
* ok 13: git diff-files
* ok 14: git diff-index --cached HEAD
* ok 15: --check --exit-code returns 0 for no difference
* ok 16: --check --exit-code returns 1 for a clean difference
* ok 17: --check --exit-code returns 3 for a dirty difference
* ok 18: --check with --no-pager returns 2 for dirty difference
* passed all 18 test(s)
*** t4017-quiet.sh ***
* ok 1: setup
* ok 2: git diff-tree HEAD^ HEAD
* ok 3: git diff-tree HEAD^ HEAD -- a
* ok 4: git diff-tree HEAD^ HEAD -- b
* ok 5: echo HEAD | git diff-tree --stdin
* ok 6: git diff-tree HEAD HEAD
* ok 7: git diff-files
* ok 8: git diff-index --cached HEAD
* ok 9: git diff-index --cached HEAD^
* ok 10: git diff-index --cached HEAD^
* ok 11: git diff-tree -Stext HEAD^ HEAD -- b
* ok 12: git diff-tree -Snot-found HEAD^ HEAD -- b
* ok 13: git diff-files
* ok 14: git diff-index --cached HEAD
* passed all 14 test(s)
*** t4018-diff-funcname.sh ***
* ok 1: default behaviour
* ok 2: preset java pattern
* ok 3: custom pattern
* ok 4: last regexp must not be negated
* passed all 4 test(s)
*** t4019-diff-wserror.sh ***
* ok 1: setup
* ok 2: default
* ok 3: without -trail
* ok 4: without -trail (attribute)
* ok 5: without -space
* ok 6: without -space (attribute)
* ok 7: with indent-non-tab only
* ok 8: with indent-non-tab only (attribute)
* passed all 8 test(s)
*** t4020-diff-external.sh ***
* ok 1: setup
* ok 2: GIT_EXTERNAL_DIFF environment
* ok 3: GIT_EXTERNAL_DIFF environment should apply only to diff
* ok 4: diff attribute
* ok 5: diff attribute should apply only to diff
* ok 6: diff attribute
* ok 7: diff attribute should apply only to diff
* ok 8: no diff with -diff
* ok 9: force diff with "diff"
* passed all 9 test(s)
*** t4021-format-patch-numbered.sh ***
* ok 1: setup
* ok 2: Default: no numbered
* ok 3: Use --numbered
* ok 4: format.numbered = true
* ok 5: format.numbered && single patch
* ok 6: format.numbered && --no-numbered
* ok 7: format.numbered = auto
* ok 8: format.numbered = auto && single patch
* ok 9: format.numbered = auto && --no-numbered
* passed all 9 test(s)
*** t4021-format-patch-signer-mime.sh ***
* ok 1: setup
* ok 2: format normally
* ok 3: format with signoff without funny signer name
* ok 4: format with non ASCII signer name
* passed all 4 test(s)
*** t4022-diff-rewrite.sh ***
* ok 1: setup
* ok 2: detect rewrite
* passed all 2 test(s)
*** t4023-diff-rename-typechange.sh ***
* ok 1: setup
* ok 2: cross renames to be detected for regular files
* ok 3: cross renames to be detected for typechange
* ok 4: moves and renames
* passed all 4 test(s)
*** t4024-diff-optimize-common.sh ***
* ok 1: setup
* ok 2: diff -U0
* passed all 2 test(s)
*** t4025-hunk-header.sh ***
* ok 1: setup
* ok 2: hunk header truncation with an overly long line
* passed all 2 test(s)
*** t4026-color.sh ***
* ok 1: reset
* ok 2: attribute before color name
* ok 3: color name before attribute
* ok 4: attr fg bg
* ok 5: fg attr bg
* ok 6: fg bg attr
* ok 7: 256 colors
* ok 8: color too small
* ok 9: color too big
* ok 10: extra character after color number
* ok 11: extra character after color name
* ok 12: extra character after attribute
* passed all 12 test(s)
*** t4100-apply-stat.sh ***
* ok 1: rename
* ok 2: copy
* ok 3: rewrite
* ok 4: mode
* ok 5: non git
* ok 6: non git
* ok 7: non git
* passed all 7 test(s)
*** t4101-apply-nonl.sh ***
* ok 1: apply diff between 0 and 1
* ok 2: apply diff between 0 and 2
* ok 3: apply diff between 0 and 3
* ok 4: apply diff between 1 and 0
* ok 5: apply diff between 1 and 2
* ok 6: apply diff between 1 and 3
* ok 7: apply diff between 2 and 0
* ok 8: apply diff between 2 and 1
* ok 9: apply diff between 2 and 3
* ok 10: apply diff between 3 and 0
* ok 11: apply diff between 3 and 1
* ok 12: apply diff between 3 and 2
* passed all 12 test(s)
*** t4102-apply-rename.sh ***
* ok 1: setup
* ok 2: apply
* ok 3: validate
* ok 4: apply reverse
* ok 5: apply copy
* passed all 5 test(s)
*** t4103-apply-binary.sh ***
Created initial commit 0f68aca: Initial Version
3 files changed, 15 insertions(+), 0 deletions(-)
create mode 100644 file1
create mode 100644 file2
create mode 100644 file4
Switched to a new branch "binary"
Created commit fd5dc34: Second Version
3 files changed, 2 insertions(+), 2 deletions(-)
rename file2 => file3 (57%)
* ok 1: stat binary diff -- should not fail.
* ok 2: stat binary diff (copy) -- should not fail.
* ok 3: check binary diff -- should fail.
* ok 4: check binary diff (copy) -- should fail.
* ok 5: check incomplete binary diff with replacement -- should fail.
* ok 6: check incomplete binary diff with replacement (copy) -- should fail.
* ok 7: check binary diff with replacement.
* ok 8: check binary diff with replacement (copy).
* ok 9: apply binary diff -- should fail.
* ok 10: apply binary diff -- should fail.
* ok 11: apply binary diff (copy) -- should fail.
* ok 12: apply binary diff (copy) -- should fail.
* ok 13: apply binary diff without replacement.
* ok 14: apply binary diff without replacement (copy).
* ok 15: apply binary diff.
* ok 16: apply binary diff (copy).
* passed all 16 test(s)
*** t4104-apply-boundary.sh ***
* ok 1: setup
* ok 2: apply add-a-patch with context
* ok 3: apply add-z-patch with context
* ok 4: apply mod-a-patch with context
* ok 5: apply mod-z-patch with context
* ok 6: apply del-a-patch with context
* ok 7: apply del-z-patch with context
* ok 8: apply add-a-patch without context
* ok 9: apply add-z-patch without context
* ok 10: apply mod-a-patch without context
* ok 11: apply mod-z-patch without context
* ok 12: apply del-a-patch without context
* ok 13: apply del-z-patch without context
* ok 14: apply non-git add-a-patch without context
* ok 15: apply non-git add-z-patch without context
* ok 16: apply non-git mod-a-patch without context
* ok 17: apply non-git mod-z-patch without context
* ok 18: apply non-git del-a-patch without context
* ok 19: apply non-git del-z-patch without context
* passed all 19 test(s)
*** t4109-apply-multifrag.sh ***
* ok 1: S = git apply (1)
* ok 2: S = patch (1)
* ok 3: S = cmp (1)
* ok 4: S = git apply (2)
* ok 5: S = patch (2)
* ok 6: S = cmp (2)
* ok 7: S = git apply (3)
* ok 8: S = patch (3)
* ok 9: S = cmp (3)
* passed all 9 test(s)
*** t4110-apply-scan.sh ***
* ok 1: S = git apply scan
* ok 2: S = patch scan
* ok 3: S = cmp
* passed all 3 test(s)
*** t4112-apply-renames.sh ***
* ok 1: check rename/copy patch
* ok 2: apply rename/copy patch
* passed all 2 test(s)
*** t4113-apply-ending.sh ***
* ok 1: setup
* ok 2: apply at the end
* ok 3: apply at the beginning
* passed all 3 test(s)
*** t4114-apply-typechange.sh ***
* ok 1: setup repository and commits
* ok 2: file renamed from foo to foo/baz
* ok 3: file renamed from foo/baz to foo
* ok 4: directory becomes file
* ok 5: file becomes directory
* ok 6: file becomes symlink
* ok 7: symlink becomes file
* ok 8: symlink becomes directory
* ok 9: directory becomes symlink
* passed all 9 test(s)
*** t4115-apply-symlink.sh ***
* ok 1: setup
* ok 2: apply symlink patch
* ok 3: apply --index symlink patch
* passed all 3 test(s)
*** t4116-apply-reverse.sh ***
* ok 1: setup
* ok 2: apply in forward
* ok 3: apply in reverse
* ok 4: setup separate repository lacking postimage
* ok 5: apply in forward without postimage
* ok 6: apply in reverse without postimage
* ok 7: reversing a whitespace introduction
* passed all 7 test(s)
*** t4117-apply-reject.sh ***
* ok 1: setup
* ok 2: apply without --reject should fail
* ok 3: apply without --reject should fail
* ok 4: apply with --reject should fail but update the file
* ok 5: apply with --reject should fail but update the file
* ok 6: the same test with --verbose
* ok 7: apply cleanly with --verbose
* passed all 7 test(s)
*** t4118-apply-empty-context.sh ***
* ok 1: setup
* ok 2: apply --numstat
* ok 3: apply --apply
* passed all 3 test(s)
*** t4119-apply-config.sh ***
* ok 1: setup
* ok 2: apply --whitespace=strip
* ok 3: apply --whitespace=strip from config
* ok 4: apply --whitespace=strip in subdir
* ok 5: apply --whitespace=strip from config in subdir
* ok 6: same in subdir but with traditional patch input
* ok 7: same but with traditional patch input of depth 1
* ok 8: same but with traditional patch input of depth 2
* ok 9: same but with traditional patch input of depth 1
* ok 10: same but with traditional patch input of depth 2
* passed all 10 test(s)
*** t4120-apply-popt.sh ***
* ok 1: setup
* ok 2: apply git diff with -p2
* passed all 2 test(s)
*** t4121-apply-diffs.sh ***
* ok 1: setup
* ok 2: check if contextually independent diffs for the same file apply
* passed all 2 test(s)
*** t4122-apply-symlink-inside.sh ***
* ok 1: setup
* ok 2: apply
* ok 3: check result
* passed all 3 test(s)
*** t4123-apply-shrink.sh ***
* ok 1: setup
* ok 2: apply should fail gracefully
* passed all 2 test(s)
*** t4124-apply-ws-rule.sh ***
* ok 1: setup
* ok 2: whitespace=nowarn, default rule
* ok 3: whitespace=warn, default rule
* ok 4: whitespace=error-all, default rule
* ok 5: whitespace=error-all, no rule
* ok 6: whitespace=error-all, no rule (attribute)
* ok 7: rule=-trailing,-space,-indent
* ok 8: rule=-trailing,-space,-indent (attributes)
* ok 9: rule=-trailing,-space,indent
* ok 10: rule=-trailing,-space,indent (attributes)
* ok 11: rule=-trailing,space,-indent
* ok 12: rule=-trailing,space,-indent (attributes)
* ok 13: rule=-trailing,space,indent
* ok 14: rule=-trailing,space,indent (attributes)
* ok 15: rule=trailing,-space,-indent
* ok 16: rule=trailing,-space,-indent (attributes)
* ok 17: rule=trailing,-space,indent
* ok 18: rule=trailing,-space,indent (attributes)
* ok 19: rule=trailing,space,-indent
* ok 20: rule=trailing,space,-indent (attributes)
* ok 21: rule=trailing,space,indent
* ok 22: rule=trailing,space,indent (attributes)
* passed all 22 test(s)
*** t4200-rerere.sh ***
Switched to a new branch "first"
Switched to a new branch "second"
* ok 1: nothing recorded without rerere
* ok 2: conflicting merge
* ok 3: recorded preimage
* ok 4: rerere.enabled works, too
* ok 5: no postimage or thisimage yet
* ok 6: preimage has right number of lines
* ok 7: rerere diff
* ok 8: rerere status
* ok 9: commit succeeds
* ok 10: recorded postimage
* ok 11: another conflicting merge
* ok 12: rerere kicked in
* ok 13: rerere prefers first change
* ok 14: rerere clear
* ok 15: clear removed the directory
* ok 16: garbage collection (part1)
* ok 17: young records still live
* ok 18: garbage collection (part2)
* ok 19: old records rest in peace
* ok 20: file2 added differently in two branches
* ok 21: resolution was recorded properly
* passed all 21 test(s)
*** t4201-shortlog.sh ***
* ok 1: shortlog wrapping
* passed all 1 test(s)
*** t4202-log.sh ***
* ok 1: setup
* ok 2: diff-filter=A
* ok 3: diff-filter=M
* ok 4: diff-filter=D
* passed all 4 test(s)
*** t5000-tar-tree.sh ***
* ok 1: populate workdir
* ok 2: add files to repository
* ok 3: git archive
* ok 4: git tar-tree
* ok 5: git archive vs. git tar-tree
* ok 6: validate file modification time
* ok 7: git get-tar-commit-id
* ok 8: extract tar archive
* ok 9: validate filenames
* ok 10: validate file contents
* ok 11: git tar-tree with prefix
* ok 12: extract tar archive with prefix
* ok 13: validate filenames with prefix
* ok 14: validate file contents with prefix
* ok 15: create an archive with a substfiles
* ok 16: extract substfiles
* ok 17: validate substfile contents
* ok 18: git archive --format=zip
* ok 19: extract ZIP archive
* ok 20: validate filenames
* ok 21: validate file contents
* ok 22: git archive --format=zip with prefix
* ok 23: extract ZIP archive with prefix
* ok 24: validate filenames with prefix
* ok 25: validate file contents with prefix
* ok 26: git archive --list outside of a git repo
* passed all 26 test(s)
*** t5100-mailinfo.sh ***
* ok 1: split sample box
* ok 2: mailinfo 0001
* ok 3: mailinfo 0002
* ok 4: mailinfo 0003
* ok 5: mailinfo 0004
* ok 6: mailinfo 0005
* ok 7: mailinfo 0006
* ok 8: mailinfo 0007
* ok 9: mailinfo 0008
* ok 10: mailinfo 0009
* passed all 10 test(s)
*** t5300-pack-object.sh ***
* ok 1: setup
* ok 2: pack without delta
* ok 3: unpack without delta
* ok 4: check unpack without delta
* ok 5: pack with REF_DELTA
* ok 6: unpack with REF_DELTA
* ok 7: check unpack with REF_DELTA
* ok 8: pack with OFS_DELTA
* ok 9: unpack with OFS_DELTA
* ok 10: check unpack with OFS_DELTA
* ok 11: compare delta flavors
* ok 12: use packed objects
* ok 13: use packed deltified (REF_DELTA) objects
* ok 14: use packed deltified (OFS_DELTA) objects
* ok 15: verify pack
* ok 16: verify-pack catches mismatched .idx and .pack files
* ok 17: verify-pack catches a corrupted pack signature
* ok 18: verify-pack catches a corrupted pack version
* ok 19: verify-pack catches a corrupted type/size of the 1st packed object data
* ok 20: verify-pack catches a corrupted sum of the index file itself
* ok 21: build pack index for an existing pack
* ok 22: fake a SHA1 hash collision
* ok 23: make sure index-pack detects the SHA1 collision
* passed all 23 test(s)
*** t5301-sliding-window.sh ***
* ok 1: setup
* ok 2: verify-pack -v, defaults
* ok 3: verify-pack -v, packedGitWindowSize == 1 page
* ok 4: verify-pack -v, packedGit{WindowSize,Limit} == 1 page
* ok 5: repack -a -d, packedGit{WindowSize,Limit} == 1 page
* ok 6: verify-pack -v, defaults
* passed all 6 test(s)
*** t5302-pack-index.sh ***
* ok 1: setup
* ok 2: pack-objects with index version 1
* ok 3: pack-objects with index version 2
* ok 4: both packs should be identical
* ok 5: index v1 and index v2 should be different
* ok 6: index-pack with index version 1
* ok 7: index-pack with index version 2
* ok 8: index-pack results should match pack-objects ones
* ok 9: index v2: force some 64-bit offsets with pack-objects
* ok 10: index v2: verify a pack with some 64-bit offsets
* ok 11: 64-bit offsets: should be different from previous index v2 results
* ok 12: index v2: force some 64-bit offsets with index-pack
* ok 13: 64-bit offsets: index-pack result should match pack-objects one
* ok 14: [index v1] 1) stream pack to repository
* ok 15: [index v1] 2) create a stealth corruption in a delta base reference
* ok 16: [index v1] 3) corrupted delta happily returned wrong data
* ok 17: [index v1] 4) confirm that the pack is actually corrupted
* ok 18: [index v1] 5) pack-objects happily reuses corrupted data
* ok 19: [index v1] 6) newly created pack is BAD !
* ok 20: [index v2] 1) stream pack to repository
* ok 21: [index v2] 2) create a stealth corruption in a delta base reference
* ok 22: [index v2] 3) corrupted delta happily returned wrong data
* ok 23: [index v2] 4) confirm that the pack is actually corrupted
* ok 24: [index v2] 5) pack-objects refuses to reuse corrupted data
* passed all 24 test(s)
*** t5304-prune.sh ***
* ok 1: setup
* ok 2: prune stale packs
* passed all 2 test(s)
*** t5400-send-pack.sh ***
* ok 1: setup
* ok 2: pack the source repository
* ok 3: pack the destination repository
* ok 4: pushing rewound head should not barf but require --force
* ok 5: push can be used to delete a ref
* ok 6: pushing with --force should be denied with denyNonFastforwards
* ok 7: pushing does not include non-head refs
* ok 8: pushing explicit refspecs respects forcing
* ok 9: pushing wildcard refspecs respects forcing
* passed all 9 test(s)
*** t5401-update-hooks.sh ***
* ok 1: setup
* ok 2: push
* ok 3: updated as expected
* ok 4: hooks ran
* ok 5: pre-receive hook input
* ok 6: update hook arguments
* ok 7: post-receive hook input
* ok 8: post-update hook arguments
* ok 9: all hook stdin is /dev/null
* ok 10: all *-receive hook args are empty
* ok 11: send-pack produced no output
* ok 12: send-pack stderr contains hook messages
* passed all 12 test(s)
*** t5402-post-merge-hook.sh ***
* ok 1: setup
* ok 2: post-merge does not run for up-to-date
* ok 3: post-merge runs as expected
* ok 4: post-merge from normal merge receives the right argument
* ok 5: post-merge from squash merge runs as expected
* ok 6: post-merge from squash merge receives the right argument
* passed all 6 test(s)
*** t5403-post-checkout-hook.sh ***
* ok 1: setup
* ok 2: post-checkout runs as expected
* ok 3: post-checkout receives the right arguments with HEAD unchanged
* ok 4: post-checkout runs as expected
* ok 5: post-checkout args are correct with git checkout -b
* ok 6: post-checkout receives the right args with HEAD changed
* ok 7: post-checkout receives the right args when not switching branches
* passed all 7 test(s)
*** t5404-tracking-branches.sh ***
* ok 1: setup
* ok 2: prepare pushable branches
* ok 3: mixed-success push returns error
* ok 4: check tracking branches updated correctly after push
* ok 5: check tracking branches not updated for failed refs
* ok 6: deleted branches have their tracking branches removed
* passed all 6 test(s)
*** t5405-send-pack-rewind.sh ***
* ok 1: setup
* ok 2: non forced push should die not segfault
* ok 3: forced push should succeed
* passed all 3 test(s)
*** t5406-remote-rejects.sh ***
* ok 1: setup
* ok 2: push reports error
* ok 3: individual ref reports error
* passed all 3 test(s)
*** t5500-fetch-pack.sh ***
Initialized empty Git repository in .git/
* ok 1: 1st pull
* ok 2: fsck
* ok 3: check downloaded results
* ok 4: new object count after 1st pull
* ok 5: minimal count
* ok 6: 2nd pull
* ok 7: fsck
* ok 8: check downloaded results
* ok 9: new object count after 2nd pull
* ok 10: minimal count
* ok 11: 3rd pull
* ok 12: fsck
* ok 13: check downloaded results
* ok 14: new object count after 3rd pull
* ok 15: minimal count
* ok 16: clone shallow
* ok 17: clone shallow object count
* ok 18: clone shallow object count (part 2)
* ok 19: fsck in shallow repo
* ok 20: pull in shallow repo
* ok 21: clone shallow object count
* ok 22: deepening pull in shallow repo
* ok 23: clone shallow object count
* ok 24: deepening fetch in shallow repo
* ok 25: clone shallow object count
* ok 26: pull in shallow repo with missing merge base
* passed all 26 test(s)
*** t5502-quickfetch.sh ***
* ok 1: setup
* ok 2: clone without alternate
* ok 3: further commits in the original
* ok 4: copy commit and tree but not blob by hand
* ok 5: quickfetch should not leave a corrupted repository
* ok 6: quickfetch should not copy from alternate
* passed all 6 test(s)
*** t5505-remote.sh ***
* ok 1: setup
* ok 2: remote information for the origin
* ok 3: add another remote
* ok 4: remove remote
* ok 5: remove remote
* passed all 5 test(s)
*** t5510-fetch.sh ***
* ok 1: setup
* ok 2: clone and setup child repos
* ok 3: fetch test
* ok 4: fetch test for-merge
* ok 5: fetch tags when there is no tags
* ok 6: fetch following tags
* ok 7: fetch must not resolve short tag name
* ok 8: fetch must not resolve short remote name
* ok 9: create bundle 1
* ok 10: header of bundle looks right
* ok 11: create bundle 2
* ok 12: unbundle 1
* ok 13: bundle 1 has only 3 files
* ok 14: unbundle 2
* ok 15: bundle does not prerequisite objects
* ok 16: bundle should be able to create a full history
* ok 17: fetch with a non-applying branch.<name>.merge
* ok 18: quoting of a strangely named repo
* ok 19: bundle should record HEAD correctly
* ok 20: explicit fetch should not update tracking
* ok 21: explicit pull should not update tracking
* ok 22: configured fetch updates tracking
* passed all 22 test(s)
*** t5512-ls-remote.sh ***
* ok 1: setup
* ok 2: ls-remote --tags .git
* ok 3: ls-remote .git
* ok 4: ls-remote --tags self
* ok 5: ls-remote self
* passed all 5 test(s)
*** t5515-fetch-merge-logic.sh ***
* ok 1: setup
* ok 2: br-config-explicit
* ok 3: br-config-explicit config-explicit
* ok 4: br-config-explicit-merge
* ok 5: br-config-explicit-merge config-explicit
* ok 6: br-config-explicit-octopus
* ok 7: br-config-explicit-octopus config-explicit
* ok 8: br-config-glob
* ok 9: br-config-glob config-glob
* ok 10: br-config-glob-merge
* ok 11: br-config-glob-merge config-glob
* ok 12: br-config-glob-octopus
* ok 13: br-config-glob-octopus config-glob
* ok 14: br-remote-explicit
* ok 15: br-remote-explicit remote-explicit
* ok 16: br-remote-explicit-merge
* ok 17: br-remote-explicit-merge remote-explicit
* ok 18: br-remote-explicit-octopus
* ok 19: br-remote-explicit-octopus remote-explicit
* ok 20: br-remote-glob
* ok 21: br-remote-glob remote-glob
* ok 22: br-remote-glob-merge
* ok 23: br-remote-glob-merge remote-glob
* ok 24: br-remote-glob-octopus
* ok 25: br-remote-glob-octopus remote-glob
* ok 26: br-branches-default
* ok 27: br-branches-default branches-default
* ok 28: br-branches-default-merge
* ok 29: br-branches-default-merge branches-default
* ok 30: br-branches-default-octopus
* ok 31: br-branches-default-octopus branches-default
* ok 32: br-branches-one
* ok 33: br-branches-one branches-one
* ok 34: br-branches-one-merge
* ok 35: br-branches-one-merge branches-one
* ok 36: br-branches-one-octopus
* ok 37: br-branches-one-octopus branches-one
* ok 38: master
* ok 39: master config-explicit
* ok 40: master config-glob
* ok 41: master remote-explicit
* ok 42: master remote-glob
* ok 43: master branches-default
* ok 44: master branches-one
* ok 45: br-unconfig
* ok 46: br-unconfig config-explicit
* ok 47: br-unconfig config-glob
* ok 48: br-unconfig remote-explicit
* ok 49: br-unconfig remote-glob
* ok 50: br-unconfig branches-default
* ok 51: br-unconfig branches-one
* ok 52: master ../.git
* ok 53: master ../.git one
* ok 54: master ../.git one two
* ok 55: master --tags ../.git
* ok 56: master ../.git tag tag-one tag tag-three
* ok 57: master ../.git tag tag-one-tree tag tag-three-file
* ok 58: master ../.git one tag tag-one tag tag-three-file
* ok 59: br-unconfig ../.git
* ok 60: br-unconfig ../.git one
* ok 61: br-unconfig ../.git one two
* ok 62: br-unconfig --tags ../.git
* ok 63: br-unconfig ../.git tag tag-one tag tag-three
* ok 64: br-unconfig ../.git tag tag-one-tree tag tag-three-file
* ok 65: br-unconfig ../.git one tag tag-one tag tag-three-file
* passed all 65 test(s)
*** t5516-fetch-push.sh ***
* ok 1: setup
* ok 2: fetch without wildcard
* ok 3: fetch with wildcard
* ok 4: push without wildcard
* ok 5: push with wildcard
* ok 6: push with matching heads
* ok 7: push with no ambiguity (1)
* ok 8: push with no ambiguity (2)
* ok 9: push with colon-less refspec, no ambiguity
* ok 10: push with weak ambiguity (1)
* ok 11: push with weak ambiguity (2)
* ok 12: push with ambiguity (1)
* ok 13: push with ambiguity (2)
* ok 14: push with colon-less refspec (1)
* ok 15: push with colon-less refspec (2)
* ok 16: push with colon-less refspec (3)
* ok 17: push with colon-less refspec (4)
* ok 18: push with HEAD
* ok 19: push with HEAD nonexisting at remote
* ok 20: push with dry-run
* ok 21: push updates local refs
* ok 22: push does not update local refs on failure
* ok 23: allow deleting an invalid remote ref
* passed all 23 test(s)
*** t5517-push-mirror.sh ***
* ok 1: push mirror creates new branches
* ok 2: push mirror updates existing branches
* ok 3: push mirror force updates existing branches
* ok 4: push mirror removes branches
* ok 5: push mirror adds, updates and removes branches together
* ok 6: push mirror creates new tags
* ok 7: push mirror updates existing tags
* ok 8: push mirror force updates existing tags
* ok 9: push mirror removes tags
* ok 10: push mirror adds, updates and removes tags together
* passed all 10 test(s)
*** t5520-pull.sh ***
* ok 1: setup
* ok 2: pulling into void
* ok 3: checking the results
* ok 4: test . as a remote
* ok 5: the default remote . should not break explicit pull
* ok 6: --rebase
* ok 7: branch.to-rebase.rebase
* ok 8: --rebase with rebased upstream
* passed all 8 test(s)
*** t5530-upload-pack-error.sh ***
* ok 1: setup and corrupt repository
* ok 2: fsck fails
* ok 3: upload-pack fails due to error in pack-objects
* ok 4: corrupt repo differently
* ok 5: fsck fails
* ok 6: upload-pack fails due to error in rev-list
* ok 7: create empty repository
* ok 8: fetch fails
* passed all 8 test(s)
*** t5600-clone-fail-cleanup.sh ***
* ok 1: clone of non-existent source should fail
* ok 2: failed clone should not leave a directory
* ok 3: clone of non-existent (relative to $PWD) source should fail
* ok 4: clone should work now that source exists
* ok 5: successful clone must leave the directory
* passed all 5 test(s)
*** t5700-clone-reference.sh ***
* ok 1: preparing first repository
* ok 2: preparing second repository
* ok 3: cloning with reference (-l -s)
* ok 4: existence of info/alternates
* ok 5: pulling from reference
* ok 6: that reference gets used
* ok 7: cloning with reference (no -l -s)
* ok 8: existence of info/alternates
* ok 9: pulling from reference
* ok 10: that reference gets used
* ok 11: updating origin
* ok 12: pulling changes from origin
* ok 13: that alternate to origin gets used
* ok 14: pulling changes from origin
* ok 15: check objects expected to exist locally
* passed all 15 test(s)
*** t5701-clone-local.sh ***
* ok 1: preparing origin repository
* ok 2: local clone without .git suffix
* ok 3: local clone with .git suffix
* ok 4: local clone from x
* ok 5: local clone from x.git that does not exist
* ok 6: With -no-hardlinks, local will make a copy
* ok 7: Even without -l, local will make a hardlink
* ok 8: local clone of repo with nonexistent ref in HEAD
* passed all 8 test(s)
*** t5702-clone-options.sh ***
* ok 1: setup
* ok 2: clone -o
* passed all 2 test(s)
*** t5710-info-alternate.sh ***
* ok 1: preparing first repository
* ok 2: preparing second repository
* ok 3: preparing third repository
* ok 4: creating too deep nesting
* ok 5: invalidity of deepest repository
* ok 6: validity of third repository
* ok 7: validity of fourth repository
* ok 8: breaking of loops
* ok 9: that info/alternates is necessary
* ok 10: that relative alternate is possible for current dir
* ok 11: that relative alternate is only possible for current dir
* passed all 11 test(s)
*** t6001-rev-list-graft.sh ***
* ok 1: setup
* ok 2: without grafts
* ok 3: with grafts
* ok 4: without grafts, with pathlimit
* ok 5: with grafts, with pathlimit
* ok 6: without grafts
* ok 7: with grafts
* ok 8: without grafts, with pathlimit
* ok 9: with grafts, with pathlimit
* ok 10: without grafts
* ok 11: with grafts
* ok 12: without grafts, with pathlimit
* ok 13: with grafts, with pathlimit
* passed all 13 test(s)
*** t6002-rev-list-bisect.sh ***
* ok 1: bisection diff --bisect l0 ^root <= 0
* ok 2: bisection diff --bisect l1 ^root <= 0
* ok 3: bisection diff --bisect l2 ^root <= 0
* ok 4: bisection diff --bisect a0 ^root <= 0
* ok 5: bisection diff --bisect a1 ^root <= 0
* ok 6: bisection diff --bisect a2 ^root <= 0
* ok 7: bisection diff --bisect a3 ^root <= 0
* ok 8: bisection diff --bisect b1 ^root <= 0
* ok 9: bisection diff --bisect b2 ^root <= 0
* ok 10: bisection diff --bisect b3 ^root <= 0
* ok 11: bisection diff --bisect c1 ^root <= 0
* ok 12: bisection diff --bisect c2 ^root <= 0
* ok 13: bisection diff --bisect c3 ^root <= 0
* ok 14: bisection diff --bisect E ^F <= 0
* ok 15: bisection diff --bisect e1 ^F <= 0
* ok 16: bisection diff --bisect e2 ^F <= 0
* ok 17: bisection diff --bisect e3 ^F <= 0
* ok 18: bisection diff --bisect e4 ^F <= 0
* ok 19: bisection diff --bisect e5 ^F <= 0
* ok 20: bisection diff --bisect e6 ^F <= 0
* ok 21: bisection diff --bisect e7 ^F <= 0
* ok 22: bisection diff --bisect f1 ^F <= 0
* ok 23: bisection diff --bisect f2 ^F <= 0
* ok 24: bisection diff --bisect f3 ^F <= 0
* ok 25: bisection diff --bisect f4 ^F <= 0
* ok 26: bisection diff --bisect E ^F <= 0
* ok 27: bisection diff --bisect V ^U <= 1
* ok 28: bisection diff --bisect V ^U ^u1 ^u2 ^u3 <= 0
* ok 29: bisection diff --bisect u1 ^U <= 0
* ok 30: bisection diff --bisect u2 ^U <= 0
* ok 31: bisection diff --bisect u3 ^U <= 0
* ok 32: bisection diff --bisect u4 ^U <= 0
* ok 33: bisection diff --bisect u5 ^U <= 0
* ok 34: --bisect l5 ^root
* ok 35: --bisect l5 ^root ^c3
* ok 36: --bisect l5 ^root ^c3 ^b4
* ok 37: --bisect l3 ^root ^c3 ^b4
* ok 38: --bisect l5 ^b3 ^a3 ^b4 ^a4
* ok 39: --bisect l4 ^a2 ^a3 ^b ^a4
* ok 40: --bisect l3 ^a2 ^a3 ^b ^a4
* ok 41: --bisect a4 ^a2 ^a3 ^b4
* ok 42: --bisect a4 ^a2 ^a3 ^b4 ^c2
* ok 43: --bisect a4 ^a2 ^a3 ^b4 ^c2 ^c3
* ok 44: --bisect a4 ^a2 ^a3 ^b4
* ok 45: --bisect c3 ^a2 ^a3 ^b4 ^c2
* passed all 45 test(s)
*** t6003-rev-list-topo-order.sh ***
* ok 1: rev-list has correct number of entries
* ok 2: simple topo order
* ok 3: two diamonds topo order (g6)
* ok 4: multiple heads
* ok 5: multiple heads, prune at a1
* ok 6: multiple heads, prune at l1
* ok 7: cross-epoch, head at l5, prune at l1
* ok 8: duplicated head arguments
* ok 9: prune near topo
* ok 10: head has no parent
* ok 11: two nodes - one head, one base
* ok 12: three nodes one head, one internal, one base
* ok 13: linear prune l2 ^root
* ok 14: linear prune l2 ^l0
* ok 15: linear prune l2 ^l1
* ok 16: linear prune l5 ^a4
* ok 17: linear prune l5 ^l3
* ok 18: linear prune l5 ^l4
* ok 19: max-count 10 - topo order
* ok 20: max-count 10 - non topo order
* ok 21: --max-age=c3, no --topo-order
* ok 22: one specified head reachable from another a4, c3, --topo-order
* ok 23: one specified head reachable from another c3, a4, --topo-order
* ok 24: one specified head reachable from another a4, c3, no --topo-order
* ok 25: one specified head reachable from another c3, a4, no --topo-order
* ok 26: graph with c3 and a4 parents of head
* ok 27: graph with a4 and c3 parents of head
* ok 28: head ^head --topo-order
* ok 29: head ^head no --topo-order
* ok 30: simple topo order (l5r1)
* ok 31: simple topo order (r1l5)
* ok 32: don't print things unreachable from one branch
* ok 33: --topo-order a4 l3
* passed all 33 test(s)
*** t6004-rev-list-path-optim.sh ***
* ok 1: setup
* ok 2: path-optimization
* ok 3: further setup
* ok 4: path optimization 2
* passed all 4 test(s)
*** t6005-rev-list-count.sh ***
* ok 1: setup
* ok 2: no options
* ok 3: --max-count
* ok 4: --max-count all forms
* ok 5: --skip
* ok 6: --skip --max-count
* passed all 6 test(s)
*** t6006-rev-list-format.sh ***
* ok 1: setup
* ok 2: format hash
* ok 3: format tree
* ok 4: format parents
* ok 5: format author
* ok 6: format committer
* ok 7: format encoding
* ok 8: format subject
* ok 9: format body
* ok 10: format colors
* ok 11: setup complex body
* ok 12: format complex-encoding
* ok 13: format complex-subject
* ok 14: format complex-body
* ok 15: empty email
* passed all 15 test(s)
*** t6007-rev-list-cherry-pick-file.sh ***
* ok 1: setup
* ok 2: --cherry-pick foo comes up empty
* ok 3: --cherry-pick bar does not come up empty
* ok 4: --cherry-pick with independent, but identical branches
* passed all 4 test(s)
*** t6008-rev-list-submodule.sh ***
* ok 1: setup
* ok 2: Ilari's test
* passed all 2 test(s)
*** t6010-merge-base.sh ***
* ok 1: compute merge-base (single)
* ok 2: compute merge-base (all)
* ok 3: compute merge-base with show-branch
* ok 4: compute merge-base (single)
* ok 5: compute merge-base (all)
* passed all 5 test(s)
*** t6020-merge-df.sh ***
* ok 1: prepare repository
* ok 2: Merge with d/f conflicts
* passed all 2 test(s)
*** t6021-merge-criss-cross.sh ***
* ok 1: prepare repository
* ok 2: Criss-cross merge
* ok 3: Criss-cross merge result
* passed all 3 test(s)
*** t6022-merge-rename.sh ***
* ok 1: setup
* ok 2: pull renaming branch into unrenaming one
* ok 3: pull renaming branch into another renaming one
* ok 4: pull unrenaming branch into renaming one
* ok 5: pull conflicting renames
* ok 6: interference with untracked working tree file
* ok 7: interference with untracked working tree file
* ok 8: interference with untracked working tree file
* ok 9: updated working tree file should prevent the merge
* ok 10: updated working tree file should prevent the merge
* ok 11: interference with untracked working tree file
* ok 12: merge of identical changes in a renamed file
* passed all 12 test(s)
*** t6023-merge-file.sh ***
* ok 1: merge without conflict
* ok 2: merge without conflict (missing LF at EOF)
* ok 3: merge result added missing LF
* ok 4: merge with conflicts
* ok 5: expected conflict markers
* ok 6: merge with conflicts, using -L
* ok 7: expected conflict markers, with -L
* ok 8: conflict in removed tail
* ok 9: expected conflict markers
* ok 10: binary files cannot be merged
* passed all 10 test(s)
*** t6023-merge-rename-nocruft.sh ***
* ok 1: setup
* ok 2: merge white into red (A->B,M->N)
* ok 3: merge blue into white (A->B, mod A, A untracked)
* passed all 3 test(s)
*** t6024-recursive-merge.sh ***
* ok 1: setup tests
* ok 2: combined merge conflicts
* ok 3: result contains a conflict
* ok 4: virtual trees were processed
HEAD is now at 71b2f3d... F
* ok 5: refuse to merge binary files
* passed all 5 test(s)
*** t6025-merge-symlinks.sh ***
* ok 1: setup
* ok 2: merge master into b-symlink, which has a different symbolic link
* ok 3: the merge result must be a file
* ok 4: merge master into b-file, which has a file instead of a symbolic link
* ok 5: the merge result must be a file
* ok 6: merge b-file, which has a file instead of a symbolic link, into master
* ok 7: the merge result must be a file
* passed all 7 test(s)
*** t6026-merge-attr.sh ***
* ok 1: setup
* ok 2: merge
* ok 3: check merge result in index
* ok 4: check merge result in working tree
* ok 5: custom merge backend
* ok 6: custom merge backend
* passed all 6 test(s)
*** t6027-merge-binary.sh ***
* ok 1: setup
* ok 2: resolve
* ok 3: recursive
* passed all 3 test(s)
*** t6028-merge-up-to-date.sh ***
* ok 1: setup
* ok 2: merge -s recursive up-to-date
* ok 3: merge -s recursive fast-forward
* ok 4: merge -s ours up-to-date
* ok 5: merge -s ours fast-forward
* ok 6: merge -s subtree up-to-date
* passed all 6 test(s)
*** t6030-bisect-porcelain.sh ***
* ok 1: set up basic repo with 1 file (hello) and 4 commits
* ok 2: bisect starts with only one bad
* ok 3: bisect does not start with only one good
* ok 4: bisect start with one bad and good
* ok 5: bisect reset: back in the master branch
* ok 6: bisect reset: back in another branch
* ok 7: bisect reset when not bisecting
* ok 8: bisect reset removes packed refs
* ok 9: bisect skip: successfull result
* ok 10: bisect skip: cannot tell between 3 commits
* ok 11: bisect skip: cannot tell between 2 commits
* ok 12: "git bisect run" simple case
* ok 13: "git bisect run" with more complex "git bisect start"
* ok 14: bisect skip: add line and then a new test
* ok 15: bisect skip and bisect replay
* ok 16: bisect run & skip: cannot tell between 2
* ok 17: bisect run & skip: find first bad
* ok 18: bisect starting with a detached HEAD
* passed all 18 test(s)
*** t6101-rev-parse-parents.sh ***
* ok 1: start is valid
* ok 2: start^0
* ok 3: start^1 not valid
* ok 4: second^1 = second^
* ok 5: final^1^1^1
* ok 6: final^1^1^1 = final^^^
* ok 7: final^1^2
* ok 8: final^1^2 != final^1^1
* ok 9: final^1^3 not valid
* ok 10: --verify start2^1
* ok 11: --verify start2^0
* ok 12: repack for next test
* ok 13: short SHA-1 works
* passed all 13 test(s)
*** t6120-describe.sh ***
* ok 1: setup
* ok 2: describe HEAD
* ok 3: describe HEAD^
* ok 4: describe HEAD^^
* ok 5: describe HEAD^^2
* ok 6: describe HEAD^^2^
* ok 7: describe --tags HEAD
* ok 8: describe --tags HEAD^
* ok 9: describe --tags HEAD^^
* ok 10: describe --tags HEAD^^2
* ok 11: describe --tags HEAD^^2^
* passed all 11 test(s)
*** t6200-fmt-merge-msg.sh ***
* ok 1: setup
* ok 2: merge-msg test #1
* ok 3: merge-msg test #2
* ok 4: merge-msg test #3
* ok 5: merge-msg test #4
* ok 6: merge-msg test #5
* passed all 6 test(s)
*** t6300-for-each-ref.sh ***
* ok 1: Create sample commit with known timestamp
* ok 2: Check atom names are valid
* ok 3: Check invalid atoms names are errors
* ok 4: Check format specifiers are ignored in naming date atoms
* ok 5: Check valid format specifiers for date fields
* ok 6: Check invalid format specifiers are errors
* ok 7: Check unformatted date fields output
* ok 8: Check format "default" formatted date fields output
* ok 9: Check format "relative" date fields output
* ok 10: Check format "short" date fields output
* ok 11: Check format "local" date fields output
* ok 12: Check format "iso8601" date fields output
* ok 13: Check format "rfc2822" date fields output
* ok 14: Verify ascending sort
* ok 15: Verify descending sort
* ok 16: Quoting style: shell
* ok 17: Quoting style: perl
* ok 18: Quoting style: python
* ok 19: Quoting style: tcl
* ok 20: more than one quoting style: --perl --shell
* ok 21: more than one quoting style: -s --python
* ok 22: more than one quoting style: --python --tcl
* ok 23: more than one quoting style: --tcl --perl
* passed all 23 test(s)
*** t7001-mv.sh ***
* ok 1: prepare reference tree
* ok 2: moving the file out of subdirectory
* ok 3: commiting the change
* ok 4: checking the commit
* ok 5: moving the file back into subdirectory
* ok 6: commiting the change
* ok 7: checking the commit
* ok 8: adding another file
* ok 9: moving whole subdirectory
* ok 10: commiting the change
* ok 11: checking the commit
* ok 12: succeed when source is a prefix of destination
* ok 13: moving whole subdirectory into subdirectory
* ok 14: commiting the change
* ok 15: checking the commit
* ok 16: do not move directory over existing directory
* ok 17: move into "."
* ok 18: Michael Cassar's test case
* ok 19: Sergey Vlasov's test case
* passed all 19 test(s)
*** t7002-grep.sh ***
* ok 1: setup
* ok 2: grep -w HEAD
* ok 3: grep -w HEAD (x)
* ok 4: grep -w HEAD (y-1)
* ok 5: grep -w HEAD (y-2)
* ok 6: grep -w HEAD (z)
* ok 7: grep HEAD (t-1)
* ok 8: grep HEAD (t-2)
* ok 9: grep HEAD (t-3)
* ok 10: grep -c HEAD (no /dev/null)
* ok 11: grep -w in working tree
* ok 12: grep -w in working tree (x)
* ok 13: grep -w in working tree (y-1)
* ok 14: grep -w in working tree (y-2)
* ok 15: grep -w in working tree (z)
* ok 16: grep in working tree (t-1)
* ok 17: grep in working tree (t-2)
* ok 18: grep in working tree (t-3)
* ok 19: grep -c in working tree (no /dev/null)
* passed all 19 test(s)
*** t7003-filter-branch.sh ***
* ok 1: setup
* ok 2: rewrite identically
* ok 3: result is really identical
* ok 4: rewrite, renaming a specific file
* ok 5: test that the file was renamed
* ok 6: rewrite one branch, keeping a side branch
* ok 7: common ancestor is still common (unchanged)
* ok 8: filter subdirectory only
* ok 9: subdirectory filter result looks okay
* ok 10: setup and filter history that requires --full-history
* ok 11: subdirectory filter result looks okay
* ok 12: use index-filter to move into a subdirectory
* ok 13: stops when msg filter fails
* ok 14: author information is preserved
* ok 15: remove a certain author's commits
* ok 16: barf on invalid name
* ok 17: "map" works in commit filter
* ok 18: Name needing quotes
* passed all 18 test(s)
*** t7004-tag.sh ***
* ok 1: listing all tags in an empty tree should succeed
* ok 2: listing all tags in an empty tree should output nothing
* ok 3: looking for a tag in an empty tree should fail
* ok 4: creating a tag in an empty tree should fail
* ok 5: creating a tag for HEAD in an empty tree should fail
* ok 6: creating a tag for an unknown revision should fail
* ok 7: creating a tag using default HEAD should succeed
* ok 8: listing all tags if one exists should succeed
* ok 9: listing all tags if one exists should output that tag
* ok 10: listing a tag using a matching pattern should succeed
* ok 11: listing a tag using a matching pattern should output that tag
* ok 12: listing tags using a non-matching pattern should suceed
* ok 13: listing tags using a non-matching pattern should output nothing
* ok 14: trying to create a tag with the name of one existing should fail
* ok 15: trying to create a tag with a non-valid name should fail
* ok 16: creating a tag using HEAD directly should succeed
* ok 17: trying to delete an unknown tag should fail
* ok 18: trying to delete tags without params should succeed and do nothing
* ok 19: deleting two existing tags in one command should succeed
* ok 20: creating a tag with the name of another deleted one should succeed
* ok 21: trying to delete two tags, existing and not, should fail in the 2nd
* ok 22: trying to delete an already deleted tag should fail
* ok 23: listing all tags should print them ordered
* ok 24: listing tags with substring as pattern must print those matching
* ok 25: listing tags with a suffix as pattern must print those matching
* ok 26: listing tags with a prefix as pattern must print those matching
* ok 27: listing tags using a name as pattern must print that one matching
* ok 28: listing tags using a name as pattern must print that one matching
* ok 29: listing tags with ? in the pattern should print those matching
* ok 30: listing tags using v.* should print nothing because none have v.
* ok 31: listing tags using v* should print only those having v
* ok 32: a non-annotated tag created without parameters should point to HEAD
* ok 33: trying to verify an unknown tag should fail
* ok 34: trying to verify a non-annotated and non-signed tag should fail
* ok 35: trying to verify many non-annotated or unknown tags, should fail
* ok 36: creating an annotated tag with -m message should succeed
* ok 37: creating an annotated tag with -F messagefile should succeed
* ok 38: creating an annotated tag with -F - should succeed
* ok 39: trying to create a tag with a non-existing -F file should fail
* ok 40: trying to create tags giving both -m or -F options should fail
* ok 41: creating a tag with an empty -m message should succeed
* ok 42: creating a tag with an empty -F messagefile should succeed
* ok 43: extra blanks in the message for an annotated tag should be removed
* ok 44: creating a tag with blank -m message with spaces should succeed
* ok 45: creating a tag with blank -F messagefile with spaces should succeed
* ok 46: creating a tag with -F file of spaces and no newline should succeed
* ok 47: creating a tag using a -F messagefile with #comments should succeed
* ok 48: creating a tag with a #comment in the -m message should succeed
* ok 49: creating a tag with #comments in the -F messagefile should succeed
* ok 50: creating a tag with a file of #comment and no newline should succeed
* ok 51: listing the one-line message of a non-signed tag should succeed
* ok 52: listing the zero-lines message of a non-signed tag should succeed
* ok 53: listing many message lines of a non-signed tag should succeed
* ok 54: trying to verify an annotated non-signed tag should fail
* ok 55: trying to verify a file-annotated non-signed tag should fail
* ok 56: trying to verify two annotated non-signed tags should fail
t7004-tag.sh: 603: gpg: not found
Skipping signed tags tests, because gpg was not found
* passed all 56 test(s)
*** t7005-editor.sh ***
* ok 1: setup
* ok 2: dumb should error out when falling back on editor
* ok 3: Using editor
* ok 4: Using EDITOR
* ok 5: Using VISUAL
* ok 6: Using core_editor
* ok 7: Using GIT_EDITOR
* ok 8: Using editor (override)
* ok 9: Using EDITOR (override)
* ok 10: Using VISUAL (override)
* ok 11: Using core_editor (override)
* ok 12: Using GIT_EDITOR (override)
* passed all 12 test(s)
*** t7101-reset.sh ***
* ok 1: creating initial files
* ok 2: creating second files
* ok 3: resetting tree HEAD^
* ok 4: checking initial files exist after rewind
* ok 5: checking lack of path1/path2/COPYING
* ok 6: checking lack of path1/COPYING
* ok 7: checking lack of COPYING
* ok 8: checking checking lack of path1/COPYING-TOO
* ok 9: checking lack of path1/path2
* ok 10: checking lack of path1
* passed all 10 test(s)
*** t7102-reset.sh ***
* ok 1: creating initial files and commits
* ok 2: giving a non existing revision should fail
* ok 3: reset --soft with unmerged index should fail
* ok 4: giving paths with options different than --mixed should fail
* ok 5: giving unrecognized options should fail
* ok 6: trying to do reset --soft with pending merge should fail
* ok 7: trying to do reset --soft with pending checkout merge should fail
* ok 8: resetting to HEAD with no changes should succeed and do nothing
* ok 9: --soft reset only should show changes in diff --cached
* ok 10: changing files and redo the last commit should succeed
* ok 11: --hard reset should change the files and undo commits permanently
* ok 12: redoing changes adding them without commit them should succeed
* ok 13: --mixed reset to HEAD should unadd the files
* ok 14: redoing the last two commits should succeed
* ok 15: --hard reset to HEAD should clear a failed merge
* ok 16: --hard reset to ORIG_HEAD should clear a fast-forward merge
* ok 17: test --mixed <paths>
* ok 18: test resetting the index at give paths
* ok 19: resetting an unmodified path is a no-op
* ok 20: --mixed refreshes the index
* passed all 20 test(s)
*** t7103-reset-bare.sh ***
* ok 1: setup non-bare
* ok 2: setup bare
* ok 3: hard reset is not allowed
* ok 4: soft reset is allowed
* passed all 4 test(s)
*** t7201-co.sh ***
* ok 1: setup
* ok 2: checkout from non-existing branch
* ok 3: checkout with dirty tree without -m
* ok 4: checkout with unrelated dirty tree without -m
* ok 5: checkout -m with dirty tree
* ok 6: checkout -m with dirty tree, renamed
* ok 7: checkout -m with merge conflict
* ok 8: checkout to detach HEAD
* ok 9: checkout to detach HEAD with branchname^
* ok 10: checkout to detach HEAD with HEAD^0
* ok 11: checkout with ambiguous tag/branch names
* ok 12: checkout with ambiguous tag/branch names
* passed all 12 test(s)
*** t7300-clean.sh ***
* ok 1: setup
* ok 2: git-clean
* ok 3: git-clean src/
* ok 4: git-clean src/ src/
* ok 5: git-clean with prefix
* ok 6: git-clean -d with prefix and path
* ok 7: git-clean symbolic link
* ok 8: git-clean with wildcard
* ok 9: git-clean -n
* ok 10: git-clean -d
* ok 11: git-clean -d src/ examples/
* ok 12: git-clean -x
* ok 13: git-clean -d -x
* ok 14: git-clean -X
* ok 15: git-clean -d -X
* ok 16: clean.requireForce defaults to true
* ok 17: clean.requireForce
* ok 18: clean.requireForce and -n
* ok 19: clean.requireForce and -f
* ok 20: core.excludesfile
* passed all 20 test(s)
*** t7400-submodule-basic.sh ***
* ok 1: Prepare submodule testing
* ok 2: status should fail for unmapped paths
* ok 3: status should only print one line
* ok 4: status should initially be "missing"
* ok 5: init should register submodule url in .git/config
* ok 6: update should fail when path is used by a file
* ok 7: update should fail when path is used by a nonempty directory
* ok 8: update should work when path is an empty dir
* ok 9: status should be "up-to-date" after update
* ok 10: status should be "modified" after submodule commit
* ok 11: the --cached sha1 should be rev1
* ok 12: git diff should report the SHA1 of the new submodule commit
* ok 13: update should checkout rev1
* ok 14: status should be "up-to-date" after update
* ok 15: checkout superproject with subproject already present
* ok 16: apply submodule diff
* passed all 16 test(s)
*** t7500-commit.sh ***
* ok 1: a basic commit in an empty tree should succeed
* ok 2: nonexistent template file should return error
* ok 3: nonexistent template file in config should return error
* ok 4: unedited template should not commit
* ok 5: unedited template with comments should not commit
* ok 6: a Signed-off-by line by itself should not commit
* ok 7: adding comments to a template should not commit
* ok 8: adding real content to a template should commit
* ok 9: -t option should be short for --template
* ok 10: config-specified template should commit
* ok 11: explicit commit message should override template
* ok 12: commit message from file should override template
* ok 13: using alternate GIT_INDEX_FILE (1)
* ok 14: using alternate GIT_INDEX_FILE (2)
* ok 15: --signoff
* passed all 15 test(s)
*** t7501-commit.sh ***
* ok 1: initial status
* ok 2: fail initial amend
* ok 3: initial commit
* ok 4: invalid options 1
* ok 5: invalid options 2
* ok 6: using paths with -a
* ok 7: using paths with --interactive
* ok 8: using invalid commit with -C
* ok 9: testing nothing to commit
* ok 10: next commit
* ok 11: commit message from non-existing file
* ok 12: empty commit message
* ok 13: commit message from file
* ok 14: amend commit
* ok 15: passing -m and -F
* ok 16: using message from other commit
* ok 17: editing message from other commit
* ok 18: message from stdin
* ok 19: overriding author from command line
* ok 20: interactive add
* ok 21: showing committed revisions
* ok 22: validate git-rev-list output.
* ok 23: partial commit that involves removal (1)
* ok 24: partial commit that involves removal (2)
* ok 25: partial commit that involves removal (3)
* ok 26: amend commit to fix author
* ok 27: sign off (1)
* ok 28: sign off (2)
* ok 29: multiple -m
* ok 30: amend commit to fix author
* ok 31: git commit <file> with dirty index
* ok 32: same tree (single parent)
* ok 33: same tree (single parent) --allow-empty
* ok 34: same tree (merge and amend merge)
* ok 35: amend using the message from another commit
* ok 36: amend using the message from a commit named with tag
* passed all 36 test(s)
*** t7502-commit.sh ***
* ok 1: the basics
* ok 2: partial
* ok 3: partial modification in a subdirecotry
* ok 4: partial removal
* ok 5: sign off
* ok 6: multiple -m
* ok 7: verbose
* ok 8: cleanup commit messages (verbatim,-t)
* ok 9: cleanup commit messages (verbatim,-F)
* ok 10: cleanup commit messages (verbatim,-m)
* ok 11: cleanup commit messages (whitespace,-F)
* ok 12: cleanup commit messages (strip,-F)
* ok 13: cleanup commit messages (strip,-F,-e)
* passed all 13 test(s)
*** t7502-status.sh ***
* ok 1: setup
* ok 2: status (1)
* ok 3: status (2)
* ok 4: status with relative paths
* ok 5: status without relative paths
* ok 6: status of partial commit excluding new file in index
* passed all 6 test(s)
*** t7503-pre-commit-hook.sh ***
* ok 1: with no hook
* ok 2: --no-verify with no hook
* ok 3: with succeeding hook
* ok 4: --no-verify with succeeding hook
* ok 5: with failing hook
* ok 6: --no-verify with failing hook
* ok 7: with non-executable hook
* ok 8: --no-verify with non-executable hook
* passed all 8 test(s)
*** t7504-commit-msg-hook.sh ***
* ok 1: with no hook
* ok 2: with no hook (editor)
* ok 3: --no-verify with no hook
* ok 4: --no-verify with no hook (editor)
* ok 5: with succeeding hook
* ok 6: with succeeding hook (editor)
* ok 7: --no-verify with succeeding hook
* ok 8: --no-verify with succeeding hook (editor)
* ok 9: with failing hook
* ok 10: with failing hook (editor)
* ok 11: --no-verify with failing hook
* ok 12: --no-verify with failing hook (editor)
* ok 13: with non-executable hook
* ok 14: with non-executable hook (editor)
* ok 15: --no-verify with non-executable hook
* ok 16: --no-verify with non-executable hook (editor)
* ok 17: hook edits commit message
* ok 18: hook edits commit message (editor)
* ok 19: hook doesn't edit commit message
* ok 20: hook doesn't edit commit message (editor)
* passed all 20 test(s)
*** t7600-merge.sh ***
* ok 1: setup
* ok 2: test option parsing
* ok 3: merge c0 with c1
* ok 4: merge c1 with c2
* ok 5: merge c1 with c2 and c3
* ok 6: merge c0 with c1 (no-commit)
* ok 7: merge c1 with c2 (no-commit)
* ok 8: merge c1 with c2 and c3 (no-commit)
* ok 9: merge c0 with c1 (squash)
* ok 10: merge c1 with c2 (squash)
* ok 11: merge c1 with c2 and c3 (squash)
* ok 12: merge c1 with c2 (no-commit in config)
* ok 13: merge c1 with c2 (squash in config)
* ok 14: override config option -n
* ok 15: override config option --summary
* ok 16: merge c1 with c2 (override --no-commit)
* ok 17: merge c1 with c2 (override --squash)
* ok 18: merge c0 with c1 (no-ff)
* ok 19: merge c0 with c1 (ff overrides no-ff)
* passed all 19 test(s)
*** t8001-annotate.sh ***
* ok 1: prepare reference tree
* ok 2: check all lines blamed on A
* ok 3: Setup new lines blamed on B
* ok 4: Two lines blamed on A, two on B
* ok 5: merge-setup part 1
* ok 6: Two lines blamed on A, two on B, two on B1
* ok 7: merge-setup part 2
* ok 8: Two lines blamed on A, one on B, one on B2
* ok 9: merge-setup part 3
* ok 10: Two lines blamed on A, one on B, two on B1, one on B2
* ok 11: Annotating an old revision works
* ok 12: Annotating an old revision works
* ok 13: merge-setup part 4
* ok 14: Two lines blamed on A, one on B, two on B1, one on B2, one on A U Thor
* ok 15: an incomplete line added
* ok 16: With incomplete lines.
* ok 17: some edit
* ok 18: some edit
* ok 19: Annotating an old revision works
* passed all 19 test(s)
*** t8002-blame.sh ***
* ok 1: prepare reference tree
* ok 2: check all lines blamed on A
* ok 3: Setup new lines blamed on B
* ok 4: Two lines blamed on A, two on B
* ok 5: merge-setup part 1
* ok 6: Two lines blamed on A, two on B, two on B1
* ok 7: merge-setup part 2
* ok 8: Two lines blamed on A, one on B, one on B2
* ok 9: merge-setup part 3
* ok 10: Two lines blamed on A, one on B, two on B1, one on B2
* ok 11: Annotating an old revision works
* ok 12: Annotating an old revision works
* ok 13: merge-setup part 4
* ok 14: Two lines blamed on A, one on B, two on B1, one on B2, one on A U Thor
* ok 15: an incomplete line added
* ok 16: With incomplete lines.
* ok 17: some edit
* ok 18: some edit
* passed all 18 test(s)
*** t8003-blame.sh ***
* ok 1: setup
* ok 2: straight copy without -C
* ok 3: straight move without -C
* ok 4: straight copy with -C
* ok 5: straight move with -C
* ok 6: straight copy with -C -C
* ok 7: straight move with -C -C
* ok 8: append without -C
* ok 9: append with -C
* ok 10: append with -C -C
* ok 11: append with -C -C -C
* ok 12: blame wholesale copy
* ok 13: blame wholesale copy and more
* passed all 13 test(s)
*** t8004-blame.sh ***
* ok 1: setup first case
* ok 2: blame runs on unconflicted file while other file has conflicts
* ok 3: blame runs on conflicted file in stages 1,3
* passed all 3 test(s)
*** t9001-send-email.sh ***
* ok 1: prepare reference tree
* ok 2: Setup helper tool
* ok 3: Extract patches
* ok 4: Send patches
* ok 5: Verify commandline
* ok 6: Show all headers
* ok 7: reject long lines
* ok 8: no patch was sent
* ok 9: allow long lines with --no-validate
* passed all 9 test(s)
*** t9100-git-svn-basic.sh ***
define NO_SVN_TESTS to skip git-svn tests
* ok 1: initialize git-svn
* ok 2: import an SVN revision into git
* ok 3: checkout from svn
* ok 4: try a deep --rmdir with a commit
* ok 5: detect node change from file to directory #1
* ok 6: detect node change from directory to file #1
* ok 7: detect node change from file to directory #2
* ok 8: detect node change from directory to file #2
* ok 9: remove executable bit from a file
* ok 10: add executable bit back file
* ok 11: executable file becomes a symlink to bar/zzz (file)
* ok 12: new symlink is added to a file that was also just made executable
* ok 13: modify a symlink to become a file
UTF-8 locale not set, test skipped ()
* ok 14: test fetch functionality (svn => git) with alternate GIT_SVN_ID
* ok 15: check imported tree checksums expected tree checksums
* ok 16: exit if remote refs are ambigious
* ok 17: exit if init-ing a would clobber a URL
* ok 18: init allows us to connect to another directory in the same repo
* ok 19: able to dcommit to a subdirectory
* ok 20: able to set-tree to a subdirectory
* passed all 20 test(s)
*** t9101-git-svn-props.sh ***
* ok 1: checkout working copy from svn
* ok 2: setup some commits to svn
* ok 3: initialize git-svn
* ok 4: fetch revisions from svn
* ok 5: test svn:keywords ignoring
* ok 6: raw $Id$ found in kw.c
* ok 7: propset CR on crlf files
* ok 8: fetch and pull latest from svn and checkout a new wc
* ok 9: Comparing crlf
* ok 10: Comparing ne_crlf
* ok 11: Comparing lf
* ok 12: Comparing ne_lf
* ok 13: Comparing cr
* ok 14: Comparing ne_cr
* ok 15: Comparing empty_cr
* ok 16: Comparing empty_lf
* ok 17: Comparing empty
* ok 18: Comparing empty_crlf
* ok 19: Set CRLF on cr files
* ok 20: fetch and pull latest from svn
* ok 21: CRLF + $Id$
* ok 22: CRLF + $Id$ (no newline)
* FAIL 23: test show-ignore
cd test_wc &&
mkdir -p deeply/nested/directory &&
touch deeply/nested/directory/.keep &&
svn add deeply &&
svn up &&
svn propset -R svn:ignore 'no-such-file*' .
svn commit -m 'propset svn:ignore'
cd .. &&
git-svn show-ignore > show-ignore.got &&
cmp show-ignore.expect show-ignore.got
* FAIL 24: test create-ignore
git-svn fetch && git pull . remotes/git-svn &&
git-svn create-ignore &&
cmp ./.gitignore create-ignore.expect &&
cmp ./deeply/.gitignore create-ignore.expect &&
cmp ./deeply/nested/.gitignore create-ignore.expect &&
cmp ./deeply/nested/directory/.gitignore create-ignore.expect &&
git ls-files -s | grep gitignore | cmp - create-ignore-index.expect
* FAIL 25: test propget
git-svn propget svn:ignore . | cmp - prop.expect &&
cd deeply &&
git-svn propget svn:ignore . | cmp - ../prop.expect &&
git-svn propget svn:entry:committed-rev nested/directory/.keep | cmp - ../prop2.expect &&
git-svn propget svn:ignore .. | cmp - ../prop.expect &&
git-svn propget svn:ignore nested/ | cmp - ../prop.expect &&
git-svn propget svn:ignore ./nested | cmp - ../prop.expect &&
git-svn propget svn:ignore .././deeply/nested | cmp - ../prop.expect
* FAIL 26: test proplist
git-svn proplist . | cmp - prop.expect &&
git-svn proplist nested/directory/.keep | cmp - prop2.expect
* failed 4 among 26 test(s)
make[2]: *** [t9101-git-svn-props.sh] Error 1
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/t'
make[1]: *** [test] Error 2
make[1]: Leaving directory `/build/buildd/git-core-1.5.4.3'
make[1]: Entering directory `/build/buildd/git-core-1.5.4.3'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/git-gui'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/gitk-git'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/gitk-git'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
make[3]: Entering directory `/build/buildd/git-core-1.5.4.3/perl'
make[3]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/perl'
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/templates'
make[2]: Leaving directory `/build/buildd/git-core-1.5.4.3/templates'
/usr/bin/make -C t/ all
make[2]: Entering directory `/build/buildd/git-core-1.5.4.3/t'
*** t0000-basic.sh ***
* expecting success: cmp -s /dev/null should-be-empty
* ok 1: .git/objects should be empty after git init in an empty repo.
* expecting success: test $(wc -l < full-of-directories) = 3
* ok 2: .git/objects should have 3 subdirectories.
* expecting failure: 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 3: git update-index without --add should fail adding.
* expecting success: git update-index --add should-be-empty
* ok 4: git update-index with --add should succeed.
* expecting success: tree=$(git write-tree)
* ok 5: writing tree out with git write-tree
* expecting success: test "$tree" = 7bb943559a305bdd6bdee2cef6e5df2413c3d30a
* ok 6: validate object ID of a known tree.
* expecting failure: 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 7: git update-index without --remove should fail removing.
* expecting success: git update-index --remove should-be-empty
* ok 8: git update-index with --remove should be able to remove.
* expecting success: tree=$(git write-tree)
* ok 9: git write-tree should be able to write an empty tree.
* expecting success: test "$tree" = 4b825dc642cb6eb9a060e54bf8d69288fbee4904
* ok 10: validate object ID of a known tree.
* expecting success: find path* ! -type d -print | xargs git update-index --add
* ok 11: adding various types of objects with git update-index --add.
* expecting success: git ls-files --stage >current
* ok 12: showing stage with git ls-files --stage
* expecting success: diff current expected
* ok 13: validate git ls-files output for a known tree.
* expecting success: tree=$(git write-tree)
* ok 14: writing tree out with git write-tree.
* expecting success: test "$tree" = 087704a96baf1c2d1c869a8b084481e121c88b5b
* ok 15: validate object ID for a known tree.
* expecting success: git ls-tree $tree >current
* ok 16: showing tree with git ls-tree
* expecting success: diff current expected
* ok 17: git ls-tree output for a known tree.
* expecting success: git ls-tree -r $tree >current
* ok 18: showing tree with git ls-tree -r
* expecting success: diff current expected
* ok 19: git ls-tree -r output for a known tree.
* expecting success: git ls-tree -r -t $tree >current
* ok 20: showing tree with git ls-tree -r -t
* expecting success: diff current expected
* ok 21: git ls-tree -r output for a known tree.
* expecting success: ptree=$(git write-tree --prefix=path3)
* ok 22: writing partial tree out with git write-tree --prefix.
* expecting success: test "$ptree" = 21ae8269cacbe57ae09138dcc3a2887f904d02b3
* ok 23: validate object ID for a known tree.
* expecting success: ptree=$(git write-tree --prefix=path3/subp3)
* ok 24: writing partial tree out with git write-tree --prefix.
* expecting success: test "$ptree" = 3c5e5399f3a333eddecce7a9b9465b63f65f51e2
* ok 25: validate object ID for a known tree.
* expecting success: git update-index --index-info < badobjects
* ok 26: put invalid objects into the index.
* expecting failure: git write-tree
error: invalid object 1000000000000000000000000000000000000000
fatal: git-write-tree: error building trees
* ok 27: writing this tree without --missing-ok.
* expecting success: git write-tree --missing-ok
851a367613bb6e1f0b2b518323eafed530b5b4c4
* ok 28: writing this tree with --missing-ok.
* expecting success: git read-tree $tree &&
test -f .git/index &&
newtree=$(git write-tree) &&
test "$newtree" = "$tree"
* ok 29: git read-tree followed by write-tree should be idempotent.
* expecting success: git diff-files >current && diff >/dev/null -b current expected
* ok 30: validate git diff-files output for a know cache/work tree state.
* expecting success: git update-index --refresh
* ok 31: git update-index --refresh should succeed.
* expecting success: git diff-files >current && cmp -s current /dev/null
* ok 32: 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 33: 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 34: 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 1c9b398d4e47b08eb11ddc572883d647ed18c880 ignored
* ok 35: 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 36: update-index D/F conflict
* 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-absolute-path $dir2)" &&
file="$dir"/index &&
test "$file" = "$(test-absolute-path $dir2/index)" &&
ln -s ../first/file .git/syml &&
sym="$(cd first; pwd -P)"/file &&
test "$sym" = "$(test-absolute-path $dir2/syml)"
* ok 37: absolute path works as expected
* passed all 37 test(s)
*** t0001-init.sh ***
* expecting success:
(
unset GIT_DIR GIT_WORK_TREE
mkdir plain &&
cd plain &&
git init
) &&
check_config plain/.git false unset
Initialized empty Git repository in .git/
* ok 1: plain
* expecting success:
if (
unset GIT_DIR
mkdir plain-wt &&
cd plain-wt &&
GIT_WORK_TREE=$(pwd) git init
)
then
echo Should have failed -- GIT_WORK_TREE should not be used
false
fi
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
* ok 2: plain with GIT_WORK_TREE
* expecting success:
(
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG
mkdir plain-bare-1 &&
cd plain-bare-1 &&
git --bare init
) &&
check_config plain-bare-1 true unset
Initialized empty Git repository in /build/buildd/git-core-1.5.4.3/t/trash/plain-bare-1/
* ok 3: plain bare
* expecting success:
if (
unset GIT_DIR GIT_CONFIG
mkdir plain-bare-2 &&
cd plain-bare-2 &&
GIT_WORK_TREE=$(pwd) git --bare init
)
then
echo Should have failed -- GIT_WORK_TREE should not be used
false
fi
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
* ok 4: plain bare with GIT_WORK_TREE
* expecting success:
(
unset GIT_CONFIG
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 git-dir-bare.git/
* ok 5: GIT_DIR bare
* expecting success:
(
unset GIT_CONFIG
mkdir non-bare &&
cd non-bare &&
GIT_DIR=.git git init
) &&
check_config non-bare/.git false unset
Initialized empty Git repository in .git/
* ok 6: GIT_DIR non-bare
* expecting success:
(
unset GIT_CONFIG
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 git-dir-wt-1.git/
* ok 7: GIT_DIR & GIT_WORK_TREE (1)
* expecting success:
if (
unset GIT_CONFIG
mkdir git-dir-wt-2.git &&
GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-2.git git --bare init
)
then
echo Should have failed -- --bare should not be used
false
fi
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
* ok 8: GIT_DIR & GIT_WORK_TREE (2)
* passed all 8 test(s)
*** t0003-attributes.sh ***
* expecting success:
mkdir -p a/b/d a/c &&
(
echo "f test=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/*"
) >a/b/.gitattributes
* ok 1: setup
* expecting success:
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/*"
* ok 2: attribute test
* passed all 2 test(s)
*** t0010-racy-git.sh ***
* 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)
*** t0020-crlf.sh ***
* 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 &&
echo happy.
Created initial commit 8f7369f: initial
3 files changed, 12 insertions(+), 0 deletions(-)
create mode 100644 dir/two
create mode 100644 one
create mode 100644 three
happy.
* ok 1: setup
* expecting success:
rm -f tmp one dir/two three &&
git read-tree --reset -u HEAD &&
git config core.autocrlf input &&
for f in one dir/two
do
append_cr <$f >tmp && mv -f tmp $f &&
git update-index -- $f || {
echo Oops
false
break
}
done &&
differs=`git diff-index --cached HEAD` &&
test -z "$differs" || {
echo Oops "$differs"
false
}
* ok 2: update with autocrlf=input
* expecting success:
rm -f tmp one dir/two three &&
git read-tree --reset -u HEAD &&
git config core.autocrlf true &&
for f in one dir/two
do
append_cr <$f >tmp && mv -f tmp $f &&
git update-index -- $f || {
echo "Oops $f"
false
break
}
done &&
differs=`git diff-index --cached HEAD` &&
test -z "$differs" || {
echo Oops "$differs"
false
}
* ok 3: update with autocrlf=true
* expecting success:
rm -f tmp one dir/two three &&
git config core.autocrlf true &&
git read-tree --reset -u HEAD &&
for f in one dir/two
do
remove_cr "$f" >tmp && mv -f tmp $f &&
git update-index -- $f || {
echo "Eh? $f"
false
break
}
done &&
test "$one" = `git hash-object --stdin <one` &&
test "$two" = `git hash-object --stdin <dir/two` &&
differs=`git diff-index --cached HEAD` &&
test -z "$differs" || {
echo Oops "$differs"
false
}
* ok 4: checkout with autocrlf=true
* expecting success:
rm -f tmp one dir/two three &&
git config core.autocrlf input &&
git read-tree --reset -u HEAD &&
for f in one dir/two
do
if remove_cr "$f" >/dev/null
then
echo "Eh? $f"
false
break
else
git update-index -- $f
fi
done &&
test "$one" = `git hash-object --stdin <one` &&
test "$two" = `git hash-object --stdin <dir/two` &&
differs=`git diff-index --cached HEAD` &&
test -z "$differs" || {
echo Oops "$differs"
false
}
* ok 5: 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 &&
test "$patched" = "`git hash-object --stdin <one`" || {
echo "Eh? apply without index"
false
}
* ok 6: 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 &&
test "$patched" = `git rev-parse :one` || {
echo "Eh? apply with --cached"
false
}
* ok 7: 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 &&
test "$patched" = `git rev-parse :one` &&
test "$patched" = `git hash-object --stdin <one` || {
echo "Eh? apply with --index"
false
}
* ok 8: 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 &&
test "$patched" = "`remove_cr one | git hash-object --stdin`" || {
echo "Eh? apply without index"
false
}
* ok 9: 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 &&
test "$patched" = `git rev-parse :one` || {
echo "Eh? apply without index"
false
}
* ok 10: 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 &&
test "$patched" = `git rev-parse :one` &&
test "$patched" = "`remove_cr one | git hash-object --stdin`" || {
echo "Eh? apply with --index"
false
}
* ok 11: 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 &&
if remove_cr dir/two >/dev/null
then
echo "Huh?"
false
else
: happy
fi &&
if remove_cr one >/dev/null
then
: happy
else
echo "Huh?"
false
fi &&
if remove_cr three >/dev/null
then
echo "Huh?"
false
else
: happy
fi
* ok 12: .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 &&
if remove_cr dir/two >/dev/null
then
echo "Huh?"
false
else
: happy
fi
* ok 13: .gitattributes says two is input
* expecting success:
rm -f tmp one dir/two three &&
echo "t* crlf" >.gitattributes &&
git read-tree --reset -u HEAD &&
if remove_cr dir/two >/dev/null
then
: happy
else
echo "Huh?"
false
fi &&
if remove_cr three >/dev/null
then
: happy
else
echo "Huh?"
false
fi
* ok 14: .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 &&
if remove_cr one >/dev/null
then
echo "Eh? one should not have CRLF"
false
else
: happy
fi &&
remove_cr three >/dev/null || {
echo "Eh? three should still have CRLF"
false
}
Created commit 0bc318c: Add .gitattributes
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 .gitattributes
* ok 15: 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 &&
if remove_cr one >/dev/null
then
echo "Eh? one should not have CRLF"
false
else
: happy
fi &&
remove_cr three >/dev/null || {
echo "Eh? three should still have CRLF"
false
}
* ok 16: 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 &&
if remove_cr one >/dev/null
then
echo "Eh? one should not have CRLF"
false
else
: happy
fi &&
remove_cr three >/dev/null || {
echo "Eh? three should still have CRLF"
false
}
* ok 17: 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 &&
if remove_cr one >/dev/null
then
echo "Eh? one should not have CRLF"
false
else
: happy
fi &&
remove_cr three >/dev/null || {
echo "Eh? three should still have CRLF"
false
}
* ok 18: in-tree .gitattributes (4)
* expecting success:
echo "three +crlf" >>.gitattributes &&
git diff
+crlf is not a valid attribute name: .gitattributes:3
diff --git a/.gitattributes b/.gitattributes
index e4c8c2d..880a614 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1,3 @@
t* crlf
one -crlf
+three +crlf
* ok 19: invalid .gitattributes (must not crash)
* passed all 19 test(s)
*** t0021-conversion.sh ***
* 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
* ok 1: setup
* expecting success:
cmp test.o 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 &&
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"
} > expanded-keywords &&
{
echo "File with expanded keywords"
echo "\$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c \$"
echo "\$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c \$"
echo "\$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c \$"
echo "\$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c \$"
echo "\$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c \$"
echo "\$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c \$"
echo "\$Id: NoTerminatingSymbol"
} > expected-output &&
git add expanded-keywords &&
git commit -m "File with keywords expanded" &&
echo "expanded-keywords ident" >> .gitattributes &&
rm -f expanded-keywords &&
git checkout -- expanded-keywords &&
cat expanded-keywords &&
cmp expanded-keywords expected-output
Created initial commit ae52f85: File with keywords expanded
4 files changed, 17 insertions(+), 0 deletions(-)
create mode 100644 expanded-keywords
create mode 100644 test
create mode 100644 test.i
create mode 100644 test.t
File with expanded keywords
$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c $
$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c $
$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c $
$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c $
$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c $
$Id: 4f21723e7b15065df7de95bd46c8ba6fb1818f4c $
$Id: NoTerminatingSymbol
* ok 3: expanded_in_repo
* passed all 3 test(s)
*** t0022-crlf-rename.sh ***
* expecting success:
cat ../t0022-crlf-rename.sh >sample &&
git add sample &&
test_tick &&
git commit -m Initial &&
sed -e "s/\$/
/" ../t0022-crlf-rename.sh >elpmas &&
git add elpmas &&
rm -f sample &&
test_tick &&
git commit -a -m Second
Created initial commit 85a16f2: Initial
1 files changed, 33 insertions(+), 0 deletions(-)
create mode 100644 sample
Created commit ec6a5d7: Second
1 files 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 &&
diff -u expect actual
* ok 2: diff -M
* passed all 2 test(s)
*** t0023-crlf-am.sh ***
* expecting success:
git config core.autocrlf true &&
echo foo >bar &&
git add bar &&
test_tick &&
git commit -m initial
Created initial commit 1adb513: initial
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 bar
* ok 1: setup
* expecting success:
git am --binary -3 <patchfile &&
git diff-files --name-status --exit-code
Applying test1
* ok 2: am
* passed all 2 test(s)
*** t0030-stripspace.sh ***
* expecting success:
echo "$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual &&
echo "$ttt$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual &&
echo "$ttt$ttt$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual &&
echo "$ttt$ttt$ttt$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual
* ok 1: long lines without spaces should be unchanged
* expecting success:
echo "$sss$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual &&
echo "$sss$sss$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual &&
echo "$sss$sss$sss$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual
* ok 2: lines with spaces at the beginning should be unchanged
* expecting success:
echo "$ttt$sss$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual &&
echo "$ttt$sss$sss$ttt" >expect &&
git stripspace <expect >actual &&
git diff expect actual
* ok 3: lines with intermediate spaces should be unchanged
* expecting success:
printf "$ttt
$ttt
" > expect &&
printf "$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
$ttt
" > expect &&
printf "$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt
$ttt
" > expect &&
printf "$ttt$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt
" > expect &&
printf "$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt$ttt
" > expect &&
printf "$ttt
$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt$ttt$ttt
" > expect &&
printf "$ttt
$ttt$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt
" > expect &&
printf "$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
$ttt
" > expect &&
printf "$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt
$ttt
" > expect &&
printf "$ttt$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt
" > expect &&
printf "$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt$ttt
" > expect &&
printf "$ttt
$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt$ttt$ttt
" > expect &&
printf "$ttt
$ttt$ttt$ttt
" | git stripspace >actual &&
git diff expect actual
* ok 4: consecutive blank lines should be unified
* expecting success:
> expect &&
printf "
" | git stripspace >actual &&
git diff expect actual &&
printf "
" | git stripspace >actual &&
git diff expect actual &&
printf "$sss
$sss
$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss
$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "
$sss
$sss$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss$sss$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "
$sss$sss$sss$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "
$sss$sss$sss$sss
" | git stripspace >actual &&
git diff expect actual
* ok 5: only consecutive blank lines should be completely removed
* expecting success:
printf "$ttt
" > expect &&
printf "
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
" > expect &&
printf "
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
" > expect &&
printf "
$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt
" > expect &&
printf "
$ttt$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt$ttt
" > expect &&
printf "
$ttt$ttt$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
" > expect &&
printf "$sss
$sss
$sss
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "
$sss
$sss$sss
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss
$sss
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss$sss
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "
$sss$sss$sss
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "
$sss$sss$sss
$ttt
" | git stripspace >actual &&
git diff expect actual
* ok 6: consecutive blank lines at the beginning should be removed
* expecting success:
printf "$ttt
" > expect &&
printf "$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
" > expect &&
printf "$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
" > expect &&
printf "$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt
" > expect &&
printf "$ttt$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt$ttt
" > expect &&
printf "$ttt$ttt$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
" > expect &&
printf "$ttt
$sss
$sss
$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$sss
$sss$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$sss$sss
$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$sss$sss$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$sss$sss$sss
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$sss$sss$sss
" | git stripspace >actual &&
git diff 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 failure:
printf "$ttt$sss" | git stripspace | grep -q " " ||
printf "$ttt$ttt$sss" | git stripspace | grep -q " " ||
printf "$ttt$ttt$ttt$sss" | git stripspace | grep -q " " ||
printf "$ttt$sss$sss" | git stripspace | grep -q " " ||
printf "$ttt$ttt$sss$sss" | git stripspace | grep -q " " ||
printf "$ttt$sss$sss$sss" | git stripspace | grep -q " "
* ok 10: text plus spaces without newline at end should not show spaces
* expecting success:
printf "$ttt
" >expect &&
printf "$ttt$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
" >expect &&
printf "$ttt$sss$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
" >expect &&
printf "$ttt$sss$sss$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
" >expect &&
printf "$ttt$ttt$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
" >expect &&
printf "$ttt$ttt$sss$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt$ttt
" >expect &&
printf "$ttt$ttt$ttt$sss" | git stripspace >actual &&
git diff expect actual
* ok 11: text plus spaces without newline should show the correct lines
* expecting failure:
echo "$ttt$sss" | git stripspace | grep -q " " ||
echo "$ttt$ttt$sss" | git stripspace | grep -q " " ||
echo "$ttt$ttt$ttt$sss" | git stripspace | grep -q " " ||
echo "$ttt$sss$sss" | git stripspace | grep -q " " ||
echo "$ttt$ttt$sss$sss" | git stripspace | grep -q " " ||
echo "$ttt$sss$sss$sss" | git stripspace | grep -q " "
* ok 12: text plus spaces at end should not show spaces
* expecting success:
echo "$ttt" >expect &&
echo "$ttt$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$ttt" >expect &&
echo "$ttt$sss$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$ttt" >expect &&
echo "$ttt$sss$sss$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$ttt$ttt" >expect &&
echo "$ttt$ttt$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$ttt$ttt" >expect &&
echo "$ttt$ttt$sss$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$ttt$ttt$ttt" >expect &&
echo "$ttt$ttt$ttt$sss" | git stripspace >actual &&
git diff expect actual
* ok 13: text plus spaces at end should be cleaned and newline must remain
* expecting success:
printf "" >expect &&
echo | git stripspace >actual &&
git diff expect actual &&
echo "$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$sss$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$sss$sss$sss" | git stripspace >actual &&
git diff expect actual &&
echo "$sss$sss$sss$sss" | git stripspace >actual &&
git diff expect actual
* ok 14: spaces with newline at end should be replaced with empty string
* expecting failure:
printf "" | git stripspace | grep -q " " ||
printf "$sss" | git stripspace | grep -q " " ||
printf "$sss$sss" | git stripspace | grep -q " " ||
printf "$sss$sss$sss" | git stripspace | grep -q " " ||
printf "$sss$sss$sss$sss" | git stripspace | grep -q " "
* ok 15: spaces without newline at end should not show spaces
* expecting success:
printf "" >expect &&
printf "" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss$sss" | git stripspace >actual &&
git diff expect actual &&
printf "$sss$sss$sss$sss" | git stripspace >actual &&
git diff expect actual
* ok 16: spaces without newline at end should be replaced with empty string
* expecting success:
printf "$ttt$ttt
$ttt
" >expect &&
printf "$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt$ttt
$ttt
" >expect &&
printf "$ttt
$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt
$ttt
$ttt$ttt
" >expect &&
printf "$ttt
$ttt
$ttt
$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt
$ttt$ttt
$ttt
" >expect &&
printf "$ttt
$ttt
$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt$ttt
$ttt
$ttt$ttt
" >expect &&
printf "$ttt$ttt
$ttt
$ttt$ttt
" | git stripspace >actual &&
git diff expect actual &&
printf "$ttt
$ttt$ttt
$ttt
" >expect &&
printf "$ttt
$ttt$ttt
$ttt
" | git stripspace >actual &&
git diff 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
* passed all 18 test(s)
*** t0040-parse-options.sh ***
* expecting success:
! test-parse-options -h > output 2> output.err &&
test ! -s output &&
git diff expect.err output.err
* ok 1: test help
* expecting success:
test-parse-options -s123 -b -i 1729 -b > output 2> output.err &&
git diff expect output &&
test ! -s output.err
* ok 2: short options
* expecting success:
test-parse-options --boolean --integer 1729 --boolean --string2=321 \
> output 2> output.err &&
test ! -s output.err &&
git diff expect output
* ok 3: long options
* expecting success:
test-parse-options a1 --string 123 b1 --boolean -j 13 -- --boolean \
> output 2> output.err &&
test ! -s output.err &&
git diff expect output
* ok 4: intermingled arguments
* expecting success:
test-parse-options --int 2 --boolean --no-bo > output 2> output.err &&
test ! -s output.err &&
git diff expect output
* ok 5: unambiguously abbreviated option
* expecting success:
test-parse-options --int=2 > output 2> output.err &&
test ! -s output.err &&
git diff expect output
* ok 6: unambiguously abbreviated option with "="
* expecting failure:
test-parse-options --strin 123;
test $? != 129
error: Ambiguous option: strin (could be --string or --string2)
usage: test-parse-options <options>
-b, --boolean get a boolean
-i, --integer <n> get a integer
-j <n> get a integer, too
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
* ok 7: ambiguously abbreviated option
* expecting success:
test-parse-options --st 123 > output 2> output.err &&
test ! -s output.err &&
git diff expect output
* ok 8: non ambiguous option (after two options it abbreviates)
* expecting success:
! test-parse-options -boolean > output 2> output.err &&
test ! -s output &&
git diff expect.err output.err
* ok 9: detect possible typos
* passed all 9 test(s)
*** t1000-read-tree-m-3way.sh ***
* 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 45: 3-way merge with git read-tree -m, empty cache
* expecting success: rm -fr [NDMALTS][NDMALTSF] Z &&
rm .git/index &&
git read-tree 997bbc4a0a51e0574168a4f637739380edebe4d7 &&
git checkout-index -f -u -a &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 46: 3-way merge with git read-tree -m, match H
* expecting failure: rm -f .git/index XX &&
echo XX >XX &&
git update-index --add XX &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
* 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
* 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
* ok 51: 3 - matching A alone is OK in !O && A && !B case.
* expecting failure: rm -f .git/index AN &&
cp .orig-A/AN AN &&
echo extra >>AN &&
git update-index --add AN &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 53: 4 - must match and be up-to-date in !O && A && B && A!=B case.
* expecting failure: rm -f .git/index AA &&
cp .orig-A/AA AA &&
git update-index --add AA &&
echo extra >>AA &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 failure: rm -f .git/index AA &&
cp .orig-A/AA AA &&
echo extra >>AA &&
git update-index --add AA &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 57: 5 - must match in !O && A && B && A==B case.
* expecting failure: rm -f .git/index LL &&
cp .orig-A/LL LL &&
echo extra >>LL &&
git update-index --add LL &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: Entry 'LL' would be overwritten by merge. Cannot merge.
* ok 58: 5 (fail) - must match A in !O && A && B && A==B case.
* expecting failure: rm -f .git/index DD &&
echo DD >DD
git update-index --add DD &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: Entry 'DD' would be overwritten by merge. Cannot merge.
* ok 59: 6 - must not exist in O && !A && !B case
* expecting failure: rm -f .git/index DM &&
cp .orig-B/DM DM &&
git update-index --add DM &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: Entry 'DM' would be overwritten by merge. Cannot merge.
* ok 60: 7 - must not exist in O && !A && B && O!=B case
* expecting failure: rm -f .git/index DN &&
cp .orig-B/DN DN &&
git update-index --add DN &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 62: 9 - must match and be up-to-date in O && A && !B && O!=A case
* expecting failure: rm -f .git/index MD &&
cp .orig-A/MD MD &&
git update-index --add MD &&
echo extra >>MD &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 failure: rm -f .git/index MD &&
cp .orig-A/MD MD &&
echo extra >>MD &&
git update-index --add MD &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 65: 10 - must match and be up-to-date in O && A && !B && O==A case
* expecting failure: rm -f .git/index ND &&
cp .orig-A/ND ND &&
git update-index --add ND &&
echo extra >>ND &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 failure: rm -f .git/index ND &&
cp .orig-A/ND ND &&
echo extra >>ND &&
git update-index --add ND &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 68: 11 - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
* expecting failure: rm -f .git/index MM &&
cp .orig-A/MM MM &&
git update-index --add MM &&
echo extra >>MM &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 failure: rm -f .git/index MM &&
cp .orig-A/MM MM &&
echo extra >>MM &&
git update-index --add MM &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 72: 12 - must match A in O && A && B && O!=A && A==B case
* expecting failure: rm -f .git/index SS &&
cp .orig-A/SS SS &&
echo extra >>SS &&
git update-index --add SS &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 77: 14 - may match B in O && A && B && O==A && O!=B case
* expecting failure: rm -f .git/index NM &&
cp .orig-A/NM NM &&
git update-index --add NM &&
echo extra >>NM &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 failure: rm -f .git/index NM &&
cp .orig-A/NM NM &&
echo extra >>NM &&
git update-index --add NM &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
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 &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226 &&
check_result
* ok 81: 15 - must match A in O && A && B && O==A && O==B case
* expecting failure: rm -f .git/index NN &&
cp .orig-A/NN NN &&
echo extra >>NN &&
git update-index --add NN &&
git read-tree -m 3fe085e0589de4327971d50e416fc292dd00fbfe 997bbc4a0a51e0574168a4f637739380edebe4d7 76d47d681d7f1d4fa975334a9a0ba8a6eeea2226
fatal: 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` &&
git read-tree -m $tree0 $tree1 $tree1 $tree0 &&
git ls-files --stage
read-tree: warning #16 detected
head 100644 ecbec6db011caa3ae26739812f092f76875fe6b6 1 F16
remote 100644 bcf4afda2c30299bf6538240d40bcb8fb3857691 1 F16
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)
*** t1001-read-tree-m-2way.sh ***
* 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 a84bea48d4a65941237a1b3f2ff9183c587868be
100644 blob ddecab218f1d9be94290870bd7feb2ca250eedc0 bozbar
100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol
100644 blob 766498d93a4b06057a8e49d23f4068f1170ff38f rezrov
treeM f1ddde56821fe484a99881139dd00299d1578a60
100644 blob b122a38d94a66f65ac8ec7438679fa782962300d bozbar
100644 blob 8e4020bb5a8d8c873b25de15933e75cc0fc275df frotz
100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol
:100644 100644 ddecab218f1d9be94290870bd7feb2ca250eedc0 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git diff M.out 1-3.out &&
check_cache_at bozbar dirty &&
check_cache_at frotz dirty &&
check_cache_at nitfol dirty
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $treeH &&
git checkout-index -u -f -q -a &&
git update-index --add yomin &&
read_tree_twoway $treeH $treeM &&
git ls-files --stage >4.out || return 1
git diff M.out 4.out >4diff.out
compare_change 4diff.out expected &&
check_cache_at yomin clean
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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 || return 1
git diff M.out 5.out >5diff.out
compare_change 5diff.out expected &&
check_cache_at yomin dirty
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $treeH &&
git checkout-index -u -f -q -a &&
git update-index --add frotz &&
read_tree_twoway $treeH $treeM &&
git ls-files --stage >6.out &&
git diff M.out 6.out &&
check_cache_at frotz clean
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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 &&
git diff M.out 7.out &&
check_cache_at frotz dirty
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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
fatal: Entry 'frotz' would be overwritten by merge. Cannot merge.
* ok 7: 8 - conflicting addition.
* expecting success: rm -f .git/index &&
git read-tree $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
fatal: Entry 'frotz' would be overwritten by merge. Cannot merge.
* ok 8: 9 - conflicting addition.
* expecting success: rm -f .git/index &&
git read-tree $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 &&
git diff M.out 10.out
100644 b122a38d94a66f65ac8ec7438679fa782962300d 0 bozbar
100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz
100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol
* ok 9: 10 - path removed.
* expecting success: rm -f .git/index &&
git read-tree $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
fatal: Entry 'rezrov' not uptodate. Cannot merge.
* ok 10: 11 - dirty path removed.
* expecting success: rm -f .git/index &&
git read-tree $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
fatal: Entry 'rezrov' would be overwritten by merge. Cannot merge.
* ok 11: 12 - unmatching local changes being removed.
* expecting success: rm -f .git/index &&
git read-tree $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
fatal: Entry 'rezrov' would be overwritten by merge. Cannot merge.
* ok 12: 13 - unmatching local changes being removed.
* expecting success: rm -f .git/index &&
git read-tree $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 || return 1
git diff M.out 14.out >14diff.out
compare_change 14diff.out expected &&
check_cache_at nitfol clean
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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 || return 1
git diff M.out 15.out >15diff.out
compare_change 15diff.out expected &&
check_cache_at nitfol dirty
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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
fatal: Entry 'bozbar' would be overwritten by merge. Cannot merge.
* ok 15: 16 - conflicting local change.
* expecting success: rm -f .git/index &&
git read-tree $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
fatal: Entry 'bozbar' would be overwritten by merge. Cannot merge.
* ok 16: 17 - conflicting local change.
* expecting success: rm -f .git/index &&
git read-tree $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 &&
git diff M.out 18.out &&
check_cache_at bozbar clean
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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 &&
git diff M.out 19.out &&
check_cache_at bozbar dirty
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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 &&
git diff M.out 20.out &&
check_cache_at bozbar dirty
100644 b122a38d94a66f65ac8ec7438679fa782962300d 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 &&
git read-tree $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
fatal: Entry 'bozbar' not uptodate. Cannot merge.
* ok 20: 21 - no local change, dirty cache.
* expecting success: rm -f .git/index &&
git read-tree $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
fatal: 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 &&
git diff 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.
* passed all 23 test(s)
*** t1002-read-tree-m-u-2way.sh ***
* 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 &&
sum bozbar frotz nitfol >M.sum &&
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 &&
git read-tree --reset -u $treeH &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >1-3.out &&
cmp M.out 1-3.out &&
sum bozbar frotz nitfol >actual3.sum &&
cmp M.sum actual3.sum &&
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 &&
git read-tree --reset -u $treeH &&
echo "+100644 X 0 yomin" >expected &&
echo yomin >yomin &&
git update-index --add yomin &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >4.out || return 1
diff -U0 M.out 4.out >4diff.out
compare_change 4diff.out expected &&
check_cache_at yomin clean &&
sum bozbar frotz nitfol >actual4.sum &&
cmp M.sum actual4.sum &&
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 &&
git read-tree --reset -u $treeH &&
git read-tree -m -u $treeH &&
echo yomin >yomin &&
git update-index --add yomin &&
echo yomin yomin >yomin &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >5.out || return 1
diff -U0 M.out 5.out >5diff.out
compare_change 5diff.out expected &&
check_cache_at yomin dirty &&
sum bozbar frotz nitfol >actual5.sum &&
cmp M.sum actual5.sum &&
: 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 &&
git read-tree --reset -u $treeH &&
echo frotz >frotz &&
git update-index --add frotz &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >6.out &&
diff -U0 M.out 6.out &&
check_cache_at frotz clean &&
sum bozbar frotz nitfol >actual3.sum &&
cmp M.sum actual3.sum &&
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 &&
git read-tree --reset -u $treeH &&
echo frotz >frotz &&
git update-index --add frotz &&
echo frotz frotz >frotz &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >7.out &&
diff -U0 M.out 7.out &&
check_cache_at frotz dirty &&
sum bozbar frotz nitfol >actual7.sum &&
if cmp M.sum actual7.sum; then false; else :; fi &&
: dirty index should have prevented -u from checking it out. &&
echo frotz frotz >frotz1 &&
diff frotz frotz1 &&
rm -f frotz1
frotz: dirty
M.sum actual7.sum differ: char 20, line 2
* ok 6: 7 - local addition already has the same.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo frotz frotz >frotz &&
git update-index --add frotz &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: Entry 'frotz' would be overwritten by merge. Cannot merge.
* ok 7: 8 - conflicting addition.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo frotz frotz >frotz &&
git update-index --add frotz &&
echo frotz >frotz &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: Entry 'frotz' would be overwritten by merge. Cannot merge.
* ok 8: 9 - conflicting addition.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo rezrov >rezrov &&
git update-index --add rezrov &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >10.out &&
cmp M.out 10.out &&
sum bozbar frotz nitfol >actual10.sum &&
cmp M.sum actual10.sum
* ok 9: 10 - path removed.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo rezrov >rezrov &&
git update-index --add rezrov &&
echo rezrov rezrov >rezrov &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: Entry 'rezrov' not uptodate. Cannot merge.
* ok 10: 11 - dirty path removed.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo rezrov rezrov >rezrov &&
git update-index --add rezrov &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: 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 &&
git read-tree --reset -u $treeH &&
echo rezrov rezrov >rezrov &&
git update-index --add rezrov &&
echo rezrov >rezrov &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: 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 &&
git read-tree --reset -u $treeH &&
echo nitfol nitfol >nitfol &&
git update-index --add nitfol &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >14.out || return 1
diff -U0 M.out 14.out >14diff.out
compare_change 14diff.out expected &&
sum bozbar frotz >actual14.sum &&
grep -v nitfol M.sum > expected14.sum &&
cmp expected14.sum actual14.sum &&
sum bozbar frotz nitfol >actual14a.sum &&
if cmp M.sum actual14a.sum; then false; else :; fi &&
check_cache_at nitfol clean &&
echo nitfol nitfol >nitfol1 &&
diff nitfol nitfol1 &&
rm -f nitfol1
M.sum actual14a.sum differ: char 38, line 3
nitfol: clean
* ok 13: 14 - unchanged in two heads.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo nitfol nitfol >nitfol &&
git update-index --add nitfol &&
echo nitfol nitfol nitfol >nitfol &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >15.out || return 1
diff -U0 M.out 15.out >15diff.out
compare_change 15diff.out expected &&
check_cache_at nitfol dirty &&
sum bozbar frotz >actual15.sum &&
grep -v nitfol M.sum > expected15.sum &&
cmp expected15.sum actual15.sum &&
sum bozbar frotz nitfol >actual15a.sum &&
if cmp M.sum actual15a.sum; then false; else :; fi &&
echo nitfol nitfol nitfol >nitfol1 &&
diff nitfol nitfol1 &&
rm -f nitfol1
nitfol: dirty
M.sum actual15a.sum differ: char 38, line 3
* ok 14: 15 - unchanged in two heads.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo bozbar bozbar >bozbar &&
git update-index --add bozbar &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: 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 &&
git read-tree --reset -u $treeH &&
echo bozbar bozbar >bozbar &&
git update-index --add bozbar &&
echo bozbar bozbar bozbar >bozbar &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: 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 &&
git read-tree --reset -u $treeH &&
echo gnusto >bozbar &&
git update-index --add bozbar &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >18.out &&
diff -U0 M.out 18.out &&
check_cache_at bozbar clean &&
sum bozbar frotz nitfol >actual18.sum &&
cmp M.sum actual18.sum
bozbar: clean
* ok 17: 18 - local change already having a good result.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo gnusto >bozbar &&
git update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >19.out &&
diff -U0 M.out 19.out &&
check_cache_at bozbar dirty &&
sum frotz nitfol >actual19.sum &&
grep -v bozbar M.sum > expected19.sum &&
cmp expected19.sum actual19.sum &&
sum bozbar frotz nitfol >actual19a.sum &&
if cmp M.sum actual19a.sum; then false; else :; fi &&
echo gnusto gnusto >bozbar1 &&
diff bozbar bozbar1 &&
rm -f bozbar1
bozbar: dirty
M.sum actual19a.sum differ: char 1, line 1
* ok 18: 19 - local change already having a good result, further modified.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo bozbar >bozbar &&
git update-index --add bozbar &&
git read-tree -m -u $treeH $treeM &&
git ls-files --stage >20.out &&
diff -U0 M.out 20.out &&
check_cache_at bozbar clean &&
sum bozbar frotz nitfol >actual20.sum &&
cmp M.sum actual20.sum
bozbar: clean
* ok 19: 20 - no local change, use new tree.
* expecting success: rm -f .git/index nitfol bozbar rezrov frotz &&
git read-tree --reset -u $treeH &&
echo bozbar >bozbar &&
git update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
if git read-tree -m -u $treeH $treeM; then false; else :; fi
fatal: 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 &&
git read-tree -m -u $treeDF $treeDFDF &&
git ls-files --stage >DFDFcheck.out &&
diff -U0 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)
*** t1003-read-tree-prefix.sh ***
* 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)
*** t1004-read-tree-m-u-wf.sh ***
* 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"
Created initial commit c72de13: initial
4 files changed, 4 insertions(+), 0 deletions(-)
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
Created commit 8024290: master removes file2 and subdir/file2
2 files changed, 0 insertions(+), 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=`git read-tree -m -u master side 2>&1`
then
echo should have complained
false
else
echo "happy to see $err"
fi
happy to see fatal: Untracked working tree file 'file2' would be overwritten by merge.
* ok 2: two-way not clobbering
* expecting success:
if err=`git read-tree -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=`git read-tree -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 are given.
* ok 4: two-way with incorrect --exclude-per-directory (2)
* expecting success:
git read-tree -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 &&
git read-tree -m -u branch-point master side
D file2
D subdir/file2
Switched to branch "side"
Created commit afd1ac8: side adds file3 and removes file2
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=`git read-tree -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 8024290... master removes file2 and subdir/file2
Already on branch "master"
happy to see fatal: 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 &&
git read-tree -m -u --exclude-per-directory=.gitignore branch-point master side
HEAD is now at 8024290... master removes file2 and subdir/file2
Already on branch "master"
* ok 8: three-way not complaining on an untracked file
* passed all 8 test(s)
*** t1020-subdirectory.sh ***
* 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:
cd $HERE &&
git update-index --add one &&
case "`git ls-files`" in
one) echo ok one ;;
*) echo bad one; exit 1 ;;
esac &&
cd dir &&
git update-index --add two &&
case "`git ls-files`" in
two) echo ok two ;;
*) echo bad two; exit 1 ;;
esac &&
cd .. &&
case "`git ls-files`" in
dir/two"$LF"one) echo ok both ;;
*) echo bad; exit 1 ;;
esac
ok one
ok two
ok both
* ok 2: update-index and ls-files
* expecting success:
cd $HERE &&
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:
cd $HERE &&
echo a >>one &&
echo d >>dir/two &&
case "`git diff-files --name-only`" in
dir/two"$LF"one) echo ok 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 ok subdir ;;
*) echo bad subdir; exit 1 ;;
esac &&
case "`git diff-files --name-only .`" in
dir/two) echo ok subdir limited ;;
*) echo bad subdir limited; exit 1 ;;
esac
ok top
ok subdir
ok subdir limited
* ok 4: diff-files
* expecting success:
cd $HERE &&
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:
cd $HERE &&
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:
cd $HERE &&
rm -f one dir/two &&
tree=`git write-tree` &&
git read-tree --reset -u "$tree" &&
cmp one original.one &&
cmp dir/two original.two &&
cd dir &&
rm -f two &&
git read-tree --reset -u "$tree" &&
cmp two ../original.two &&
cmp ../one ../original.one
* ok 7: read-tree
* expecting success:
cd $HERE &&
git commit -a -m 1 &&
cd $HERE/.git &&
git show -s HEAD
Created initial commit 7c904a4: 1
2 files changed, 58 insertions(+), 0 deletions(-)
create mode 100644 dir/two
create mode 100644 one
commit 7c904a4a5677537d34a42f0dde3d52509e7e8212
Author: A U Thor <author at example.com>
Date: Sat Jul 5 15:24:13 2008 +0000
1
* ok 8: no file/rev ambiguity check inside .git
* expecting success:
cd $HERE &&
git clone -s --bare .git foo.git &&
cd foo.git && GIT_DIR=. git show -s HEAD
Initialized empty Git repository in /build/buildd/git-core-1.5.4.3/t/trash/foo.git/
commit 7c904a4a5677537d34a42f0dde3d52509e7e8212
Author: A U Thor <author at example.com>
Date: Sat Jul 5 15:24:13 2008 +0000
1
* ok 9: no file/rev ambiguity check inside a bare repo
* expecting success:
cd $HERE &&
rm -fr foo.git &&
git clone -s .git another &&
ln -s another yetanother &&
cd yetanother/.git &&
git show -s HEAD
Initialized empty Git repository in /build/buildd/git-core-1.5.4.3/t/trash/another/.git/
commit 7c904a4a5677537d34a42f0dde3d52509e7e8212
Author: A U Thor <author at example.com>
Date: Sat Jul 5 15:24:13 2008 +0000
1
* ok 10: detection should not be fooled by a symlink
* passed all 10 test(s)
*** t1100-commit-tree-options.sh ***
* 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 at email" \
GIT_AUTHOR_DATE="2005-05-26 23:00" \
GIT_COMMITTER_NAME="Committer Name" \
GIT_COMMITTER_EMAIL="committer at 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: diff expected commit
* ok 4: compare commit
* passed all 4 test(s)
*** t1200-tutorial.sh ***
* expecting success: test blob = "blob"
* ok 1: blob
* expecting success: test "Hello World" = "Hello World"
* ok 2: blob 557db03
* expecting success: cmp diff.expect diff.output
* ok 3: git diff-files -p
* expecting success: cmp diff.expect diff.output
* ok 4: git diff
* expecting success: test 8988da15d077d4829fc51d8544c097def6644dbb = 8988da15d077d4829fc51d8544c097def6644dbb
* ok 5: tree
* expecting success: cmp diff.expect diff.output
* ok 6: git diff-index -p HEAD
* expecting success: cmp diff.expect diff.output
* ok 7: git diff HEAD
* expecting success: cmp whatchanged.expect whatchanged.output
* ok 8: git whatchanged -p --root
* expecting success: cmp .git/refs/heads/master .git/refs/tags/my-first-tag
* ok 9: git tag my-first-tag
M hello
Switched to a new branch "mybranch"
* expecting success: cmp .git/refs/heads/master .git/refs/heads/mybranch
* ok 10: git checkout -b mybranch
* expecting success: cmp branch.expect branch.output
* ok 11: git branch
M hello
Already on branch "mybranch"
Created commit 69b6e54: Some work.
1 files changed, 2 insertions(+), 0 deletions(-)
Switched to branch "master"
Created commit 81bab04: Some fun.
2 files changed, 2 insertions(+), 0 deletions(-)
* expecting failure:
git merge -m "Merge work in mybranch" mybranch
Merging HEAD with mybranch
Merging:
81bab04 Some fun.
69b6e54 Some work.
found 1 common ancestor(s):
fdafd9d Initial commit
Auto-merged hello
CONFLICT (content): Merge conflict in hello
Automatic merge failed; fix conflicts and then commit the result.
* ok 12: git resolve now fails
Created commit 77fb62e: Merged "mybranch" changes.
* passed all 12 test(s)
*** t1300-repo-config.sh ***
* expecting success: cmp .git/config expect
* ok 1: initial
* expecting success: cmp .git/config expect
* ok 2: mixed case
* expecting success: cmp .git/config expect
* ok 3: similar section
* expecting success: cmp .git/config expect
* ok 4: similar section
* expecting success: git config core.penguin kingpin !blue
* ok 5: replace with non-match
* expecting success: git config core.penguin "very blue" !kingpin
* ok 6: replace with non-match (actually matching)
* expecting success: cmp .git/config expect
* ok 7: non-match result
* expecting success: git config --unset beta.baz
* ok 8: unset with cont. lines
* expecting success: cmp .git/config expect
* ok 9: unset with cont. lines is correct
* expecting success: git config --unset-all beta.haha
* ok 10: multiple unset
* expecting success: cmp .git/config expect
* ok 11: multiple unset is correct
* expecting success: git config --replace-all beta.haha gamma
* ok 12: --replace-all
* expecting success: cmp .git/config expect
* ok 13: all replaced
* expecting success: cmp .git/config expect
* ok 14: really mean test
* expecting success: cmp .git/config expect
* ok 15: really really mean test
* expecting success: test alpha = $(git config beta.haha)
* ok 16: get value
* expecting success: cmp .git/config expect
* ok 17: unset
* expecting success: cmp .git/config expect
* ok 18: multivar
* expecting success: git config --get nextsection.nonewline !for
wow
* ok 19: non-match
* expecting success: test wow = $(git config --get nextsection.nonewline !for)
* ok 20: non-match value
* expecting failure: git config --get nextsection.nonewline
error: More than one value for the key nextsection.nonewline: wow2 for me
wow
* ok 21: ambiguous get
* expecting success: git config --get-all nextsection.nonewline
wow
wow2 for me
* ok 22: get multivar
* expecting success: cmp .git/config expect
* ok 23: multivar replace
* expecting failure: git config nextsection.nonewline
error: More than one value for the key nextsection.nonewline: wow2 for me
wow3
* ok 24: ambiguous value
* expecting failure: git config --unset nextsection.nonewline
Warning: nextsection.nonewline has multiple values
* ok 25: ambiguous unset
* expecting failure: git config --unset somesection.nonewline
* ok 26: invalid unset
* expecting success: cmp .git/config expect
* ok 27: multivar unset
* expecting failure: git config inval.2key blabla
invalid key: inval.2key
* ok 28: invalid key
* expecting success: git config 123456.a123 987
* ok 29: correct key
* expecting success: git config Version.1.2.3eX.Alpha beta
* ok 30: hierarchical section
* expecting success: cmp .git/config expect
* ok 31: hierarchical section value
* expecting success: git config --list > output && cmp output expect
* ok 32: working --list
* expecting success: git config --get-regexp in > output && cmp output expect
* ok 33: --get-regexp
* expecting success: git config --get-all nextsection.nonewline > output && cmp output expect
* ok 34: --add
* expecting success: git config --get novalue.variable ^$
* ok 35: get variable with no value
* expecting success: git config --get emptyvalue.variable ^$
* ok 36: get variable with empty value
* expecting success: git config --get-regexp novalue > output &&
cmp output expect
* ok 37: get-regexp variable with no value
* expecting success: git config --get-regexp emptyvalue > output &&
cmp output expect
* ok 38: get-regexp variable with empty value
* expecting success: git config --bool novalue.variable > output &&
cmp output expect
* ok 39: get bool variable with no value
* expecting success: git config --bool emptyvalue.variable > output &&
cmp output expect
* ok 40: get bool variable with empty value
* expecting success: test 129 = 129 && grep usage output
usage: git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]
* ok 41: no arguments, but no crash
* expecting success: cmp .git/config expect
* ok 42: new section is partial match of another
* expecting success: cmp .git/config expect
* ok 43: new variable inserts into proper section
* expecting success: git config --file non-existing-config -l; test $? != 0
fatal: unable to read config file non-existing-config: No such file or directory
* ok 44: alternative GIT_CONFIG (non-existing file should fail)
* expecting success: cmp output expect
* ok 45: alternative GIT_CONFIG
* expecting success: git config --file other-config -l > output && cmp output expect
* ok 46: alternative GIT_CONFIG (--file)
* expecting success: cmp other-config expect
* ok 47: --set in alternative GIT_CONFIG
* expecting success: git config --rename-section branch.eins branch.zwei
* ok 48: rename section
* expecting success: git diff expect .git/config
* ok 49: rename succeeded
* expecting failure: git config --rename-section branch."world domination" branch.drei
No such section!
* ok 50: rename non-existing section
* expecting success: git diff expect .git/config
* ok 51: rename succeeded
* expecting success: git config --rename-section branch."1 234 blabl/a" branch.drei
* ok 52: rename another section
* expecting success: git diff expect .git/config
* ok 53: rename succeeded
* expecting success: git config --remove-section branch.zwei
* ok 54: remove section
* expecting success: git diff -u expect .git/config
* ok 55: section was removed properly
* expecting success:
git config gitcvs.enabled true &&
git config gitcvs.ext.dbname %Ggitcvs1.%a.%m.sqlite &&
git config gitcvs.dbname %Ggitcvs2.%a.%m.sqlite &&
cmp .git/config expect
* ok 56: section ending
* expecting success:
git config kilo.gram 1k &&
git config mega.ton 1m &&
k=$(git config --int --get kilo.gram) &&
test z1024 = "z$k" &&
m=$(git config --int --get mega.ton) &&
test z1048576 = "z$m"
* ok 57: numbers
* expecting success:
git config aninvalid.unit "1auto" &&
s=$(git config aninvalid.unit) &&
test "z1auto" = "z$s" &&
if git config --int --get aninvalid.unit 2>actual
then
echo config should have failed
false
fi &&
cmp actual expect
* ok 58: invalid unit
* 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 &&
cmp expect result
* ok 59: bool
* expecting failure:
git config bool.nobool foobar &&
git config --bool --get bool.nobool
fatal: bad config value for 'bool.nobool' in .git/config
* ok 60: invalid bool (--get)
* expecting failure:
git config --bool bool.nobool foobar
fatal: bad config value for 'bool.nobool' in (null)
* ok 61: invalid bool (set)
* expecting success:
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 &&
cmp expect .git/config
* ok 62: set --bool
* expecting success:
git config --int int.val1 01 &&
git config --int int.val2 -1 &&
git config --int int.val3 5m &&
cmp expect .git/config
* ok 63: set --int
* expecting success: cmp .git/config expect
* ok 64: quoting
* expecting failure: git config key.with\\
newline 123
invalid key: key.with\newline
* ok 65: key with newline
* expecting success: git config key.sub value.with\\
newline
* ok 66: value with newline
* expecting success: cmp result expect
* ok 67: value continued on next line
* expecting success: cmp result expect
* ok 68: --null --list
* expecting success: cmp result expect
* ok 69: --null --get-regexp
* expecting success:
ln -s notyet myconfig &&
GIT_CONFIG=myconfig git config test.frotz nitfol &&
test -h myconfig &&
test -f notyet &&
test "z$(GIT_CONFIG=notyet git config test.frotz)" = znitfol &&
GIT_CONFIG=myconfig git config test.xyzzy rezrov &&
test -h myconfig &&
test -f notyet &&
test "z$(GIT_CONFIG=notyet git config test.frotz)" = znitfol &&
test "z$(GIT_CONFIG=notyet git config test.xyzzy)" = zrezrov
* ok 70: symlinked configuration
* passed all 70 test(s)
*** t1301-shared-repo.sh ***
* expecting success:
mkdir sub &&
cd sub &&
git init --shared=all &&
test 2 = $(git config core.sharedrepository)
Initialized empty shared Git repository in .git/
* ok 1: 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
Created initial commit a2bd363: a1
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a1
* ok 2: update-server-info honors core.sharedRepository
* passed all 2 test(s)
*** t1302-repo-version.sh ***
* expecting success:
(test "$(git config core.repositoryformatversion)" = 0 &&
cd test &&
test "$(git config core.repositoryformatversion)" = 0)
* ok 1: gitdir selection on normal repos
* expecting success:
(cd test2 &&
test "$(git config core.repositoryformatversion)" = 99)
warning: Expected git repo version <= 0, found 99
warning: Please upgrade Git
* ok 2: gitdir selection on unsupported repo
* expecting success:
(git apply --stat test.patch &&
cd test && git apply --stat ../test.patch &&
cd ../test2 && git apply --stat ../test.patch)
test.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
test.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
warning: Expected git repo version <= 0, found 99
warning: Please upgrade Git
test.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
* ok 3: gitdir not required mode
* expecting success:
(git apply --check --index test.patch &&
cd test && git apply --check --index ../test.patch)
* ok 4: gitdir required mode on normal repos
* expecting failure:
(cd test2 && git apply --check --index ../test.patch)
warning: Expected git repo version <= 0, found 99
warning: Please upgrade Git
fatal: --index outside a repository
* ok 5: gitdir required mode on unsupported repo
* passed all 5 test(s)
*** t1303-wacky-config.sh ***
* 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
* passed all 3 test(s)
*** t1400-update-ref.sh ***
* expecting success:
for name in A B C D E F
do
test_tick &&
T=$(git write-tree) &&
sha1=$(echo $name | git commit-tree $T) &&
eval $name=$sha1
done
* ok 1: setup
* expecting success: git update-ref refs/heads/master 102939797ab91a4f201d131418d2c9d919dcdd2c &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat .git/refs/heads/master)
* ok 2: create refs/heads/master
* expecting success: git update-ref refs/heads/master 56d5c1374e8028a1e122ab046ab7b98165342dc4 102939797ab91a4f201d131418d2c9d919dcdd2c &&
test 56d5c1374e8028a1e122ab046ab7b98165342dc4 = $(cat .git/refs/heads/master)
* ok 3: create refs/heads/master
* expecting success: touch .git/refs/heads/gu
git update-ref refs/heads/gu/fixes 102939797ab91a4f201d131418d2c9d919dcdd2c >out 2>err
test $? != 0
* ok 4: fail to create refs/heads/gu/fixes
* expecting success: git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat .git/refs/heads/master)
* ok 5: create refs/heads/master (by HEAD)
* expecting success: git update-ref HEAD 56d5c1374e8028a1e122ab046ab7b98165342dc4 102939797ab91a4f201d131418d2c9d919dcdd2c &&
test 56d5c1374e8028a1e122ab046ab7b98165342dc4 = $(cat .git/refs/heads/master)
* ok 6: create refs/heads/master (by HEAD)
* expecting failure: git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c 56d5c1374e8028a1e122ab046ab7b98165342dc4
error: unable to resolve reference HEAD: No such file or directory
fatal: Cannot lock the ref 'HEAD'.
* ok 7: (not) create HEAD with old sha1
* expecting failure: test -f .git/refs/heads/master
* ok 8: (not) prior created .git/refs/heads/master
* expecting success: git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c
* ok 9: create HEAD
* expecting failure: git update-ref HEAD 56d5c1374e8028a1e122ab046ab7b98165342dc4 0000000000000000000000000000000000000000
error: Ref refs/heads/master is at 102939797ab91a4f201d131418d2c9d919dcdd2c but expected 0000000000000000000000000000000000000000
fatal: Cannot lock the ref 'HEAD'.
* ok 10: (not) change HEAD with wrong SHA1
* expecting failure: test 56d5c1374e8028a1e122ab046ab7b98165342dc4 = $(cat .git/refs/heads/master)
* ok 11: (not) changed .git/refs/heads/master
* expecting success: GIT_COMMITTER_DATE="2005-05-26 23:30" \
git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c -m "Initial Creation" &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat .git/refs/heads/master)
* ok 12: create refs/heads/master (logged by touch)
* expecting success: GIT_COMMITTER_DATE="2005-05-26 23:31" \
git update-ref HEAD 56d5c1374e8028a1e122ab046ab7b98165342dc4 102939797ab91a4f201d131418d2c9d919dcdd2c -m "Switch" &&
test 56d5c1374e8028a1e122ab046ab7b98165342dc4 = $(cat .git/refs/heads/master)
* ok 13: update refs/heads/master (logged by touch)
* expecting success: GIT_COMMITTER_DATE="2005-05-26 23:41" \
git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat .git/refs/heads/master)
* ok 14: set refs/heads/master (logged by touch)
* expecting success: diff expect .git/logs/refs/heads/master
* ok 15: verifying refs/heads/master's log
* expecting success: git config core.logAllRefUpdates true &&
test true = $(git config --bool --get core.logAllRefUpdates)
* ok 16: enable core.logAllRefUpdates
* expecting success: GIT_COMMITTER_DATE="2005-05-26 23:32" \
git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c -m "Initial Creation" &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat .git/refs/heads/master)
* ok 17: create refs/heads/master (logged by config)
* expecting success: GIT_COMMITTER_DATE="2005-05-26 23:33" \
git update-ref HEAD 56d5c1374e8028a1e122ab046ab7b98165342dc4 102939797ab91a4f201d131418d2c9d919dcdd2c -m "Switch" &&
test 56d5c1374e8028a1e122ab046ab7b98165342dc4 = $(cat .git/refs/heads/master)
* ok 18: update refs/heads/master (logged by config)
* expecting success: GIT_COMMITTER_DATE="2005-05-26 23:43" \
git update-ref HEAD 102939797ab91a4f201d131418d2c9d919dcdd2c &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat .git/refs/heads/master)
* ok 19: set refs/heads/master (logged by config)
* expecting success: diff expect .git/logs/$m
* ok 20: verifying refs/heads/master's log
* expecting success: rm -f o e
git rev-parse --verify "master@{May 25 2005}" >o 2>e &&
test 3cceb89b690679aecbe1db39079f99221f1aaaa6 = $(cat o) &&
test "warning: Log for 'master' only goes back to $ed." = "$(cat e)"
* ok 21: Query "master@{May 25 2005}" (before history)
* expecting success: rm -f o e
git rev-parse --verify master@{2005-05-25} >o 2>e &&
test 3cceb89b690679aecbe1db39079f99221f1aaaa6 = $(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 22: Query master@{2005-05-25} (before history)
* expecting success: rm -f o e
git rev-parse --verify "master@{May 26 2005 23:31:59}" >o 2>e &&
test 3cceb89b690679aecbe1db39079f99221f1aaaa6 = $(cat o) &&
test "warning: Log for 'master' only goes back to $ed." = "$(cat e)"
* ok 23: Query "master@{May 26 2005 23:31:59}" (1 second before history)
* expecting success: rm -f o e
git rev-parse --verify "master@{May 26 2005 23:32:00}" >o 2>e &&
test 102939797ab91a4f201d131418d2c9d919dcdd2c = $(cat o) &&
test "" = "$(cat e)"
* ok 24: Query "master@{May 26 2005 23:32:00}" (exactly history start)
* expecting success: rm -f o e
git rev-parse --verify "master@{2005-05-26 23:33:01}" >o 2>e &&
test 56d5c1374e8028a1e122ab046ab7b98165342dc4 = $(cat o) &&
test "warning: Log .git/logs/refs/heads/master has gap after Thu, 26 May 2005 18:33:00 -0500." = "$(cat e)"
* ok 25: Query "master@{2005-05-26 23:33:01}" (middle of history with gap)
* expecting success: rm -f o e
git rev-parse --verify "master@{2005-05-26 23:38:00}" >o 2>e &&
test 0000000000000000000000000000000000000000 = $(cat o) &&
test "" = "$(cat e)"
* ok 26: Query "master@{2005-05-26 23:38:00}" (middle of history)
* expecting success: rm -f o e
git rev-parse --verify "master@{2005-05-26 23:43:00}" >o 2>e &&
test a6166d2809963b1da1148e6922729c21214390c8 = $(cat o) &&
test "" = "$(cat e)"
* ok 27: Query "master@{2005-05-26 23:43:00}" (exact end of history)
* expecting success: rm -f o e
git rev-parse --verify "master@{2005-05-28}" >o 2>e &&
test 26caa67a0d551891a2ecec76098a9f8e705ab059 = $(cat o) &&
test "warning: Log .git/logs/refs/heads/master unexpectedly ended on Thu, 26 May 2005 18:43:00 -0500." = "$(cat e)"
* ok 28: Query "master@{2005-05-28}" (past end of history)
* expecting success: 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) &&
rm -f M
Created initial commit 2bc82dd: add
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 F
Created commit d244b72: The other day this did not work.
1 files changed, 1 insertions(+), 1 deletions(-)
Created commit ab0637f: The other day this did not work.
1 files changed, 1 insertions(+), 1 deletions(-)
Created commit 4a78640: Merged initial commit and a later commit.
* ok 29: creating initial files
* expecting success: diff expect .git/logs/refs/heads/master
* ok 30: git-commit logged updates
* expecting success: test OTHER = $(git cat-file blob master:F)
* ok 31: git cat-file blob master:F (expect OTHER)
* expecting success: test TEST = $(git cat-file blob "master@{2005-05-26 23:30}:F")
* ok 32: 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 33: git cat-file blob master@{2005-05-26 23:42}:F (expect OTHER)
* passed all 33 test(s)
*** t1410-reflog.sh ***
* 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 &&
chmod +x C &&
( test "`git config --bool core.filemode`" != false ||
echo executable >>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 &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 4
Created initial commit 07fcc4f: rabbit
3 files changed, 3 insertions(+), 0 deletions(-)
create mode 100644 A/B/E
create mode 100644 A/D
create mode 100644 C
Created commit 7d1a0b8: dragon
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 C
Created commit 15ab5f0: sheep
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
Created commit 3ac530f: monkey
1 files changed, 0 insertions(+), 1 deletions(-)
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 &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 5
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 &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 5 &&
check_fsck "missing blob $F"
would prune commit: sheep
would prune commit: monkey
would prune reset --hard HEAD~2: updating HEAD
would prune commit: sheep
would prune commit: monkey
would prune reset --hard HEAD~2: updating HEAD
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 &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 2 &&
check_fsck "dangling commit $K"
Marking reachable objects...
keep commit (initial): rabbit
keep commit: dragon
prune commit: sheep
prune commit: monkey
prune reset --hard HEAD~2: updating HEAD
keep commit (initial): rabbit
keep commit: dragon
prune commit: sheep
prune commit: monkey
prune reset --hard HEAD~2: updating HEAD
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
error: unable to find 9ae84adb2704cbd49549e52169b4043871e13432
fatal: git-cat-file 9ae84adb2704cbd49549e52169b4043871e13432: bad file
error: unable to find 41ca11d3340423c1922fe4110d2327bda0891b45
fatal: git-cat-file 41ca11d3340423c1922fe4110d2327bda0891b45: bad file
error: unable to find 1fe0f573dce6e694ce16e98a936c65db295d1948
fatal: git-cat-file 1fe0f573dce6e694ce16e98a936c65db295d1948: bad file
error: unable to find 15ab5f0ad4d9117a7cdcbea9673ec0fff6ca8e55
fatal: git-cat-file 15ab5f0ad4d9117a7cdcbea9673ec0fff6ca8e55: bad file
error: unable to find 3ac530f2f6c3a45206a6b2d455baf89d1c8f672d
fatal: git-cat-file 3ac530f2f6c3a45206a6b2d455baf89d1c8f672d: bad file
* ok 6: prune and fsck
* expecting success:
recover $F &&
check_fsck "dangling blob $F"
dangling blob 9ae84adb2704cbd49549e52169b4043871e13432
* ok 7: recover and check
* expecting success:
before=$(git count-objects | sed "s/ .*//") &&
BLOB=$(echo aleph | git hash-object -w --stdin) &&
BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
test -f $BLOB_FILE &&
git reset --hard &&
git prune --expire=1.hour.ago &&
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
test -f $BLOB_FILE &&
test-chmtime -86500 $BLOB_FILE &&
git prune --expire 1.day &&
test $before = $(git count-objects | sed "s/ .*//") &&
! test -f $BLOB_FILE
HEAD is now at 7d1a0b8... dragon
* ok 8: prune --expire
* passed all 8 test(s)
*** t1420-lost-found.sh ***
* 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
Created initial commit 9bb1ae9: initial
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file1
Created commit 8ad33be: second
2 files changed, 2 insertions(+), 0 deletions(-)
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)
*** t1500-rev-parse.sh ***
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 1: toplevel: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 2: toplevel: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 3: toplevel: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 4: toplevel: prefix
* expecting success: test 'true' = "$(git rev-parse --is-bare-repository)"
* ok 5: .git/: is-bare-repository
* expecting success: test 'true' = "$(git rev-parse --is-inside-git-dir)"
* ok 6: .git/: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 7: .git/: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 8: .git/: prefix
* expecting success: test 'true' = "$(git rev-parse --is-bare-repository)"
* ok 9: .git/objects/: is-bare-repository
* expecting success: test 'true' = "$(git rev-parse --is-inside-git-dir)"
* ok 10: .git/objects/: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 11: .git/objects/: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 12: .git/objects/: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 13: subdirectory: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 14: subdirectory: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 15: subdirectory: is-inside-work-tree
* expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
* ok 16: subdirectory: prefix
* expecting success: test 'true' = "$(git rev-parse --is-bare-repository)"
* ok 17: core.bare = true: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 18: core.bare = true: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 19: core.bare = true: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 20: core.bare undefined: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 21: core.bare undefined: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 22: core.bare undefined: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 23: GIT_DIR=../.git, core.bare = false: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 24: GIT_DIR=../.git, core.bare = false: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 25: GIT_DIR=../.git, core.bare = false: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 26: GIT_DIR=../.git, core.bare = false: prefix
* expecting success: test 'true' = "$(git rev-parse --is-bare-repository)"
* ok 27: GIT_DIR=../.git, core.bare = true: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 28: GIT_DIR=../.git, core.bare = true: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 29: GIT_DIR=../.git, core.bare = true: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 30: GIT_DIR=../.git, core.bare = true: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 31: GIT_DIR=../.git, core.bare undefined: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 32: GIT_DIR=../.git, core.bare undefined: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 33: GIT_DIR=../.git, core.bare undefined: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 34: GIT_DIR=../.git, core.bare undefined: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 35: GIT_DIR=../repo.git, core.bare = false: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 36: GIT_DIR=../repo.git, core.bare = false: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 37: GIT_DIR=../repo.git, core.bare = false: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 38: GIT_DIR=../repo.git, core.bare = false: prefix
* expecting success: test 'true' = "$(git rev-parse --is-bare-repository)"
* ok 39: GIT_DIR=../repo.git, core.bare = true: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 40: GIT_DIR=../repo.git, core.bare = true: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 41: GIT_DIR=../repo.git, core.bare = true: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 42: GIT_DIR=../repo.git, core.bare = true: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 43: GIT_DIR=../repo.git, core.bare undefined: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 44: GIT_DIR=../repo.git, core.bare undefined: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 45: GIT_DIR=../repo.git, core.bare undefined: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 46: GIT_DIR=../repo.git, core.bare undefined: prefix
* passed all 46 test(s)
*** t1501-worktree.sh ***
* core.worktree = relative path
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 1: outside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 2: outside: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 3: outside: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 4: inside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 5: inside: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 6: inside: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 7: inside: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 8: subdirectory: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 9: subdirectory: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 10: subdirectory: is-inside-work-tree
* expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
* ok 11: subdirectory: prefix
* core.worktree = absolute path
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 12: outside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 13: outside: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 14: outside: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 15: inside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 16: inside: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 17: inside: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 18: inside: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 19: subdirectory: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 20: subdirectory: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 21: subdirectory: is-inside-work-tree
* expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
* ok 22: subdirectory: prefix
* GIT_WORK_TREE=relative path (override core.worktree)
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 23: outside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 24: outside: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 25: outside: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 26: inside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 27: inside: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 28: inside: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 29: inside: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 30: subdirectory: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 31: subdirectory: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 32: subdirectory: is-inside-work-tree
* expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
* ok 33: subdirectory: prefix
* GIT_WORK_TREE=absolute path, work tree below git dir
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 34: outside: is-bare-repository
* expecting success: test 'false' = "$(git rev-parse --is-inside-git-dir)"
* ok 35: outside: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 36: outside: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 37: in repo.git: is-bare-repository
* expecting success: test 'true' = "$(git rev-parse --is-inside-git-dir)"
* ok 38: in repo.git: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 39: in repo.git: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 40: in repo.git/objects: is-bare-repository
* expecting success: test 'true' = "$(git rev-parse --is-inside-git-dir)"
* ok 41: in repo.git/objects: is-inside-git-dir
* expecting success: test 'false' = "$(git rev-parse --is-inside-work-tree)"
* ok 42: in repo.git/objects: is-inside-work-tree
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 43: in repo.git/work: is-bare-repository
* expecting success: test 'true' = "$(git rev-parse --is-inside-git-dir)"
* ok 44: in repo.git/work: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 45: in repo.git/work: is-inside-work-tree
* expecting success: test '' = "$(git rev-parse --show-prefix)"
* ok 46: in repo.git/work: prefix
* expecting success: test 'false' = "$(git rev-parse --is-bare-repository)"
* ok 47: in repo.git/sub/dir: is-bare-repository
* expecting success: test 'true' = "$(git rev-parse --is-inside-git-dir)"
* ok 48: in repo.git/sub/dir: is-inside-git-dir
* expecting success: test 'true' = "$(git rev-parse --is-inside-work-tree)"
* ok 49: in repo.git/sub/dir: is-inside-work-tree
* expecting success: test 'sub/dir/' = "$(git rev-parse --show-prefix)"
* ok 50: in repo.git/sub/dir: prefix
* expecting success:
(cd repo.git &&
: > work/sub/dir/untracked &&
test sub/dir/untracked = "$(git ls-files --others)")
* ok 51: repo finds its work tree
* expecting success:
(cd repo.git/work/sub/dir &&
: > tracked &&
git --git-dir=../../.. add tracked &&
cd ../../.. &&
test sub/dir/tracked = "$(git ls-files)")
* ok 52: repo finds its work tree from work tree, too
* expecting success:
cd repo.git/work/sub/dir &&
GIT_DIR=../../.. GIT_WORK_TREE=../.. GIT_PAGER= \
git diff --exit-code tracked &&
echo changed > tracked &&
! GIT_DIR=../../.. GIT_WORK_TREE=../.. GIT_PAGER= \
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 53: _gently() groks relative GIT_DIR & GIT_WORK_TREE
* passed all 53 test(s)
*** t2000-checkout-cache-clash.sh ***
* expecting success: git update-index --add path0 path1/file1
* ok 1: git update-index --add various paths.
* expecting failure: git checkout-index -a
git-checkout-index: path0 already exists
fatal: cannot create directory at path1
* 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.
* passed all 4 test(s)
*** t2001-checkout-cache-clash.sh ***
* 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: git update-index --add path1
* ok 6: git update-index --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)
*** t2002-checkout-cache-u.sh ***
* expecting success:
echo frotz >path0 &&
git update-index --add path0 &&
t=$(git write-tree)
* ok 1: preparation
* expecting failure:
rm -f path0 &&
git read-tree $t &&
git checkout-index -f -a &&
git diff-files | diff - /dev/null
1d0
< :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 | diff - /dev/null
* ok 3: with -u, git checkout-index picks up stat information from new files.
* passed all 3 test(s)
*** t2003-checkout-cache-mkdir.sh ***
* expecting success: mkdir path1 &&
echo frotz >path0 &&
echo rezrov >path1/file1 &&
git update-index --add path0 path1/file1
* ok 1: setup
* 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
* passed all 8 test(s)
*** t2004-checkout-cache-temp.sh ***
* 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_* out .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_* out .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: preparation
* expecting success:
rm -f path* .merge_* out .git/index &&
git read-tree $t1 &&
git checkout-index --temp -- path1 >out &&
test $(wc -l <out) = 1 &&
test $(cut "-d " -f2 out) = path1 &&
p=$(cut "-d " -f1 out) &&
test -f $p &&
test $(cat $p) = tree1path1
* ok 2: checkout one stage 0 to temporary file
* expecting success:
rm -f path* .merge_* out .git/index &&
git read-tree $t1 &&
git checkout-index -a --temp >out &&
test $(wc -l <out) = 5 &&
for f in path0 path1 path3 path4 asubdir/path5
do
test $(grep $f out | cut "-d " -f2) = $f &&
p=$(grep $f out | 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_* out .git/index &&
git read-tree -m $t1 $t2 $t3
* ok 4: prepare 3-way merge
* expecting success:
rm -f path* .merge_* out &&
git checkout-index --stage=2 --temp -- path1 >out &&
test $(wc -l <out) = 1 &&
test $(cut "-d " -f2 out) = path1 &&
p=$(cut "-d " -f1 out) &&
test -f $p &&
test $(cat $p) = tree2path1
* ok 5: checkout one stage 2 to temporary file
* expecting success:
rm -f path* .merge_* out &&
git checkout-index --all --stage=2 --temp >out &&
test $(wc -l <out) = 3 &&
for f in path1 path2 path4
do
test $(grep $f out | cut "-d " -f2) = $f &&
p=$(grep $f out | 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_* out &&
git checkout-index --stage=all --temp -- path0 >out &&
test $(wc -l <out) = 0
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_* out &&
git checkout-index --stage=all --temp -- path1 >out &&
test $(wc -l <out) = 1 &&
test $(cut "-d " -f2 out) = path1 &&
cut "-d " -f1 out | (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_* out &&
git checkout-index --stage=all --temp -- path2 >out &&
test $(wc -l <out) = 1 &&
test $(cut "-d " -f2 out) = path2 &&
cut "-d " -f1 out | (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_* out &&
git checkout-index -a --stage=all --temp >out &&
test $(wc -l <out) = 5
* ok 10: checkout all stages/all files to temporary files
* expecting success:
test x$(grep path0 out | cut "-d " -f2) = x
* ok 11: -- path0: no entry
* expecting success:
test $(grep path1 out | cut "-d " -f2) = path1 &&
grep path1 out | 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 out | cut "-d " -f2) = path2 &&
grep path2 out | 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 out | cut "-d " -f2) = path3 &&
grep path3 out | 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 out | cut "-d " -f2) = path4 &&
grep path4 out | 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 out | cut "-d " -f2) = asubdir/path5 &&
grep asubdir/path5 out | 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 >out &&
test $(wc -l <out) = 1 &&
test $(grep path5 out | cut "-d " -f2) = path5 &&
grep path5 out | 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_* out .git/index &&
ln -s b a &&
git update-index --add a &&
t4=$(git write-tree) &&
rm -f .git/index &&
git read-tree $t4 &&
git checkout-index --temp -a >out &&
test $(wc -l <out) = 1 &&
test $(cut "-d " -f2 out) = a &&
p=$(cut "-d " -f1 out) &&
test -f $p &&
test $(cat $p) = b
* ok 18: checkout --temp symlink
* passed all 18 test(s)
*** t2005-checkout-index-symlinks.sh ***
* expecting success:
git config core.symlinks false &&
l=$(echo -n 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)
*** t2007-checkout-symlink.sh ***
* 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 &&
ln -s xyzzy frotz &&
git add xyzzy/filfre frotz &&
test_tick &&
git commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/"
Created initial commit f92d3a8: master has file frotz/filfre
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 frotz/filfre
Created commit ed594a0: master adds file nitfol
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 nitfol
Switched to branch "side"
rm 'frotz/filfre'
Created commit 1502bd7: side moves frotz/ to xyzzy/ and adds frotz->xyzzy/
2 files changed, 1 insertions(+), 0 deletions(-)
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
Already on branch "master"
* expecting success:
git checkout side
Switched to branch "side"
* ok 3: switch from dir to symlink
* passed all 3 test(s)
*** t2008-checkout-subdir.sh ***
* 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"
Created initial commit 15793b3: populate tree
3 files changed, 3 insertions(+), 0 deletions(-)
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 failure: git checkout HEAD -- ../../Makefile
fatal: '../../Makefile' is outside repository
fatal: '../../Makefile' is outside repository
* ok 5: relative path outside tree should fail
* expecting failure: git checkout HEAD -- ../file0
fatal: '../file0' is outside repository
fatal: '../file0' is outside repository
* ok 6: incorrect relative path to file should fail (1)
* expecting failure: ( cd dir1 && git checkout HEAD -- ./file0 )
error: pathspec 'dir1/file0' did not match any file(s) known to git.
Did you forget to 'git add'?
* ok 7: incorrect relative path should fail (2)
* expecting failure: ( cd dir1 && git checkout HEAD -- ../../file0 )
fatal: '../../file0' is outside repository
fatal: '../../file0' is outside repository
* ok 8: incorrect relative path should fail (3)
* passed all 8 test(s)
*** t2050-git-dir-relative.sh ***
* 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.
Created initial commit f084d63: initial
1 files changed, 1 insertions(+), 0 deletions(-)
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.
Created commit 66a00f3: topcommit
1 files changed, 1 insertions(+), 1 deletions(-)
* 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.
Created commit 9130b92: subcommit
1 files changed, 1 insertions(+), 1 deletions(-)
* ok 4: post-commit-hook from sub dir
* passed all 4 test(s)
*** t2100-update-cache-badpath.sh ***
* expecting success: git update-index --add -- path0 path1 path2/file2 path3/file3
* ok 1: git update-index --add to add various paths.
* expecting failure: 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 failure: 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 failure: 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 failure: 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)
*** t2101-update-index-reupdate.sh ***
* expecting success: echo hello world >file1 &&
echo goodbye people >file2 &&
git update-index --add file1 file2 &&
git ls-files -s >current &&
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 &&
cmp current expected
* ok 3: update-index --remove --again
* expecting success: git-commit -m initial
Created initial commit 77d0fc4: initial
1 files changed, 1 insertions(+), 0 deletions(-)
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 &&
cmp current expected
* ok 5: update-index again
* expecting success: echo not so happy >file2 &&
cd dir1 &&
cat ../file2 >file3 &&
git update-index --again &&
cd .. &&
git ls-files -s >current &&
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 &&
cmp current expected
* ok 7: update-index --update with pathspec
* passed all 7 test(s)
*** t2102-update-index-symlinks.sh ***
* expecting success:
git config core.symlinks false &&
l=$(echo -n file | git-hash-object -t blob -w --stdin) &&
echo "120000 $l symlink" | git update-index --index-info
* ok 1: preparation
* expecting success:
echo -n 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 ok;;
*) echo fail; git ls-files --stage --cached symlink; (exit 1);;
esac
ok
* ok 3: the index entry must still be a symbolic link
* passed all 3 test(s)
*** t2200-add-update.sh ***
* 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
Created initial commit ec46c19: initial
6 files changed, 6 insertions(+), 0 deletions(-)
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 &&
diff -u 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:
rm foo &&
ln -s top foo &&
git add -u -- foo
* ok 10: replace a file with a symlink
* expecting success:
git add -u &&
test -z "$(git diff-files)"
* ok 11: add everything changed
* expecting success:
touch check &&
git add -u &&
test -z "$(git diff-files)"
* ok 12: touch and then add -u
* expecting success:
touch check &&
git add check &&
test -z "$(git diff-files)"
* ok 13: touch and then add explicitly
* passed all 13 test(s)
*** t3000-ls-files-others.sh ***
* expecting success: git ls-files --others >output
* ok 1: git ls-files --others to show output.
* expecting success: diff output expected1
* ok 2: git ls-files --others should pick up symlinks.
* expecting success: git ls-files --others --directory >output
* ok 3: git ls-files --others --directory to show output.
* expecting success: diff output expected2
* ok 4: git ls-files --others --directory should not get confused.
* passed all 4 test(s)
*** t3001-ls-files-others-exclude.sh ***
* expecting success: git ls-files --others \
--exclude=\*.6 \
--exclude-per-directory=.gitignore \
--exclude-from=.git/ignore \
>output &&
git diff 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 &&
git diff expect output
* ok 2: git ls-files --others with
line endings.
* expecting success: diff -u expect output
* ok 3: git-status honours core.excludesfile
* passed all 3 test(s)
*** t3002-ls-files-dashpath.sh ***
* expecting success: echo frotz >path0 &&
echo frotz >./-foo &&
echo frotz >./--
* ok 1: setup
* expecting success: git ls-files --others >output &&
git diff output - <<EOF
--
-foo
output
path0
EOF
diff --git a/output b/-
index 7f0804d..0000000 100644
* ok 2: git ls-files without path restriction.
* expecting success: git ls-files --others path0 >output &&
git diff output - <<EOF
path0
EOF
diff --git a/output b/-
index 5ffcc7e..0000000 100644
* ok 3: git ls-files with path restriction.
* expecting success: git ls-files --others -- path0 >output &&
git diff output - <<EOF
path0
EOF
diff --git a/output b/-
index 5ffcc7e..0000000 100644
* ok 4: git ls-files with path restriction with --.
* expecting success: git ls-files --others -- -- >output &&
git diff output - <<EOF
--
EOF
diff --git a/output b/-
index 4ba2805..0000000 100644
* ok 5: git ls-files with path restriction with -- --.
* expecting success: git ls-files --others -- >output &&
git diff output - <<EOF
--
-foo
output
path0
EOF
diff --git a/output b/-
index 7f0804d..0000000 100644
* ok 6: git ls-files with no path restriction.
* passed all 6 test(s)
*** t3010-ls-files-killed-modified.sh ***
* expecting success: git update-index --add -- path0 path1 path?/file? path7 path8 path9 path10
* ok 1: git update-index --add to add various paths.
* expecting success: git ls-files -k >.output
* ok 2: git ls-files -k to show killed files.
* expecting success: diff .output .expected
* ok 3: validate git ls-files -k output.
* expecting success: git ls-files -m >.output
* ok 4: git ls-files -m to show modified files.
* expecting success: diff .output .expected
* ok 5: validate git ls-files -m output.
* passed all 5 test(s)
*** t3020-ls-files-error-unmatch.sh ***
Created initial commit 6f912a9: add foo bar
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
create mode 100644 foo
* expecting failure: 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 1: git ls-files --error-unmatch should fail with unmatched path.
* expecting success: git ls-files --error-unmatch foo bar
bar
foo
* ok 2: git ls-files --error-unmatch should succeed eith matched paths.
* passed all 2 test(s)
*** t3030-merge-recursive.sh ***
* 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 &&
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 &&
git diff -u expected actual
Created initial commit 88eeecf: initial
4 files changed, 4 insertions(+), 0 deletions(-)
create mode 100644 a
create mode 100644 b
create mode 100644 c
create mode 100644 d/e
Created commit b7f3e7f: master modifies a and d/e
2 files changed, 2 insertions(+), 0 deletions(-)
* 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 &&
git diff -u 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 &&
git diff -u expected actual
D b
D c
Switched to branch "side"
Created commit 4419332: side modifies a
1 files changed, 1 insertions(+), 0 deletions(-)
* 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 &&
git diff -u 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 &&
git diff -u expected actual
D b
D c
D d/e
Switched to branch "df-1"
Created commit 918ade1: df-1 makes b/c
2 files changed, 1 insertions(+), 1 deletions(-)
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 &&
git diff -u 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 &&
git diff -u expected actual
D a
D c
D d/e
Switched to branch "df-2"
Created commit 833bf24: df-2 makes a/c
2 files changed, 1 insertions(+), 1 deletions(-)
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 &&
git diff -u 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 &&
git diff -u expected actual
D b
D c
D d/e
Switched to branch "remove"
rm 'b'
Created commit 968f3e1: remove removes b and modifies a
2 files changed, 1 insertions(+), 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 &&
git diff -u 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 &&
git diff -u expected actual
D c
D d/e
Switched to branch "df-3"
Created commit 9d284b3: df-3 makes d
2 files changed, 1 insertions(+), 1 deletions(-)
create mode 100644 d
delete mode 100644 d/e
* ok 6: setup 6
* expecting success:
rm -fr [abcd] &&
git checkout -f "$c2" &&
git-merge-recursive "$c0" -- "$c2" "$c1"
status=$?
case "$status" in
1)
: happy
;;
*)
echo >&2 "why status $status!!!"
false
;;
esac
Note: moving to "441933296d498d45ed4c5cbe9135259386a2e2b2" which isn't a local branch
If you want to create a new branch from this checkout, 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(s):
88eeecf initial
Auto-merged a
CONFLICT (content): Merge conflict in a
* ok 7: 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 &&
git diff -u expected actual
* ok 8: merge-recursive result
* expecting success:
rm -fr [abcd] &&
git checkout -f "$c1" &&
git-merge-recursive "$c0" -- "$c1" "$c5"
status=$?
case "$status" in
1)
: happy
;;
*)
echo >&2 "why status $status!!!"
false
;;
esac
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(s):
88eeecf initial
Auto-merged a
CONFLICT (content): Merge conflict in a
Removed b
* ok 9: 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 &&
git diff -u expected actual
* ok 10: 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(s):
88eeecf initial
Removed b
Added b/c
* ok 11: 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 &&
git diff -u expected actual
* ok 12: merge-recursive result
* expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c1" &&
git-merge-recursive "$c0" -- "$c1" "$c4"
status=$?
case "$status" in
1)
: happy
;;
*)
echo >&2 "why status $status!!!"
false
;;
esac
HEAD is now at b7f3e7f... master modifies a and d/e
HEAD is now at b7f3e7f... master modifies a and d/e
error: failed to create path 'a/c': perhaps a D/F conflict?
Merging b7f3e7f677ef7001dcb4b810583c9259a210141d with 833bf240c9e2636a0e5eb3dd8f735d2a92181f22
Merging:
b7f3e7f master modifies a and d/e
833bf24 df-2 makes a/c
found 1 common ancestor(s):
88eeecf initial
CONFLICT (delete/modify): a deleted in 833bf240c9e2636a0e5eb3dd8f735d2a92181f22 and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of a left in tree.
Added a/c
* ok 13: 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 &&
git diff -u expected actual
* ok 14: merge-recursive d/f conflict result
* expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c4" &&
git-merge-recursive "$c0" -- "$c4" "$c1"
status=$?
case "$status" in
1)
: happy
;;
*)
echo >&2 "why status $status!!!"
false
;;
esac
HEAD is now at b7f3e7f... master modifies a and d/e
HEAD is now at 833bf24... df-2 makes a/c
error: failed to create path 'a': perhaps a D/F conflict?
Merging 833bf240c9e2636a0e5eb3dd8f735d2a92181f22 with b7f3e7f677ef7001dcb4b810583c9259a210141d
Merging:
833bf24 df-2 makes a/c
b7f3e7f master modifies a and d/e
found 1 common ancestor(s):
88eeecf initial
CONFLICT (delete/modify): a deleted in 833bf240c9e2636a0e5eb3dd8f735d2a92181f22 and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of a left in tree.
Added a/c
* ok 15: 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 &&
git diff -u expected actual
* ok 16: merge-recursive d/f conflict result the other way
* expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c1" &&
git-merge-recursive "$c0" -- "$c1" "$c6"
status=$?
case "$status" in
1)
: happy
;;
*)
echo >&2 "why status $status!!!"
false
;;
esac
HEAD is now at 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(s):
88eeecf initial
CONFLICT (directory/file): There is a directory with name d in b7f3e7f677ef7001dcb4b810583c9259a210141d. Added d as d~9d284b3a95aea72df4581977e913e55da89d5e3d
CONFLICT (delete/modify): d/e deleted in 9d284b3a95aea72df4581977e913e55da89d5e3d and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of d/e left in tree.
* ok 17: 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 &&
git diff -u expected actual
* ok 18: merge-recursive d/f conflict result
* expecting success:
rm -fr [abcd] &&
git reset --hard &&
git checkout -f "$c6" &&
git-merge-recursive "$c0" -- "$c6" "$c1"
status=$?
case "$status" in
1)
: happy
;;
*)
echo >&2 "why status $status!!!"
false
;;
esac
HEAD is now at 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(s):
88eeecf initial
CONFLICT (file/directory): There is a directory with name d in b7f3e7f677ef7001dcb4b810583c9259a210141d. Added d as d~9d284b3a95aea72df4581977e913e55da89d5e3d_0
CONFLICT (delete/modify): d/e deleted in 9d284b3a95aea72df4581977e913e55da89d5e3d and modified in b7f3e7f677ef7001dcb4b810583c9259a210141d. Version b7f3e7f677ef7001dcb4b810583c9259a210141d of d/e left in tree.
* ok 19: 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 &&
git diff -u expected actual
* ok 20: merge-recursive d/f conflict result
* expecting success:
git reset --hard "$c2" &&
git read-tree -m "$c0" "$c2" "$c1"
HEAD is now at 4419332... side modifies a
* ok 21: 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 &&
git diff -u 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 &&
git diff -u 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 &&
git diff -u expected actual
HEAD is now at b7f3e7f... master modifies a and d/e
* ok 22: reset and bind merge
* passed all 22 test(s)
*** t3040-subprojects-basic.sh ***
* expecting success: : >Makefile &&
git add Makefile &&
git commit -m "Superproject created"
Created initial commit 435e286: Superproject created
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 Makefile
* ok 1: Super project creation
* 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 diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
git diff expected current
Initialized empty Git repository in .git/
Initialized empty Git repository in .git/
* ok 2: 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" ) && {
git diff-files --exit-code
test $? = 1
}
:160000 160000 32c96aee32ed1c9520ebfe903c164e09127d9a83 0000000000000000000000000000000000000000 M sub1
* ok 4: check if commit in a subproject detected
* expecting success: git commit -q -a -m "sub1 changed" && {
git diff-tree --exit-code HEAD^ HEAD
test $? = 1
}
:160000 160000 32c96aee32ed1c9520ebfe903c164e09127d9a83 45cf2bb0e57cb1c9b1806407aac17981f64657fd M sub1
* ok 5: check if a changed subproject HEAD can be committed
* expecting success: git diff-index --exit-code --cached save -- sub1
test $? = 1
:160000 160000 32c96aee32ed1c9520ebfe903c164e09127d9a83 45cf2bb0e57cb1c9b1806407aac17981f64657fd M sub1
* ok 6: check if diff-index works for subproject elements
* expecting success: git diff-tree --exit-code HEAD^ HEAD -- sub1
test $? = 1
:160000 160000 32c96aee32ed1c9520ebfe903c164e09127d9a83 45cf2bb0e57cb1c9b1806407aac17981f64657fd M sub1
* ok 7: check if diff-tree works for subproject elements
* expecting success: git diff --exit-code HEAD^ HEAD
test $? = 1
diff --git a/sub1 b/sub1
index 32c96ae..45cf2bb 160000
--- a/sub1
+++ b/sub1
@@ -1 +1 @@
-Subproject commit 32c96aee32ed1c9520ebfe903c164e09127d9a83
+Subproject commit 45cf2bb0e57cb1c9b1806407aac17981f64657fd
* 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 &&
git diff expected current
Initialized empty Git repository in /build/buildd/git-core-1.5.4.3/t/trash/cloned/.git/
* 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" && {
git diff -M --name-status --exit-code HEAD^ HEAD
test $? = 1
}
R100 sub2 sub3
* ok 10: removing and adding subproject
* expecting success: git checkout save &&
git diff-index --exit-code --raw --cached save -- sub1
M sub1
Switched to branch "save"
* ok 11: checkout in superproject
* passed all 11 test(s)
*** t3050-subprojects-fetch.sh ***
* 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 .git/
Created initial commit 4c0c877: subproject commit #1
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 subfile
Created initial commit 1226c2e: superproject commit #1
1 files changed, 1 insertions(+), 0 deletions(-)
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
) &&
diff -u expected actual
Initialized empty Git repository in /build/buildd/git-core-1.5.4.3/t/trash/cloned/.git/
* 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"
Created commit 1548ecd: superproject commit #2
2 files changed, 1 insertions(+), 1 deletions(-)
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
) &&
diff -u expected actual
remote: Counting objects: 6, done.[K
remote: Compressing objects: 50% (1/2) [K
remote: Compressing objects: 100% (2/2) [K
remote: Compressing objects: 100% (2/2), done.[K
remote: Total 4 (delta 0), reused 0 (delta 0)[K
More information about the ubuntu-autotest
mailing list