20761309 problem in UTILITY/GIT
authorCraig Mohrman <craig.mohrman@oracle.com>
Fri, 03 Apr 2015 10:20:02 -0700
changeset 4050 253de46fd78c
parent 4049 150852e281c4
child 4051 64c125e997d0
20761309 problem in UTILITY/GIT 20460364 GIT should have some master test results to compare against
components/git/Makefile
components/git/patches/imap-send.patch
components/git/patches/t_Makefile.patch
components/git/test/results-64.master
--- a/components/git/Makefile	Fri Apr 03 10:46:51 2015 -0600
+++ b/components/git/Makefile	Fri Apr 03 10:20:02 2015 -0700
@@ -69,6 +69,10 @@
 COMPONENT_INSTALL_ENV+=	PERL_LIB=$(shell $(PERL) -MConfig -e 'print "$$Config{installvendorarch}"')
 COMPONENT_INSTALL_ARGS+=	INSTALL="$(INSTALL)"
 
+# get rid of terminal escape codes in test output
+COMPONENT_TEST_ENV = TERM=dumb
+# many failures; keep going; later versions of git are much cleaner
+COMPONENT_TEST_ARGS += -k -i
 COMPONENT_TEST_TARGETS = test
 
 # This runs configure but configure doesn't generate a Makefile.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/git/patches/imap-send.patch	Fri Apr 03 10:20:02 2015 -0700
@@ -0,0 +1,120 @@
+This patch fixes CVE-2013-0308.
+It was created from a diff between the version 1.8.1.4 of this file
+from the community and the current one.  The only changes to this file
+are for addressing this CVE.
+Here is the community diff:
+https://github.com/gitster/git/commit/0ee7198f457c8ea031b09b528cfd88f0f0e630d8
+
+--- git-1.7.9.2/imap-send.c_orig	2012-02-22 18:04:18.000000000 -0800
++++ git-1.7.9.2/imap-send.c	2015-03-25 12:23:29.465800340 -0700
[email protected]@ -31,6 +31,7 @@
+ #else
+ #include <openssl/evp.h>
+ #include <openssl/hmac.h>
++#include <openssl/x509v3.h>
+ #endif
+ 
+ struct store_conf {
[email protected]@ -266,12 +267,64 @@
+ 	}
+ }
+ 
++#ifdef NO_OPENSSL
+ static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int verify)
+ {
+-#ifdef NO_OPENSSL
+ 	fprintf(stderr, "SSL requested but SSL support not compiled in\n");
+ 	return -1;
++}
++
+ #else
++
++static int host_matches(const char *host, const char *pattern)
++{
++	if (pattern[0] == '*' && pattern[1] == '.') {
++		pattern += 2;
++		if (!(host = strchr(host, '.')))
++			return 0;
++		host++;
++	}
++
++	return *host && *pattern && !strcasecmp(host, pattern);
++}
++
++static int verify_hostname(X509 *cert, const char *hostname)
++{
++	int len;
++	X509_NAME *subj;
++	char cname[1000];
++	int i, found;
++	STACK_OF(GENERAL_NAME) *subj_alt_names;
++
++	/* try the DNS subjectAltNames */
++	found = 0;
++	if ((subj_alt_names = X509_get_ext_d2i(cert, NID_subject_alt_name, NULL, NULL))) {
++		int num_subj_alt_names = sk_GENERAL_NAME_num(subj_alt_names);
++		for (i = 0; !found && i < num_subj_alt_names; i++) {
++			GENERAL_NAME *subj_alt_name = sk_GENERAL_NAME_value(subj_alt_names, i);
++			if (subj_alt_name->type == GEN_DNS &&
++			    strlen((const char *)subj_alt_name->d.ia5->data) == (size_t)subj_alt_name->d.ia5->length &&
++			    host_matches(hostname, (const char *)(subj_alt_name->d.ia5->data)))
++				found = 1;
++		}
++		sk_GENERAL_NAME_pop_free(subj_alt_names, GENERAL_NAME_free);
++	}
++	if (found)
++		return 0;
++
++	/* try the common name */
++	if (!(subj = X509_get_subject_name(cert)))
++		return error("cannot get certificate subject");
++	if ((len = X509_NAME_get_text_by_NID(subj, NID_commonName, cname, sizeof(cname))) < 0)
++		return error("cannot get certificate common name");
++	if (strlen(cname) == (size_t)len && host_matches(hostname, cname))
++		return 0;
++	return error("certificate owner '%s' does not match hostname '%s'",
++		     cname, hostname);
++}
++
++static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int verify)
++{
+ #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
+ 	const SSL_METHOD *meth;
+ #else
[email protected]@ -279,6 +332,7 @@
+ #endif
+ 	SSL_CTX *ctx;
+ 	int ret;
++	X509 *cert;
+ 
+ 	SSL_library_init();
+ 	SSL_load_error_strings();
[email protected]@ -322,9 +376,18 @@
+ 		return -1;
+ 	}
+ 
++	if (verify) {
++		/* make sure the hostname matches that of the certificate */
++		cert = SSL_get_peer_certificate(sock->ssl);
++		if (!cert)
++			return error("unable to get peer certificate.");
++		if (verify_hostname(cert, server.host) < 0)
++			return -1;
++	}
++
+ 	return 0;
+-#endif
+ }
++#endif
+ 
+ static int socket_read(struct imap_socket *sock, char *buf, int len)
+ {
[email protected]@ -1022,7 +1085,7 @@
+ 
+ 	ret = socket_write(&ctx->imap->buf.sock, response, strlen(response));
+ 	if (ret != strlen(response))
+-		return error("IMAP error: sending response failed\n");
++		return error("IMAP error: sending response failed");
+ 
+ 	free(response);
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/git/patches/t_Makefile.patch	Fri Apr 03 10:20:02 2015 -0700
@@ -0,0 +1,14 @@
+The ordering to the tests was non-deterministic without sorting the list.
+This will be fed back to the community.
+
+--- git-1.7.9.2/t/Makefile_orig	2015-03-26 14:29:33.733092028 -0700
++++ git-1.7.9.2/t/Makefile	2015-03-26 14:29:53.247281197 -0700
[email protected]@ -17,7 +17,7 @@
+ # Shell quote;
+ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
+ 
+-T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
++T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh))
+ TSVN = $(wildcard t91[0-9][0-9]-*.sh)
+ TGITWEB = $(wildcard t95[0-9][0-9]-*.sh)
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/git/test/results-64.master	Fri Apr 03 10:20:02 2015 -0700
@@ -0,0 +1,12605 @@
+make[1]: Entering directory `$(@D)'
+    SUBDIR gitweb
+    SUBDIR ../
+make[3]: `GIT-VERSION-FILE' is up to date.
+    GEN git-instaweb
+    SUBDIR git-gui
+    SUBDIR gitk-git
+make[2]: Nothing to be done for `all'.
+    SUBDIR perl
+mkdir -p blib/lib
+rm -f blib/lib/Git.pm; cp Git.pm blib/lib/
+rm -f blib/lib/Error.pm
+cp private-Error.pm blib/lib/Error.pm
+    SUBDIR git_remote_helpers
+    SUBDIR templates
+/usr/gnu/bin/make -C t/ all
+make[2]: Entering directory `$(@D)/t'
+rm -f -r test-results
+/usr/gnu/bin/make aggregate-results-and-cleanup
+make[3]: Entering directory `$(@D)/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 - success is reported like this
+not ok 4 - pretend we have a known breakage # TODO known breakage
+ok 5 - pretend we have fixed a known breakage (run in sub test-lib)
+ok 6 - test runs if prerequisite is satisfied
+ok 7 # skip unmet prerequisite causes test to be skipped (missing DONTHAVEIT)
+ok 8 - test runs if prerequisites are satisfied
+ok 9 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of HAVEIT,DONTHAVEIT)
+ok 10 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of DONTHAVEIT,HAVEIT)
+ok 11 - tests clean up after themselves
+ok 12 - tests clean up even on failures
+ok 13 - git update-index without --add should fail adding.
+ok 14 - git update-index with --add should succeed.
+ok 15 - writing tree out with git write-tree
+ok 16 - validate object ID of a known tree.
+ok 17 - git update-index without --remove should fail removing.
+ok 18 - git update-index with --remove should be able to remove.
+ok 19 - git write-tree should be able to write an empty tree.
+ok 20 - validate object ID of a known tree.
+ok 21 - adding various types of objects with git update-index --add.
+ok 22 - showing stage with git ls-files --stage
+ok 23 - validate git ls-files output for a known tree.
+ok 24 - writing tree out with git write-tree.
+ok 25 - validate object ID for a known tree.
+ok 26 - showing tree with git ls-tree
+ok 27 - git ls-tree output for a known tree.
+ok 28 - showing tree with git ls-tree -r
+ok 29 - git ls-tree -r output for a known tree.
+ok 30 - showing tree with git ls-tree -r -t
+ok 31 - git ls-tree -r output for a known tree.
+ok 32 - writing partial tree out with git write-tree --prefix.
+ok 33 - validate object ID for a known tree.
+ok 34 - writing partial tree out with git write-tree --prefix.
+ok 35 - validate object ID for a known tree.
+ok 36 - put invalid objects into the index.
+ok 37 - writing this tree without --missing-ok.
+ok 38 - writing this tree with --missing-ok.
+ok 39 - git read-tree followed by write-tree should be idempotent.
+ok 40 - validate git diff-files output for a know cache/work tree state.
+ok 41 - git update-index --refresh should succeed.
+ok 42 - no diff after checkout and git update-index --refresh.
+ok 43 - git commit-tree records the correct tree in a commit.
+ok 44 - git commit-tree records the correct parent in a commit.
+ok 45 - git commit-tree omits duplicated parent in a commit.
+ok 46 - update-index D/F conflict
+ok 47 - real path works as expected
+ok 48 - very long name in the index handled sanely
+# still have 1 known breakage(s)
+# passed all remaining 47 test(s)
+1..48
+*** t0001-init.sh ***
+ok 1 - plain
+ok 2 - plain nested in bare
+ok 3 - plain through aliased command, outside any git repo
+not ok 4 - plain nested through aliased command # TODO known breakage
+not ok 5 - plain nested in bare through aliased command # TODO known breakage
+ok 6 - plain with GIT_WORK_TREE
+ok 7 - plain bare
+ok 8 - plain bare with GIT_WORK_TREE
+ok 9 - GIT_DIR bare
+ok 10 - init --bare
+ok 11 - GIT_DIR non-bare
+ok 12 - GIT_DIR & GIT_WORK_TREE (1)
+ok 13 - GIT_DIR & GIT_WORK_TREE (2)
+ok 14 - reinit
+ok 15 - init with --template
+ok 16 - init with --template (blank)
+ok 17 - init with init.templatedir set
+ok 18 - init --bare/--shared overrides system/global config
+ok 19 - init honors global core.sharedRepository
+ok 20 - init rejects insanely long --template
+ok 21 - init creates a new directory
+ok 22 - init creates a new bare directory
+ok 23 - init recreates a directory
+ok 24 - init recreates a new bare directory
+ok 25 - init creates a new deep directory
+ok 26 - init creates a new deep directory (umask vs. shared)
+ok 27 - init notices EEXIST (1)
+ok 28 - init notices EEXIST (2)
+ok 29 - init notices EPERM
+ok 30 - init creates a new bare directory with global --bare
+ok 31 - init prefers command line to GIT_DIR
+ok 32 - init with separate gitdir
+ok 33 - re-init to update git link
+ok 34 - re-init to move gitdir
+ok 35 - re-init to move gitdir symlink
+# still have 2 known breakage(s)
+# passed all remaining 33 test(s)
+1..35
+*** t0002-gitfile.sh ***
+ok 1 - initial setup
+ok 2 - bad setup: invalid .git file format
+ok 3 - bad setup: invalid .git file path
+ok 4 - final setup + check rev-parse --git-dir
+ok 5 - check hash-object
+ok 6 - check cat-file
+ok 7 - check update-index
+ok 8 - check write-tree
+ok 9 - check commit-tree
+ok 10 - check rev-list
+# passed all 10 test(s)
+1..10
+*** t0003-attributes.sh ***
+ok 1 - setup
+ok 2 - command line checks
+ok 3 - attribute test
+ok 4 - attribute matching is case sensitive when core.ignorecase=0
+ok 5 - attribute matching is case insensitive when core.ignorecase=1
+ok 6 - check whether FS is case-insensitive
+ok 7 # skip additional case insensitivity tests (missing CASE_INSENSITIVE_FS)
+ok 8 - unnormalized paths
+ok 9 - relative paths
+ok 10 - prefixes are not confused with leading directories
+ok 11 - core.attributesfile
+ok 12 - attribute test: read paths from stdin
+ok 13 - attribute test: --all option
+ok 14 - attribute test: --cached option
+ok 15 - root subdir attribute test
+ok 16 - setup bare
+ok 17 - bare repository: check that .gitattribute is ignored
+ok 18 - bare repository: check that --cached honors index
+ok 19 - bare repository: test info/attributes
+# passed all 19 test(s)
+1..19
+*** t0004-unwritable.sh ***
+ok 1 - setup
+ok 2 - write-tree should notice unwritable repository
+ok 3 - commit should notice unwritable repository
+ok 4 - update-index should notice unwritable repository
+ok 5 - add should notice unwritable repository
+# passed all 5 test(s)
+1..5
+*** t0005-signals.sh ***
+ok 1 - sigchain works
+# passed all 1 test(s)
+1..1
+*** t0006-date.sh ***
+ok 1 - relative date (5 seconds ago)
+ok 2 - relative date (5 minutes ago)
+ok 3 - relative date (5 hours ago)
+ok 4 - relative date (5 days ago)
+ok 5 - relative date (3 weeks ago)
+ok 6 - relative date (5 months ago)
+ok 7 - relative date (1 year, 2 months ago)
+ok 8 - relative date (1 year, 9 months ago)
+ok 9 - relative date (20 years ago)
+ok 10 - relative date (12 months ago)
+ok 11 - relative date (2 years ago)
+ok 12 - parse date (2008)
+ok 13 - parse date (2008-02)
+ok 14 - parse date (2008-02-14)
+ok 15 - parse date (2008-02-14 20:30:45)
+ok 16 - parse date (2008-02-14 20:30:45 -0500)
+ok 17 - parse date (2008-02-14 20:30:45 -0015)
+ok 18 - parse date (2008-02-14 20:30:45 -5)
+ok 19 - parse date (2008-02-14 20:30:45 -5:)
+ok 20 - parse date (2008-02-14 20:30:45 -05)
+ok 21 - parse date (2008-02-14 20:30:45 -:30)
+ok 22 - parse date (2008-02-14 20:30:45 -05:00)
+ok 23 - parse date (2008-02-14 20:30:45 TZ=EST5)
+ok 24 - parse approxidate (now)
+ok 25 - parse approxidate (5 seconds ago)
+ok 26 - parse approxidate (5.seconds.ago)
+ok 27 - parse approxidate (10.minutes.ago)
+ok 28 - parse approxidate (yesterday)
+ok 29 - parse approxidate (3.days.ago)
+ok 30 - parse approxidate (3.weeks.ago)
+ok 31 - parse approxidate (3.months.ago)
+ok 32 - parse approxidate (2.years.3.months.ago)
+ok 33 - parse approxidate (6am yesterday)
+ok 34 - parse approxidate (6pm yesterday)
+ok 35 - parse approxidate (3:00)
+ok 36 - parse approxidate (15:00)
+ok 37 - parse approxidate (noon today)
+ok 38 - parse approxidate (noon yesterday)
+ok 39 - parse approxidate (last tuesday)
+ok 40 - parse approxidate (July 5th)
+ok 41 - parse approxidate (06/05/2009)
+ok 42 - parse approxidate (06.05.2009)
+ok 43 - parse approxidate (Jun 6, 5AM)
+ok 44 - parse approxidate (5AM Jun 6)
+ok 45 - parse approxidate (6AM, June 7, 2009)
+# passed all 45 test(s)
+1..45
+*** 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)
+1..10
+*** t0020-crlf.sh ***
+ok 1 - setup
+ok 2 - safecrlf: autocrlf=input, all CRLF
+ok 3 - safecrlf: autocrlf=input, mixed LF/CRLF
+ok 4 - safecrlf: autocrlf=true, all LF
+ok 5 - safecrlf: autocrlf=true mixed LF/CRLF
+ok 6 - safecrlf: print warning only once
+ok 7 - switch off autocrlf, safecrlf, reset HEAD
+ok 8 - update with autocrlf=input
+ok 9 - update with autocrlf=true
+ok 10 - checkout with autocrlf=true
+ok 11 - checkout with autocrlf=input
+ok 12 - apply patch (autocrlf=input)
+ok 13 - apply patch --cached (autocrlf=input)
+ok 14 - apply patch --index (autocrlf=input)
+ok 15 - apply patch (autocrlf=true)
+ok 16 - apply patch --cached (autocrlf=true)
+ok 17 - apply patch --index (autocrlf=true)
+ok 18 - .gitattributes says two is binary
+ok 19 - .gitattributes says two is input
+ok 20 - .gitattributes says two and three are text
+ok 21 - in-tree .gitattributes (1)
+ok 22 - in-tree .gitattributes (2)
+ok 23 - in-tree .gitattributes (3)
+ok 24 - in-tree .gitattributes (4)
+ok 25 - checkout with existing .gitattributes
+ok 26 - checkout when deleting .gitattributes
+ok 27 - invalid .gitattributes (must not crash)
+ok 28 - setting up for new autocrlf tests
+ok 29 - report no change after setting autocrlf
+ok 30 - files are clean after checkout
+ok 31 - LF only file gets CRLF with autocrlf
+ok 32 - Mixed file is still mixed with autocrlf
+ok 33 - CRLF only file has CRLF with autocrlf
+ok 34 - New CRLF file gets LF in repo
+# passed all 34 test(s)
+1..34
+*** t0021-conversion.sh ***
+ok 1 - setup
+ok 2 - check
+ok 3 - expanded_in_repo
+ok 4 - filter shell-escaped filenames
+# passed all 4 test(s)
+1..4
+*** t0022-crlf-rename.sh ***
+ok 1 - setup
+ok 2 - diff -M
+# passed all 2 test(s)
+1..2
+*** t0023-crlf-am.sh ***
+ok 1 - setup
+ok 2 - am
+# passed all 2 test(s)
+1..2
+*** t0024-crlf-archive.sh ***
+ok 1 - setup
+ok 2 - tar archive
+ok 3 - zip archive
+# passed all 3 test(s)
+1..3
+*** t0025-crlf-auto.sh ***
+ok 1 - setup
+ok 2 - default settings cause no changes
+ok 3 - crlf=true causes a CRLF file to be normalized
+ok 4 - text=true causes a CRLF file to be normalized
+ok 5 - eol=crlf gives a normalized file CRLFs with autocrlf=false
+ok 6 - eol=crlf gives a normalized file CRLFs with autocrlf=input
+ok 7 - eol=lf gives a normalized file LFs with autocrlf=true
+ok 8 - autocrlf=true does not normalize CRLF files
+ok 9 - text=auto, autocrlf=true _does_ normalize CRLF files
+ok 10 - text=auto, autocrlf=true does not normalize binary files
+ok 11 - eol=crlf _does_ normalize binary files
+# passed all 11 test(s)
+1..11
+*** t0026-eol-config.sh ***
+ok 1 - setup
+ok 2 - eol=lf puts LFs in normalized file
+ok 3 - eol=crlf puts CRLFs in normalized file
+ok 4 - autocrlf=true overrides eol=lf
+ok 5 - autocrlf=true overrides unset eol
+# passed all 5 test(s)
+1..5
+*** 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)
+1..18
+*** t0040-parse-options.sh ***
+ok 1 - test help
+ok 2 - short options
+ok 3 - long options
+ok 4 - missing required value
+ok 5 - intermingled arguments
+ok 6 - unambiguously abbreviated option
+ok 7 - unambiguously abbreviated option with "="
+ok 8 - ambiguously abbreviated option
+ok 9 - non ambiguous option (after two options it abbreviates)
+ok 10 - detect possible typos
+ok 11 - keep some options as arguments
+ok 12 - OPT_DATE() and OPT_SET_PTR() work
+ok 13 - OPT_CALLBACK() and OPT_BIT() work
+ok 14 - OPT_CALLBACK() and callback errors work
+ok 15 - OPT_BIT() and OPT_SET_INT() work
+ok 16 - OPT_NEGBIT() and OPT_SET_INT() work
+ok 17 - OPT_BIT() works
+ok 18 - OPT_NEGBIT() works
+ok 19 - OPT_BOOLEAN() with PARSE_OPT_NODASH works
+ok 20 - OPT_NUMBER_CALLBACK() works
+ok 21 - negation of OPT_NONEG flags is not ambiguous
+ok 22 - --list keeps list of strings
+ok 23 - --no-list resets list
+# passed all 23 test(s)
+1..23
+*** t0050-filesystem.sh ***
+ok 1 - see what we expect
+ok 2 - detection of case insensitive filesystem during repo init
+ok 3 - detection of filesystem w/o symlink support during repo init
+ok 4 - setup case tests
+ok 5 - rename (case change)
+ok 6 - merge (case change)
+not ok 7 - add (with different case) # TODO known breakage
+ok 8 - setup unicode normalization tests
+ok 9 - rename (silent unicode normalization)
+ok 10 - merge (silent unicode normalization)
+# still have 1 known breakage(s)
+# passed all remaining 9 test(s)
+1..10
+*** t0055-beyond-symlinks.sh ***
+ok 1 - setup
+ok 2 - update-index --add beyond symlinks
+ok 3 - add beyond symlinks
+# passed all 3 test(s)
+1..3
+*** t0060-path-utils.sh ***
+ok 1 - normalize path:  => 
+ok 2 - normalize path: . => 
+ok 3 - normalize path: ./ => 
+ok 4 - normalize path: ./. => 
+ok 5 - normalize path: ./.. => ++failed++
+ok 6 - normalize path: ../. => ++failed++
+ok 7 - normalize path: ./../.// => ++failed++
+ok 8 - normalize path: dir/.. => 
+ok 9 - normalize path: dir/sub/../.. => 
+ok 10 - normalize path: dir/sub/../../.. => ++failed++
+ok 11 - normalize path: dir => dir
+ok 12 - normalize path: dir// => dir/
+ok 13 - normalize path: ./dir => dir
+ok 14 - normalize path: dir/. => dir/
+ok 15 - normalize path: dir///./ => dir/
+ok 16 - normalize path: dir//sub/.. => dir/
+ok 17 - normalize path: dir/sub/../ => dir/
+ok 18 - normalize path: dir/sub/../. => dir/
+ok 19 - normalize path: dir/s1/../s2/ => dir/s2/
+ok 20 - normalize path: d1/s1///s2/..//../s3/ => d1/s3/
+ok 21 - normalize path: d1/s1//../s2/../../d2 => d2
+ok 22 - normalize path: d1/.../d2 => d1/.../d2
+ok 23 - normalize path: d1/..././../d2 => d1/d2
+ok 24 - normalize path: / => /
+ok 25 - normalize path: // => /
+ok 26 - normalize path: /// => /
+ok 27 - normalize path: /. => /
+ok 28 - normalize path: /./ => /
+ok 29 - normalize path: /./.. => ++failed++
+ok 30 - normalize path: /../. => ++failed++
+ok 31 - normalize path: /./../.// => ++failed++
+ok 32 - normalize path: /dir/.. => /
+ok 33 - normalize path: /dir/sub/../.. => /
+ok 34 - normalize path: /dir/sub/../../.. => ++failed++
+ok 35 - normalize path: /dir => /dir
+ok 36 - normalize path: /dir// => /dir/
+ok 37 - normalize path: /./dir => /dir
+ok 38 - normalize path: /dir/. => /dir/
+ok 39 - normalize path: /dir///./ => /dir/
+ok 40 - normalize path: /dir//sub/.. => /dir/
+ok 41 - normalize path: /dir/sub/../ => /dir/
+ok 42 - normalize path: //dir/sub/../. => /dir/
+ok 43 - normalize path: /dir/s1/../s2/ => /dir/s2/
+ok 44 - normalize path: /d1/s1///s2/..//../s3/ => /d1/s3/
+ok 45 - normalize path: /d1/s1//../s2/../../d2 => /d2
+ok 46 - normalize path: /d1/.../d2 => /d1/.../d2
+ok 47 - normalize path: /d1/..././../d2 => /d1/d2
+ok 48 - longest ancestor: /  => -1
+ok 49 - longest ancestor: / / => -1
+ok 50 - longest ancestor: /foo  => -1
+ok 51 - longest ancestor: /foo : => -1
+ok 52 - longest ancestor: /foo ::. => -1
+ok 53 - longest ancestor: /foo ::..:: => -1
+ok 54 - longest ancestor: /foo / => 0
+ok 55 - longest ancestor: /foo /fo => -1
+ok 56 - longest ancestor: /foo /foo => -1
+ok 57 - longest ancestor: /foo /foo/ => -1
+ok 58 - longest ancestor: /foo /bar => -1
+ok 59 - longest ancestor: /foo /bar/ => -1
+ok 60 - longest ancestor: /foo /foo/bar => -1
+ok 61 - longest ancestor: /foo /foo:/bar/ => -1
+ok 62 - longest ancestor: /foo /foo/:/bar/ => -1
+ok 63 - longest ancestor: /foo /foo::/bar/ => -1
+ok 64 - longest ancestor: /foo /:/foo:/bar/ => 0
+ok 65 - longest ancestor: /foo /foo:/:/bar/ => 0
+ok 66 - longest ancestor: /foo /:/bar/:/foo => 0
+ok 67 - longest ancestor: /foo/bar  => -1
+ok 68 - longest ancestor: /foo/bar / => 0
+ok 69 - longest ancestor: /foo/bar /fo => -1
+ok 70 - longest ancestor: /foo/bar foo => -1
+ok 71 - longest ancestor: /foo/bar /foo => 4
+ok 72 - longest ancestor: /foo/bar /foo/ => 4
+ok 73 - longest ancestor: /foo/bar /foo/ba => -1
+ok 74 - longest ancestor: /foo/bar /:/fo => 0
+ok 75 - longest ancestor: /foo/bar /foo:/foo/ba => 4
+ok 76 - longest ancestor: /foo/bar /bar => -1
+ok 77 - longest ancestor: /foo/bar /bar/ => -1
+ok 78 - longest ancestor: /foo/bar /fo: => -1
+ok 79 - longest ancestor: /foo/bar :/fo => -1
+ok 80 - longest ancestor: /foo/bar /foo:/bar/ => 4
+ok 81 - longest ancestor: /foo/bar /:/foo:/bar/ => 4
+ok 82 - longest ancestor: /foo/bar /foo:/:/bar/ => 4
+ok 83 - longest ancestor: /foo/bar /:/bar/:/fo => 0
+ok 84 - longest ancestor: /foo/bar /:/bar/ => 0
+ok 85 - longest ancestor: /foo/bar .:/foo/. => 4
+ok 86 - longest ancestor: /foo/bar .:/foo/.:.: => 4
+ok 87 - longest ancestor: /foo/bar /foo/./:.:/bar => 4
+ok 88 - longest ancestor: /foo/bar .:/bar => -1
+ok 89 - strip_path_suffix
+# passed all 89 test(s)
+1..89
+*** t0061-run-command.sh ***
+ok 1 - start_command reports ENOENT
+ok 2 - run_command can run a command
+ok 3 - run_command reports EACCES
+# passed all 3 test(s)
+1..3
+*** t0070-fundamental.sh ***
+ok 1 - character classes (isspace, isalpha etc.)
+ok 2 - mktemp to nonexistent directory prints filename
+ok 3 - mktemp to unwritable directory prints filename
+# passed all 3 test(s)
+1..3
+*** t0080-vcs-svn.sh ***
+ok 1 - obj pool: store data
+ok 2 - obj pool: NULL is offset ~0
+ok 3 - obj pool: out-of-bounds access
+ok 4 - obj pool: high-water mark
+ok 5 - string pool
+ok 6 - treap sort
+# passed all 6 test(s)
+1..6
+*** t0081-line-buffer.sh ***
+ok 1 - hello world
+ok 2 - 0-length read, send along greeting
+ok 3 - read from file descriptor
+ok 4 - skip, copy null byte
+ok 5 - read null byte
+ok 6 - long reads are truncated
+ok 7 - long copies are truncated
+ok 8 - long binary reads are truncated
+# passed all 8 test(s)
+1..8
+*** t0090-cache-tree.sh ***
+not ok 1 - initial commit has cache-tree # TODO known breakage
+ok 2 - read-tree HEAD establishes cache-tree
+ok 3 - git-add invalidates cache-tree
+ok 4 - update-index invalidates cache-tree
+ok 5 - write-tree establishes cache-tree
+ok 6 - test-scrap-cache-tree works
+ok 7 - second commit has cache-tree
+ok 8 - reset --hard gives cache-tree
+ok 9 - reset --hard without index gives cache-tree
+not ok 10 - checkout gives cache-tree # TODO known breakage
+# still have 2 known breakage(s)
+# passed all remaining 8 test(s)
+1..10
+*** t0100-previous.sh ***
+ok 1 - branch -d @{-1}
+ok 2 - branch -d @{-12} when there is not enough switches yet
+ok 3 - merge @{-1}
+ok 4 - merge @{-1} when there is not enough switches yet
+# passed all 4 test(s)
+1..4
+*** t0101-at-syntax.sh ***
+ok 1 - setup
+ok 2 - @{0} shows current
+ok 3 - @{1} shows old
+ok 4 - @{now} shows current
+ok 5 - @{2001-09-17} (before the first commit) shows old
+ok 6 - silly approxidates work
+ok 7 - notice misspelled upstream
+ok 8 - complain about total nonsense
+# passed all 8 test(s)
+1..8
+*** t0200-gettext-basic.sh ***
+# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale
+# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale
+ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu)
+ok 2 - sanity: $TEXTDOMAIN is git
+ok 3 - xgettext sanity: Perl _() strings are not extracted
+ok 4 - xgettext sanity: Comment extraction with --add-comments
+ok 5 - xgettext sanity: Comment extraction with --add-comments stops at statements
+ok 6 - sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease
+ok 7 - sanity: Icelandic locale was compiled
+ok 8 - sanity: gettext("") metadata is OK
+ok 9 - sanity: gettext(unknown) is passed through
+ok 10 - xgettext: C extraction of _() and N_() strings
+ok 11 - xgettext: C extraction with %s
+ok 12 - xgettext: Shell extraction
+ok 13 - xgettext: Shell extraction with $variable
+ok 14 - xgettext: Perl extraction
+ok 15 - xgettext: Perl extraction with %s
+ok 16 - sanity: Some gettext("") data for real locale
+# passed all 16 test(s)
+1..16
+*** t0201-gettext-fallbacks.sh ***
+# lib-gettext: No is_IS UTF-8 locale available
+# lib-gettext: No is_IS ISO-8859-1 locale available
+ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)
+ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set
+ok 3 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough
+ok 4 - gettext: our gettext() fallback has pass-through semantics
+ok 5 - eval_gettext: our eval_gettext() fallback has pass-through semantics
+ok 6 - eval_gettext: our eval_gettext() fallback can interpolate variables
+ok 7 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces
+ok 8 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes
+# passed all 8 test(s)
+1..8
+*** t0202-gettext-perl.sh ***
+# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale
+# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale
+# run 1: Perl Git::I18N API ($(PERL) $(@D)/t/t0202/test.pl)
+1..8
+# test_external test Perl Git::I18N API failed: $(PERL) $(@D)/t/t0202/test.pl
+# test_external_without_stderr test no stderr: Perl Git::I18N API failed: $(PERL) $(@D)/t/t0202/test.pl: 
+make[3]: [t0202-gettext-perl.sh] Error 1 (ignored)
+*** t0203-gettext-setlocale-sanity.sh ***
+# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale
+# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale
+ok 1 - git show a ISO-8859-1 commit under C locale
+ok 2 - git show a ISO-8859-1 commit under a UTF-8 locale
+# passed all 2 test(s)
+1..2
+*** t0204-gettext-reencode-sanity.sh ***
+# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale
+# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale
+ok 1 - gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic
+ok 2 - gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes
+ok 3 - gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Icelandic
+ok 4 - gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Runes
+not ok - 5 gettext: Fetching a UTF-8 msgid -> UTF-8
+#	
+#	    printf "TILRAUN: ‚einfaldar‘ og „tvöfaldar“ gæsalappir" >expect &&
+#	    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: ‘single’ and “double” quotes" >actual &&
+#	    test_cmp expect actual
+#	
+not ok - 6 gettext: Fetching a UTF-8 msgid -> ISO-8859-1
+#	
+#	    LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "TEST: ‘single’ and “double” quotes" >actual &&
+#	    grep "einfaldar" actual &&
+#	    grep "$(echo tvöfaldar | iconv -f UTF-8 -t ISO8859-1)" actual
+#	
+ok 7 - gettext.c: git init UTF-8 -> UTF-8
+ok 8 - gettext.c: git init UTF-8 -> ISO-8859-1
+# failed 2 among 8 test(s)
+1..8
+make[3]: [t0204-gettext-reencode-sanity.sh] Error 1 (ignored)
+*** t0205-gettext-poison.sh ***
+# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale
+# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale
+ok 1 # skip sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu) (missing GETTEXT_POISON)
+ok 2 # skip sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison (missing GETTEXT_POISON)
+ok 3 # skip gettext: our gettext() fallback has poison semantics (missing GETTEXT_POISON)
+ok 4 # skip eval_gettext: our eval_gettext() fallback has poison semantics (missing GETTEXT_POISON)
+# passed all 4 test(s)
+1..4
+*** t0300-credentials.sh ***
+ok 1 - setup helper scripts
+ok 2 - credential_fill invokes helper
+ok 3 - credential_fill invokes multiple helpers
+ok 4 - credential_fill stops when we get a full response
+ok 5 - credential_fill continues through partial response
+ok 6 - credential_fill passes along metadata
+ok 7 - credential_approve calls all helpers
+ok 8 - do not bother storing password-less credential
+ok 9 - credential_reject calls all helpers
+ok 10 - usernames can be preserved
+ok 11 - usernames can be overridden
+ok 12 - do not bother completing already-full credential
+ok 13 - empty helper list falls back to internal getpass
+ok 14 - internal getpass does not ask for known username
+ok 15 - respect configured credentials
+ok 16 - match configured credential
+ok 17 - do not match configured credential
+ok 18 - pull username from config
+ok 19 - http paths can be part of context
+# passed all 19 test(s)
+1..19
+*** t0301-credential-cache.sh ***
+ok 1 - helper (cache) has no existing data
+ok 2 - helper (cache) stores password
+ok 3 - helper (cache) can retrieve password
+ok 4 - helper (cache) requires matching protocol
+ok 5 - helper (cache) requires matching host
+ok 6 - helper (cache) requires matching username
+ok 7 - helper (cache) requires matching path
+ok 8 - helper (cache) can forget host
+ok 9 - helper (cache) can store multiple users
+ok 10 - helper (cache) can forget user
+ok 11 - helper (cache) remembers other user
+ok 12 - helper (cache --timeout=1) times out
+# passed all 12 test(s)
+1..12
+*** t0302-credential-store.sh ***
+ok 1 - helper (store) has no existing data
+ok 2 - helper (store) stores password
+ok 3 - helper (store) can retrieve password
+ok 4 - helper (store) requires matching protocol
+ok 5 - helper (store) requires matching host
+ok 6 - helper (store) requires matching username
+ok 7 - helper (store) requires matching path
+ok 8 - helper (store) can forget host
+ok 9 - helper (store) can store multiple users
+ok 10 - helper (store) can forget user
+ok 11 - helper (store) remembers other user
+# passed all 11 test(s)
+1..11
+*** t0303-credential-external.sh ***
+# skipping external helper tests (set GIT_TEST_CREDENTIAL_HELPER)
+# skipping external helper timeout tests
+# passed all 0 test(s)
+1..0
+*** 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)
+1..83
+*** 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.
+ok 24 - a/b (untracked) vs a case setup.
+ok 25 - a/b (untracked) vs a, plus c/d case test.
+ok 26 - a/b vs a, plus c/d case setup.
+ok 27 - a/b vs a, plus c/d case test.
+ok 28 - -m references the correct modified tree
+# passed all 28 test(s)
+1..28
+*** 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)
+1..22
+*** t1003-read-tree-prefix.sh ***
+ok 1 - setup
+ok 2 - read-tree --prefix
+# passed all 2 test(s)
+1..2
+*** 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
+ok 9 - 3-way not overwriting local changes (setup)
+ok 10 - 3-way not overwriting local changes (our side)
+ok 11 - 3-way not overwriting local changes (their side)
+ok 12 - funny symlink in work tree
+ok 13 - funny symlink in work tree, un-unlink-able
+ok 14 - D/F setup
+ok 15 - D/F
+ok 16 - D/F resolve
+ok 17 - D/F recursive
+# passed all 17 test(s)
+1..17
+*** t1005-read-tree-reset.sh ***
+ok 1 - setup
+ok 2 - reset should work
+ok 3 - reset should remove remnants from a failed merge
+ok 4 - Porcelain reset should remove remnants too
+ok 5 - Porcelain checkout -f should remove remnants too
+ok 6 - Porcelain checkout -f HEAD should remove remnants too
+# passed all 6 test(s)
+1..6
+*** t1006-cat-file.sh ***
+ok 1 - setup
+ok 2 - blob exists
+ok 3 - Type of blob is correct
+ok 4 - Size of blob is correct
+ok 5 - Content of blob is correct
+ok 6 - Pretty content of blob is correct
+ok 7 - --batch output of blob is correct
+ok 8 - --batch-check output of blob is correct
+ok 9 - tree exists
+ok 10 - Type of tree is correct
+ok 11 - Size of tree is correct
+ok 12 - Pretty content of tree is correct
+ok 13 - --batch-check output of tree is correct
+ok 14 - commit exists
+ok 15 - Type of commit is correct
+ok 16 - Size of commit is correct
+ok 17 - Content of commit is correct
+ok 18 - Pretty content of commit is correct
+ok 19 - --batch output of commit is correct
+ok 20 - --batch-check output of commit is correct
+ok 21 - tag exists
+ok 22 - Type of tag is correct
+ok 23 - Size of tag is correct
+ok 24 - Content of tag is correct
+ok 25 - Pretty content of tag is correct
+ok 26 - --batch output of tag is correct
+ok 27 - --batch-check output of tag is correct
+ok 28 - Reach a blob from a tag pointing to it
+ok 29 - Passing -t with --batch fails
+ok 30 - Passing --batch with -t fails
+ok 31 - Passing -s with --batch fails
+ok 32 - Passing --batch with -s fails
+ok 33 - Passing -e with --batch fails
+ok 34 - Passing --batch with -e fails
+ok 35 - Passing -p with --batch fails
+ok 36 - Passing --batch with -p fails
+ok 37 - Passing <type> with --batch fails
+ok 38 - Passing --batch with <type> fails
+ok 39 - Passing sha1 with --batch fails
+ok 40 - Passing -t with --batch-check fails
+ok 41 - Passing --batch-check with -t fails
+ok 42 - Passing -s with --batch-check fails
+ok 43 - Passing --batch-check with -s fails
+ok 44 - Passing -e with --batch-check fails
+ok 45 - Passing --batch-check with -e fails
+ok 46 - Passing -p with --batch-check fails
+ok 47 - Passing --batch-check with -p fails
+ok 48 - Passing <type> with --batch-check fails
+ok 49 - Passing --batch-check with <type> fails
+ok 50 - Passing sha1 with --batch-check fails
+ok 51 - --batch-check for a non-existent named object
+ok 52 - --batch-check for a non-existent hash
+ok 53 - --batch for an existent and a non-existent hash
+ok 54 - --batch-check for an emtpy line
+ok 55 - --batch with multiple sha1s gives correct format
+ok 56 - --batch-check with multiple sha1s gives correct format
+# passed all 56 test(s)
+1..56
+*** t1007-hash-object.sh ***
+ok 1 - multiple '--stdin's are rejected
+ok 2 - Can't use --stdin and --stdin-paths together
+ok 3 - Can't pass filenames as arguments with --stdin-paths
+ok 4 - Can't use --path with --stdin-paths
+ok 5 - Can't use --path with --no-filters
+ok 6 - hash a file
+ok 7 - blob does not exist in database
+ok 8 - hash from stdin
+ok 9 - blob does not exist in database
+ok 10 - hash a file and write to database
+ok 11 - blob exists in database
+ok 12 - git hash-object --stdin file1 <file0 first operates on file0, then file1
+ok 13 - check that appropriate filter is invoke when --path is used
+ok 14 - check that --no-filters option works
+ok 15 - check that --no-filters option works with --stdin-paths
+ok 16 - hash from stdin and write to database (-w --stdin)
+ok 17 - blob exists in database
+ok 18 - hash from stdin and write to database (--stdin -w)
+ok 19 - blob exists in database
+ok 20 - hash two files with names on stdin
+ok 21 - hash two files with names on stdin and write to database (-w --stdin-paths)
+ok 22 - blob exists in database
+ok 23 - blob exists in database
+ok 24 - hash two files with names on stdin and write to database (--stdin-paths -w)
+ok 25 - blob exists in database
+ok 26 - blob exists in database
+ok 27 - corrupt tree
+ok 28 - corrupt commit
+ok 29 - corrupt tag
+# passed all 29 test(s)
+1..29
+*** t1008-read-tree-overlay.sh ***
+ok 1 - setup
+ok 2 - multi-read
+# passed all 2 test(s)
+1..2
+*** t1009-read-tree-new-index.sh ***
+ok 1 - setup
+ok 2 - non-existent index file
+ok 3 - empty index file
+# passed all 3 test(s)
+1..3
+*** t1010-mktree.sh ***
+ok 1 - setup
+ok 2 - ls-tree piped to mktree (1)
+ok 3 - ls-tree piped to mktree (2)
+ok 4 - ls-tree output in wrong order given to mktree (1)
+ok 5 - ls-tree output in wrong order given to mktree (2)
+ok 6 - allow missing object with --missing
+ok 7 - mktree refuses to read ls-tree -r output (1)
+ok 8 - mktree refuses to read ls-tree -r output (2)
+# passed all 8 test(s)
+1..8
+*** t1011-read-tree-sparse-checkout.sh ***
+ok 1 - setup
+ok 2 - read-tree without .git/info/sparse-checkout
+ok 3 - read-tree with .git/info/sparse-checkout but disabled
+ok 4 - read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled
+ok 5 - read-tree with empty .git/info/sparse-checkout
+ok 6 - match directories with trailing slash
+ok 7 - match directories without trailing slash
+ok 8 - match directories with negated patterns
+ok 9 - match directories with negated patterns (2)
+ok 10 - match directory pattern
+ok 11 - checkout area changes
+ok 12 - read-tree updates worktree, absent case
+ok 13 - read-tree updates worktree, dirty case
+ok 14 - read-tree removes worktree, dirty case
+ok 15 - read-tree adds to worktree, absent case
+ok 16 - read-tree adds to worktree, dirty case
+ok 17 - index removal and worktree narrowing at the same time
+ok 18 - read-tree --reset removes outside worktree
+ok 19 - print errors when failed to update worktree
+# passed all 19 test(s)
+1..19
+*** t1012-read-tree-df.sh ***
+ok 1 - setup
+ok 2 - 3-way (1)
+ok 3 - 3-way (2)
+ok 4 - 3-way (3)
+ok 5 - 2-way (1)
+# passed all 5 test(s)
+1..5
+*** t1013-loose-object-format.sh ***
+ok 1 - setup
+ok 2 - read standard-format loose objects
+ok 3 - read experimental-format loose objects
+ok 4 - read standard-format objects deflated with smaller window buffer
+# passed all 4 test(s)
+1..4
+*** 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 - alias expansion
+ok 9 - !alias expansion
+ok 10 - GIT_PREFIX for !alias
+ok 11 - GIT_PREFIX for built-ins
+ok 12 - no file/rev ambiguity check inside .git
+ok 13 - no file/rev ambiguity check inside a bare repo
+ok 14 - detection should not be fooled by a symlink
+# passed all 14 test(s)
+1..14
+*** t1021-rerere-in-workdir.sh ***
+ok 1 - setup
+ok 2 - rerere in workdir
+not ok 3 - rerere in workdir (relative) # TODO known breakage
+# still have 1 known breakage(s)
+# passed all remaining 2 test(s)
+1..3
+*** t1050-large.sh ***
+ok 1 - setup
+ok 2 - add a large file or two
+ok 3 - checkout a large file
+ok 4 - packsize limit
+# passed all 4 test(s)
+1..4
+*** 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)
+1..4
+*** 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
+ok 10 - git checkout -b mybranch
+ok 11 - git branch
+ok 12 - git resolve now fails
+ok 13 - git show-branch
+ok 14 - git resolve
+ok 15 - git resolve output
+ok 16 - git show-branch (part 2)
+ok 17 - git show-branch (part 3)
+ok 18 - rewind to "Some fun." and "Some work."
+ok 19 - git show-branch (part 4)
+ok 20 - manual merge
+ok 21 - git ls-files --stage
+ok 22 - git ls-files --unmerged
+ok 23 - git-merge-index
+ok 24 - git ls-files --stage (part 2)
+ok 25 - git repack
+ok 26 - git prune-packed
+ok 27 - -> only packed objects
+# passed all 27 test(s)
+1..27
+*** t1300-repo-config.sh ***
+ok 1 - clear default config
+ok 2 - initial
+ok 3 - mixed case
+ok 4 - similar section
+ok 5 - uppercase section
+ok 6 - replace with non-match
+ok 7 - replace with non-match (actually matching)
+ok 8 - non-match result
+ok 9 - find mixed-case key by canonical name
+ok 10 - find mixed-case key by non-canonical name
+ok 11 - subsections are not canonicalized by git-config
+ok 12 - unset with cont. lines
+ok 13 - unset with cont. lines is correct
+ok 14 - multiple unset
+ok 15 - multiple unset is correct
+ok 16 - --replace-all missing value
+ok 17 - --replace-all
+ok 18 - all replaced
+ok 19 - really mean test
+ok 20 - really really mean test
+ok 21 - get value
+ok 22 - unset
+ok 23 - multivar
+ok 24 - non-match
+ok 25 - non-match value
+ok 26 - ambiguous get
+ok 27 - get multivar
+ok 28 - multivar replace
+ok 29 - ambiguous value
+ok 30 - ambiguous unset
+ok 31 - invalid unset
+ok 32 - multivar unset
+ok 33 - invalid key
+ok 34 - correct key
+ok 35 - hierarchical section
+ok 36 - hierarchical section value
+ok 37 - working --list
+ok 38 - --list without repo produces empty output
+ok 39 - --get-regexp
+ok 40 - --add
+ok 41 - get variable with no value
+ok 42 - get variable with empty value
+ok 43 - get-regexp variable with no value
+ok 44 - get-regexp --bool variable with no value
+ok 45 - get-regexp variable with empty value
+ok 46 - get bool variable with no value
+ok 47 - get bool variable with empty value
+ok 48 - no arguments, but no crash
+ok 49 - new section is partial match of another
+ok 50 - new variable inserts into proper section
+ok 51 - alternative GIT_CONFIG (non-existing file should fail)
+ok 52 - alternative GIT_CONFIG
+ok 53 - alternative GIT_CONFIG (--file)
+ok 54 - refer config from subdirectory
+ok 55 - --set in alternative GIT_CONFIG
+ok 56 - rename section
+ok 57 - rename succeeded
+ok 58 - rename non-existing section
+ok 59 - rename succeeded
+ok 60 - rename another section
+ok 61 - rename succeeded
+ok 62 - rename a section with a var on the same line
+ok 63 - rename succeeded
+ok 64 - remove section
+ok 65 - section was removed properly
+ok 66 - section ending
+ok 67 - numbers
+ok 68 - invalid unit
+ok 69 - bool
+ok 70 - invalid bool (--get)
+ok 71 - invalid bool (set)
+ok 72 - set --bool
+ok 73 - set --int
+ok 74 - get --bool-or-int
+ok 75 - set --bool-or-int
+ok 76 - set --path
+ok 77 - get --path
+ok 78 - get --path copes with unset $HOME
+ok 79 - quoting
+ok 80 - key with newline
+ok 81 - value with newline
+ok 82 - value continued on next line
+ok 83 - --null --list
+ok 84 - --null --get-regexp
+ok 85 - inner whitespace kept verbatim
+ok 86 - symlinked configuration
+ok 87 - nonexistent configuration
+ok 88 - symlink to nonexistent configuration
+ok 89 - check split_cmdline return
+ok 90 - git -c "key=value" support
+ok 91 - key sanity-checking
+ok 92 - git -c works with aliases of builtins
+ok 93 - git -c does not split values on equals
+ok 94 - git -c dies on bogus config
+ok 95 - git -c complains about empty key
+ok 96 - git -c complains about empty key and value
+# passed all 96 test(s)
+1..96
+*** t1301-shared-repo.sh ***
+ok 1 - shared = 0400 (faulty permission u-w)
+ok 2 - shared=1 does not clear bits preset by umask 002
+ok 3 - shared=1 does not clear bits preset by umask 022
+ok 4 - shared=all
+ok 5 - update-server-info honors core.sharedRepository
+ok 6 - shared = 0660 (r--r-----) ro
+ok 7 - shared = 0660 (rw-rw----) rw
+ok 8 - shared = 0640 (r--r-----) ro
+ok 9 - shared = 0640 (rw-r-----) rw
+ok 10 - shared = 0600 (r--------) ro
+ok 11 - shared = 0600 (rw-------) rw
+ok 12 - shared = 0666 (r--r--r--) ro
+ok 13 - shared = 0666 (rw-rw-rw-) rw
+ok 14 - shared = 0664 (r--r--r--) ro
+ok 15 - shared = 0664 (rw-rw-r--) rw
+ok 16 - git reflog expire honors core.sharedRepository
+ok 17 - forced modes
+# passed all 17 test(s)
+1..17
+*** t1302-repo-version.sh ***
+ok 1 - setup
+ok 2 - gitdir selection on normal repos
+ok 3 - gitdir selection on unsupported repo
+ok 4 - gitdir not required mode
+ok 5 - gitdir required mode
+# passed all 5 test(s)
+1..5
+*** t1303-wacky-config.sh ***
+ok 1 - modify same key
+ok 2 - add key in same section
+ok 3 - add key in different section
+ok 4 - make sure git config escapes section names properly
+ok 5 - do not crash on special long config line
+# passed all 5 test(s)
+1..5
+*** t1304-default-acl.sh ***
+Unable to use setfacl (output: 'File system doesn't support aclent_t style ACL's.
+See acl(5) for more information on ACL styles support by Solaris.'; return code: '2')
+ok 1 # skip Setup test repo (missing SETFACL)
+ok 2 # skip Objects creation does not break ACLs with restrictive umask (missing SETFACL)
+ok 3 # skip git gc does not break ACLs with restrictive umask (missing SETFACL)
+# passed all 3 test(s)
+1..3
+*** t1400-update-ref.sh ***
+ok 1 - setup
+ok 2 - create refs/heads/master
+ok 3 - create refs/heads/master
+ok 4 - fail to delete refs/heads/master with stale ref
+ok 5 - delete refs/heads/master
+ok 6 - delete refs/heads/master without oldvalue verification
+ok 7 - fail to create refs/heads/gu/fixes
+ok 8 - create refs/heads/master (by HEAD)
+ok 9 - create refs/heads/master (by HEAD)
+ok 10 - fail to delete refs/heads/master (by HEAD) with stale ref
+ok 11 - delete refs/heads/master (by HEAD)
+ok 12 - delete symref without dereference
+ok 13 - delete symref without dereference when the referred ref is packed
+ok 14 - (not) create HEAD with old sha1
+ok 15 - (not) prior created .git/refs/heads/master
+ok 16 - create HEAD
+ok 17 - (not) change HEAD with wrong SHA1
+ok 18 - (not) changed .git/refs/heads/master
+ok 19 - create refs/heads/master (logged by touch)
+ok 20 - update refs/heads/master (logged by touch)
+ok 21 - set refs/heads/master (logged by touch)
+ok 22 - verifying refs/heads/master's log
+ok 23 - enable core.logAllRefUpdates
+ok 24 - create refs/heads/master (logged by config)
+ok 25 - update refs/heads/master (logged by config)
+ok 26 - set refs/heads/master (logged by config)
+ok 27 - verifying refs/heads/master's log
+ok 28 - Query "[email protected]{May 25 2005}" (before history)
+ok 29 - Query [email protected]{2005-05-25} (before history)
+ok 30 - Query "[email protected]{May 26 2005 23:31:59}" (1 second before history)
+ok 31 - Query "[email protected]{May 26 2005 23:32:00}" (exactly history start)
+ok 32 - Query "[email protected]{May 26 2005 23:32:30}" (first non-creation change)
+ok 33 - Query "[email protected]{2005-05-26 23:33:01}" (middle of history with gap)
+ok 34 - Query "[email protected]{2005-05-26 23:38:00}" (middle of history)
+ok 35 - Query "[email protected]{2005-05-26 23:43:00}" (exact end of history)
+ok 36 - Query "[email protected]{2005-05-28}" (past end of history)
+ok 37 - creating initial files
+ok 38 - git commit logged updates
+ok 39 - git cat-file blob master:F (expect OTHER)
+ok 40 - git cat-file blob [email protected]{2005-05-26 23:30}:F (expect TEST)
+ok 41 - git cat-file blob [email protected]{2005-05-26 23:42}:F (expect OTHER)
+# passed all 41 test(s)
+1..41
+*** t1401-symbolic-ref.sh ***
+ok 1 - symbolic-ref writes HEAD
+ok 2 - symbolic-ref reads HEAD
+ok 3 - symbolic-ref refuses non-ref for HEAD
+ok 4 - symbolic-ref refuses bare sha1
+# passed all 4 test(s)
+1..4
+*** t1402-check-ref-format.sh ***
+ok 1 - ref name '' is invalid
+ok 2 - ref name '/' is invalid
+ok 3 - ref name '/' is invalid with options --allow-onelevel
+ok 4 - ref name '/' is invalid with options --normalize
+ok 5 - ref name '/' is invalid with options --allow-onelevel --normalize
+ok 6 - ref name 'foo/bar/baz' is valid
+ok 7 - ref name 'foo/bar/baz' is valid with options --normalize
+ok 8 - ref name 'refs///heads/foo' is invalid
+ok 9 - ref name 'refs///heads/foo' is valid with options --normalize
+ok 10 - ref name 'heads/foo/' is invalid
+ok 11 - ref name '/heads/foo' is invalid
+ok 12 - ref name '/heads/foo' is valid with options --normalize
+ok 13 - ref name '///heads/foo' is invalid
+ok 14 - ref name '///heads/foo' is valid with options --normalize
+ok 15 - ref name './foo' is invalid
+ok 16 - ref name './foo/bar' is invalid
+ok 17 - ref name 'foo/./bar' is invalid
+ok 18 - ref name 'foo/bar/.' is invalid
+ok 19 - ref name '.refs/foo' is invalid
+ok 20 - ref name 'heads/foo..bar' is invalid
+ok 21 - ref name 'heads/foo?bar' is invalid
+ok 22 - ref name 'foo./bar' is valid
+ok 23 - ref name 'heads/foo.lock' is invalid
+ok 24 - ref name 'heads///foo.lock' is invalid
+ok 25 - ref name 'foo.lock/bar' is invalid
+ok 26 - ref name 'foo.lock///bar' is invalid
+ok 27 - ref name 'heads/[email protected]' is valid
+ok 28 - ref name 'heads/[email protected]{ation' is invalid
+ok 29 - ref name 'heads/fooar' is invalid
+ok 30 - ref name 'heads/foo	' is invalid
+ok 31 - ref name 'heads/foo' is invalid
+ok 32 - ref name 'heads/fuß' is valid
+ok 33 - ref name 'heads/*foo/bar' is invalid with options --refspec-pattern
+ok 34 - ref name 'heads/foo*/bar' is invalid with options --refspec-pattern
+ok 35 - ref name 'heads/f*o/bar' is invalid with options --refspec-pattern
+ok 36 - ref name 'foo' is invalid
+ok 37 - ref name 'foo' is valid with options --allow-onelevel
+ok 38 - ref name 'foo' is invalid with options --refspec-pattern
+ok 39 - ref name 'foo' is valid with options --refspec-pattern --allow-onelevel
+ok 40 - ref name 'foo' is invalid with options --normalize
+ok 41 - ref name 'foo' is valid with options --allow-onelevel --normalize
+ok 42 - ref name 'foo/bar' is valid
+ok 43 - ref name 'foo/bar' is valid with options --allow-onelevel
+ok 44 - ref name 'foo/bar' is valid with options --refspec-pattern
+ok 45 - ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel
+ok 46 - ref name 'foo/bar' is valid with options --normalize
+ok 47 - ref name 'foo/*' is invalid
+ok 48 - ref name 'foo/*' is invalid with options --allow-onelevel
+ok 49 - ref name 'foo/*' is valid with options --refspec-pattern
+ok 50 - ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel
+ok 51 - ref name '*/foo' is invalid
+ok 52 - ref name '*/foo' is invalid with options --allow-onelevel
+ok 53 - ref name '*/foo' is valid with options --refspec-pattern
+ok 54 - ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel
+ok 55 - ref name '*/foo' is invalid with options --normalize
+ok 56 - ref name '*/foo' is valid with options --refspec-pattern --normalize
+ok 57 - ref name 'foo/*/bar' is invalid
+ok 58 - ref name 'foo/*/bar' is invalid with options --allow-onelevel
+ok 59 - ref name 'foo/*/bar' is valid with options --refspec-pattern
+ok 60 - ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel
+ok 61 - ref name '*' is invalid
+ok 62 - ref name '*' is invalid with options --allow-onelevel
+ok 63 - ref name '*' is invalid with options --refspec-pattern
+ok 64 - ref name '*' is valid with options --refspec-pattern --allow-onelevel
+ok 65 - ref name 'foo/*/*' is invalid with options --refspec-pattern
+ok 66 - ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel
+ok 67 - ref name '*/foo/*' is invalid with options --refspec-pattern
+ok 68 - ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel
+ok 69 - ref name '*/*/foo' is invalid with options --refspec-pattern
+ok 70 - ref name '*/*/foo' is invalid with options --refspec-pattern --allow-onelevel
+ok 71 - ref name '/foo' is invalid
+ok 72 - ref name '/foo' is invalid with options --allow-onelevel
+ok 73 - ref name '/foo' is invalid with options --refspec-pattern
+ok 74 - ref name '/foo' is invalid with options --refspec-pattern --allow-onelevel
+ok 75 - ref name '/foo' is invalid with options --normalize
+ok 76 - ref name '/foo' is valid with options --allow-onelevel --normalize
+ok 77 - ref name '/foo' is invalid with options --refspec-pattern --normalize
+ok 78 - ref name '/foo' is valid with options --refspec-pattern --allow-onelevel --normalize
+ok 79 - check-ref-format --branch @{-1}
+ok 80 - check-ref-format --branch from subdir
+ok 81 - ref name 'heads/foo' simplifies to 'heads/foo'
+ok 82 - ref name 'refs///heads/foo' simplifies to 'refs/heads/foo'
+ok 83 - ref name '/heads/foo' simplifies to 'heads/foo'
+ok 84 - ref name '///heads/foo' simplifies to 'heads/foo'
+ok 85 - check-ref-format --normalize rejects 'foo'
+ok 86 - check-ref-format --normalize rejects '/foo'
+ok 87 - check-ref-format --normalize rejects 'heads/foo/../bar'
+ok 88 - check-ref-format --normalize rejects 'heads/./foo'
+ok 89 - check-ref-format --normalize rejects 'headsoo'
+ok 90 - check-ref-format --normalize rejects 'heads/foo.lock'
+ok 91 - check-ref-format --normalize rejects 'heads///foo.lock'
+ok 92 - check-ref-format --normalize rejects 'foo.lock/bar'
+ok 93 - check-ref-format --normalize rejects 'foo.lock///bar'
+# passed all 93 test(s)
+1..93
+*** 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 - delete
+ok 9 - rewind2
+ok 10 - --expire=never
+ok 11 - gc.reflogexpire=never
+ok 12 - gc.reflogexpire=false
+# passed all 12 test(s)
+1..12
+*** t1411-reflog-show.sh ***
+ok 1 - setup
+ok 2 - log -g shows reflog headers
+ok 3 - oneline reflog format
+ok 4 - reflog default format
+ok 5 - override reflog default format
+ok 6 - using @{now} syntax shows reflog date (multiline)
+ok 7 - using @{now} syntax shows reflog date (oneline)
+ok 8 - using --date= shows reflog date (multiline)
+ok 9 - using --date= shows reflog date (oneline)
+ok 10 - empty reflog file
+# passed all 10 test(s)
+1..10
+*** t1412-reflog-loop.sh ***
+ok 1 - setup commits
+ok 2 - setup reflog with alternating commits
+ok 3 - reflog shows all entries
+# passed all 3 test(s)
+1..3
+*** t1420-lost-found.sh ***
+ok 1 - setup
+ok 2 - lost and found something
+# passed all 2 test(s)
+1..2
+*** t1450-fsck.sh ***
+ok 1 - setup
+ok 2 - loose objects borrowed from alternate are not missing
+ok 3 - HEAD is part of refs, valid objects appear valid
+ok 4 - setup: helpers for corruption tests
+ok 5 - object with bad sha1
+ok 6 - branch pointing to non-commit
+ok 7 - email without @ is okay
+ok 8 - email with embedded > is not okay
+ok 9 - missing < email delimiter is reported nicely
+ok 10 - missing email is reported nicely
+ok 11 - > in name is reported
+ok 12 - tag pointing to nonexistent
+ok 13 - tag pointing to something else than its type
+ok 14 - cleaned up
+ok 15 - rev-list --verify-objects
+ok 16 - rev-list --verify-objects with bad sha1
+# passed all 16 test(s)
+1..16
+*** 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 - toplevel: git-dir
+ok 6 - .git/: is-bare-repository
+ok 7 - .git/: is-inside-git-dir
+ok 8 - .git/: is-inside-work-tree
+ok 9 - .git/: prefix
+ok 10 - .git/: git-dir
+ok 11 - .git/objects/: is-bare-repository
+ok 12 - .git/objects/: is-inside-git-dir
+ok 13 - .git/objects/: is-inside-work-tree
+ok 14 - .git/objects/: prefix
+ok 15 - .git/objects/: git-dir
+ok 16 - subdirectory: is-bare-repository
+ok 17 - subdirectory: is-inside-git-dir
+ok 18 - subdirectory: is-inside-work-tree
+ok 19 - subdirectory: prefix
+ok 20 - subdirectory: git-dir
+ok 21 - core.bare = true: is-bare-repository
+ok 22 - core.bare = true: is-inside-git-dir
+ok 23 - core.bare = true: is-inside-work-tree
+ok 24 - core.bare undefined: is-bare-repository
+ok 25 - core.bare undefined: is-inside-git-dir
+ok 26 - core.bare undefined: is-inside-work-tree
+ok 27 - GIT_DIR=../.git, core.bare = false: is-bare-repository
+ok 28 - GIT_DIR=../.git, core.bare = false: is-inside-git-dir
+ok 29 - GIT_DIR=../.git, core.bare = false: is-inside-work-tree
+ok 30 - GIT_DIR=../.git, core.bare = false: prefix
+ok 31 - GIT_DIR=../.git, core.bare = true: is-bare-repository
+ok 32 - GIT_DIR=../.git, core.bare = true: is-inside-git-dir
+ok 33 - GIT_DIR=../.git, core.bare = true: is-inside-work-tree
+ok 34 - GIT_DIR=../.git, core.bare = true: prefix
+ok 35 - GIT_DIR=../.git, core.bare undefined: is-bare-repository
+ok 36 - GIT_DIR=../.git, core.bare undefined: is-inside-git-dir
+ok 37 - GIT_DIR=../.git, core.bare undefined: is-inside-work-tree
+ok 38 - GIT_DIR=../.git, core.bare undefined: prefix
+ok 39 - GIT_DIR=../repo.git, core.bare = false: is-bare-repository
+ok 40 - GIT_DIR=../repo.git, core.bare = false: is-inside-git-dir
+ok 41 - GIT_DIR=../repo.git, core.bare = false: is-inside-work-tree
+ok 42 - GIT_DIR=../repo.git, core.bare = false: prefix
+ok 43 - GIT_DIR=../repo.git, core.bare = true: is-bare-repository
+ok 44 - GIT_DIR=../repo.git, core.bare = true: is-inside-git-dir
+ok 45 - GIT_DIR=../repo.git, core.bare = true: is-inside-work-tree
+ok 46 - GIT_DIR=../repo.git, core.bare = true: prefix
+ok 47 - GIT_DIR=../repo.git, core.bare undefined: is-bare-repository
+ok 48 - GIT_DIR=../repo.git, core.bare undefined: is-inside-git-dir
+ok 49 - GIT_DIR=../repo.git, core.bare undefined: is-inside-work-tree
+ok 50 - GIT_DIR=../repo.git, core.bare undefined: prefix
+# passed all 50 test(s)
+1..50
+*** t1501-worktree.sh ***
+ok 1 - setup
+ok 2 - setup: helper for testing rev-parse
+ok 3 - setup: core.worktree = relative path
+ok 4 - outside
+ok 5 - inside work tree
+not ok 6 - empty prefix is actually written out # TODO known breakage
+ok 7 - subdir of work tree
+ok 8 - setup: core.worktree = absolute path
+ok 9 - outside
+ok 10 - inside work tree
+ok 11 - subdir of work tree
+ok 12 - setup: GIT_WORK_TREE=relative (override core.worktree)
+ok 13 - outside
+ok 14 - inside work tree
+ok 15 - subdir of work tree
+ok 16 - setup: GIT_WORK_TREE=absolute, below git dir
+ok 17 - outside
+ok 18 - in repo.git
+ok 19 - inside work tree
+ok 20 - subdir of work tree
+ok 21 - find work tree from repo
+ok 22 - find work tree from work tree
+ok 23 - _gently() groks relative GIT_DIR & GIT_WORK_TREE
+ok 24 - diff-index respects work tree under .git dir
+ok 25 - diff-files respects work tree under .git dir
+ok 26 - git diff respects work tree under .git dir
+ok 27 - git grep
+ok 28 - git commit
+ok 29 - absolute pathspec should fail gracefully
+ok 30 - make_relative_path handles double slashes in GIT_DIR
+ok 31 - relative $GIT_WORK_TREE and git subprocesses
+# still have 1 known breakage(s)
+# passed all remaining 30 test(s)
+1..31
+*** t1502-rev-parse-parseopt.sh ***
+ok 1 - test --parseopt help output
+ok 2 - test --parseopt
+ok 3 - test --parseopt with mixed options and arguments
+ok 4 - test --parseopt with --
+ok 5 - test --parseopt --stop-at-non-option
+ok 6 - test --parseopt --keep-dashdash
+ok 7 - test --parseopt --keep-dashdash --stop-at-non-option with --
+ok 8 - test --parseopt --keep-dashdash --stop-at-non-option without --
+# passed all 8 test(s)
+1..8
+*** t1503-rev-parse-verify.sh ***
+ok 1 - set up basic repo with 1 file (hello) and 4 commits
+ok 2 - works with one good rev
+ok 3 - fails with any bad rev or many good revs
+ok 4 - fails silently when using -q
+ok 5 - no stdout output on error
+ok 6 - use --default
+ok 7 - [email protected]{n} for various n
+# passed all 7 test(s)
+1..7
+*** t1504-ceiling-dirs.sh ***
+ok 1 - no_ceil
+ok 2 - ceil_empty
+ok 3 - ceil_at_parent
+ok 4 - ceil_at_parent_slash
+ok 5 - ceil_at_trash
+ok 6 - ceil_at_trash_slash
+ok 7 - ceil_at_sub
+ok 8 - ceil_at_sub_slash
+ok 9 - subdir_no_ceil
+ok 10 - subdir_ceil_empty
+ok 11 - subdir_ceil_at_trash: prefix
+ok 12 - subdir_ceil_at_trash_slash: prefix
+ok 13 - subdir_ceil_at_sub: prefix
+ok 14 - subdir_ceil_at_sub_slash: prefix
+ok 15 - subdir_ceil_at_subdir
+ok 16 - subdir_ceil_at_subdir_slash
+ok 17 - subdir_ceil_at_su
+ok 18 - subdir_ceil_at_su_slash
+ok 19 - subdir_ceil_at_sub_di
+ok 20 - subdir_ceil_at_sub_di_slash
+ok 21 - subdir_ceil_at_subdi
+ok 22 - subdir_ceil_at_subdi_slash
+ok 23 - second_of_two: prefix
+ok 24 - first_of_two: prefix
+ok 25 - second_of_three: prefix
+ok 26 - git_dir_specified
+ok 27 - sd_no_ceil
+ok 28 - sd_ceil_empty
+ok 29 - sd_ceil_at_trash: prefix
+ok 30 - sd_ceil_at_trash_slash: prefix
+ok 31 - sd_ceil_at_s: prefix
+ok 32 - sd_ceil_at_s_slash: prefix
+ok 33 - sd_ceil_at_sd
+ok 34 - sd_ceil_at_sd_slash
+ok 35 - sd_ceil_at_su
+ok 36 - sd_ceil_at_su_slash
+ok 37 - sd_ceil_at_s_di
+ok 38 - sd_ceil_at_s_di_slash
+ok 39 - sd_ceil_at_sdi
+ok 40 - sd_ceil_at_sdi_slash
+# passed all 40 test(s)
+1..40
+*** t1505-rev-parse-last.sh ***
+ok 1 - setup
+ok 2 - @{-1} works
+ok 3 - @{-1}~2 works
+ok 4 - @{-1}^2 works
+ok 5 - @{-1}@{1} works
+ok 6 - @{-2} works
+ok 7 - @{-3} fails
+# passed all 7 test(s)
+1..7
+*** t1506-rev-parse-diagnosis.sh ***
+ok 1 - set up basic repo
+ok 2 - correct file objects
+ok 3 - correct relative file objects (0)
+ok 4 - correct relative file objects (1)
+ok 5 - correct relative file objects (2)
+ok 6 - correct relative file objects (3)
+ok 7 - correct relative file objects (4)
+ok 8 - correct relative file objects (5)
+ok 9 - correct relative file objects (6)
+ok 10 - incorrect revision id
+ok 11 - incorrect file in sha1:path
+ok 12 - incorrect file in :path and :N:path
+ok 13 - invalid @{n} reference
+ok 14 - relative path not found
+ok 15 - relative path outside worktree
+ok 16 - relative path when cwd is outside worktree
+ok 17 - relative path when startup_info is NULL
+# passed all 17 test(s)
+1..17
+*** t1507-rev-parse-upstream.sh ***
+ok 1 - setup
+ok 2 - @{upstream} resolves to correct full name
+ok 3 - @{u} resolves to correct full name
+ok 4 - [email protected]{upstream} resolves to correct full name
+ok 5 - [email protected]{u} resolves to correct commit
+ok 6 - [email protected]{u} fails
+ok 7 - <branch>@{u}@{1} resolves correctly
+ok 8 - @{u} without specifying branch fails on a detached HEAD
+ok 9 - checkout -b new [email protected]{u} forks from the same
+ok 10 - merge [email protected]{u} records the correct name
+ok 11 - branch -d [email protected]{u}
+ok 12 - checkout [email protected]{u}
+ok 13 - log -g [email protected]{u}
+ok 14 - log -g [email protected]{u}@{now}
+# passed all 14 test(s)
+1..14
+*** t1508-at-combinations.sh ***
+ok 1 - setup
+ok 2 - HEAD = new-two
+ok 3 - @{1} = new-one
+ok 4 - @{-1} = old-two
+ok 5 - @{-1}@{1} = old-one
+ok 6 - @{u} = upstream-two
+ok 7 - @{u}@{1} = upstream-one
+ok 8 - @{-1}@{u} = master-two
+ok 9 - @{-1}@{u}@{1} = master-one
+ok 10 - @{u}@{-1} is nonsensical
+ok 11 - @{1}@{u} is nonsensical
+# passed all 11 test(s)
+1..11
+*** t1509-root-worktree.sh ***
+# passed all 0 test(s)
+1..0 # SKIP Dangerous test skipped. Read this test if you want to execute it
+*** t1510-repo-setup.sh ***
+ok 1 - #0: nonbare repo, no explicit configuration
+ok 2 - #1: GIT_WORK_TREE without explicit GIT_DIR is accepted
+ok 3 - #2: worktree defaults to cwd with explicit GIT_DIR
+ok 4 - #2b: relative GIT_DIR
+ok 5 - #3: setup
+ok 6 - #3: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 7 - #3: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 8 - #3: explicit GIT_WORK_TREE from parent of worktree
+ok 9 - #3: explicit GIT_WORK_TREE from nephew of worktree
+ok 10 - #3: chdir_to_toplevel uses worktree, not git dir
+ok 11 - #3: chdir_to_toplevel uses worktree (from subdir)
+ok 12 - #4: core.worktree without GIT_DIR set is accepted
+ok 13 - #5: core.worktree + GIT_WORK_TREE is accepted
+ok 14 - #6: setting GIT_DIR brings core.worktree to life
+ok 15 - #6b: GIT_DIR set, core.worktree relative
+ok 16 - #6c: GIT_DIR set, core.worktree=../wt (absolute)
+ok 17 - #6d: GIT_DIR set, core.worktree=../wt (relative)
+ok 18 - #6e: GIT_DIR set, core.worktree=../.. (absolute)
+ok 19 - #6f: GIT_DIR set, core.worktree=../.. (relative)
+ok 20 - #7: setup
+ok 21 - #7: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 22 - #7: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 23 - #7: explicit GIT_WORK_TREE from parent of worktree
+ok 24 - #7: explicit GIT_WORK_TREE from nephew of worktree
+ok 25 - #7: chdir_to_toplevel uses worktree, not git dir
+ok 26 - #7: chdir_to_toplevel uses worktree (from subdir)
+ok 27 - #8: gitfile, easy case
+ok 28 - #9: GIT_WORK_TREE accepted with gitfile
+ok 29 - #10: GIT_DIR can point to gitfile
+ok 30 - #10b: relative GIT_DIR can point to gitfile
+ok 31 - #11: setup
+ok 32 - #11: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 33 - #11: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 34 - #11: explicit GIT_WORK_TREE from parent of worktree
+ok 35 - #11: explicit GIT_WORK_TREE from nephew of worktree
+ok 36 - #11: chdir_to_toplevel uses worktree, not git dir
+ok 37 - #11: chdir_to_toplevel uses worktree (from subdir)
+ok 38 - #12: core.worktree with gitfile is accepted
+ok 39 - #13: core.worktree+GIT_WORK_TREE accepted (with gitfile)
+ok 40 - #14: core.worktree with GIT_DIR pointing to gitfile
+ok 41 - #14b: core.worktree is relative to actual git dir
+ok 42 - #15: setup
+ok 43 - #15: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 44 - #15: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 45 - #15: explicit GIT_WORK_TREE from parent of worktree
+ok 46 - #15: explicit GIT_WORK_TREE from nephew of worktree
+ok 47 - #15: chdir_to_toplevel uses worktree, not git dir
+ok 48 - #15: chdir_to_toplevel uses worktree (from subdir)
+ok 49 - #16a: implicitly bare repo (cwd inside .git dir)
+ok 50 - #16b: bare .git (cwd inside .git dir)
+ok 51 - #16c: bare .git has no worktree
+ok 52 - #17: GIT_WORK_TREE without explicit GIT_DIR is accepted (bare case)
+ok 53 - #18: bare .git named by GIT_DIR has no worktree
+ok 54 - #19: setup
+ok 55 - #19: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 56 - #19: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 57 - #19: explicit GIT_WORK_TREE from parent of worktree
+ok 58 - #19: explicit GIT_WORK_TREE from nephew of worktree
+ok 59 - #19: chdir_to_toplevel uses worktree, not git dir
+ok 60 - #19: chdir_to_toplevel uses worktree (from subdir)
+ok 61 - #20a: core.worktree without GIT_DIR accepted (inside .git)
+ok 62 - #20b/c: core.worktree and core.bare conflict
+ok 63 - #21: setup, core.worktree warns before overriding core.bare
+ok 64 - #21: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 65 - #21: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 66 - #21: explicit GIT_WORK_TREE from parent of worktree
+ok 67 - #21: explicit GIT_WORK_TREE from nephew of worktree
+ok 68 - #21: chdir_to_toplevel uses worktree, not git dir
+ok 69 - #21: chdir_to_toplevel uses worktree (from subdir)
+ok 70 - #22a: core.worktree = GIT_DIR = .git dir
+ok 71 - #22b: core.worktree child of .git, GIT_DIR=.git
+ok 72 - #22c: core.worktree = .git/.., GIT_DIR=.git
+ok 73 - #22.2: core.worktree and core.bare conflict
+ok 74 - #23: setup
+ok 75 - #23: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 76 - #23: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 77 - #23: explicit GIT_WORK_TREE from parent of worktree
+ok 78 - #23: explicit GIT_WORK_TREE from nephew of worktree
+ok 79 - #23: chdir_to_toplevel uses worktree, not git dir
+ok 80 - #23: chdir_to_toplevel uses worktree (from subdir)
+ok 81 - #24: bare repo has no worktree (gitfile case)
+ok 82 - #25: GIT_WORK_TREE accepted if GIT_DIR unset (bare gitfile case)
+ok 83 - #26: bare repo has no worktree (GIT_DIR -> gitfile case)
+ok 84 - #27: setup
+ok 85 - #27: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 86 - #27: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 87 - #27: explicit GIT_WORK_TREE from parent of worktree
+ok 88 - #27: explicit GIT_WORK_TREE from nephew of worktree
+ok 89 - #27: chdir_to_toplevel uses worktree, not git dir
+ok 90 - #27: chdir_to_toplevel uses worktree (from subdir)
+ok 91 - #28: core.worktree and core.bare conflict (gitfile case)
+ok 92 - #29: setup
+ok 93 - #29: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 94 - #29: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 95 - #29: explicit GIT_WORK_TREE from parent of worktree
+ok 96 - #29: explicit GIT_WORK_TREE from nephew of worktree
+ok 97 - #29: chdir_to_toplevel uses worktree, not git dir
+ok 98 - #29: chdir_to_toplevel uses worktree (from subdir)
+ok 99 - #30: core.worktree and core.bare conflict (gitfile version)
+ok 100 - #31: setup
+ok 101 - #31: explicit GIT_WORK_TREE and GIT_DIR at toplevel
+ok 102 - #31: explicit GIT_WORK_TREE and GIT_DIR in subdir
+ok 103 - #31: explicit GIT_WORK_TREE from parent of worktree
+ok 104 - #31: explicit GIT_WORK_TREE from nephew of worktree
+ok 105 - #31: chdir_to_toplevel uses worktree, not git dir
+ok 106 - #31: chdir_to_toplevel uses worktree (from subdir)
+# passed all 106 test(s)
+1..106
+*** t1511-rev-parse-caret.sh ***
+ok 1 - setup
+ok 2 - ref^{non-existent}
+ok 3 - ref^{}
+ok 4 - ref^{commit}
+ok 5 - ref^{tree}
+ok 6 - ref^{/.}
+ok 7 - ref^{/non-existent}
+ok 8 - ref^{/Initial}
+# passed all 8 test(s)
+1..8
+*** 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.
+ok 5 - checkout-index -f twice with --prefix
+# passed all 5 test(s)
+1..5
+*** 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)
+1..9
+*** 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)
+1..3
+*** 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)
+1..8
+*** 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)
+1..18
+*** 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)
+1..3
+*** t2006-checkout-index-basic.sh ***
+ok 1 - checkout-index --gobbledegook
+ok 2 - checkout-index -h in broken repository
+# passed all 2 test(s)
+1..2
+*** t2007-checkout-symlink.sh ***
+ok 1 - setup
+ok 2 - switch from symlink to dir
+ok 3 - Remove temporary directories & switch to master
+ok 4 - switch from dir to symlink
+# passed all 4 test(s)
+1..4
+*** 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)
+1..8
+*** t2009-checkout-statinfo.sh ***
+ok 1 - setup
+ok 2 - branch switching
+ok 3 - path checkout
+# passed all 3 test(s)
+1..3
+*** t2010-checkout-ambiguous.sh ***
+ok 1 - setup
+ok 2 - reference must be a tree
+ok 3 - branch switching
+ok 4 - checkout world from the index
+ok 5 - non ambiguous call
+ok 6 - allow the most common case
+ok 7 - check ambiguity
+ok 8 - disambiguate checking out from a tree-ish
+# passed all 8 test(s)
+1..8
+*** t2011-checkout-invalid-head.sh ***
+ok 1 - setup
+ok 2 - checkout should not start branch from a tree
+ok 3 - checkout master from invalid HEAD
+# passed all 3 test(s)
+1..3
+*** t2012-checkout-last.sh ***
+ok 1 - setup
+ok 2 - "checkout -" does not work initially
+ok 3 - first branch switch
+ok 4 - "checkout -" switches back
+ok 5 - "checkout -" switches forth
+ok 6 - detach HEAD
+ok 7 - "checkout -" attaches again
+ok 8 - "checkout -" detaches again
+ok 9 - more switches
+ok 10 - switch to the last
+ok 11 - switch to second from the last
+ok 12 - switch to third from the last
+ok 13 - switch to fourth from the last
+ok 14 - switch to twelfth from the last
+ok 15 - merge base test setup
+ok 16 - another...master
+ok 17 - ...master
+ok 18 - master...
+# passed all 18 test(s)
+1..18
+*** t2013-checkout-submodule.sh ***
+ok 1 - setup
+ok 2 - "reset <submodule>" updates the index
+ok 3 - "checkout <submodule>" updates the index only
+ok 4 - "checkout <submodule>" honors diff.ignoreSubmodules
+ok 5 - "checkout <submodule>" honors submodule.*.ignore from .gitmodules
+ok 6 - "checkout <submodule>" honors submodule.*.ignore from .git/config
+# passed all 6 test(s)
+1..6
+*** t2014-switch.sh ***
+ok 1 - setup
+ok 2 - check all changes are staged
+ok 3 - second commit
+ok 4 - check
+# passed all 4 test(s)
+1..4
+*** t2015-checkout-unborn.sh ***
+ok 1 - setup
+ok 2 - checkout from unborn preserves untracked files
+ok 3 - checkout from unborn preserves index contents
+ok 4 - checkout from unborn merges identical index contents
+ok 5 - checking out another branch from unborn state
+# passed all 5 test(s)
+1..5
+*** t2016-checkout-patch.sh ***
+ok 1 - setup
+ok 2 - saying "n" does nothing
+ok 3 - git checkout -p
+ok 4 - git checkout -p with staged changes
+ok 5 - git checkout -p HEAD with NO staged changes: abort
+ok 6 - git checkout -p HEAD with NO staged changes: apply
+ok 7 - git checkout -p HEAD with change already staged
+ok 8 - git checkout -p HEAD^
+ok 9 - git checkout -p handles deletion
+ok 10 - path limiting works: dir
+ok 11 - path limiting works: -- dir
+ok 12 - path limiting works: HEAD^ -- dir
+ok 13 - path limiting works: foo inside dir
+ok 14 - none of this moved HEAD
+# passed all 14 test(s)
+1..14
+*** t2017-checkout-orphan.sh ***
+ok 1 - Setup
+ok 2 - --orphan creates a new orphan branch from HEAD
+ok 3 - --orphan creates a new orphan branch from <start_point>
+ok 4 - --orphan must be rejected with -b
+ok 5 - --orphan must be rejected with -t
+ok 6 - --orphan ignores branch.autosetupmerge
+ok 7 - --orphan makes reflog by default
+ok 8 - --orphan does not make reflog when core.logAllRefUpdates = false
+ok 9 - --orphan with -l makes reflog when core.logAllRefUpdates = false
+ok 10 - giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog
+ok 11 - --orphan is rejected with an existing name
+ok 12 - --orphan refuses to switch if a merge is needed
+# passed all 12 test(s)
+1..12
+*** t2018-checkout-branch.sh ***
+ok 1 - setup
+ok 2 - checkout -b to a new branch, set to HEAD
+ok 3 - checkout -b to a new branch, set to an explicit ref
+ok 4 - checkout -b to a new branch with unmergeable changes fails
+ok 5 - checkout -f -b to a new branch with unmergeable changes discards changes
+ok 6 - checkout -b to a new branch preserves mergeable changes
+ok 7 - checkout -f -b to a new branch with mergeable changes discards changes
+ok 8 - checkout -b to an existing branch fails
+ok 9 - checkout -b to @{-1} fails with the right branch name
+ok 10 - checkout -B to an existing branch resets branch to HEAD
+ok 11 - checkout -B to an existing branch from detached HEAD resets branch to HEAD
+ok 12 - checkout -B to an existing branch with an explicit ref resets branch to that ref
+ok 13 - checkout -B to an existing branch with unmergeable changes fails
+ok 14 - checkout -f -B to an existing branch with unmergeable changes discards changes
+ok 15 - checkout -B to an existing branch preserves mergeable changes
+ok 16 - checkout -f -B to an existing branch with mergeable changes discards changes
+ok 17 - checkout -b <describe>
+ok 18 - checkout -B to the current branch works
+# passed all 18 test(s)
+1..18
+*** t2019-checkout-ambiguous-ref.sh ***
+ok 1 - setup ambiguous refs
+ok 2 - checkout ambiguous ref succeeds
+ok 3 - checkout produces ambiguity warning
+ok 4 - checkout chooses branch over tag
+ok 5 - checkout reports switch to branch
+ok 6 - checkout vague ref succeeds
+ok 7 - checkout produces ambiguity warning
+ok 8 - checkout chooses branch over tag
+ok 9 - checkout reports switch to branch
+# passed all 9 test(s)
+1..9
+*** t2020-checkout-detach.sh ***
+ok 1 - setup
+ok 2 - checkout branch does not detach
+ok 3 - checkout tag detaches
+ok 4 - checkout branch by full name detaches
+ok 5 - checkout non-ref detaches
+ok 6 - checkout ref^0 detaches
+ok 7 - checkout --detach detaches
+ok 8 - checkout --detach without branch name
+ok 9 - checkout --detach errors out for non-commit
+ok 10 - checkout --detach errors out for extra argument
+ok 11 - checkout --detached and -b are incompatible
+ok 12 - checkout --detach moves HEAD
+ok 13 - checkout warns on orphan commits
+ok 14 - checkout warns on orphan commits: output
+ok 15 - checkout does not warn leaving ref tip
+ok 16 - checkout does not warn leaving ref tip
+ok 17 - checkout does not warn leaving reachable commit
+ok 18 - checkout does not warn leaving reachable commit
+ok 19 - tracking count is accurate after orphan check
+# passed all 19 test(s)
+1..19
+*** t2021-checkout-overwrite.sh ***
+ok 1 - setup
+ok 2 - create a commit where dir a/b changed to file
+ok 3 - checkout commit with dir must not remove untracked a/b
+ok 4 - create a commit where dir a/b changed to symlink
+ok 5 - checkout commit with dir must not remove untracked a/b
+# passed all 5 test(s)
+1..5
+*** t2022-checkout-paths.sh ***
+ok 1 - setup
+ok 2 - checking out paths out of a tree does not clobber unrelated paths
+# passed all 2 test(s)
+1..2
+*** t2023-checkout-m.sh ***
+ok 1 - setup
+ok 2 - git merge master
+ok 3 - -m restores 2-way conflicted+resolved file
+ok 4 - -m restores 3-way conflicted+resolved file
+# passed all 4 test(s)
+1..4
+*** t2030-unresolve-info.sh ***
+ok 1 - setup
+ok 2 - add records switch clears
+ok 3 - rm records reset clears
+ok 4 - plumbing clears
+ok 5 - add records checkout -m undoes
+ok 6 - unmerge with plumbing
+ok 7 - rerere and rerere forget
+ok 8 - rerere and rerere forget (subdirectory)
+# passed all 8 test(s)
+1..8
+*** 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)
+1..4
+*** 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)
+1..5
+*** 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)
+1..7
+*** 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)
+1..3
+*** t2103-update-index-ignore-missing.sh ***
+ok 1 - basics
+ok 2 - --ignore-missing --refresh
+ok 3 - --unmerged --refresh
+ok 4 - --ignore-submodules --refresh (1)
+ok 5 - --ignore-submodules --refresh (2)
+# passed all 5 test(s)
+1..5
+*** t2104-update-index-skip-worktree.sh ***
+ok 1 - setup
+ok 2 - index is at version 2
+ok 3 - update-index --skip-worktree
+ok 4 - index is at version 3 after having some skip-worktree entries
+ok 5 - ls-files -t
+ok 6 - update-index --no-skip-worktree
+ok 7 - index version is back to 2 when there is no skip-worktree entry
+# passed all 7 test(s)
+1..7
+*** t2105-update-index-gitfile.sh ***
+ok 1 - submodule with absolute .git file
+ok 2 - add gitlink to absolute .git file
+ok 3 - submodule with relative .git file
+ok 4 - add gitlink to relative .git file
+# passed all 4 test(s)
+1..4
+*** t2106-update-index-assume-unchanged.sh ***
+ok 1 - setup
+ok 2 - do not switch branches with dirty file
+# passed all 2 test(s)
+1..2
+*** t2107-update-index-basic.sh ***
+ok 1 - update-index --nonsense fails
+ok 2 - update-index --nonsense dumps usage
+ok 3 - update-index -h with corrupt index
+# passed all 3 test(s)
+1..3
+*** 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
+ok 14 - add -n -u should not add but just report
+ok 15 - add -u resolves unmerged paths
+ok 16 - "add -u non-existent" should fail
+# passed all 16 test(s)
+1..16
+*** t2201-add-update-typechange.sh ***
+ok 1 - setup
+ok 2 - modify
+ok 3 - diff-files
+ok 4 - diff-index
+ok 5 - add -u
+ok 6 - commit -a
+# passed all 6 test(s)
+1..6
+*** t2202-add-addremove.sh ***
+ok 1 - setup
+ok 2 - git add --all
+# passed all 2 test(s)
+1..2
+*** t2203-add-intent.sh ***
+ok 1 - intent to add
+ok 2 - check result of "add -N"
+ok 3 - intent to add is just an ordinary empty blob
+ok 4 - intent to add does not clobber existing paths
+ok 5 - i-t-a entry is simply ignored
+ok 6 - can commit with an unrelated i-t-a entry in index
+ok 7 - can "commit -a" with an i-t-a entry
+# passed all 7 test(s)
+1..7
+*** t2204-add-ignored.sh ***
+ok 1 - setup
+ok 2 - no complaints for unignored file
+ok 3 - no complaints for unignored dir/file
+ok 4 - no complaints for unignored dir
+ok 5 - no complaints for unignored d*
+ok 6 - complaints for ignored ign
+ok 7 - complaints for ignored ign output
+ok 8 - complaints for ignored ign with unignored file
+ok 9 - complaints for ignored ign with unignored file output
+ok 10 - complaints for ignored dir/ign
+ok 11 - complaints for ignored dir/ign output
+ok 12 - complaints for ignored dir/ign with unignored file
+ok 13 - complaints for ignored dir/ign with unignored file output
+ok 14 - complaints for ignored dir/sub
+ok 15 - complaints for ignored dir/sub output
+ok 16 - complaints for ignored dir/sub with unignored file
+ok 17 - complaints for ignored dir/sub with unignored file output
+ok 18 - complaints for ignored dir/sub/ign
+ok 19 - complaints for ignored dir/sub/ign output
+ok 20 - complaints for ignored dir/sub/ign with unignored file
+ok 21 - complaints for ignored dir/sub/ign with unignored file output
+ok 22 - complaints for ignored sub/file
+ok 23 - complaints for ignored sub/file output
+ok 24 - complaints for ignored sub/file with unignored file
+ok 25 - complaints for ignored sub/file with unignored file output
+ok 26 - complaints for ignored sub
+ok 27 - complaints for ignored sub output
+ok 28 - complaints for ignored sub with unignored file
+ok 29 - complaints for ignored sub with unignored file output
+ok 30 - complaints for ignored sub/file
+ok 31 - complaints for ignored sub/file output
+ok 32 - complaints for ignored sub/file with unignored file
+ok 33 - complaints for ignored sub/file with unignored file output
+ok 34 - complaints for ignored sub/ign
+ok 35 - complaints for ignored sub/ign output
+ok 36 - complaints for ignored sub/ign with unignored file
+ok 37 - complaints for ignored sub/ign with unignored file output
+ok 38 - complaints for ignored sub in dir
+ok 39 - complaints for ignored sub in dir output
+ok 40 - complaints for ignored sub/file in dir
+ok 41 - complaints for ignored sub/file in dir output
+ok 42 - complaints for ignored sub/ign in dir
+ok 43 - complaints for ignored sub/ign in dir output
+ok 44 - complaints for ignored ign in sub
+ok 45 - complaints for ignored ign in sub output
+ok 46 - complaints for ignored file in sub
+ok 47 - complaints for ignored file in sub output
+# passed all 47 test(s)
+1..47
+*** t2300-cd-to-toplevel.sh ***
+ok 1 - at physical root
+ok 2 - at physical subdir
+ok 3 - at symbolic root
+ok 4 - at symbolic subdir
+ok 5 - at internal symbolic subdir
+# passed all 5 test(s)
+1..5
+*** t3000-ls-files-others.sh ***
+ok 1 - setup 
+ok 2 - setup: expected output
+ok 3 - ls-files --others
+ok 4 - ls-files --others --directory
+ok 5 - --no-empty-directory hides empty directory
+ok 6 - ls-files --others with symlinked submodule
+# passed all 6 test(s)
+1..6
+*** 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 - setup skip-worktree gitignore
+ok 4 - git ls-files --others with various exclude options.
+ok 5 - restore gitignore
+ok 6 - git status honors core.excludesfile
+ok 7 - trailing slash in exclude allows directory match(1)
+ok 8 - trailing slash in exclude allows directory match (2)
+ok 9 - trailing slash in exclude forces directory match (1)
+ok 10 - trailing slash in exclude forces directory match (2)
+ok 11 - negated exclude matches can override previous ones
+ok 12 - subdirectory ignore (setup)
+ok 13 - subdirectory ignore (toplevel)
+ok 14 - subdirectory ignore (l1/l2)
+ok 15 - subdirectory ignore (l1)
+# passed all 15 test(s)
+1..15
+*** 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)
+1..6
+*** t3003-ls-files-exclude.sh ***
+ok 1 - create repo with file
+ok 2 - ls-files output contains file (cached)
+ok 3 - ls-files output contains file (modified)
+ok 4 - add file to gitignore
+ok 5 - ls-files output contains file (cached)
+ok 6 - ls-files output contains file (modified)
+ok 7 - ls-files -i lists only tracked-but-ignored files
+# passed all 7 test(s)
+1..7
+*** t3004-ls-files-basic.sh ***
+ok 1 - ls-files in empty repository
+ok 2 - ls-files with nonexistent path
+ok 3 - ls-files with nonsense option
+ok 4 - ls-files -h in corrupt repository
+# passed all 4 test(s)
+1..4
+*** t3005-ls-files-relative.sh ***
+ok 1 - prepare
+ok 2 - ls-files with mixed levels
+ok 3 - ls-files -c
+ok 4 - ls-files -o
+# passed all 4 test(s)
+1..4
+*** 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)
+1..5
+*** t3020-ls-files-error-unmatch.sh ***
+ok 1 - setup
+ok 2 - git ls-files --error-unmatch should fail with unmatched path.
+ok 3 - git ls-files --error-unmatch should succeed eith matched paths.
+# passed all 3 test(s)
+1..3
+*** 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 - setup 7
+ok 8 - setup 8
+ok 9 - setup 9
+ok 10 - merge-recursive simple
+ok 11 - merge-recursive result
+ok 12 - fail if the index has unresolved entries
+ok 13 - merge-recursive remove conflict
+ok 14 - merge-recursive remove conflict
+ok 15 - merge-recursive d/f simple
+ok 16 - merge-recursive result
+ok 17 - merge-recursive d/f conflict
+ok 18 - merge-recursive d/f conflict result
+ok 19 - merge-recursive d/f conflict the other way
+ok 20 - merge-recursive d/f conflict result the other way
+ok 21 - merge-recursive d/f conflict
+ok 22 - merge-recursive d/f conflict result
+ok 23 - merge-recursive d/f conflict
+ok 24 - merge-recursive d/f conflict result
+ok 25 - reset and 3-way merge
+ok 26 - reset and bind merge
+ok 27 - merge removes empty directories
+not ok 28 - merge-recursive simple w/submodule # TODO known breakage
+not ok 29 - merge-recursive simple w/submodule result # TODO known breakage
+ok 30 - merge-recursive copy vs. rename
+not ok 31 - merge-recursive rename vs. rename/symlink # TODO known breakage
+# still have 3 known breakage(s)
+# passed all remaining 28 test(s)
+1..31
+*** t3031-merge-criscross.sh ***
+ok 1 - setup repo with criss-cross history
+ok 2 - recursive merge between F and G, causes segfault
+# passed all 2 test(s)
+1..2
+*** t3032-merge-recursive-options.sh ***
+ok 1 - setup
+ok 2 - naive merge fails
+ok 3 - --ignore-space-change makes merge succeed
+ok 4 - naive cherry-pick fails
+ok 5 - -Xignore-space-change makes cherry-pick succeed
+ok 6 - --ignore-space-change: our w/s-only change wins
+ok 7 - --ignore-space-change: their real change wins over w/s
+ok 8 - --ignore-space-change: does not ignore new spaces
+ok 9 - --ignore-all-space drops their new spaces
+ok 10 - --ignore-all-space keeps our new spaces
+ok 11 - --ignore-space-at-eol
+# passed all 11 test(s)
+1..11
+*** t3040-subprojects-basic.sh ***
+ok 1 - setup: create superproject
+ok 2 - setup: 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)
+1..11
+*** t3050-subprojects-fetch.sh ***
+ok 1 - setup
+ok 2 - clone
+ok 3 - advance
+ok 4 - fetch
+# passed all 4 test(s)
+1..4
+*** 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)
+1..3
+*** 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
+ok 14 - ls-tree with one path a prefix of the other
+# passed all 14 test(s)
+1..14
+*** 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
+ok 10 - ls-tree filter is leading path match
+ok 11 - ls-tree --full-name
+ok 12 - ls-tree --full-tree
+ok 13 - ls-tree --full-tree -r
+ok 14 - ls-tree --abbrev=5
+ok 15 - ls-tree --name-only
+ok 16 - ls-tree --name-only -r
+# passed all 16 test(s)
+1..16
+*** t3102-ls-tree-wildcards.sh ***
+ok 1 - setup
+ok 2 - ls-tree a[a] matches literally
+# passed all 2 test(s)
+1..2
+*** t3103-ls-tree-misc.sh ***
+ok 1 - setup
+ok 2 - ls-tree fails with non-zero exit code on broken tree
+# passed all 2 test(s)
+1..2
+*** t3200-branch.sh ***
+ok 1 - prepare a trivial repository
+ok 2 - git branch --help should not have created a bogus branch
+ok 3 - branch -h in broken repository
+ok 4 - git branch abc should create a branch
+ok 5 - git branch a/b/c should create a branch
+ok 6 - git branch -l d/e/f should create a branch and a log
+ok 7 - git branch -d d/e/f should delete a branch and a log
+ok 8 - git branch j/k should work after branch j has been deleted
+ok 9 - git branch l should work after branch l/m has been deleted
+ok 10 - git branch -m dumps usage
+ok 11 - git branch -m m m/m should work
+ok 12 - git branch -m n/n n should work
+ok 13 - git branch -m o/o o should fail when o/p exists
+ok 14 - git branch -m q r/q should fail when r exists
+ok 15 - git branch -M foo bar should fail when bar is checked out
+ok 16 - git branch -M baz bam should succeed when baz is checked out
+ok 17 - git branch -M master should work when master is checked out
+ok 18 - git branch -M master master should work when master is checked out
+ok 19 - git branch -M master2 master2 should work when master is checked out
+ok 20 - git branch -v -d t should work
+ok 21 - git branch -v -m t s should work
+ok 22 - git branch -m -d t s should fail
+ok 23 - git branch --list -d t should fail
+ok 24 - git branch -m q q2 without config should succeed
+ok 25 - git branch -m s/s s should work when s/t is deleted
+ok 26 - config information was renamed, too
+ok 27 - renaming a symref is not allowed
+ok 28 - git branch -m u v should fail when the reflog for u is a symlink
+ok 29 - test tracking setup via --track
+ok 30 - test tracking setup (non-wildcard, matching)
+ok 31 - test tracking setup (non-wildcard, not matching)
+ok 32 - test tracking setup via config
+ok 33 - test overriding tracking setup via --no-track
+ok 34 - no tracking without .fetch entries
+ok 35 - test tracking setup via --track but deeper
+ok 36 - test deleting branch deletes branch config
+ok 37 - test deleting branch without config
+ok 38 - test --track without .fetch entries
+ok 39 - branch from non-branch HEAD w/autosetupmerge=always
+ok 40 - branch from non-branch HEAD w/--track causes failure
+ok 41 - branch from tag w/--track causes failure
+ok 42 - git checkout -b g/h/i -l should create a branch and a log
+ok 43 - checkout -b makes reflog by default
+ok 44 - checkout -b does not make reflog when core.logAllRefUpdates = false
+ok 45 - checkout -b with -l makes reflog when core.logAllRefUpdates = false
+ok 46 - avoid ambiguous track
+ok 47 - autosetuprebase local on a tracked local branch
+ok 48 - autosetuprebase always on a tracked local branch
+ok 49 - autosetuprebase remote on a tracked local branch
+ok 50 - autosetuprebase never on a tracked local branch
+ok 51 - autosetuprebase local on a tracked remote branch
+ok 52 - autosetuprebase never on a tracked remote branch
+ok 53 - autosetuprebase remote on a tracked remote branch
+ok 54 - autosetuprebase always on a tracked remote branch
+ok 55 - autosetuprebase unconfigured on a tracked remote branch
+ok 56 - autosetuprebase unconfigured on a tracked local branch
+ok 57 - autosetuprebase unconfigured on untracked local branch
+ok 58 - autosetuprebase unconfigured on untracked remote branch
+ok 59 - autosetuprebase never on an untracked local branch
+ok 60 - autosetuprebase local on an untracked local branch
+ok 61 - autosetuprebase remote on an untracked local branch
+ok 62 - autosetuprebase always on an untracked local branch
+ok 63 - autosetuprebase never on an untracked remote branch
+ok 64 - autosetuprebase local on an untracked remote branch
+ok 65 - autosetuprebase remote on an untracked remote branch
+ok 66 - autosetuprebase always on an untracked remote branch
+ok 67 - autosetuprebase always on detached HEAD
+ok 68 - detect misconfigured autosetuprebase (bad value)
+ok 69 - detect misconfigured autosetuprebase (no value)
+ok 70 - attempt to delete a branch without base and unmerged to HEAD
+ok 71 - attempt to delete a branch merged to its base
+ok 72 - attempt to delete a branch merged to its base
+ok 73 - use set-upstream on the current branch
+ok 74 - use --edit-description
+ok 75 - detect typo in branch name when using --edit-description
+ok 76 - refuse --edit-description on unborn branch for now
+# passed all 76 test(s)
+1..76
+*** t3201-branch-contains.sh ***
+ok 1 - setup
+ok 2 - branch --contains=master
+ok 3 - branch --contains master
+ok 4 - branch --contains=side
+ok 5 - side: branch --merged
+ok 6 - side: branch --no-merged
+ok 7 - master: branch --merged
+ok 8 - master: branch --no-merged
+# passed all 8 test(s)
+1..8
+*** t3202-show-branch-octopus.sh ***
+ok 1 - setup
+ok 2 - show-branch with more than 8 branches
+ok 3 - show-branch with showbranch.default
+# passed all 3 test(s)
+1..3
+*** t3203-branch-output.sh ***
+ok 1 - make commits
+ok 2 - make branches
+ok 3 - make remote branches
+ok 4 - git branch shows local branches
+ok 5 - git branch --list shows local branches
+ok 6 - git branch --list pattern shows matching local branches
+ok 7 - git branch -r shows remote branches
+ok 8 - git branch -a shows local and remote branches
+ok 9 - git branch -v shows branch summaries
+ok 10 - git branch --list -v pattern shows branch summaries
+ok 11 - git branch -v pattern does not show branch summaries
+ok 12 - git branch shows detached HEAD properly
+# passed all 12 test(s)
+1..12
+*** 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 - see if git pack-refs --prune removes empty dirs
+ok 8 - git branch g should work when git branch g/h has been deleted
+ok 9 - git branch i/j/k should barf if branch i exists
+ok 10 - test git branch k after branch k/l/m and k/lm have been deleted
+ok 11 - test git branch n after some branch deletion and pruning
+ok 12 - see if up-to-date packed refs are preserved
+ok 13 - pack, prune and repack
+# passed all 13 test(s)
+1..13
+*** t3300-funny-names.sh ***
+ok 1 - setup expect
+ok 2 - git ls-files no-funny
+ok 3 - setup expect
+ok 4 - git ls-files with-funny
+ok 5 - setup expect
+ok 6 - git ls-files -z with-funny
+ok 7 - setup expect
+ok 8 - git ls-tree with funny
+ok 9 - setup expect
+ok 10 - git diff-index with-funny
+ok 11 - git diff-tree with-funny
+ok 12 - setup expect
+ok 13 - git diff-index -z with-funny
+ok 14 - git diff-tree -z with-funny
+ok 15 - setup expect
+ok 16 - git diff-tree -C with-funny
+ok 17 - setup expect
+ok 18 - git diff-tree delete with-funny
+ok 19 - setup expect
+ok 20 - git diff-tree delete with-funny
+ok 21 - setup expect
+ok 22 - git diff-tree delete with-funny
+ok 23 - setup expect
+ok 24 - git diff-tree rename with-funny applied
+ok 25 - setup expect
+ok 26 - git diff-tree delete with-funny applied
+ok 27 - git apply non-git diff
+# passed all 27 test(s)
+1..27
+*** t3301-notes.sh ***
+ok 1 - cannot annotate non-existing HEAD
+ok 2 - setup
+ok 3 - need valid notes ref
+ok 4 - refusing to add notes in refs/heads/
+ok 5 - refusing to edit notes in refs/remotes/
+ok 6 - handle empty notes gracefully
+ok 7 - show non-existent notes entry with %N
+ok 8 - create notes
+ok 9 - show notes entry with %N
+ok 10 - create reflog entry
+ok 11 - edit existing notes
+ok 12 - cannot "git notes add -m" where notes already exists
+ok 13 - can overwrite existing note with "git notes add -f -m"
+ok 14 - add w/no options on existing note morphs into edit
+ok 15 - can overwrite existing note with "git notes add -f"
+ok 16 - show notes
+ok 17 - create multi-line notes (setup)
+ok 18 - show multi-line notes
+ok 19 - create -F notes (setup)
+ok 20 - show -F notes
+ok 21 - Re-adding -F notes without -f fails
+ok 22 - git log --pretty=raw does not show notes
+ok 23 - git log --show-notes
+ok 24 - git log --no-notes
+ok 25 - git format-patch does not show notes
+ok 26 - git format-patch --show-notes does show notes
+ok 27 - git show  does show notes
+ok 28 - git show --pretty does not show notes
+ok 29 - git show --pretty=raw does not show notes
+ok 30 - git show --pretty=short does not show notes
+ok 31 - git show --pretty=medium does not show notes
+ok 32 - git show --pretty=full does not show notes
+ok 33 - git show --pretty=fuller does not show notes
+ok 34 - git show --pretty=format:%s does not show notes
+ok 35 - git show --oneline does not show notes
+ok 36 - setup alternate notes ref
+ok 37 - git log --notes shows default notes
+ok 38 - git log --notes=X shows only X
+ok 39 - git log --notes --notes=X shows both
+ok 40 - git log --no-notes resets default state
+ok 41 - git log --no-notes resets ref list
+ok 42 - create -m notes (setup)
+ok 43 - show -m notes
+ok 44 - remove note with add -f -F /dev/null (setup)
+ok 45 - verify note removal with -F /dev/null
+ok 46 - do not create empty note with -m "" (setup)
+ok 47 - verify non-creation of note with -m ""
+ok 48 - create note with combination of -m and -F
+ok 49 - remove note with "git notes remove" (setup)
+ok 50 - verify note removal with "git notes remove"
+ok 51 - removing non-existing note should not create new commit
+ok 52 - removing more than one
+ok 53 - removing is atomic
+ok 54 - removing with --ignore-missing
+ok 55 - removing with --ignore-missing but bogus ref
+ok 56 - remove reads from --stdin
+ok 57 - remove --stdin is also atomic
+ok 58 - removing with --stdin --ignore-missing
+ok 59 - list notes with "git notes list"
+ok 60 - list notes with "git notes"
+ok 61 - list specific note with "git notes list <object>"
+ok 62 - listing non-existing notes fails
+ok 63 - append to existing note with "git notes append"
+ok 64 - "git notes list" does not expand to "git notes list HEAD"
+ok 65 - appending empty string does not change existing note
+ok 66 - git notes append == add when there is no existing note
+ok 67 - appending empty string to non-existing note does not create note
+ok 68 - create other note on a different notes ref (setup)
+ok 69 - Do not show note on other ref by default
+ok 70 - Do show note when ref is given in GIT_NOTES_REF
+ok 71 - Do show note when ref is given in core.notesRef config
+ok 72 - Do not show note when core.notesRef is overridden
+ok 73 - Show all notes when notes.displayRef=refs/notes/*
+ok 74 - core.notesRef is implicitly in notes.displayRef
+ok 75 - notes.displayRef can be given more than once
+ok 76 - notes.displayRef respects order
+ok 77 - GIT_NOTES_DISPLAY_REF works
+ok 78 - GIT_NOTES_DISPLAY_REF overrides config
+ok 79 - --show-notes=* adds to GIT_NOTES_DISPLAY_REF
+ok 80 - --no-standard-notes
+ok 81 - --standard-notes
+ok 82 - --show-notes=ref accumulates
+ok 83 - Allow notes on non-commits (trees, blobs, tags)
+ok 84 - create note from other note with "git notes add -C"
+ok 85 - create note from non-existing note with "git notes add -C" fails
+ok 86 - create note from other note with "git notes add -c"
+ok 87 - create note from non-existing note with "git notes add -c" fails
+ok 88 - append to note from other note with "git notes append -C"
+ok 89 - create note from other note with "git notes append -c"
+ok 90 - append to note from other note with "git notes append -c"
+ok 91 - copy note with "git notes copy"
+ok 92 - prevent overwrite with "git notes copy"
+ok 93 - allow overwrite with "git notes copy -f"
+ok 94 - cannot copy note from object without notes
+ok 95 - git notes copy --stdin
+ok 96 - git notes copy --for-rewrite (unconfigured)
+ok 97 - git notes copy --for-rewrite (enabled)
+ok 98 - git notes copy --for-rewrite (disabled)
+ok 99 - git notes copy --for-rewrite (overwrite)
+ok 100 - git notes copy --for-rewrite (ignore)
+ok 101 - git notes copy --for-rewrite (append)
+ok 102 - git notes copy --for-rewrite (append two to one)
+ok 103 - git notes copy --for-rewrite (append empty)
+ok 104 - GIT_NOTES_REWRITE_MODE works
+ok 105 - GIT_NOTES_REWRITE_REF works
+ok 106 - GIT_NOTES_REWRITE_REF overrides config
+ok 107 - git notes copy diagnoses too many or too few parameters
+ok 108 - git notes get-ref (no overrides)
+ok 109 - git notes get-ref (core.notesRef)
+ok 110 - git notes get-ref (GIT_NOTES_REF)
+ok 111 - git notes get-ref (--ref)
+# passed all 111 test(s)
+1..111
+*** t3302-notes-index-expensive.sh ***
+ok 1 - setup / mkdir
+ok 2 - setup 10
+ok 3 - notes work
+ok 4 - notes timing with /usr/bin/time
+ok 5 - teardown / cd ..
+ok 6 # skip setup / mkdir (missing EXPENSIVE)
+ok 7 # skip setup 100 (missing EXPENSIVE)
+ok 8 # skip notes work (missing EXPENSIVE)
+ok 9 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE)
+ok 10 # skip teardown / cd .. (missing EXPENSIVE)
+ok 11 # skip setup / mkdir (missing EXPENSIVE)
+ok 12 # skip setup 1000 (missing EXPENSIVE)
+ok 13 # skip notes work (missing EXPENSIVE)
+ok 14 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE)
+ok 15 # skip teardown / cd .. (missing EXPENSIVE)
+ok 16 # skip setup / mkdir (missing EXPENSIVE)
+ok 17 # skip setup 10000 (missing EXPENSIVE)
+ok 18 # skip notes work (missing EXPENSIVE)
+ok 19 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE)
+ok 20 # skip teardown / cd .. (missing EXPENSIVE)
+# passed all 20 test(s)
+1..20
+*** t3303-notes-subtrees.sh ***
+ok 1 - setup: create 100 commits
+ok 2 - test notes in 2/38-fanout
+ok 3 - verify notes in 2/38-fanout
+ok 4 - test notes in 2/2/36-fanout
+ok 5 - verify notes in 2/2/36-fanout
+ok 6 - test notes in 2/2/2/34-fanout
+ok 7 - verify notes in 2/2/2/34-fanout
+ok 8 - test same notes in no fanout and 2/38-fanout
+ok 9 - verify same notes in no fanout and 2/38-fanout
+ok 10 - test same notes in no fanout and 2/2/36-fanout
+ok 11 - verify same notes in no fanout and 2/2/36-fanout
+ok 12 - test same notes in 2/38-fanout and 2/2/36-fanout
+ok 13 - verify same notes in 2/38-fanout and 2/2/36-fanout
+ok 14 - test same notes in 2/2/2/34-fanout and 2/2/36-fanout
+ok 15 - verify same notes in 2/2/2/34-fanout and 2/2/36-fanout
+ok 16 - test notes in no fanout concatenated with 2/38-fanout
+ok 17 - verify notes in no fanout concatenated with 2/38-fanout
+ok 18 - test notes in no fanout concatenated with 2/2/36-fanout
+ok 19 - verify notes in no fanout concatenated with 2/2/36-fanout
+ok 20 - test notes in 2/38-fanout concatenated with 2/2/36-fanout
+ok 21 - verify notes in 2/38-fanout concatenated with 2/2/36-fanout
+ok 22 - test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout
+ok 23 - verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout
+# passed all 23 test(s)
+1..23
+*** t3304-notes-mixed.sh ***
+ok 1 - setup: create a couple of commits
+ok 2 - create a notes tree with both notes and non-notes
+ok 3 - verify contents of notes
+ok 4 - verify contents of non-notes
+ok 5 - git-notes preserves non-notes
+ok 6 - verify contents of non-notes after git-notes
+# passed all 6 test(s)
+1..6
+*** t3305-notes-fanout.sh ***
+ok 1 - creating many notes with git-notes
+ok 2 - many notes created correctly with git-notes
+ok 3 - many notes created with git-notes triggers fanout
+ok 4 - deleting most notes with git-notes
+ok 5 - most notes deleted correctly with git-notes
+ok 6 - deleting most notes triggers fanout consolidation
+# passed all 6 test(s)
+1..6
+*** t3306-notes-prune.sh ***
+ok 1 - setup: create a few commits with notes
+ok 2 - verify commits and notes
+ok 3 - remove some commits
+ok 4 - verify that commits are gone
+ok 5 - verify that notes are still present
+ok 6 - prune -n does not remove notes
+ok 7 - prune -n lists prunable notes
+ok 8 - prune notes
+ok 9 - verify that notes are gone
+ok 10 - remove some commits
+ok 11 - prune -v notes
+ok 12 - verify that notes are gone
+# passed all 12 test(s)
+1..12
+*** t3307-notes-man.sh ***
+ok 1 - setup
+ok 2 - example 1: notes to add an Acked-by line
+ok 3 - example 2: binary notes
+# passed all 3 test(s)
+1..3
+*** t3308-notes-merge.sh ***
+ok 1 - setup
+ok 2 - verify initial notes (x)
+ok 3 - fail to merge empty notes ref into empty notes ref (z => y)
+ok 4 - fail to merge into various non-notes refs
+ok 5 - fail to merge various non-note-trees
+ok 6 - merge notes into empty notes ref (x => y)
+ok 7 - merge empty notes ref (z => y)
+ok 8 - change notes on other notes ref (y)
+ok 9 - merge previous notes commit (y^ => y) => No-op
+ok 10 - verify changed notes on other notes ref (y)
+ok 11 - verify unchanged notes on original notes ref (x)
+ok 12 - merge original notes (x) into changed notes (y) => No-op
+ok 13 - merge changed (y) into original (x) => Fast-forward
+ok 14 - merge empty notes ref (z => y)
+ok 15 - change notes on other notes ref (y)
+ok 16 - change notes on notes ref (x)
+ok 17 - merge y into x => Non-conflicting 3-way merge
+ok 18 - create notes on new, separate notes ref (w)
+ok 19 - merge w into x => Non-conflicting history-less merge
+# passed all 19 test(s)
+1..19
+*** t3309-notes-merge-auto-resolve.sh ***
+ok 1 - setup commits
+ok 2 - setup merge base (x)
+ok 3 - verify state of merge base (x)
+ok 4 - setup local branch (y)
+ok 5 - verify state of local branch (y)
+ok 6 - setup remote branch (z)
+ok 7 - verify state of remote branch (z)
+ok 8 - merge z into y with invalid strategy => Fail/No changes
+ok 9 - merge z into y with "ours" strategy => Non-conflicting 3-way merge
+ok 10 - reset to pre-merge state (y)
+ok 11 - merge z into y with "theirs" strategy => Non-conflicting 3-way merge
+ok 12 - reset to pre-merge state (y)
+ok 13 - merge z into y with "union" strategy => Non-conflicting 3-way merge
+ok 14 - reset to pre-merge state (y)
+ok 15 - merge y into z with "union" strategy => Non-conflicting 3-way merge
+ok 16 - reset to pre-merge state (z)
+ok 17 - merge y into z with "cat_sort_uniq" strategy => Non-conflicting 3-way merge
+# passed all 17 test(s)
+1..17
+*** t3310-notes-merge-manual-resolve.sh ***
+ok 1 - setup commits
+ok 2 - setup merge base (x)
+ok 3 - setup local branch (y)
+ok 4 - setup remote branch (z)
+ok 5 - merge z into m (== y) with default ("manual") resolver => Conflicting 3-way merge
+ok 6 - change notes in z
+ok 7 - cannot do merge w/conflicts when previous merge is unfinished
+ok 8 - setup unrelated notes ref (w)
+ok 9 - can do merge without conflicts even if previous merge is unfinished (x => w)
+ok 10 - finalize conflicting merge (z => m)
+ok 11 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge
+ok 12 - abort notes merge
+ok 13 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge
+ok 14 - add + remove notes in finalized merge (z => m)
+ok 15 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge
+ok 16 - reset notes ref m to somewhere else (w)
+ok 17 - fail to finalize conflicting merge if underlying ref has moved in the meantime (m != NOTES_MERGE_PARTIAL^1)
+ok 18 - resolve situation by aborting the notes merge
+# passed all 18 test(s)
+1..18
+*** t3311-notes-merge-fanout.sh ***
+ok 1 - setup a few initial commits with notes (notes ref: x)
+ok 2 - sanity check (x)
+ok 3 - Add a few hundred commits w/notes to trigger fanout (x -> y)
+ok 4 - notes tree has fanout (y)
+ok 5 - No-op merge (already included) (x => y)
+ok 6 - Fast-forward merge (y => x)
+ok 7 - change some of the initial 5 notes (x -> z)
+ok 8 - notes tree has no fanout (z)
+ok 9 - successful merge without conflicts (y => z)
+ok 10 - notes tree still has fanout after merge (m)
+ok 11 - introduce conflicting changes (y -> w)
+ok 12 - successful merge using "ours" strategy (z => w)
+ok 13 - notes tree still has fanout after merge (m)
+ok 14 - successful merge using "theirs" strategy (z => w)
+ok 15 - notes tree still has fanout after merge (m)
+ok 16 - successful merge using "union" strategy (z => w)
+ok 17 - notes tree still has fanout after merge (m)
+ok 18 - successful merge using "cat_sort_uniq" strategy (z => w)
+ok 19 - notes tree still has fanout after merge (m)
+ok 20 - fails to merge using "manual" strategy (z => w)
+ok 21 - notes tree still has fanout after merge (m)
+ok 22 - verify conflict entries (with no fanout)
+ok 23 - resolve and finalize merge (z => w)
+ok 24 - notes tree still has fanout after merge (m)
+# passed all 24 test(s)
+1..24
+*** t3400-rebase.sh ***
+ok 1 - prepare repository with topic branches
+ok 2 - rebase on dirty worktree
+ok 3 - rebase on dirty cache
+ok 4 - rebase against master
+ok 5 - rebase against master twice
+ok 6 - rebase against master twice with --force
+ok 7 - rebase against master twice from another branch
+ok 8 - rebase fast-forward to master
+ok 9 - the rebase operation should not have destroyed author information
+ok 10 - the rebase operation should not have destroyed author information (2)
+ok 11 - HEAD was detached during rebase
+ok 12 - rebase after merge master
+ok 13 - rebase of history with merges is linearized
+ok 14 - rebase of history with merges after upstream merge is linearized
+ok 15 - rebase a single mode change
+ok 16 - rebase is not broken by diff.renames
+ok 17 - setup: recover
+ok 18 - Show verbose error when HEAD could not be detached
+ok 19 - fail when upstream arg is missing and not on branch
+ok 20 - fail when upstream arg is missing and not configured
+ok 21 - default to @{upstream} when upstream arg is missing
+ok 22 - rebase -q is quiet
+ok 23 - Rebase a commit that sprinkles CRs in
+ok 24 - rebase can copy notes
+ok 25 - rebase -m can copy notes
+ok 26 - rebase commit with an ancient timestamp
+# passed all 26 test(s)
+1..26
+*** 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)
+1..4
+*** t3402-rebase-merge.sh ***
+ok 1 - setup
+ok 2 - reference merge
+ok 3 - rebase
+ok 4 - [email protected]{1} is pre rebase
+ok 5 - merge and rebase should match
+ok 6 - rebase the other way
+ok 7 - rebase -Xtheirs
+ok 8 - merge and rebase should match
+ok 9 - picking rebase
+ok 10 - rebase -s funny -Xopt
+# passed all 10 test(s)
+1..10
+*** t3403-rebase-skip.sh ***
+ok 1 - setup
+ok 2 - rebase with git am -3 (default)
+ok 3 - rebase --skip can not be used with other options
+ok 4 - rebase --skip with am -3
+ok 5 - rebase moves back to skip-reference
+ok 6 - checkout skip-merge
+ok 7 - rebase with --merge
+ok 8 - rebase --skip with --merge
+ok 9 - merge and reference trees equal
+ok 10 - moved back to branch correctly
+# passed all 10 test(s)
+1..10
+*** t3404-rebase-interactive.sh ***
+ok 1 - setup
+ok 2 - rebase -i with the exec command
+ok 3 - rebase -i with the exec command runs from tree root
+ok 4 - rebase -i with the exec command checks tree cleanness
+ok 5 - no changes are a nop
+ok 6 - test the [branch] option
+ok 7 - test --onto <branch>
+ok 8 - rebase on top of a non-conflicting commit
+ok 9 - reflog for the branch shows state before rebase
+ok 10 - exchange two commits
+ok 11 - stop on conflicting pick
+ok 12 - abort
+ok 13 - abort with error when new base cannot be checked out
+ok 14 - retain authorship
+ok 15 - squash
+ok 16 - retain authorship when squashing
+ok 17 - -p handles "no changes" gracefully
+not ok 18 - exchange two commits with -p # TODO known breakage
+ok 19 - preserve merges with -p
+ok 20 - edit ancestor with -p
+ok 21 - --continue tries to commit
+ok 22 - verbose flag is heeded, even after --continue
+ok 23 - multi-squash only fires up editor once
+ok 24 - multi-fixup does not fire up editor
+ok 25 - commit message used after conflict
+ok 26 - commit message retained after conflict
+ok 27 - squash and fixup generate correct log messages
+ok 28 - squash ignores comments
+ok 29 - squash ignores blank lines
+ok 30 - squash works as expected
+ok 31 - interrupted squash works as expected
+ok 32 - interrupted squash works as expected (case 2)
+ok 33 - ignore patch if in upstream
+ok 34 - --continue tries to commit, even for "edit"
+ok 35 - aborted --continue does not squash commits after "edit"
+ok 36 - auto-amend only edited commits after "edit"
+ok 37 - clean error after failed "exec"
+ok 38 - rebase a detached HEAD
+ok 39 - rebase a commit violating pre-commit
+ok 40 - rebase with a file named HEAD in worktree
+ok 41 - do "noop" when there is nothing to cherry-pick
+ok 42 - submodule rebase setup
+ok 43 - submodule rebase -i
+ok 44 - avoid unnecessary reset
+ok 45 - reword
+ok 46 - rebase -i can copy notes
+ok 47 - rebase -i can copy notes over a fixup
+ok 48 - rebase while detaching HEAD
+ok 49 - always cherry-pick with --no-ff
+ok 50 - set up commits with funny messages
+ok 51 - rebase-i history with funny messages
+# still have 1 known breakage(s)
+# passed all remaining 50 test(s)
+1..51
+*** t3405-rebase-malformed.sh ***
+ok 1 - setup
+ok 2 - rebase
+# passed all 2 test(s)
+1..2
+*** t3406-rebase-message.sh ***
+ok 1 - setup
+ok 2 - rebase -m
+ok 3 - rebase --stat
+ok 4 - rebase w/config rebase.stat
+ok 5 - rebase -n overrides config rebase.stat config
+# passed all 5 test(s)
+1..5
+*** t3407-rebase-abort.sh ***
+ok 1 - setup
+ok 2 - rebase --abort
+ok 3 - rebase --abort after --skip
+ok 4 - rebase --abort after --continue
+ok 5 - rebase --abort does not update reflog
+ok 6 - rebase --abort can not be used with other options
+ok 7 - rebase --merge --abort
+ok 8 - rebase --merge --abort after --skip
+ok 9 - rebase --merge --abort after --continue
+ok 10 - rebase --merge --abort does not update reflog
+ok 11 - rebase --abort can not be used with other options
+# passed all 11 test(s)
+1..11
+*** t3408-rebase-multi-line.sh ***
+ok 1 - setup
+ok 2 - rebase
+# passed all 2 test(s)
+1..2
+*** t3409-rebase-preserve-merges.sh ***
+ok 1 - setup for merge-preserving rebase
+ok 2 - rebase -p fakes interactive rebase
+ok 3 - --continue works after a conflict
+ok 4 - rebase -p preserves no-ff merges
+ok 5 - rebase -p works when base inside second parent
+# passed all 5 test(s)
+1..5
+*** t3410-rebase-preserve-dropped-merges.sh ***
+ok 1 - setup
+ok 2 - skip same-resolution merges with -p
+ok 3 - keep different-resolution merges with -p
+# passed all 3 test(s)
+1..3
+*** t3411-rebase-preserve-around-merges.sh ***
+ok 1 - setup
+ok 2 - squash F1 into D1
+ok 3 - rebase two levels of merge
+# passed all 3 test(s)
+1..3
+*** t3412-rebase-root.sh ***
+ok 1 - prepare repository
+ok 2 - rebase --root expects --onto
+ok 3 - setup pre-rebase hook
+ok 4 - rebase --root --onto <newbase>
+ok 5 - pre-rebase got correct input (1)
+ok 6 - rebase --root --onto <newbase> <branch>
+ok 7 - pre-rebase got correct input (2)
+ok 8 - rebase -i --root --onto <newbase>
+ok 9 - pre-rebase got correct input (3)
+ok 10 - rebase -i --root --onto <newbase> <branch>
+ok 11 - pre-rebase got correct input (4)
+ok 12 - rebase -i -p with linear history
+ok 13 - pre-rebase got correct input (5)
+ok 14 - set up merge history
+ok 15 - rebase -i -p with merge
+ok 16 - set up second root and merge
+ok 17 - rebase -i -p with two roots
+ok 18 - setup pre-rebase hook that fails
+ok 19 - pre-rebase hook stops rebase
+ok 20 - pre-rebase hook stops rebase -i
+ok 21 - remove pre-rebase hook
+ok 22 - set up a conflict
+ok 23 - rebase --root with conflict (first part)
+ok 24 - fix the conflict
+ok 25 - rebase --root with conflict (second part)
+ok 26 - rebase -i --root with conflict (first part)
+ok 27 - fix the conflict
+ok 28 - rebase -i --root with conflict (second part)
+ok 29 - rebase -i -p --root with conflict (first part)
+ok 30 - fix the conflict
+ok 31 - rebase -i -p --root with conflict (second part)
+# passed all 31 test(s)
+1..31
+*** t3413-rebase-hook.sh ***
+ok 1 - setup
+ok 2 - rebase
+ok 3 - rebase -i
+ok 4 - setup pre-rebase hook
+ok 5 - pre-rebase hook gets correct input (1)
+ok 6 - pre-rebase hook gets correct input (2)
+ok 7 - pre-rebase hook gets correct input (3)
+ok 8 - pre-rebase hook gets correct input (4)
+ok 9 - pre-rebase hook gets correct input (5)
+ok 10 - pre-rebase hook gets correct input (6)
+ok 11 - setup pre-rebase hook that fails
+ok 12 - pre-rebase hook stops rebase (1)
+ok 13 - pre-rebase hook stops rebase (2)
+ok 14 - rebase --no-verify overrides pre-rebase (1)
+ok 15 - rebase --no-verify overrides pre-rebase (2)
+# passed all 15 test(s)
+1..15
+*** t3414-rebase-preserve-onto.sh ***
+ok 1 - setup
+ok 2 - rebase from B1 onto H1
+ok 3 - rebase from E1 onto H1
+ok 4 - rebase from C1 onto H1
+# passed all 4 test(s)
+1..4
+*** t3415-rebase-autosquash.sh ***
+ok 1 - setup
+ok 2 - auto fixup (option)
+ok 3 - auto fixup (config)
+ok 4 - auto squash (option)
+ok 5 - auto squash (config)
+ok 6 - misspelled auto squash
+ok 7 - auto squash that matches 2 commits
+ok 8 - auto squash that matches a commit after the squash
+ok 9 - auto squash that matches a sha1
+ok 10 - auto squash that matches longer sha1
+ok 11 - use commit --fixup
+ok 12 - use commit --squash
+# passed all 12 test(s)
+1..12
+*** t3416-rebase-onto-threedots.sh ***
+ok 1 - setup
+ok 2 - rebase --onto master...topic
+ok 3 - rebase --onto master...
+ok 4 - rebase --onto master...side
+ok 5 - rebase -i --onto master...topic
+ok 6 - rebase -i --onto master...
+ok 7 - rebase -i --onto master...side
+# passed all 7 test(s)
+1..7
+*** t3417-rebase-whitespace-fix.sh ***
+ok 1 - blank line at end of file; extend at end of file
+ok 2 - two blanks line at end of file; extend at end of file
+ok 3 - same, but do not remove trailing spaces
+ok 4 - at beginning of file
+# passed all 4 test(s)
+1..4
+*** t3418-rebase-continue.sh ***
+ok 1 - setup
+ok 2 - interactive rebase --continue works with touched file
+ok 3 - non-interactive rebase --continue works with touched file
+ok 4 - rebase --continue can not be used with other options
+ok 5 - rebase --continue remembers merge strategy and options
+ok 6 - rebase --continue remembers --rerere-autoupdate
+# passed all 6 test(s)
+1..6
+*** t3419-rebase-patch-id.sh ***
+ok 1 - setup
+ok 2 - setup: 500 lines
+ok 3 - setup attributes
+ok 4 - detect upstream patch
+ok 5 - do not drop patch
+ok 6 # skip setup: 50000 lines (missing EXPENSIVE)
+ok 7 # skip setup attributes (missing EXPENSIVE)
+ok 8 # skip detect upstream patch (missing EXPENSIVE)
+ok 9 # skip do not drop patch (missing EXPENSIVE)
+# passed all 9 test(s)
+1..9
+*** 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)
+1..3
+*** t3501-revert-cherry-pick.sh ***
+ok 1 - setup
+ok 2 - cherry-pick --nonsense
+ok 3 - revert --nonsense
+ok 4 - cherry-pick after renaming branch
+ok 5 - revert after renaming branch
+ok 6 - cherry-pick on stat-dirty working tree
+ok 7 - revert forbidden on dirty working tree
+# passed all 7 test(s)
+1..7
+*** 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)
+1..11
+*** t3503-cherry-pick-root.sh ***
+ok 1 - setup
+ok 2 - cherry-pick a root commit
+ok 3 - revert a root commit
+ok 4 - cherry-pick a root commit with an external strategy
+ok 5 - revert a root commit with an external strategy
+ok 6 - cherry-pick two root commits
+# passed all 6 test(s)
+1..6
+*** t3504-cherry-pick-rerere.sh ***
+ok 1 - setup
+ok 2 - conflicting merge
+ok 3 - fixup
+ok 4 - cherry-pick conflict
+ok 5 - reconfigure
+ok 6 - cherry-pick conflict without rerere
+# passed all 6 test(s)
+1..6
+*** t3505-cherry-pick-empty.sh ***
+ok 1 - setup
+ok 2 - cherry-pick an empty commit
+ok 3 - index lockfile was removed
+ok 4 - cherry-pick a commit with an empty message
+ok 5 - index lockfile was removed
+# passed all 5 test(s)
+1..5
+*** t3506-cherry-pick-ff.sh ***
+ok 1 - setup
+ok 2 - cherry-pick using --ff fast forwards
+ok 3 - cherry-pick not using --ff does not fast forwards
+ok 4 - merge setup
+ok 5 - cherry-pick a non-merge with --ff and -m should fail
+ok 6 - cherry pick a merge with --ff but without -m should fail
+ok 7 - cherry pick with --ff a merge (1)
+ok 8 - cherry pick with --ff a merge (2)
+ok 9 - cherry pick a merge relative to nonexistent parent with --ff should fail
+ok 10 - cherry pick a root commit with --ff
+# passed all 10 test(s)
+1..10
+*** t3507-cherry-pick-conflict.sh ***
+ok 1 - setup
+ok 2 - failed cherry-pick does not advance HEAD
+ok 3 - advice from failed cherry-pick
+ok 4 - failed cherry-pick sets CHERRY_PICK_HEAD
+ok 5 - successful cherry-pick does not set CHERRY_PICK_HEAD
+ok 6 - cherry-pick --no-commit does not set CHERRY_PICK_HEAD
+ok 7 - cherry-pick w/dirty tree does not set CHERRY_PICK_HEAD
+ok 8 - cherry-pick --strategy=resolve w/dirty tree does not set CHERRY_PICK_HEAD
+ok 9 - GIT_CHERRY_PICK_HELP suppresses CHERRY_PICK_HEAD
+ok 10 - git reset clears CHERRY_PICK_HEAD
+ok 11 - failed commit does not clear CHERRY_PICK_HEAD
+ok 12 - cancelled commit does not clear CHERRY_PICK_HEAD
+ok 13 - successful commit clears CHERRY_PICK_HEAD
+ok 14 - failed cherry-pick produces dirty index
+ok 15 - failed cherry-pick registers participants in index
+ok 16 - failed cherry-pick describes conflict in work tree
+ok 17 - diff3 -m style
+ok 18 - revert also handles conflicts sanely
+ok 19 - failed revert sets REVERT_HEAD
+ok 20 - successful revert does not set REVERT_HEAD
+ok 21 - revert --no-commit sets REVERT_HEAD
+ok 22 - revert w/dirty tree does not set REVERT_HEAD
+ok 23 - GIT_CHERRY_PICK_HELP does not suppress REVERT_HEAD
+ok 24 - git reset clears REVERT_HEAD
+ok 25 - failed commit does not clear REVERT_HEAD
+ok 26 - revert conflict, diff3 -m style
+# passed all 26 test(s)
+1..26
+*** t3508-cherry-pick-many-commits.sh ***
+ok 1 - setup
+ok 2 - cherry-pick first..fourth works
+ok 3 - cherry-pick --strategy resolve first..fourth works
+ok 4 - cherry-pick --ff first..fourth works
+ok 5 - cherry-pick -n first..fourth works
+ok 6 - revert first..fourth works
+ok 7 - revert ^first fourth works
+ok 8 - revert fourth fourth~1 fourth~2 works
+ok 9 - cherry-pick -3 fourth works
+ok 10 - cherry-pick --stdin works
+# passed all 10 test(s)
+1..10
+*** t3509-cherry-pick-merge-df.sh ***
+ok 1 - Initialize repository
+ok 2 - Setup rename across paths each below D/F conflicts
+ok 3 - Cherry-pick succeeds with rename across D/F conflicts
+ok 4 - Setup rename with file on one side matching directory name on other
+ok 5 - Cherry-pick succeeds with was_a_dir/file -> was_a_dir (resolve)
+ok 6 - Cherry-pick succeeds with was_a_dir/file -> was_a_dir (recursive)
+ok 7 - Setup rename with file on one side matching different dirname on other
+ok 8 - Cherry-pick with rename to different D/F conflict succeeds (resolve)
+ok 9 - Cherry-pick with rename to different D/F conflict succeeds (recursive)
+# passed all 9 test(s)
+1..9
+*** t3510-cherry-pick-sequence.sh ***
+ok 1 - setup
+ok 2 - cherry-pick persists data on failure
+ok 3 - cherry-pick mid-cherry-pick-sequence
+ok 4 - cherry-pick persists opts correctly
+ok 5 - cherry-pick cleans up sequencer state upon success
+ok 6 - --quit does not complain when no cherry-pick is in progress
+ok 7 - --abort requires cherry-pick in progress
+ok 8 - --quit cleans up sequencer state
+ok 9 - --quit keeps HEAD and conflicted index intact
+ok 10 - --abort to cancel multiple cherry-pick
+ok 11 - --abort to cancel single cherry-pick
+ok 12 - cherry-pick --abort to cancel multiple revert
+ok 13 - revert --abort works, too
+ok 14 - --abort to cancel single revert
+ok 15 - --abort keeps unrelated change, easy case
+ok 16 - --abort refuses to clobber unrelated change, harder case
+ok 17 - cherry-pick still writes sequencer state when one commit is left
+ok 18 - --abort after last commit in sequence
+ok 19 - cherry-pick does not implicitly stomp an existing operation
+ok 20 - --continue complains when no cherry-pick is in progress
+ok 21 - --continue complains when there are unresolved conflicts
+ok 22 - --continue of single cherry-pick
+ok 23 - --continue of single revert
+ok 24 - --continue after resolving conflicts
+ok 25 - --continue after resolving conflicts and committing
+ok 26 - --continue asks for help after resolving patch to nil
+ok 27 - follow advice and skip nil patch
+ok 28 - --continue respects opts
+ok 29 - --continue of single-pick respects -x
+ok 30 - --continue respects -x in first commit in multi-pick
+ok 31 - --signoff is not automatically propagated to resolved conflict
+ok 32 - --signoff dropped for implicit commit of resolution, multi-pick case
+ok 33 - sign-off needs to be reaffirmed after conflict resolution, single-pick case
+ok 34 - malformed instruction sheet 1
+ok 35 - malformed instruction sheet 2
+ok 36 - empty commit set
+ok 37 - malformed instruction sheet 3
+ok 38 - instruction sheet, fat-fingers version
+ok 39 - commit descriptions in insn sheet are optional
+# passed all 39 test(s)
+1..39
+*** t3600-rm.sh ***
+ok 1 - Initialize test directory
+ok 2 - add files with funny names
+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 - refuse to remove cached empty file with modifications
+ok 27 - remove intent-to-add file without --force
+ok 28 - Recursive test setup
+ok 29 - Recursive without -r fails
+ok 30 - Recursive with -r but dirty
+ok 31 - Recursive with -r -f
+ok 32 - Remove nonexistent file returns nonzero exit status
+ok 33 - Call "rm" from outside the work tree
+ok 34 - refresh index before checking if it is up-to-date
+ok 35 - choking "git rm" should not let it die with cruft
+ok 36 - rm removes subdirectories recursively
+# passed all 36 test(s)
+1..36
+*** 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
+ok 21 - git add should fail atomically upon an unreadable file
+ok 22 - git add --ignore-errors
+ok 23 - git add (add.ignore-errors)
+ok 24 - git add (add.ignore-errors = false)
+ok 25 - --no-ignore-errors overrides config
+ok 26 - git add 'fo\[ou\]bar' ignores foobar
+ok 27 - git add to resolve conflicts on otherwise ignored path
+ok 28 - "add non-existent" should fail
+ok 29 - git add --dry-run of existing changed file
+ok 30 - git add --dry-run of non-existing file
+ok 31 - git add --dry-run of an existing file output
+ok 32 - git add --dry-run --ignore-missing of non-existing file
+ok 33 - git add --dry-run --ignore-missing of non-existing file output
+# passed all 33 test(s)
+1..33
+*** t3701-add-interactive.sh ***
+ok 1 - setup (initial)
+ok 2 - status works (initial)
+ok 3 - setup expected
+ok 4 - diff works (initial)
+ok 5 - revert works (initial)
+ok 6 - setup (commit)
+ok 7 - status works (commit)
+ok 8 - setup expected
+ok 9 - diff works (commit)
+ok 10 - revert works (commit)
+ok 11 - setup expected
+ok 12 - setup fake editor
+ok 13 - dummy edit works
+ok 14 - setup patch
+ok 15 - setup fake editor
+ok 16 - bad edit rejected
+ok 17 - setup patch
+ok 18 - garbage edit rejected
+ok 19 - setup patch
+ok 20 - setup expected
+ok 21 - real edit works
+ok 22 - skip files similarly as commit -a
+ok 23 - patch does not affect mode
+ok 24 - stage mode but not hunk
+ok 25 - stage mode and hunk
+ok 26 - setup again
+ok 27 - setup patch
+ok 28 - setup expected
+ok 29 - add first line works
+ok 30 - setup expected
+ok 31 - deleting a non-empty file
+ok 32 - setup expected
+ok 33 - deleting an empty file
+ok 34 - split hunk setup
+ok 35 - split hunk "add -p (edit)"
+# passed all 35 test(s)
+1..35
+*** t3702-add-edit.sh ***
+ok 1 - setup
+ok 2 - add -e
+# passed all 2 test(s)
+1..2
+*** t3703-add-magic-pathspec.sh ***
+ok 1 - setup
+ok 2 - add :/
+ok 3 - add :/anothersub
+ok 4 - add :/non-existent
+ok 5 - a file with the same (long) magic name exists
+ok 6 - a file with the same (short) magic name exists
+# passed all 6 test(s)
+1..6
+*** t3800-mktag.sh ***
+ok 1 - setup
+ok 2 - Tag object length check
+ok 3 - "object" line label check
+ok 4 - "object" line SHA1 check
+ok 5 - "type" line label check
+ok 6 - "type" line eol check
+ok 7 - "tag" line label check #1
+ok 8 - "tag" line label check #2
+ok 9 - "type" line type-name length check
+ok 10 - verify object (SHA1/type) check
+ok 11 - verify tag-name check
+ok 12 - "tagger" line label check #1
+ok 13 - "tagger" line label check #2
+ok 14 - disallow missing tag author name
+ok 15 - disallow malformed tagger
+ok 16 - allow empty tag email
+ok 17 - disallow spaces in tag email
+ok 18 - disallow missing tag timestamp
+ok 19 - detect invalid tag timestamp1
+ok 20 - detect invalid tag timestamp2
+ok 21 - detect invalid tag timezone1
+ok 22 - detect invalid tag timezone2
+ok 23 - detect invalid tag timezone3
+ok 24 - detect invalid header entry
+ok 25 - create valid tag
+ok 26 - check mytag
+# passed all 26 test(s)
+1..26
+*** t3900-i18n-commit.sh ***
+ok 1 - setup
+ok 2 - no encoding header for base case
+not ok 3 - UTF-16 refused because of NULs # TODO known breakage
+ok 4 - ISO8859-1 setup
+ok 5 - eucJP setup
+ok 6 - ISO-2022-JP setup
+ok 7 - check encoding header for ISO8859-1
+ok 8 - check encoding header for eucJP
+ok 9 - check encoding header for ISO-2022-JP
+ok 10 - config to remove customization
+ok 11 - ISO8859-1 should be shown in UTF-8 now
+ok 12 - eucJP should be shown in UTF-8 now
+ok 13 - ISO-2022-JP should be shown in UTF-8 now
+ok 14 - config to add customization
+ok 15 - ISO8859-1 should be shown in itself now
+ok 16 - eucJP should be shown in itself now
+ok 17 - ISO-2022-JP should be shown in itself now
+ok 18 - config to tweak customization
+ok 19 - ISO8859-1 should be shown in UTF-8 now
+ok 20 - eucJP should be shown in UTF-8 now
+ok 21 - ISO-2022-JP should be shown in UTF-8 now
+ok 22 - eucJP should be shown in eucJP now
+ok 23 - ISO-2022-JP should be shown in eucJP now
+ok 24 - eucJP should be shown in ISO-2022-JP now
+ok 25 - ISO-2022-JP should be shown in ISO-2022-JP now
+ok 26 - No conversion with ISO8859-1
+ok 27 - No conversion with eucJP
+ok 28 - No conversion with ISO-2022-JP
+ok 29 - commit --fixup with eucJP encoding
+ok 30 - commit --squash with ISO-2022-JP encoding
+# still have 1 known breakage(s)
+# passed all remaining 29 test(s)
+1..30
+*** 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)
+1..15
+*** t3902-quoted.sh ***
+ok 1 - setup
+ok 2 - setup expected files
+ok 3 - check fully quoted output from ls-files
+ok 4 - check fully quoted output from diff-files
+ok 5 - check fully quoted output from diff-index
+ok 6 - check fully quoted output from diff-tree
+ok 7 - check fully quoted output from ls-tree
+ok 8 - setting core.quotepath
+ok 9 - check fully quoted output from ls-files
+ok 10 - check fully quoted output from diff-files
+ok 11 - check fully quoted output from diff-index
+ok 12 - check fully quoted output from diff-tree
+ok 13 - check fully quoted output from ls-tree
+# passed all 13 test(s)
+1..13
+*** t3903-stash.sh ***
+ok 1 - stash some dirty working directory
+ok 2 - parents of stash
+ok 3 - applying bogus stash does nothing
+ok 4 - apply does not need clean working directory
+ok 5 - apply does not clobber working directory changes
+ok 6 - apply stashed changes
+ok 7 - apply stashed changes (including index)
+ok 8 - unstashing in a subdirectory
+ok 9 - drop top stash
+ok 10 - drop middle stash
+ok 11 - stash pop
+ok 12 - stash branch
+ok 13 - apply -q is quiet
+ok 14 - save -q is quiet
+ok 15 - pop -q is quiet
+ok 16 - pop -q --index works and is quiet
+ok 17 - drop -q is quiet
+ok 18 - stash -k
+ok 19 - stash --no-keep-index
+ok 20 - stash --invalid-option
+ok 21 - stash an added file
+ok 22 - stash rm then recreate
+ok 23 - stash rm and ignore
+ok 24 - stash rm and ignore (stage .gitignore)
+ok 25 - stash file to symlink
+ok 26 - stash file to symlink (stage rm)
+ok 27 - stash file to symlink (full stage)
+ok 28 - stash symlink to file
+ok 29 - stash symlink to file (stage rm)
+ok 30 - stash symlink to file (full stage)
+not ok 31 - stash directory to file # TODO known breakage
+not ok 32 - stash file to directory # TODO known breakage
+ok 33 - stash branch - no stashes on stack, stash-like argument
+ok 34 - stash branch - stashes on stack, stash-like argument
+ok 35 - stash show - stashes on stack, stash-like argument
+ok 36 - stash show -p - stashes on stack, stash-like argument
+ok 37 - stash show - no stashes on stack, stash-like argument
+ok 38 - stash show -p - no stashes on stack, stash-like argument
+ok 39 - stash drop - fail early if specified stash is not a stash reference
+ok 40 - stash pop - fail early if specified stash is not a stash reference
+ok 41 - ref with non-existent reflog
+ok 42 - invalid ref of the form [email protected]{n}, n >= N
+ok 43 - stash branch should not drop the stash if the branch exists
+ok 44 - stash apply shows status same as git status (relative to current directory)
+ok 45 - stash where working directory contains "HEAD" file
+# still have 2 known breakage(s)
+# passed all remaining 43 test(s)
+1..45
+*** t3904-stash-patch.sh ***
+ok 1 - setup
+ok 2 - saying "n" does nothing
+ok 3 - git stash -p
+ok 4 - git stash -p --no-keep-index
+ok 5 - git stash --no-keep-index -p
+ok 6 - none of this moved HEAD
+# passed all 6 test(s)
+1..6
+*** t3905-stash-include-untracked.sh ***
+ok 1 - stash save --include-untracked some dirty working directory
+ok 2 - stash save --include-untracked cleaned the untracked files
+ok 3 - stash save --include-untracked stashed the untracked files
+ok 4 - stash save --patch --include-untracked fails
+ok 5 - stash save --patch --all fails
+ok 6 - stash pop after save --include-untracked leaves files untracked again
+ok 7 - stash save -u dirty index
+ok 8 - stash save --include-untracked dirty index got stashed
+ok 9 - stash save --include-untracked -q is quiet
+ok 10 - stash save --include-untracked removed files
+ok 11 - stash save --include-untracked removed files got stashed
+ok 12 - stash save --include-untracked respects .gitignore
+ok 13 - stash save -u can stash with only untracked files different
+ok 14 - stash save --all does not respect .gitignore
+ok 15 - stash save --all is stash poppable
+# passed all 15 test(s)
+1..15
+*** 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)
+1..3
+*** 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
+ok 8 - setup for many rename source candidates
+# passed all 8 test(s)
+1..8
+*** 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-tree --stdin of known trees.
+ok 52 - diff-tree --stdin of known trees.
+ok 53 - diff-cache O with A in cache
+ok 54 - diff-cache O with B in cache
+ok 55 - diff-cache A with B in cache
+ok 56 - diff-files with O in cache and A checked out
+ok 57 - diff-files with O in cache and B checked out
+ok 58 - diff-files with A in cache and B checked out
+ok 59 - diff-tree O A == diff-tree -R A O
+ok 60 - diff-tree -r O A == diff-tree -r -R A O
+ok 61 - diff-tree B A == diff-tree -R A B
+ok 62 - diff-tree -r B A == diff-tree -r -R A B
+ok 63 - diff can read from stdin
+# passed all 63 test(s)
+1..63
+*** 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)
+1..7
+*** t4004-diff-rename-symlink.sh ***
+ok 1 - prepare reference tree
+ok 2 - prepare work tree
+ok 3 - setup diff output
+ok 4 - validate diff output
+# passed all 4 test(s)
+1..4
+*** 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)
+1..7
+*** t4006-diff-mode.sh ***
+ok 1 - setup
+ok 2 - chmod
+ok 3 - verify
+# passed all 3 test(s)
+1..3
+*** t4007-rename-3.sh ***
+ok 1 - prepare reference tree
+ok 2 - prepare work tree
+ok 3 - copy detection
+ok 4 - copy detection, cached
+ok 5 - copy, limited to a subtree
+ok 6 - tweak work tree
+ok 7 - rename detection
+ok 8 - rename, limited to a subtree
+# passed all 8 test(s)
+1..8
+*** 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 -C
+ok 23 - validate result of -B -M (#9)
+# passed all 23 test(s)
+1..23
+*** 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)
+1..7
+*** 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 - "*file1" should show path1/file1
+ok 6 - limit to file0 should show file0
+ok 7 - limit to file0/ should emit nothing.
+ok 8 - diff-tree pathspec
+ok 9 - diff-tree with wildcard shows dir also matches
+ok 10 - diff-tree -r with wildcard
+ok 11 - diff-tree with wildcard shows dir also matches
+ok 12 - diff-tree -r with wildcard from beginning
+ok 13 - diff-tree -r with wildcard
+# passed all 13 test(s)
+1..13
+*** 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
+ok 6 - diff symlinks with non-existing targets
+ok 7 - setup symlinks with attributes
+ok 8 - symlinks do not respect userdiff config by path
+# passed all 8 test(s)
+1..8
+*** 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
+ok 9 - diff --no-index with binary creation
+# passed all 9 test(s)
+1..9
+*** 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 -p --first-parent master
+ok 68 - git log -m -p --first-parent master
+ok 69 - git log -m -p master
+ok 70 - git log -SF master
+ok 71 - git log -S F master
+ok 72 - git log -SF -p master
+ok 73 - git log -SF master --max-count=0
+ok 74 - git log -SF master --max-count=1
+ok 75 - git log -SF master --max-count=2
+ok 76 - git log -GF master
+ok 77 - git log -GF -p master
+ok 78 - git log -GF -p --pickaxe-all master
+ok 79 - git log --decorate --all
+ok 80 - git log --decorate=full --all
+ok 81 - git rev-list --parents HEAD
+ok 82 - git rev-list --children HEAD
+ok 83 - git whatchanged master
+ok 84 - git whatchanged -p master
+ok 85 - git whatchanged --root master
+ok 86 - git whatchanged --root -p master
+ok 87 - git whatchanged --patch-with-stat master
+ok 88 - git whatchanged --root --patch-with-stat master
+ok 89 - git whatchanged --root --patch-with-stat --summary master
+ok 90 - git whatchanged --root -c --patch-with-stat --summary master
+ok 91 - git whatchanged --root --cc --patch-with-stat --summary master
+ok 92 - git whatchanged -SF master
+ok 93 - git whatchanged -SF -p master
+ok 94 - git log --patch-with-stat master -- dir/
+ok 95 - git whatchanged --patch-with-stat master -- dir/
+ok 96 - git log --patch-with-stat --summary master -- dir/
+ok 97 - git whatchanged --patch-with-stat --summary master -- dir/
+ok 98 - git show initial
+ok 99 - git show --root initial
+ok 100 - git show side
+ok 101 - git show master
+ok 102 - git show -c master
+ok 103 - git show -m master
+ok 104 - git show --first-parent master
+ok 105 - git show --stat side
+ok 106 - git show --stat --summary side
+ok 107 - git show --patch-with-stat side
+ok 108 - git show --patch-with-raw side
+ok 109 - git show --patch-with-stat --summary side
+ok 110 - git format-patch --stdout initial..side
+ok 111 - git format-patch --stdout initial..master^
+ok 112 - git format-patch --stdout initial..master
+ok 113 - git format-patch --stdout --no-numbered initial..master
+ok 114 - git format-patch --stdout --numbered initial..master
+ok 115 - git format-patch --attach --stdout initial..side
+ok 116 - git format-patch --attach --stdout --suffix=.diff initial..side
+ok 117 - git format-patch --attach --stdout initial..master^
+ok 118 - git format-patch --attach --stdout initial..master
+ok 119 - git format-patch --inline --stdout initial..side
+ok 120 - git format-patch --inline --stdout initial..master^
+ok 121 - git format-patch --inline --stdout --numbered-files initial..master
+ok 122 - git format-patch --inline --stdout initial..master
+ok 123 - git format-patch --inline --stdout --subject-prefix=TESTCASE initial..master
+ok 124 - git config format.subjectprefix DIFFERENT_PREFIX
+ok 125 - git format-patch --inline --stdout initial..master^^
+ok 126 - git format-patch --stdout --cover-letter -n initial..master^
+ok 127 - git diff --abbrev initial..side
+ok 128 - git diff -r initial..side
+ok 129 - git diff --stat initial..side
+ok 130 - git diff -r --stat initial..side
+ok 131 - git diff initial..side
+ok 132 - git diff --patch-with-stat initial..side
+ok 133 - git diff --patch-with-raw initial..side
+ok 134 - git diff --patch-with-stat -r initial..side
+ok 135 - git diff --patch-with-raw -r initial..side
+ok 136 - git diff --name-status dir2 dir
+ok 137 - git diff --no-index --name-status dir2 dir
+ok 138 - git diff --no-index --name-status -- dir2 dir
+ok 139 - git diff --no-index dir dir3
+ok 140 - git diff master master^ side
+ok 141 - git diff --dirstat master~1 master~2
+ok 142 - git diff --dirstat initial rearrange
+ok 143 - git diff --dirstat-by-file initial rearrange
+ok 144 - log -S requires an argument
+ok 145 - diff --cached on unborn branch
+ok 146 - diff --cached -- file on unborn branch
+# passed all 146 test(s)
+1..146
+*** t4014-format-patch.sh ***
+ok 1 - set up terminal for tests
+ok 2 - setup
+ok 3 - format-patch --ignore-if-in-upstream
+ok 4 - format-patch --ignore-if-in-upstream
+ok 5 - format-patch doesn't consider merge commits
+ok 6 - format-patch result applies
+ok 7 - format-patch --ignore-if-in-upstream result applies
+ok 8 - commit did not screw up the log message
+ok 9 - format-patch did not screw up the log message
+ok 10 - replay did not screw up the log message
+ok 11 - extra headers
+ok 12 - extra headers without newlines
+ok 13 - extra headers with multiple To:s
+ok 14 - additional command line cc
+ok 15 - command line headers
+ok 16 - configuration headers and command line headers
+ok 17 - command line To: header
+ok 18 - configuration To: header
+ok 19 - --no-to overrides config.to
+ok 20 - --no-to and --to replaces config.to
+ok 21 - --no-cc overrides config.cc
+ok 22 - --no-add-header overrides config.headers
+ok 23 - multiple files
+ok 24 - no threading
+ok 25 - thread
+ok 26 - thread in-reply-to
+ok 27 - thread cover-letter
+ok 28 - thread cover-letter in-reply-to
+ok 29 - thread explicit shallow
+ok 30 - thread deep
+ok 31 - thread deep in-reply-to
+ok 32 - thread deep cover-letter
+ok 33 - thread deep cover-letter in-reply-to
+ok 34 - thread via config
+ok 35 - thread deep via config
+ok 36 - thread config + override
+ok 37 - thread config + --no-thread
+ok 38 - excessive subject
+ok 39 - cover-letter inherits diff options
+ok 40 - shortlog of cover-letter wraps overly-long onelines
+ok 41 - format-patch respects -U
+ok 42 - format-patch -p suppresses stat
+ok 43 - format-patch from a subdirectory (1)
+ok 44 - format-patch from a subdirectory (2)
+ok 45 - format-patch from a subdirectory (3)
+ok 46 - format-patch --in-reply-to
+ok 47 - format-patch --signoff
+ok 48 - options no longer allowed for format-patch
+ok 49 - format-patch --numstat should produce a patch
+ok 50 - format-patch -- <path>
+ok 51 - format-patch --ignore-if-in-upstream HEAD
+ok 52 - format-patch --signature
+ok 53 - format-patch with format.signature config
+ok 54 - format-patch --signature overrides format.signature
+ok 55 - format-patch --no-signature ignores format.signature
+ok 56 - format-patch --signature --cover-letter
+ok 57 - format.signature="" supresses signatures
+ok 58 - format-patch --no-signature supresses signatures
+ok 59 - format-patch --signature="" supresses signatures
+ok 60 # skip format-patch --stdout paginates (missing TTY)
+ok 61 # skip format-patch --stdout pagination can be disabled (missing TTY)
+ok 62 - format-patch handles multi-line subjects
+ok 63 - format-patch handles multi-line encoded subjects
+ok 64 - format-patch wraps extremely long headers (ascii)
+ok 65 - format-patch wraps extremely long headers (rfc2047)
+ok 66 - format-patch wraps non-quotable headers
+ok 67 - format-patch quotes dot in headers
+ok 68 - format-patch quotes double-quote in headers
+ok 69 - rfc2047-encoded headers also double-quote 822 specials
+ok 70 - subject lines do not have 822 atom-quoting
+ok 71 - subject prefixes have space prepended
+ok 72 - empty subject prefix does not have extra space
+ok 73 - format patch ignores color.ui
+# passed all 73 test(s)
+1..73
+*** 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 -w -b
+ok 7 - another test, with -w --ignore-space-at-eol
+ok 8 - another test, with -w -b --ignore-space-at-eol
+ok 9 - another test, with -b
+ok 10 - another test, with -b --ignore-space-at-eol
+ok 11 - another test, with --ignore-space-at-eol
+ok 12 - check mixed spaces and tabs in indent
+ok 13 - check mixed tabs and spaces in indent
+ok 14 - check with no whitespace errors
+ok 15 - check with trailing whitespace
+ok 16 - check with space before tab in indent
+ok 17 - --check and --exit-code are not exclusive
+ok 18 - --check and --quiet are not exclusive
+ok 19 - check staged with no whitespace errors
+ok 20 - check staged with trailing whitespace
+ok 21 - check staged with space before tab in indent
+ok 22 - check with no whitespace errors (diff-index)
+ok 23 - check with trailing whitespace (diff-index)
+ok 24 - check with space before tab in indent (diff-index)
+ok 25 - check staged with no whitespace errors (diff-index)
+ok 26 - check staged with trailing whitespace (diff-index)
+ok 27 - check staged with space before tab in indent (diff-index)
+ok 28 - check with no whitespace errors (diff-tree)
+ok 29 - check with trailing whitespace (diff-tree)
+ok 30 - check with space before tab in indent (diff-tree)
+ok 31 - check trailing whitespace (trailing-space: off)
+ok 32 - check trailing whitespace (trailing-space: on)
+ok 33 - check space before tab in indent (space-before-tab: off)
+ok 34 - check space before tab in indent (space-before-tab: on)
+ok 35 - check spaces as indentation (indent-with-non-tab: off)
+ok 36 - check spaces as indentation (indent-with-non-tab: on)
+ok 37 - ditto, but tabwidth=9
+ok 38 - check tabs and spaces as indentation (indent-with-non-tab: on)
+ok 39 - ditto, but tabwidth=10
+ok 40 - ditto, but tabwidth=20
+ok 41 - check tabs as indentation (tab-in-indent: off)
+ok 42 - check tabs as indentation (tab-in-indent: on)
+ok 43 - check tabs and spaces as indentation (tab-in-indent: on)
+ok 44 - ditto, but tabwidth=1 (must be irrelevant)
+ok 45 - check tab-in-indent and indent-with-non-tab conflict
+ok 46 - check tab-in-indent excluded from wildcard whitespace attribute
+ok 47 - line numbers in --check output are correct
+ok 48 - checkdiff detects new trailing blank lines (1)
+ok 49 - checkdiff detects new trailing blank lines (2)
+ok 50 - checkdiff allows new blank lines
+ok 51 - whitespace-only changes not reported
+ok 52 - whitespace-only changes reported across renames
+ok 53 - rename empty
+ok 54 - combined diff with autocrlf conversion
+ok 55 - setup diff colors
+ok 56 - diff that introduces a line with only tabs
+# passed all 56 test(s)
+1..56
+*** t4016-diff-quote.sh ***
+ok 1 - setup
+ok 2 - setup expected files
+ok 3 - git diff --summary -M HEAD
+ok 4 - setup expected files
+ok 5 - git diff --stat -M HEAD
+# passed all 5 test(s)
+1..5
+*** t4017-diff-retval.sh ***
+ok 1 - setup
+ok 2 - git diff --quiet -w  HEAD^^ HEAD^
+ok 3 - git diff --quiet HEAD^^ HEAD^
+ok 4 - git diff --quiet -w  HEAD^ HEAD
+ok 5 - git diff-tree HEAD^ HEAD
+ok 6 - git diff-tree HEAD^ HEAD -- a
+ok 7 - git diff-tree HEAD^ HEAD -- b
+ok 8 - echo HEAD | git diff-tree --stdin
+ok 9 - git diff-tree HEAD HEAD
+ok 10 - git diff-files
+ok 11 - git diff-index --cached HEAD
+ok 12 - git diff-index --cached HEAD^
+ok 13 - git diff-index --cached HEAD^
+ok 14 - git diff-tree -Stext HEAD^ HEAD -- b
+ok 15 - git diff-tree -Snot-found HEAD^ HEAD -- b
+ok 16 - git diff-files
+ok 17 - git diff-index --cached HEAD
+ok 18 - --check --exit-code returns 0 for no difference
+ok 19 - --check --exit-code returns 1 for a clean difference
+ok 20 - --check --exit-code returns 3 for a dirty difference
+ok 21 - --check with --no-pager returns 2 for dirty difference
+ok 22 - check should test not just the last line
+ok 23 - check detects leftover conflict markers
+ok 24 - check honors conflict marker length
+# passed all 24 test(s)
+1..24
+*** t4018-diff-funcname.sh ***
+ok 1 - builtin bibtex pattern compiles
+ok 2 - builtin bibtex wordRegex pattern compiles
+ok 3 - builtin cpp pattern compiles
+ok 4 - builtin cpp wordRegex pattern compiles
+ok 5 - builtin csharp pattern compiles
+ok 6 - builtin csharp wordRegex pattern compiles
+ok 7 - builtin fortran pattern compiles
+ok 8 - builtin fortran wordRegex pattern compiles
+ok 9 - builtin html pattern compiles
+ok 10 - builtin html wordRegex pattern compiles
+ok 11 - builtin java pattern compiles
+ok 12 - builtin java wordRegex pattern compiles
+ok 13 - builtin matlab pattern compiles
+ok 14 - builtin matlab wordRegex pattern compiles
+ok 15 - builtin objc pattern compiles
+ok 16 - builtin objc wordRegex pattern compiles
+ok 17 - builtin pascal pattern compiles
+ok 18 - builtin pascal wordRegex pattern compiles
+ok 19 - builtin perl pattern compiles
+ok 20 - builtin perl wordRegex pattern compiles
+ok 21 - builtin php pattern compiles
+ok 22 - builtin php wordRegex pattern compiles
+ok 23 - builtin python pattern compiles
+ok 24 - builtin python wordRegex pattern compiles
+ok 25 - builtin ruby pattern compiles
+ok 26 - builtin ruby wordRegex pattern compiles
+ok 27 - builtin tex pattern compiles
+ok 28 - builtin tex wordRegex pattern compiles
+ok 29 - default behaviour
+ok 30 - set up .gitattributes declaring drivers to test
+ok 31 - preset java pattern
+ok 32 - preset perl pattern
+ok 33 - perl pattern accepts K&R style brace placement, too
+ok 34 - but is not distracted by end of <<here document
+ok 35 - perl pattern is not distracted by sub within POD
+ok 36 - perl pattern gets full line of POD header
+ok 37 - perl pattern is not distracted by forward declaration
+ok 38 - custom pattern
+ok 39 - last regexp must not be negated
+ok 40 - pattern which matches to end of line
+ok 41 - alternation in pattern
+# passed all 41 test(s)
+1..41
+*** t4019-diff-wserror.sh ***
+ok 1 - setup
+ok 2 - default
+ok 3 - default (attribute)
+ok 4 - default, tabwidth=10 (attribute)
+ok 5 - no check (attribute)
+ok 6 - no check, tabwidth=10 (attribute), must be irrelevant
+ok 7 - without -trail
+ok 8 - without -trail (attribute)
+ok 9 - without -space
+ok 10 - without -space (attribute)
+ok 11 - with indent-non-tab only
+ok 12 - with indent-non-tab only (attribute)
+ok 13 - with indent-non-tab only, tabwidth=10
+ok 14 - with indent-non-tab only, tabwidth=10 (attribute)
+ok 15 - with cr-at-eol
+ok 16 - with cr-at-eol (attribute)
+ok 17 - trailing empty lines (1)
+ok 18 - trailing empty lines (2)
+ok 19 - checkdiff shows correct line number for trailing blank lines
+ok 20 - do not color trailing cr in context
+ok 21 - color new trailing blank lines
+# passed all 21 test(s)
+1..21
+*** 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 - GIT_EXTERNAL_DIFF environment and --no-ext-diff
+ok 5 - diff attribute
+ok 6 - diff attribute should apply only to diff
+ok 7 - diff attribute and --no-ext-diff
+ok 8 - diff attribute
+ok 9 - diff attribute should apply only to diff
+ok 10 - diff attribute and --no-ext-diff
+ok 11 - no diff with -diff
+ok 12 - force diff with "diff"
+ok 13 - GIT_EXTERNAL_DIFF with more than one changed files
+ok 14 - GIT_EXTERNAL_DIFF generates pretty paths
+ok 15 - external diff with autocrlf = true
+ok 16 - diff --cached
+# passed all 16 test(s)
+1..16
+*** t4021-format-patch-numbered.sh ***
+ok 1 - setup
+ok 2 - single patch defaults to no numbers
+ok 3 - multiple patch defaults to numbered
+ok 4 - Use --numbered
+ok 5 - format.numbered = true
+ok 6 - format.numbered && single patch
+ok 7 - format.numbered && --no-numbered
+ok 8 - format.numbered && --keep-subject
+ok 9 - format.numbered = auto
+ok 10 - format.numbered = auto && single patch
+ok 11 - format.numbered = auto && --no-numbered
+ok 12 - --start-number && --numbered
+# passed all 12 test(s)
+1..12
+*** t4022-diff-rewrite.sh ***
+ok 1 - setup
+ok 2 - detect rewrite
+ok 3 - show deletion diff without -D
+ok 4 - suppress deletion diff with -D
+ok 5 - show deletion diff with -B
+ok 6 - suppress deletion diff with -B -D
+# passed all 6 test(s)
+1..6
+*** 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)
+1..4
+*** t4024-diff-optimize-common.sh ***
+ok 1 - setup
+ok 2 - diff -U0
+# passed all 2 test(s)
+1..2
+*** t4025-hunk-header.sh ***
+ok 1 - setup
+ok 2 - hunk header truncation with an overly long line
+# passed all 2 test(s)
+1..2
+*** 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 - fg bg attr...
+ok 8 - long color specification
+ok 9 - 256 colors
+ok 10 - color too small
+ok 11 - color too big
+ok 12 - extra character after color number
+ok 13 - extra character after color name
+ok 14 - extra character after attribute
+ok 15 - unknown color slots are ignored (diff)
+ok 16 - unknown color slots are ignored (branch)
+ok 17 - unknown color slots are ignored (status)
+# passed all 17 test(s)
+1..17
+*** t4027-diff-submodule.sh ***
+ok 1 - setup
+ok 2 - git diff --raw HEAD
+ok 3 - git diff-index --raw HEAD
+ok 4 - git diff-files --raw
+ok 5 - git diff HEAD
+ok 6 - git diff HEAD with dirty submodule (work tree)
+ok 7 - git diff HEAD with dirty submodule (index)
+ok 8 - git diff HEAD with dirty submodule (untracked)
+ok 9 - git diff HEAD with dirty submodule (work tree, refs match)
+ok 10 - git diff HEAD with dirty submodule (work tree, refs match) [.git/config]
+ok 11 - git diff HEAD with dirty submodule (work tree, refs match) [.gitmodules]
+ok 12 - git diff HEAD with dirty submodule (index, refs match)
+ok 13 - git diff HEAD with dirty submodule (untracked, refs match)
+ok 14 - git diff HEAD with dirty submodule (untracked, refs match) [.git/config]
+ok 15 - git diff HEAD with dirty submodule (untracked, refs match) [.gitmodules]
+ok 16 - git diff between submodule commits
+ok 17 - git diff between submodule commits [.git/config]
+ok 18 - git diff between submodule commits [.gitmodules]
+ok 19 - git diff (empty submodule dir)
+ok 20 - conflicted submodule setup
+ok 21 - combined (empty submodule)
+ok 22 - combined (with submodule)
+# passed all 22 test(s)
+1..22
+*** t4028-format-patch-mime-headers.sh ***
+ok 1 - create commit with utf-8 body
+ok 2 - patch has mime headers
+ok 3 - patch has mime and extra headers
+# passed all 3 test(s)
+1..3
+*** t4029-diff-trailing-space.sh ***
+ok 1 - diff honors config option, diff.suppressBlankEmpty
+# passed all 1 test(s)
+1..1
+*** t4030-diff-textconv.sh ***
+ok 1 - setup binary file with history
+ok 2 - file is considered binary by porcelain
+ok 3 - file is considered binary by plumbing
+ok 4 - setup textconv filters
+ok 5 - diff produces text
+ok 6 - diff-tree produces binary
+ok 7 - log produces text
+ok 8 - format-patch produces binary
+ok 9 - status -v produces text
+ok 10 - diffstat does not run textconv
+ok 11 - textconv does not act on symlinks
+# passed all 11 test(s)
+1..11
+*** t4031-diff-rewrite-binary.sh ***
+ok 1 - create binary file with changes
+ok 2 - vanilla diff is binary
+ok 3 - rewrite diff is binary
+ok 4 - rewrite diff can show binary patch
+ok 5 - rewrite diff --stat shows binary changes
+ok 6 - setup textconv
+ok 7 - rewrite diff respects textconv
+# passed all 7 test(s)
+1..7
+*** t4032-diff-inter-hunk-context.sh ***
+ok 1 - diff -U0, 1 common line: count hunks (2)
+ok 2 - diff -U0, 1 common line: check output
+ok 3 - diff -U0 --inter-hunk-context=0, 1 common line: count hunks (2)
+ok 4 - diff -U0 --inter-hunk-context=0, 1 common line: check output
+ok 5 - diff -U0 --inter-hunk-context=1, 1 common line: count hunks (1)
+ok 6 - diff -U0 --inter-hunk-context=1, 1 common line: check output
+ok 7 - diff -U0 --inter-hunk-context=2, 1 common line: count hunks (1)
+ok 8 - diff -U0 --inter-hunk-context=2, 1 common line: check output
+ok 9 - diff -U1, 1 common line: count hunks (1)
+ok 10 - diff -U0, 2 common lines: count hunks (2)
+ok 11 - diff -U0 --inter-hunk-context=0, 2 common lines: count hunks (2)
+ok 12 - diff -U0 --inter-hunk-context=1, 2 common lines: count hunks (2)
+ok 13 - diff -U0 --inter-hunk-context=2, 2 common lines: count hunks (1)
+ok 14 - diff -U1, 2 common lines: count hunks (1)
+ok 15 - diff -U1, 3 common lines: count hunks (2)
+ok 16 - diff -U1 --inter-hunk-context=0, 3 common lines: count hunks (2)
+ok 17 - diff -U1 --inter-hunk-context=1, 3 common lines: count hunks (1)
+ok 18 - diff -U1 --inter-hunk-context=2, 3 common lines: count hunks (1)
+ok 19 - diff -U3, 9 common lines: count hunks (2)
+ok 20 - diff -U3 --inter-hunk-context=2, 9 common lines: count hunks (2)
+ok 21 - diff -U3 --inter-hunk-context=3, 9 common lines: count hunks (1)
+# passed all 21 test(s)
+1..21
+*** t4033-diff-patience.sh ***
+ok 1 - patience diff
+ok 2 - patience diff output is valid
+ok 3 - completely different files
+# passed all 3 test(s)
+1..3
+*** t4034-diff-words.sh ***
+ok 1 - setup
+ok 2 - set up pre and post with runs of whitespace
+ok 3 - word diff with runs of whitespace
+ok 4 - --word-diff=porcelain
+ok 5 - --word-diff=plain
+ok 6 - --word-diff=plain --color
+ok 7 - word diff without context
+ok 8 - word diff with a regular expression
+ok 9 - set up a diff driver
+ok 10 - option overrides .gitattributes
+ok 11 - use regex supplied by driver
+ok 12 - set up diff.wordRegex option
+ok 13 - command-line overrides config
+ok 14 - command-line overrides config: --word-diff-regex
+ok 15 - .gitattributes override config
+ok 16 - setup: remove diff driver regex
+ok 17 - use configured regex
+ok 18 - test parsing words for newline
+ok 19 - test when words are only removed at the end
+ok 20 - --word-diff=none
+ok 21 - diff driver 'bibtex'
+ok 22 - diff driver 'cpp'
+ok 23 - diff driver 'csharp'
+ok 24 - diff driver 'fortran'
+ok 25 - diff driver 'html'
+ok 26 - diff driver 'java'
+ok 27 - diff driver 'matlab'
+ok 28 - diff driver 'objc'
+ok 29 - diff driver 'pascal'
+ok 30 - diff driver 'perl'
+ok 31 - diff driver 'php'
+ok 32 - diff driver 'python'
+ok 33 - diff driver 'ruby'
+ok 34 - diff driver 'tex'
+ok 35 - word-diff with diff.sbe
+ok 36 - word-diff with no newline at EOF
+# passed all 36 test(s)
+1..36
+*** t4035-diff-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)
+1..14
+*** t4036-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
+ok 5 - attach and signoff do not duplicate mime headers
+# passed all 5 test(s)
+1..5
+*** t4037-diff-r-t-dirs.sh ***
+ok 1 - setup
+ok 2 - verify
+# passed all 2 test(s)
+1..2
+*** t4038-diff-combined.sh ***
+ok 1 - setup
+ok 2 - check combined output (1)
+ok 3 - check combined output (2)
+ok 4 - diagnose truncated file
+# passed all 4 test(s)
+1..4
+*** t4039-diff-assume-unchanged.sh ***
+ok 1 - setup
+ok 2 - diff-index does not examine assume-unchanged entries
+ok 3 - diff-files does not examine assume-unchanged entries
+# passed all 3 test(s)
+1..3
+*** t4040-whitespace-status.sh ***
+ok 1 - setup
+ok 2 - diff-tree --exit-code
+ok 3 - diff-tree -b --exit-code
+ok 4 - diff-index --cached --exit-code
+ok 5 - diff-index -b -p --cached --exit-code
+ok 6 - diff-index --exit-code
+ok 7 - diff-index -b -p --exit-code
+ok 8 - diff-files --exit-code
+ok 9 - diff-files -b -p --exit-code
+ok 10 - diff-files --diff-filter --quiet
+ok 11 - diff-tree --diff-filter --quiet
+# passed all 11 test(s)
+1..11
+*** t4041-diff-submodule-option.sh ***
+ok 1 - added submodule
+ok 2 - modified submodule(forward)
+ok 3 - modified submodule(forward)
+ok 4 - modified submodule(forward) --submodule
+ok 5 - modified submodule(forward) --submodule=short
+ok 6 - modified submodule(backward)
+ok 7 - modified submodule(backward and forward)
+ok 8 - typechanged submodule(submodule->blob), --cached
+ok 9 - typechanged submodule(submodule->blob)
+ok 10 - typechanged submodule(submodule->blob)
+ok 11 - nonexistent commit
+ok 12 - typechanged submodule(blob->submodule)
+ok 13 - submodule is up to date
+ok 14 - submodule contains untracked content
+ok 15 - submodule contains untracked content (untracked ignored)
+ok 16 - submodule contains untracked content (dirty ignored)
+ok 17 - submodule contains untracked content (all ignored)
+ok 18 - submodule contains untracked and modifed content
+ok 19 - submodule contains untracked and modifed content (untracked ignored)
+ok 20 - submodule contains untracked and modifed content (dirty ignored)
+ok 21 - submodule contains untracked and modifed content (all ignored)
+ok 22 - submodule contains modifed content
+ok 23 - submodule is modified
+ok 24 - modified submodule contains untracked content
+ok 25 - modified submodule contains untracked content (untracked ignored)
+ok 26 - modified submodule contains untracked content (dirty ignored)
+ok 27 - modified submodule contains untracked content (all ignored)
+ok 28 - modified submodule contains untracked and modifed content
+ok 29 - modified submodule contains untracked and modifed content (untracked ignored)
+ok 30 - modified submodule contains untracked and modifed content (dirty ignored)
+ok 31 - modified submodule contains untracked and modifed content (all ignored)
+ok 32 - modified submodule contains modifed content
+ok 33 - deleted submodule
+ok 34 - multiple submodules
+ok 35 - path filter
+ok 36 - given commit
+ok 37 - given commit --submodule
+ok 38 - given commit --submodule=short
+ok 39 - setup .git file for sm2
+ok 40 - diff --submodule with .git file
+# passed all 40 test(s)
+1..40
+*** t4042-diff-textconv-caching.sh ***
+ok 1 - setup
+ok 2 - first textconv works
+ok 3 - cached textconv produces same output
+ok 4 - cached textconv does not run helper
+ok 5 - changing textconv invalidates cache
+ok 6 - switching diff driver produces correct results
+# passed all 6 test(s)
+1..6
+*** t4043-diff-rename-binary.sh ***
+ok 1 - prepare repository
+ok 2 - move the files into a "sub" directory
+ok 3 - git show -C -C report renames
+# passed all 3 test(s)
+1..3
+*** t4044-diff-index-unique-abbrev.sh ***
+ok 1 - setup
+ok 2 - diff does not produce ambiguous index line
+# passed all 2 test(s)
+1..2
+*** t4045-diff-relative.sh ***
+ok 1 - setup
+ok 2 - -p --relative=subdir/
+ok 3 - -p --relative=subdir
+ok 4 - -p --relative=sub
+ok 5 - --stat --relative=subdir/
+ok 6 - --stat --relative=subdir
+ok 7 - --stat --relative=sub
+ok 8 - --raw --relative=subdir/
+ok 9 - --raw --relative=subdir
+ok 10 - --raw --relative=sub
+# passed all 10 test(s)
+1..10
+*** t4046-diff-unmerged.sh ***
+ok 1 - setup
+ok 2 - diff-files -0
+ok 3 - diff-files -1
+ok 4 - diff-files -2
+ok 5 - diff-files -3
+# passed all 5 test(s)
+1..5
+*** t4047-diff-dirstat.sh ***
+ok 1 - setup
+ok 2 - sanity check setup (--stat)
+ok 3 - various ways to misspell --dirstat
+ok 4 - vanilla --dirstat
+ok 5 - vanilla -X
+ok 6 - explicit defaults: --dirstat=changes,noncumulative,3
+ok 7 - explicit defaults: -Xchanges,noncumulative,3
+ok 8 - later options override earlier options:
+ok 9 - non-defaults in config overridden by explicit defaults on command line
+ok 10 - --dirstat=0
+ok 11 - -X0
+ok 12 - diff.dirstat=0
+ok 13 - --dirstat=0 --cumulative
+ok 14 - --dirstat=0,cumulative
+ok 15 - -X0,cumulative
+ok 16 - diff.dirstat=0,cumulative
+ok 17 - diff.dirstat=0 & --dirstat=cumulative
+ok 18 - --dirstat-by-file
+ok 19 - --dirstat=files
+ok 20 - diff.dirstat=files
+ok 21 - --dirstat-by-file=10
+ok 22 - --dirstat=files,10
+ok 23 - diff.dirstat=10,files
+ok 24 - --dirstat-by-file --cumulative
+ok 25 - --dirstat=files,cumulative
+ok 26 - diff.dirstat=cumulative,files
+ok 27 - --dirstat=files,cumulative,10
+ok 28 - diff.dirstat=10,cumulative,files
+ok 29 - --dirstat=files,cumulative,16.7
+ok 30 - diff.dirstat=16.7,cumulative,files
+ok 31 - diff.dirstat=16.70,cumulative,files
+ok 32 - --dirstat=files,cumulative,27.2
+ok 33 - --dirstat=files,cumulative,27.09
+ok 34 - --dirstat=lines
+ok 35 - diff.dirstat=lines
+ok 36 - --dirstat=lines,0
+ok 37 - diff.dirstat=0,lines
+ok 38 - --dirstat=future_param,lines,0 should fail loudly
+ok 39 - --dirstat=dummy1,cumulative,2dummy should report both unrecognized parameters
+ok 40 - diff.dirstat=future_param,0,lines should warn, but still work
+# passed all 40 test(s)
+1..40
+*** t4048-diff-combined-binary.sh ***
+ok 1 - setup binary merge conflict
+ok 2 - diff -m indicates binary-ness
+ok 3 - diff -c indicates binary-ness
+ok 4 - diff --cc indicates binary-ness
+ok 5 - setup non-binary with binary attribute
+ok 6 - diff -m respects binary attribute
+ok 7 - diff -c respects binary attribute
+ok 8 - diff --cc respects binary attribute
+ok 9 - setup textconv attribute
+ok 10 - diff -m respects textconv attribute
+ok 11 - diff -c respects textconv attribute
+ok 12 - diff --cc respects textconv attribute
+ok 13 - diff-tree plumbing does not respect textconv
+ok 14 - diff --cc respects textconv on worktree file
+# passed all 14 test(s)
+1..14
+*** t4049-diff-stat-count.sh ***
+ok 1 - setup
+# passed all 1 test(s)
+1..1
+*** t4050-diff-histogram.sh ***
+ok 1 - histogram diff
+ok 2 - histogram diff output is valid
+ok 3 - completely different files
+# passed all 3 test(s)
+1..3
+*** t4051-diff-function-context.sh ***
+ok 1 - setup
+ok 2 - diff -U0 -W
+ok 3 - diff -W
+# passed all 3 test(s)
+1..3
+*** t4100-apply-stat.sh ***
+ok 1 - rename
+ok 2 - rename with recount
+ok 3 - copy
+ok 4 - copy with recount
+ok 5 - rewrite
+ok 6 - rewrite with recount
+ok 7 - mode
+ok 8 - mode with recount
+ok 9 - non git (1)
+ok 10 - non git (1) with recount
+ok 11 - non git (2)
+ok 12 - non git (2) with recount
+ok 13 - non git (3)
+ok 14 - non git (3) with recount
+ok 15 - incomplete (1)
+ok 16 - incomplete (1) with recount
+ok 17 - incomplete (2)
+ok 18 - incomplete (2) with recount
+# passed all 18 test(s)
+1..18
+*** 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)
+1..12
+*** 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)
+1..5
+*** t4103-apply-binary.sh ***
+ok 1 - setup
+ok 2 - stat binary diff -- should not fail.
+ok 3 - stat binary diff (copy) -- should not fail.
+ok 4 - check binary diff -- should fail.
+ok 5 - check binary diff (copy) -- should fail.
+ok 6 - check incomplete binary diff with replacement -- should fail.
+ok 7 - check incomplete binary diff with replacement (copy) -- should fail.
+ok 8 - check binary diff with replacement.
+ok 9 - check binary diff with replacement (copy).
+ok 10 - apply binary diff -- should fail.
+ok 11 - apply binary diff -- should fail.
+ok 12 - apply binary diff (copy) -- should fail.
+ok 13 - apply binary diff (copy) -- should fail.
+ok 14 - apply binary diff with full-index
+ok 15 - apply binary diff with full-index (copy)
+ok 16 - apply full-index binary diff in new repo
+ok 17 - apply binary diff without replacement.
+ok 18 - apply binary diff without replacement (copy).
+ok 19 - apply binary diff.
+ok 20 - apply binary diff (copy).
+# passed all 20 test(s)
+1..20
+*** 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 insert-a-patch with context
+ok 5 - apply mod-a-patch with context
+ok 6 - apply mod-z-patch with context
+ok 7 - apply del-a-patch with context
+ok 8 - apply del-z-patch with context
+ok 9 - apply add-a-patch without context
+ok 10 - apply add-z-patch without context
+ok 11 - apply insert-a-patch without context
+ok 12 - apply mod-a-patch without context
+ok 13 - apply mod-z-patch without context
+ok 14 - apply del-a-patch without context
+ok 15 - apply del-z-patch without context
+ok 16 - apply non-git add-a-patch without context
+ok 17 - apply non-git add-z-patch without context
+ok 18 - apply non-git insert-a-patch without context
+ok 19 - apply non-git mod-a-patch without context
+ok 20 - apply non-git mod-z-patch without context
+ok 21 - apply non-git del-a-patch without context
+ok 22 - apply non-git del-z-patch without context
+ok 23 - two lines
+ok 24 - apply patch with 3 context lines matching at end
+# passed all 24 test(s)
+1..24
+*** t4105-apply-fuzz.sh ***
+ok 1 - setup
+ok 2 - unmodified patch
+ok 3 - minus offset
+ok 4 - plus offset
+ok 5 - big offset
+ok 6 - fuzz with no offset
+ok 7 - fuzz with minus offset
+ok 8 - fuzz with plus offset
+ok 9 - fuzz with big offset
+# passed all 9 test(s)
+1..9
+*** t4106-apply-stdin.sh ***
+ok 1 - setup
+ok 2 - git apply --numstat - < patch
+ok 3 - git apply --numstat - < patch patch
+# passed all 3 test(s)
+1..3
+*** t4107-apply-ignore-whitespace.sh ***
+ok 1 - file creation
+ok 2 - patch2 fails (retab)
+ok 3 - patch2 applies with --ignore-whitespace
+ok 4 - patch2 reverse applies with --ignore-space-change
+ok 5 - patch2 applies (apply.ignorewhitespace = change)
+ok 6 - patch3 fails (missing string at EOL)
+ok 7 - patch4 fails (missing EOL at EOF)
+ok 8 - patch5 applies (leading whitespace)
+ok 9 - patches do not mangle whitespace
+ok 10 - re-create file (with --ignore-whitespace)
+ok 11 - patch5 fails (--no-ignore-whitespace)
+# passed all 11 test(s)
+1..11
+*** t4109-apply-multifrag.sh ***
+ok 1 - git apply (1)
+ok 2 - git apply (2)
+ok 3 - git apply (3)
+# passed all 3 test(s)
+1..3
+*** t4110-apply-scan.sh ***
+ok 1 - git apply scan
+# passed all 1 test(s)
+1..1
+*** t4111-apply-subdir.sh ***
+ok 1 - setup
+ok 2 - setup: subdir
+ok 3 - apply from subdir of toplevel
+ok 4 - apply --cached from subdir of toplevel
+ok 5 - apply --index from subdir of toplevel
+ok 6 - apply from .git dir
+ok 7 - apply from subdir of .git dir
+ok 8 - apply --cached from .git dir
+ok 9 - apply --cached from subdir of .git dir
+# passed all 9 test(s)
+1..9
+*** t4112-apply-renames.sh ***
+ok 1 - check rename/copy patch
+ok 2 - apply rename/copy patch
+# passed all 2 test(s)
+1..2
+*** t4113-apply-ending.sh ***
+ok 1 - setup
+ok 2 - apply at the end
+ok 3 - apply at the beginning
+# passed all 3 test(s)
+1..3
+*** 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 - binary file becomes symlink
+ok 9 - symlink becomes binary file
+ok 10 - symlink becomes directory
+ok 11 - directory becomes symlink
+# passed all 11 test(s)
+1..11
+*** t4115-apply-symlink.sh ***
+ok 1 - setup
+ok 2 - apply symlink patch
+ok 3 - apply --index symlink patch
+# passed all 3 test(s)
+1..3
+*** 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)
+1..7
+*** 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)
+1..7
+*** t4118-apply-empty-context.sh ***
+ok 1 - setup
+ok 2 - apply --numstat
+ok 3 - apply --apply
+# passed all 3 test(s)
+1..3
+*** 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)
+1..10
+*** t4120-apply-popt.sh ***
+ok 1 - setup
+ok 2 - apply git diff with -p2
+ok 3 - apply with too large -p
+ok 4 - apply (-p2) traditional diff with funny filenames
+ok 5 - apply with too large -p and fancy filename
+ok 6 - apply (-p2) diff, mode change only
+ok 7 - file mode was changed
+ok 8 - apply (-p2) diff, rename
+# passed all 8 test(s)
+1..8
+*** t4121-apply-diffs.sh ***
+ok 1 - setup
+ok 2 - check if contextually independent diffs for the same file apply
+# passed all 2 test(s)
+1..2
+*** t4122-apply-symlink-inside.sh ***
+ok 1 - setup
+ok 2 - apply
+ok 3 - check result
+# passed all 3 test(s)
+1..3
+*** t4123-apply-shrink.sh ***
+ok 1 - setup
+ok 2 - apply should fail gracefully
+# passed all 2 test(s)
+1..2
+*** 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 - spaces inserted by tab-in-indent
+ok 8 - rule=-trailing,-space,-indent,-tab
+ok 9 - rule=-trailing,-space,-indent,-tab,tabwidth=16
+ok 10 - rule=-trailing,-space,-indent,-tab (attributes)
+ok 11 - rule=-trailing,-space,-indent,-tab,tabwidth=16 (attributes)
+ok 12 - rule=-trailing,-space,-indent,tab
+ok 13 - rule=-trailing,-space,-indent,tab,tabwidth=16
+ok 14 - rule=-trailing,-space,-indent,tab (attributes)
+ok 15 - rule=-trailing,-space,-indent,tab,tabwidth=16 (attributes)
+ok 16 - rule=-trailing,-space,indent,-tab
+ok 17 - rule=-trailing,-space,indent,-tab,tabwidth=16
+ok 18 - rule=-trailing,-space,indent,-tab (attributes)
+ok 19 - rule=-trailing,-space,indent,-tab,tabwidth=16 (attributes)
+ok 20 - rule=-trailing,space,-indent,-tab
+ok 21 - rule=-trailing,space,-indent,-tab,tabwidth=16
+ok 22 - rule=-trailing,space,-indent,-tab (attributes)
+ok 23 - rule=-trailing,space,-indent,-tab,tabwidth=16 (attributes)
+ok 24 - rule=-trailing,space,-indent,tab
+ok 25 - rule=-trailing,space,-indent,tab,tabwidth=16
+ok 26 - rule=-trailing,space,-indent,tab (attributes)
+ok 27 - rule=-trailing,space,-indent,tab,tabwidth=16 (attributes)
+ok 28 - rule=-trailing,space,indent,-tab
+ok 29 - rule=-trailing,space,indent,-tab,tabwidth=16
+ok 30 - rule=-trailing,space,indent,-tab (attributes)
+ok 31 - rule=-trailing,space,indent,-tab,tabwidth=16 (attributes)
+ok 32 - rule=trailing,-space,-indent,-tab
+ok 33 - rule=trailing,-space,-indent,-tab,tabwidth=16
+ok 34 - rule=trailing,-space,-indent,-tab (attributes)
+ok 35 - rule=trailing,-space,-indent,-tab,tabwidth=16 (attributes)
+ok 36 - rule=trailing,-space,-indent,tab
+ok 37 - rule=trailing,-space,-indent,tab,tabwidth=16
+ok 38 - rule=trailing,-space,-indent,tab (attributes)
+ok 39 - rule=trailing,-space,-indent,tab,tabwidth=16 (attributes)
+ok 40 - rule=trailing,-space,indent,-tab
+ok 41 - rule=trailing,-space,indent,-tab,tabwidth=16
+ok 42 - rule=trailing,-space,indent,-tab (attributes)
+ok 43 - rule=trailing,-space,indent,-tab,tabwidth=16 (attributes)
+ok 44 - rule=trailing,space,-indent,-tab
+ok 45 - rule=trailing,space,-indent,-tab,tabwidth=16
+ok 46 - rule=trailing,space,-indent,-tab (attributes)
+ok 47 - rule=trailing,space,-indent,-tab,tabwidth=16 (attributes)
+ok 48 - rule=trailing,space,-indent,tab
+ok 49 - rule=trailing,space,-indent,tab,tabwidth=16
+ok 50 - rule=trailing,space,-indent,tab (attributes)
+ok 51 - rule=trailing,space,-indent,tab,tabwidth=16 (attributes)
+ok 52 - rule=trailing,space,indent,-tab
+ok 53 - rule=trailing,space,indent,-tab,tabwidth=16
+ok 54 - rule=trailing,space,indent,-tab (attributes)
+ok 55 - rule=trailing,space,indent,-tab,tabwidth=16 (attributes)
+ok 56 - trailing whitespace & no newline at the end of file
+ok 57 - blank at EOF with --whitespace=fix (1)
+ok 58 - blank at EOF with --whitespace=fix (2)
+ok 59 - blank at EOF with --whitespace=fix (3)
+ok 60 - blank at end of hunk, not at EOF with --whitespace=fix
+ok 61 - blank at EOF with --whitespace=warn
+ok 62 - blank at EOF with --whitespace=error
+ok 63 - blank but not empty at EOF
+ok 64 - applying beyond EOF requires one non-blank context line
+ok 65 - tons of blanks at EOF should not apply
+ok 66 - missing blank line at end with --whitespace=fix
+ok 67 - two missing blank lines at end with --whitespace=fix
+ok 68 - missing blank line at end, insert before end, --whitespace=fix
+ok 69 - shrink file with tons of missing blanks at end of file
+ok 70 - missing blanks at EOF must only match blank lines
+ok 71 - missing blank line should match context line with spaces
+ok 72 - same, but with the --ignore-space-option
+ok 73 - same, but with CR-LF line endings && cr-at-eol set
+ok 74 - same, but with CR-LF line endings && cr-at-eol unset
+# passed all 74 test(s)
+1..74
+*** t4125-apply-ws-fuzz.sh ***
+ok 1 - setup
+ok 2 - nofix
+ok 3 - withfix (forward)
+ok 4 - withfix (backward)
+# passed all 4 test(s)
+1..4
+*** t4126-apply-empty.sh ***
+ok 1 - setup
+ok 2 - apply empty
+ok 3 - apply --index empty
+ok 4 - apply create
+ok 5 - apply --index create
+# passed all 5 test(s)
+1..5
+*** t4127-apply-same-fn.sh ***
+ok 1 - setup
+ok 2 - apply same filename with independent changes
+ok 3 - apply same filename with overlapping changes
+ok 4 - apply same new filename after rename
+ok 5 - apply same old filename after rename -- should fail.
+ok 6 - apply A->B (rename), C->A (rename), A->A -- should pass.
+# passed all 6 test(s)
+1..6
+*** t4128-apply-root.sh ***
+ok 1 - setup
+ok 2 - apply --directory -p (1)
+ok 3 - apply --directory -p (2) 
+ok 4 - apply --directory (new file)
+ok 5 - apply --directory -p (new file)
+ok 6 - apply --directory (delete file)
+ok 7 - apply --directory (quoted filename)
+# passed all 7 test(s)
+1..7
+*** t4129-apply-samemode.sh ***
+ok 1 - setup
+ok 2 - same mode (no index)
+ok 3 - same mode (with index)
+ok 4 - same mode (index only)
+ok 5 - mode update (no index)
+ok 6 - mode update (with index)
+ok 7 - mode update (index only)
+# passed all 7 test(s)
+1..7
+*** t4130-apply-criss-cross-rename.sh ***
+ok 1 - setup
+ok 2 - criss-cross rename
+ok 3 - diff -M -B
+ok 4 - apply
+ok 5 - criss-cross rename
+ok 6 - diff -M -B
+ok 7 - apply
+# passed all 7 test(s)
+1..7
+*** t4131-apply-fake-ancestor.sh ***
+ok 1 - setup
+ok 2 - apply --build-fake-ancestor
+ok 3 - apply --build-fake-ancestor in a subdirectory
+# passed all 3 test(s)
+1..3
+*** t4132-apply-removal.sh ***
+ok 1 - setup
+ok 2 - test addEast.patch
+ok 3 - test addGMT.patch
+ok 4 - test addWest.patch
+ok 5 - test createEast.patch
+ok 6 - test createGMT.patch
+ok 7 - test createWest.patch
+ok 8 - test emptyEast.patch
+ok 9 - test emptyGMT.patch
+ok 10 - test emptyWest.patch
+ok 11 - test removeEast.patch
+ok 12 - test removeGMT.patch
+ok 13 - test removeWest.patch
+ok 14 - test removeWest2.patch
+# passed all 14 test(s)
+1..14
+*** t4133-apply-filenames.sh ***
+ok 1 - setup
+ok 2 - apply diff with inconsistent filenames in headers
+# passed all 2 test(s)
+1..2
+*** t4134-apply-submodule.sh ***
+ok 1 - setup
+ok 2 - removing a submodule also removes all leading subdirectories
+# passed all 2 test(s)
+1..2
+*** t4135-apply-weird-filenames.sh ***
+ok 1 - setup
+ok 2 - plain, git-style file creation patch
+ok 3 - plain, traditional patch
+ok 4 - plain, traditional file creation patch
+ok 5 - with spaces, git-style file creation patch
+ok 6 - with spaces, traditional patch
+ok 7 - with spaces, traditional file creation patch
+ok 8 - with tab, git-style file creation patch
+ok 9 - with tab, traditional patch
+ok 10 - with tab, traditional file creation patch
+ok 11 - with backslash, git-style file creation patch
+ok 12 - with backslash, traditional patch
+ok 13 - with backslash, traditional file creation patch
+ok 14 - with quote, git-style file creation patch
+not ok 15 - with quote, traditional patch # TODO known breakage
+ok 16 - with quote, traditional file creation patch
+ok 17 - whitespace-damaged traditional patch
+ok 18 - traditional patch with colon in timezone
+ok 19 - traditional, whitespace-damaged, colon in timezone
+# still have 1 known breakage(s)
+# passed all remaining 18 test(s)
+1..19
+*** t4136-apply-check.sh ***
+ok 1 - setup
+ok 2 - apply --check exits non-zero with unrecognized input
+# passed all 2 test(s)
+1..2
+*** t4150-am.sh ***
+ok 1 - setup: messages
+ok 2 - setup
+ok 3 - am applies patch correctly
+ok 4 - am applies patch e-mail not in a mbox
+ok 5 - am applies patch e-mail not in a mbox with CRLF
+ok 6 - am applies patch e-mail with preceding whitespace
+ok 7 - setup: new author and committer
+ok 8 - am changes committer and keeps author
+ok 9 - am --signoff adds Signed-off-by: line
+ok 10 - am stays in branch
+ok 11 - am --signoff does not add Signed-off-by: line if already there
+ok 12 - am without --keep removes Re: and [PATCH] stuff
+ok 13 - am --keep really keeps the subject
+ok 14 - am -3 falls back to 3-way merge
+ok 15 - am can rename a file
+ok 16 - am -3 can rename a file
+ok 17 - am -3 can rename a file after falling back to 3-way merge
+ok 18 - am -3 -q is quiet
+ok 19 - am pauses on conflict
+ok 20 - am --skip works
+ok 21 - am --resolved works
+ok 22 - am takes patches from a Pine mailbox
+ok 23 - am fails on mail without patch
+ok 24 - am fails on empty patch
+ok 25 - am works from stdin in subdirectory
+ok 26 - am works from file (relative path given) in subdirectory
+ok 27 - am works from file (absolute path given) in subdirectory
+ok 28 - am --committer-date-is-author-date
+ok 29 - am without --committer-date-is-author-date
+ok 30 - am --ignore-date
+ok 31 - am into an unborn branch
+ok 32 - am newline in subject
+ok 33 - am -q is quiet
+# passed all 33 test(s)
+1..33
+*** t4151-am-abort.sh ***
+ok 1 - setup
+ok 2 - am stops at a patch that does not apply
+ok 3 - am --skip continue after failed am
+ok 4 - am --abort goes back after failed am
+ok 5 - am -3 stops at a patch that does not apply
+ok 6 - am -3 --skip continue after failed am -3
+ok 7 - am --abort goes back after failed am -3
+ok 8 - am --abort will keep the local commits intact
+# passed all 8 test(s)
+1..8
+*** t4152-am-subjects.sh ***
+ok 1 - setup baseline commit
+ok 2 - create patches with short subject
+ok 3 - create patches with long subject
+ok 4 - create patches with multiline subject
+ok 5 - short subject preserved (format-patch | am)
+ok 6 - short subject preserved (format-patch -k | am)
+ok 7 - short subject preserved (format-patch -k | am -k)
+ok 8 - long subject preserved (format-patch | am)
+ok 9 - long subject preserved (format-patch -k | am)
+ok 10 - long subject preserved (format-patch -k | am -k)
+ok 11 - multiline subject unwrapped (format-patch | am)
+ok 12 - multiline subject unwrapped (format-patch -k | am)
+ok 13 - multiline subject preserved (format-patch -k | am -k)
+# passed all 13 test(s)
+1..13
+*** t4200-rerere.sh ***
+ok 1 - setup
+ok 2 - nothing recorded without rerere
+ok 3 - activate rerere, old style (conflicting merge)
+ok 4 - rerere.enabled works, too
+ok 5 - set up rr-cache
+ok 6 - rr-cache looks sane
+ok 7 - rerere diff
+ok 8 - rerere status
+ok 9 - first postimage wins
+ok 10 - rerere updates postimage timestamp
+ok 11 - rerere clear
+ok 12 - set up for garbage collection tests
+ok 13 - gc preserves young or recently used records
+ok 14 - old records rest in peace
+ok 15 - setup: file2 added differently in two branches
+ok 16 - resolution was recorded properly
+ok 17 - rerere.autoupdate
+ok 18 - merge --rerere-autoupdate
+ok 19 - merge --no-rerere-autoupdate
+ok 20 - set up an unresolved merge
+ok 21 - explicit rerere
+ok 22 - explicit rerere with autoupdate
+ok 23 - explicit rerere --rerere-autoupdate overrides
+ok 24 - rerere --no-no-rerere-autoupdate
+ok 25 - rerere -h
+# passed all 25 test(s)
+1..25
+*** t4201-shortlog.sh ***
+ok 1 - setup
+ok 2 - default output format
+ok 3 - pretty format
+ok 4 - --abbrev
+ok 5 - output from user-defined format is re-wrapped
+ok 6 - shortlog wrapping
+ok 7 - shortlog from non-git directory
+ok 8 - shortlog encoding
+# passed all 8 test(s)
+1..8
+*** t4202-log.sh ***
+ok 1 - setup
+ok 2 - pretty
+ok 3 - pretty (tformat)
+ok 4 - pretty (shortcut)
+ok 5 - format
+ok 6 - format %w(12,1,2)
+ok 7 - format %w(,1,2)
+ok 8 - oneline
+ok 9 - diff-filter=A
+ok 10 - diff-filter=M
+ok 11 - diff-filter=D
+ok 12 - diff-filter=R
+ok 13 - diff-filter=C
+ok 14 - git log --follow
+ok 15 - git log --no-walk <commits> sorts by commit time
+ok 16 - git show <commits> leaves list of commits as given
+ok 17 - setup case sensitivity tests
+ok 18 - log --grep
+ok 19 - log --grep option parsing
+ok 20 - log -i --grep
+ok 21 - log --grep -i
+ok 22 - simple log --graph
+ok 23 - set up merge history
+ok 24 - log --graph with merge
+ok 25 - log --graph with full output
+ok 26 - set up more tangled history
+ok 27 - log --graph with merge
+ok 28 - log.decorate configuration
+ok 29 - reflog is expected format
+ok 30 - whatchanged is expected format
+ok 31 - log.abbrevCommit configuration
+ok 32 - show added path under "--follow -M"
+# passed all 32 test(s)
+1..32
+*** t4203-mailmap.sh ***
+ok 1 - setup
+ok 2 - No mailmap
+ok 3 - default .mailmap
+ok 4 - mailmap.file set
+ok 5 - mailmap.file override
+ok 6 - mailmap.file non-existent
+ok 7 - name entry after email entry
+ok 8 - name entry after email entry, case-insensitive
+ok 9 - No mailmap files, but configured
+ok 10 - Shortlog output (complex mapping)
+ok 11 - Log output (complex mapping)
+ok 12 - Blame output (complex mapping)
+# passed all 12 test(s)
+1..12
+*** t4204-patch-id.sh ***
+ok 1 - setup
+ok 2 - patch-id output is well-formed
+ok 3 - patch-id detects equality
+ok 4 - patch-id detects inequality
+ok 5 - patch-id supports git-format-patch output
+ok 6 - whitespace is irrelevant in footer
+ok 7 - patch-id supports git-format-patch MIME output
+ok 8 - patch-id handles no-nl-at-eof markers
+# passed all 8 test(s)
+1..8
+*** t4205-log-pretty-formats.sh ***
+ok 1 - set up basic repos
+ok 2 - alias builtin format
+ok 3 - alias masking builtin format
+ok 4 - alias user-defined format
+ok 5 - alias user-defined tformat
+ok 6 - alias non-existent format
+ok 7 - alias of an alias
+ok 8 - alias masking an alias
+ok 9 - alias loop
+# passed all 9 test(s)
+1..9
+*** t4206-log-follow-harder-copies.sh ***
+ok 1 - add a file path0 and commit.
+ok 2 - Change path0.
+ok 3 - copy path0 to path1.
+ok 4 - find the copy path0 -> path1 harder
+ok 5 - validate the output.
+# passed all 5 test(s)
+1..5
+*** t4207-log-decoration-colors.sh ***
+ok 1 - setup
+ok 2 - Commit Decorations Colored Correctly
+# passed all 2 test(s)
+1..2
+*** t4208-log-magic-pathspec.sh ***
+ok 1 - setup
+ok 2 - "git log :/" should be ambiguous
+ok 3 - "git log :" should be ambiguous
+ok 4 - git log -- :
+ok 5 - git log HEAD -- :/
+# passed all 5 test(s)
+1..5
+*** t4252-am-options.sh ***
+ok 1 - setup
+ok 2 - interrupted am --whitespace=fix
+ok 3 - interrupted am -C1
+ok 4 - interrupted am -p2
+ok 5 - interrupted am -C1 -p2
+ok 6 - interrupted am --directory="frotz nitfol"
+ok 7 - apply to a funny path
+ok 8 - am --reject
+# passed all 8 test(s)
+1..8
+*** t4253-am-keep-cr-dos.sh ***
+ok 1 - setup repository with dos files
+ok 2 - am with dos files without --keep-cr
+ok 3 - am with dos files with --keep-cr
+ok 4 - am with dos files config am.keepcr
+ok 5 - am with dos files config am.keepcr overriden by --no-keep-cr
+ok 6 - am with dos files with --keep-cr continue
+ok 7 - am with unix files config am.keepcr overriden by --no-keep-cr
+# passed all 7 test(s)
+1..7
+*** t4254-am-corrupt.sh ***
+ok 1 - setup
+ok 2 - try to apply corrupted patch
+ok 3 - compare diagnostic; ensure file is still here
+# passed all 3 test(s)
+1..3
+*** t4300-merge-tree.sh ***
+ok 1 - setup
+ok 2 - file add A, !B
+ok 3 - file add !A, B
+ok 4 - file add A, B (same)
+ok 5 - file add A, B (different)
+ok 6 - file change A, !B
+ok 7 - file change !A, B
+ok 8 - file change A, B (same)
+ok 9 - file change A, B (different)
+ok 10 - file change A, B (mixed)
+ok 11 - file remove A, !B
+ok 12 - file remove !A, B
+ok 13 - file change A, remove B
+ok 14 - file remove A, change B
+# passed all 14 test(s)
+1..14
+*** t5000-tar-tree.sh ***
+ok 1 - populate workdir
+ok 2 - add ignored file
+ok 3 - add files to repository
+ok 4 - create bare clone
+ok 5 - remove ignored file
+ok 6 - git archive
+ok 7 - git tar-tree
+ok 8 - git archive vs. git tar-tree
+ok 9 - git archive in a bare repo
+ok 10 - git archive vs. the same in a bare repo
+ok 11 - git archive with --output
+ok 12 - git archive --remote
+ok 13 - validate file modification time
+ok 14 - git get-tar-commit-id
+ok 15 - extract tar archive
+ok 16 - validate filenames
+ok 17 - validate file contents
+ok 18 - git tar-tree with prefix
+ok 19 - extract tar archive with prefix
+ok 20 - validate filenames with prefix
+ok 21 - validate file contents with prefix
+ok 22 - create archives with substfiles
+ok 23 - extract substfiles
+ok 24 - validate substfile contents
+ok 25 - extract substfiles from archive with prefix
+ok 26 - validate substfile contents from archive with prefix
+ok 27 - git archive --format=zip
+ok 28 - git archive --format=zip in a bare repo
+ok 29 - git archive --format=zip vs. the same in a bare repo
+ok 30 - git archive --format=zip with --output
+ok 31 - git archive with --output, inferring format
+ok 32 - git archive with --output, override inferred format
+ok 33 - extract ZIP archive
+ok 34 - validate filenames
+ok 35 - validate file contents
+ok 36 - git archive --format=zip with prefix
+ok 37 - extract ZIP archive with prefix
+ok 38 - validate filenames with prefix
+ok 39 - validate file contents with prefix
+ok 40 - git archive --list outside of a git repo
+ok 41 - clients cannot access unreachable commits
+ok 42 - git-archive --prefix=olde-
+ok 43 - setup tar filters
+ok 44 - archive --list mentions user filter
+ok 45 - archive --list shows only enabled remote filters
+ok 46 - invoke tar filter by format
+ok 47 - invoke tar filter by extension
+ok 48 - default output format remains tar
+ok 49 - extension matching requires dot
+ok 50 - only enabled filters are available remotely
+ok 51 - git archive --format=tgz
+ok 52 - git archive --format=tar.gz
+ok 53 - infer tgz from .tgz filename
+ok 54 - infer tgz from .tar.gz filename
+ok 55 - extract tgz file
+ok 56 - remote tar.gz is allowed by default
+ok 57 - remote tar.gz can be disabled
+# passed all 57 test(s)
+1..57
+*** t5001-archive-attr.sh ***
+ok 1 - setup
+ok 2 - git archive
+ok 3 -  archive/ignored does not exist
+ok 4 -  archive/ignored-by-tree does not exist
+ok 5 -  archive/ignored-by-worktree exists
+ok 6 - git archive with worktree attributes
+ok 7 -  worktree/ignored does not exist
+ok 8 -  worktree/ignored-by-tree exists
+ok 9 -  worktree/ignored-by-worktree does not exist
+ok 10 - git archive --worktree-attributes option
+ok 11 -  worktree2/ignored does not exist
+ok 12 -  worktree2/ignored-by-tree exists
+ok 13 -  worktree2/ignored-by-worktree does not exist
+ok 14 - git archive vs. bare
+ok 15 - git archive with worktree attributes, bare
+ok 16 -  bare-worktree/ignored does not exist
+ok 17 -  bare-worktree/ignored-by-tree exists
+ok 18 -  bare-worktree/ignored-by-worktree exists
+ok 19 - export-subst
+ok 20 - git tar-tree vs. git archive with worktree attributes
+ok 21 - git tar-tree vs. git archive with worktree attrs, bare
+# passed all 21 test(s)
+1..21
+*** 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
+ok 11 - mailinfo 0010
+ok 12 - mailinfo 0011
+ok 13 - mailinfo 0012
+ok 14 - mailinfo 0013
+ok 15 - mailinfo 0014
+ok 16 - mailinfo 0015
+ok 17 - mailinfo 0016
+ok 18 - split box with rfc2047 samples
+ok 19 - mailinfo rfc2047/0001
+ok 20 - mailinfo rfc2047/0002
+ok 21 - mailinfo rfc2047/0003
+ok 22 - mailinfo rfc2047/0004
+ok 23 - mailinfo rfc2047/0005
+ok 24 - mailinfo rfc2047/0006
+ok 25 - mailinfo rfc2047/0007
+ok 26 - mailinfo rfc2047/0008
+ok 27 - mailinfo rfc2047/0009
+ok 28 - mailinfo rfc2047/0010
+ok 29 - mailinfo rfc2047/0011
+ok 30 - respect NULs
+ok 31 - Preserve NULs out of MIME encoded message
+ok 32 - mailinfo on from header without name works
+# passed all 32 test(s)
+1..32
+*** t5150-request-pull.sh ***
+ok 1 - setup
+ok 2 - setup: two scripts for reading pull requests
+ok 3 - pull request when forgot to push
+ok 4 - pull request after push
+ok 5 - request names an appropriate branch
+ok 6 - pull request format
+ok 7 - request-pull ignores OPTIONS_KEEPDASHDASH poison
+# passed all 7 test(s)
+1..7
+*** 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 - survive missing objects/pack directory
+ok 16 - verify pack
+ok 17 - verify pack -v
+ok 18 - verify-pack catches mismatched .idx and .pack files
+ok 19 - verify-pack catches a corrupted pack signature
+ok 20 - verify-pack catches a corrupted pack version
+ok 21 - verify-pack catches a corrupted type/size of the 1st packed object data
+ok 22 - verify-pack catches a corrupted sum of the index file itself
+ok 23 - build pack index for an existing pack
+ok 24 - unpacking with --strict
+ok 25 - index-pack with --strict
+ok 26 - honor pack.packSizeLimit
+ok 27 - verify resulting packs
+ok 28 - tolerate packsizelimit smaller than biggest object
+ok 29 - verify resulting packs
+ok 30 - fake a SHA1 hash collision
+ok 31 - make sure index-pack detects the SHA1 collision
+# passed all 31 test(s)
+1..31
+*** 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)
+1..6
+*** 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-pack --verify on index version 1
+ok 10 - index-pack --verify on index version 2
+ok 11 - index v2: force some 64-bit offsets with pack-objects
+ok 12 - index v2: verify a pack with some 64-bit offsets
+ok 13 - 64-bit offsets: should be different from previous index v2 results
+ok 14 - index v2: force some 64-bit offsets with index-pack
+ok 15 - 64-bit offsets: index-pack result should match pack-objects one
+ok 16 - index-pack --verify on 64-bit offset v2 (cheat)
+ok 17 - index-pack --verify on 64-bit offset v2
+ok 18 - [index v1] 1) stream pack to repository
+ok 19 - [index v1] 2) create a stealth corruption in a delta base reference
+ok 20 - [index v1] 3) corrupted delta happily returned wrong data
+ok 21 - [index v1] 4) confirm that the pack is actually corrupted
+ok 22 - [index v1] 5) pack-objects happily reuses corrupted data
+ok 23 - [index v1] 6) newly created pack is BAD !
+ok 24 - [index v2] 1) stream pack to repository
+ok 25 - [index v2] 2) create a stealth corruption in a delta base reference
+ok 26 - [index v2] 3) corrupted delta happily returned wrong data
+ok 27 - [index v2] 4) confirm that the pack is actually corrupted
+ok 28 - [index v2] 5) pack-objects refuses to reuse corrupted data
+ok 29 - [index v2] 6) verify-pack detects CRC mismatch
+ok 30 - running index-pack in the object store
+# passed all 30 test(s)
+1..30
+*** t5303-pack-corruption-resilience.sh ***
+ok 1 - initial setup validation
+ok 2 - create corruption in header of first object
+ok 3 - ... but having a loose copy allows for full recovery
+ok 4 - ... and loose copy of first delta allows for partial recovery
+ok 5 - create corruption in data of first object
+ok 6 - ... but having a loose copy allows for full recovery
+ok 7 - ... and loose copy of second object allows for partial recovery
+ok 8 - create corruption in header of first delta
+ok 9 - ... but having a loose copy allows for full recovery
+ok 10 - ... and then a repack "clears" the corruption
+ok 11 - create corruption in data of first delta
+ok 12 - ... but having a loose copy allows for full recovery
+ok 13 - ... and then a repack "clears" the corruption
+ok 14 - corruption in delta base reference of first delta (OBJ_REF_DELTA)
+ok 15 - ... but having a loose copy allows for full recovery
+ok 16 - ... and then a repack "clears" the corruption
+ok 17 - corruption #0 in delta base reference of first delta (OBJ_OFS_DELTA)
+ok 18 - ... but having a loose copy allows for full recovery
+ok 19 - ... and then a repack "clears" the corruption
+ok 20 - corruption #1 in delta base reference of first delta (OBJ_OFS_DELTA)
+ok 21 - ... but having a loose copy allows for full recovery
+ok 22 - ... and then a repack "clears" the corruption
+ok 23 - ... and a redundant pack allows for full recovery too
+ok 24 - corrupting header to have too small output buffer fails unpack
+# passed all 24 test(s)
+1..24
+*** t5304-prune.sh ***
+ok 1 - setup
+ok 2 - prune stale packs
+ok 3 - prune --expire
+ok 4 - gc: implicit prune --expire
+ok 5 - gc: refuse to start with invalid gc.pruneExpire
+ok 6 - gc: start with ok gc.pruneExpire
+ok 7 - prune: prune nonsense parameters
+ok 8 - prune: prune unreachable heads
+ok 9 - prune: do not prune heads listed as an argument
+ok 10 - gc --no-prune
+ok 11 - gc respects gc.pruneExpire
+ok 12 - gc --prune=<date>
+ok 13 - gc --prune=never
+ok 14 - gc respects gc.pruneExpire=never
+ok 15 - prune --expire=never
+ok 16 - gc: prune old objects after local clone
+# passed all 16 test(s)
+1..16
+*** t5305-include-tag.sh ***
+ok 1 - setup
+ok 2 - pack without --include-tag
+ok 3 - unpack objects
+ok 4 - check unpacked result (have commit, no tag)
+ok 5 - pack with --include-tag
+ok 6 - unpack objects
+ok 7 - check unpacked result (have commit, have tag)
+# passed all 7 test(s)
+1..7
+*** t5306-pack-nobase.sh ***
+ok 1 - setup base
+ok 2 - setup patch_clone
+ok 3 - indirectly clone patch_clone
+ok 4 - clone of patch_clone is incomplete
+# passed all 4 test(s)
+1..4
+*** t5307-pack-missing-commit.sh ***
+ok 1 - setup
+ok 2 - check corruption
+ok 3 - rev-list notices corruption (1)
+ok 4 - rev-list notices corruption (2)
+ok 5 - pack-objects notices corruption
+# passed all 5 test(s)
+1..5
+*** t5400-send-pack.sh ***
+ok 1 - setup
+ok 2 - pack the source repository
+ok 3 - pack the destination repository
+ok 4 - refuse pushing rewound head without --force
+ok 5 - push can be used to delete a ref
+ok 6 - refuse deleting push with denyDeletes
+ok 7 - cannot override denyDeletes with git -c send-pack
+ok 8 - override denyDeletes with git -c receive-pack
+ok 9 - denyNonFastforwards trumps --force
+ok 10 - push --all excludes remote-tracking hierarchy
+ok 11 - pushing explicit refspecs respects forcing
+ok 12 - pushing wildcard refspecs respects forcing
+ok 13 - deny pushing to delete current branch
+# passed all 13 test(s)
+1..13
+*** 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)
+1..12
+*** 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)
+1..6
+*** 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 
+ok 8 - post-checkout hook is triggered by clone
+# passed all 8 test(s)
+1..8
+*** 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
+ok 7 - already deleted tracking branches ignored
+# passed all 7 test(s)
+1..7
+*** 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)
+1..3
+*** t5406-remote-rejects.sh ***
+ok 1 - setup
+ok 2 - push reports error
+ok 3 - individual ref reports error
+# passed all 3 test(s)
+1..3
+*** t5407-post-rewrite-hook.sh ***
+ok 1 - setup
+ok 2 - git commit --amend
+ok 3 - git commit --amend --no-post-rewrite
+ok 4 - git rebase
+ok 5 - git rebase --skip
+ok 6 - git rebase --skip the last one
+ok 7 - git rebase -m
+ok 8 - git rebase -m --skip
+ok 9 - git rebase -i (unchanged)
+ok 10 - git rebase -i (skip)
+ok 11 - git rebase -i (squash)
+ok 12 - git rebase -i (fixup without conflict)
+ok 13 - git rebase -i (double edit)
+# passed all 13 test(s)
+1..13
+*** t5500-fetch-pack.sh ***
+ok 1 - setup
+ok 2 - 1st pull
+ok 3 - post 1st pull setup
+ok 4 - 2nd pull
+ok 5 - 3rd pull
+ok 6 - clone shallow
+ok 7 - clone shallow object count
+ok 8 - clone shallow object count (part 2)
+ok 9 - fsck in shallow repo
+ok 10 - simple fetch in shallow repo
+ok 11 - no changes expected
+ok 12 - fetch same depth in shallow repo
+ok 13 - no changes expected
+ok 14 - add two more
+ok 15 - pull in shallow repo
+ok 16 - clone shallow object count
+ok 17 - add two more (part 2)
+ok 18 - deepening pull in shallow repo
+ok 19 - clone shallow object count
+ok 20 - deepening fetch in shallow repo
+ok 21 - clone shallow object count
+ok 22 - pull in shallow repo with missing merge base
+ok 23 - additional simple shallow deepenings
+ok 24 - clone shallow object count
+# passed all 24 test(s)
+1..24
+*** t5501-fetch-push-alternates.sh ***
+ok 1 - setup
+ok 2 - pushing into a repository with the same alternate
+ok 3 - fetching from a repository with the same alternate
+# passed all 3 test(s)
+1..3
+*** 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
+ok 7 - quickfetch should handle ~1000 refs (on Windows)
+# passed all 7 test(s)
+1..7
+*** t5503-tagfollow.sh ***
+ok 1 - setup
+ok 2 - setup expect
+ok 3 - fetch A (new commit : 1 connection)
+ok 4 - create tag T on A, create C on branch cat
+ok 5 - setup expect
+ok 6 - fetch C, T (new branch, tag : 1 connection)
+ok 7 - create commits O, B, tag S on B
+ok 8 - setup expect
+ok 9 - fetch B, S (commit and tag : 1 connection)
+ok 10 - setup expect
+ok 11 - new clone fetch master and tags
+# passed all 11 test(s)
+1..11
+*** t5504-fetch-receive-strict.sh ***
+ok 1 - setup
+ok 2 - fetch without strict
+ok 3 - fetch with !fetch.fsckobjects
+ok 4 - fetch with fetch.fsckobjects
+ok 5 - fetch with transfer.fsckobjects
+ok 6 - push without strict
+ok 7 - push with !receive.fsckobjects
+ok 8 - push with receive.fsckobjects
+ok 9 - push with transfer.fsckobjects
+# passed all 9 test(s)
+1..9
+*** t5505-remote.sh ***
+ok 1 - setup
+ok 2 - remote information for the origin
+ok 3 - add another remote
+ok 4 - remote forces tracking branches
+ok 5 - remove remote
+ok 6 - remove remote
+ok 7 - remove remote protects local branches
+ok 8 - show
+ok 9 - show -n
+ok 10 - prune
+ok 11 - set-head --delete
+ok 12 - set-head --auto
+ok 13 - set-head --auto fails w/multiple HEADs
+ok 14 - set-head explicit
+ok 15 - prune --dry-run
+ok 16 - add --mirror && prune
+ok 17 - add --mirror=fetch
+ok 18 - fetch mirrors act as mirrors during fetch
+ok 19 - fetch mirrors can prune
+ok 20 - fetch mirrors do not act as mirrors during push
+ok 21 - add fetch mirror with specific branches
+ok 22 - fetch mirror respects specific branches
+ok 23 - add --mirror=push
+ok 24 - push mirrors act as mirrors during push
+ok 25 - push mirrors do not act as mirrors during fetch
+ok 26 - push mirrors do not allow you to specify refs
+ok 27 - add alt && prune
+ok 28 - add with reachable tags (default)
+ok 29 - add --tags
+ok 30 - add --no-tags
+ok 31 - reject --no-no-tags
+ok 32 - update
+ok 33 - update with arguments
+ok 34 - update --prune
+ok 35 - update default
+ok 36 - update default (overridden, with funny whitespace)
+ok 37 - update (with remotes.default defined)
+ok 38 - "remote show" does not show symbolic refs
+ok 39 - reject adding remote with an invalid name
+ok 40 - rename a remote
+ok 41 - rename does not update a non-default fetch refspec
+ok 42 - rename a remote with name part of fetch spec
+ok 43 - rename a remote with name prefix of other remote
+ok 44 - migrate a remote from named file in $GIT_DIR/remotes
+ok 45 - migrate a remote from named file in $GIT_DIR/branches
+ok 46 - remote prune to cause a dangling symref
+ok 47 - show empty remote
+ok 48 - remote set-branches requires a remote
+ok 49 - remote set-branches
+ok 50 - remote set-branches with --mirror
+ok 51 - new remote
+ok 52 - remote set-url bar
+ok 53 - remote set-url baz bar
+ok 54 - remote set-url zot bar
+ok 55 - remote set-url --push zot baz
+ok 56 - remote set-url --push zot
+ok 57 - remote set-url --push qux zot
+ok 58 - remote set-url --push foo qu+x
+ok 59 - remote set-url --push --add aaa
+ok 60 - remote set-url --push bar aaa
+ok 61 - remote set-url --push --delete bar
+ok 62 - remote set-url --push --delete foo
+ok 63 - remote set-url --add bbb
+ok 64 - remote set-url --delete .*
+ok 65 - remote set-url --delete bbb
+ok 66 - remote set-url --delete baz
+ok 67 - remote set-url --add ccc
+ok 68 - remote set-url --delete baz
+# passed all 68 test(s)
+1..68
+*** t5506-remote-groups.sh ***
+ok 1 - setup
+ok 2 - no group updates all
+ok 3 - nonexistent group produces error
+ok 4 - updating group updates all members (remote update)
+ok 5 - updating group updates all members (fetch)
+ok 6 - updating group does not update non-members (remote update)
+ok 7 - updating group does not update non-members (fetch)
+ok 8 - updating remote name updates that remote
+# passed all 8 test(s)
+1..8
+*** t5509-fetch-push-namespaces.sh ***
+ok 1 - setup
+ok 2 - pushing into a repository using a ref namespace
+ok 3 - pulling from a repository using a ref namespace
+ok 4 - mirroring a repository using a ref namespace
+# passed all 4 test(s)
+1..4
+*** 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 --prune on its own works as expected
+ok 6 - fetch --prune with a branch name keeps branches
+ok 7 - fetch --prune with a namespace keeps other namespaces
+ok 8 - fetch --prune --tags does not delete the remote-tracking branches
+ok 9 - fetch --prune --tags with branch does not delete other remote-tracking branches
+ok 10 - fetch tags when there is no tags
+ok 11 - fetch following tags
+ok 12 - fetch must not resolve short tag name
+ok 13 - fetch can now resolve short remote name
+ok 14 - create bundle 1
+ok 15 - header of bundle looks right
+ok 16 - create bundle 2
+ok 17 - unbundle 1
+ok 18 - bundle 1 has only 3 files 
+ok 19 - unbundle 2
+ok 20 - bundle does not prerequisite objects
+ok 21 - bundle should be able to create a full history
+ok 22 - fetch via rsync
+ok 23 - push via rsync
+ok 24 - push via rsync
+ok 25 - fetch with a non-applying branch.<name>.merge
+ok 26 - fetch from GIT URL with a non-applying branch.<name>.merge [1]
+ok 27 - fetch from GIT URL with a non-applying branch.<name>.merge [2]
+ok 28 - fetch from GIT URL with a non-applying branch.<name>.merge [3]
+ok 29 - quoting of a strangely named repo
+ok 30 - bundle should record HEAD correctly
+ok 31 - explicit fetch should not update tracking
+ok 32 - explicit pull should not update tracking
+ok 33 - configured fetch updates tracking
+ok 34 - pushing nonexistent branch by mistake should not segv
+ok 35 - auto tag following fetches minimum
+ok 36 - refuse to fetch into the current branch
+ok 37 - fetch into the current branch with --update-head-ok
+ok 38 - fetch --dry-run
+ok 39 - should be able to fetch with duplicate refspecs
+# passed all 39 test(s)
+1..39
+*** t5511-refspec.sh ***
+ok 1 - push  (invalid)
+ok 2 - push :
+ok 3 - push :: (invalid)
+ok 4 - push +:
+ok 5 - fetch 
+ok 6 - fetch :
+ok 7 - fetch :: (invalid)
+ok 8 - push refs/heads/*:refs/remotes/frotz/*
+ok 9 - push refs/heads/*:refs/remotes/frotz (invalid)
+ok 10 - push refs/heads:refs/remotes/frotz/* (invalid)
+ok 11 - push refs/heads/master:refs/remotes/frotz/xyzzy
+ok 12 - fetch refs/heads/*:refs/remotes/frotz/*
+ok 13 - fetch refs/heads/*:refs/remotes/frotz (invalid)
+ok 14 - fetch refs/heads:refs/remotes/frotz/* (invalid)
+ok 15 - fetch refs/heads/master:refs/remotes/frotz/xyzzy
+ok 16 - fetch refs/heads/master::refs/remotes/frotz/xyzzy (invalid)
+ok 17 - fetch refs/heads/maste :refs/remotes/frotz/xyzzy (invalid)
+ok 18 - push master~1:refs/remotes/frotz/backup
+ok 19 - fetch master~1:refs/remotes/frotz/backup (invalid)
+ok 20 - push HEAD~4:refs/remotes/frotz/new
+ok 21 - fetch HEAD~4:refs/remotes/frotz/new (invalid)
+ok 22 - push HEAD
+ok 23 - fetch HEAD
+ok 24 - push refs/heads/ nitfol (invalid)
+ok 25 - fetch refs/heads/ nitfol (invalid)
+ok 26 - push HEAD: (invalid)
+ok 27 - fetch HEAD:
+ok 28 - push refs/heads/ nitfol: (invalid)
+ok 29 - fetch refs/heads/ nitfol: (invalid)
+ok 30 - push :refs/remotes/frotz/deleteme
+ok 31 - fetch :refs/remotes/frotz/HEAD-to-me
+ok 32 - push :refs/remotes/frotz/delete me (invalid)
+ok 33 - fetch :refs/remotes/frotz/HEAD to me (invalid)
+ok 34 - fetch refs/heads/*/for-linus:refs/remotes/mine/*-blah (invalid)
+ok 35 - push refs/heads/*/for-linus:refs/remotes/mine/*-blah (invalid)
+ok 36 - fetch refs/heads*/for-linus:refs/remotes/mine/* (invalid)
+ok 37 - push refs/heads*/for-linus:refs/remotes/mine/* (invalid)
+ok 38 - fetch refs/heads/*/*/for-linus:refs/remotes/mine/* (invalid)
+ok 39 - push refs/heads/*/*/for-linus:refs/remotes/mine/* (invalid)
+ok 40 - fetch refs/heads/*/for-linus:refs/remotes/mine/*
+ok 41 - push refs/heads/*/for-linus:refs/remotes/mine/*
+# passed all 41 test(s)
+1..41
+*** 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
+ok 6 - dies when no remote specified and no default remotes found
+ok 7 - use "origin" when no remote specified
+ok 8 - suppress "From <url>" with -q
+ok 9 - use branch.<name>.remote if possible
+ok 10 - confuses pattern as remote when no remote specified
+ok 11 - die with non-2 for wrong repository even with --exit-code
+ok 12 - Report success even when nothing matches
+ok 13 - Report no-match with --exit-code
+ok 14 - Report match with --exit-code
+# passed all 14 test(s)
+1..14
+*** t5513-fetch-track.sh ***
+ok 1 - setup
+ok 2 - fetch
+# passed all 2 test(s)
+1..2
+*** t5514-fetch-multiple.sh ***
+ok 1 - setup
+ok 2 - git fetch --all
+ok 3 - git fetch --all should continue if a remote has errors
+ok 4 - git fetch --all does not allow non-option arguments
+ok 5 - git fetch --multiple (but only one remote)
+ok 6 - git fetch --multiple (two remotes)
+ok 7 - git fetch --multiple (bad remote names)
+ok 8 - git fetch --all (skipFetchAll)
+ok 9 - git fetch --multiple (ignoring skipFetchAll)
+# passed all 9 test(s)
+1..9
+*** 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)
+1..65
+*** t5516-fetch-push.sh ***
+ok 1 - setup
+ok 2 - fetch without wildcard
+ok 3 - fetch with wildcard
+ok 4 - fetch with insteadOf
+ok 5 - fetch with pushInsteadOf (should not rewrite)
+ok 6 - push without wildcard
+ok 7 - push with wildcard
+ok 8 - push with insteadOf
+ok 9 - push with pushInsteadOf
+ok 10 - push with pushInsteadOf and explicit pushurl (pushInsteadOf should not rewrite)
+ok 11 - push with matching heads
+ok 12 - push with matching heads on the command line
+ok 13 - failed (non-fast-forward) push with matching heads
+ok 14 - push --force with matching heads
+ok 15 - push with matching heads and forced update
+ok 16 - push with no ambiguity (1)
+ok 17 - push with no ambiguity (2)
+ok 18 - push with colon-less refspec, no ambiguity
+ok 19 - push with weak ambiguity (1)
+ok 20 - push with weak ambiguity (2)
+ok 21 - push with ambiguity
+ok 22 - push with colon-less refspec (1)
+ok 23 - push with colon-less refspec (2)
+ok 24 - push with colon-less refspec (3)
+ok 25 - push with colon-less refspec (4)
+ok 26 - push head with non-existent, incomplete dest
+ok 27 - push tag with non-existent, incomplete dest
+ok 28 - push sha1 with non-existent, incomplete dest
+ok 29 - push ref expression with non-existent, incomplete dest
+ok 30 - push with HEAD
+ok 31 - push with HEAD nonexisting at remote
+ok 32 - push with +HEAD
+ok 33 - push HEAD with non-existent, incomplete dest
+ok 34 - push with config remote.*.push = HEAD
+ok 35 - push with config remote.*.pushurl
+ok 36 - push with dry-run
+ok 37 - push updates local refs
+ok 38 - push updates up-to-date local refs
+ok 39 - push preserves up-to-date packed refs
+ok 40 - push does not update local refs on failure
+ok 41 - allow deleting an invalid remote ref
+ok 42 - pushing valid refs triggers post-receive and post-update hooks
+ok 43 - deleting dangling ref triggers hooks with correct args
+ok 44 - deletion of a non-existent ref is not fed to post-receive and post-update hooks
+ok 45 - deletion of a non-existent ref alone does trigger post-receive and post-update hooks
+ok 46 - mixed ref updates, deletes, invalid deletes trigger hooks with correct input
+ok 47 - allow deleting a ref using --delete
+ok 48 - allow deleting a tag using --delete
+ok 49 - push --delete without args aborts
+ok 50 - push --delete refuses src:dest refspecs
+ok 51 - warn on push to HEAD of non-bare repository
+ok 52 - deny push to HEAD of non-bare repository
+ok 53 - allow push to HEAD of bare repository (bare)
+ok 54 - allow push to HEAD of non-bare repository (config)
+ok 55 - fetch with branches
+ok 56 - fetch with branches containing #
+ok 57 - push with branches
+ok 58 - push with branches containing #
+ok 59 - push into aliased refs (consistent)
+ok 60 - push into aliased refs (inconsistent)
+ok 61 - push --porcelain
+ok 62 - push --porcelain bad url
+ok 63 - push --porcelain rejected
+ok 64 - push --porcelain --dry-run rejected
+# passed all 64 test(s)
+1..64
+*** 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
+ok 11 - remote.foo.mirror adds and removes branches
+ok 12 - remote.foo.mirror=no has no effect
+# passed all 12 test(s)
+1..12
+*** t5518-fetch-exit-status.sh ***
+ok 1 - setup
+ok 2 - non-fast-forward fetch
+ok 3 - forced update
+# passed all 3 test(s)
+1..3
+*** t5519-push-alternates.sh ***
+ok 1 - setup
+ok 2 - alice works and pushes
+ok 3 - bob fetches from alice, works and pushes
+ok 4 - clean-up in case the previous failed
+ok 5 - alice works and pushes again
+ok 6 - bob works and pushes
+ok 7 - alice works and pushes yet again
+ok 8 - bob works and pushes again
+# passed all 8 test(s)
+1..8
+*** t5520-pull.sh ***
+ok 1 - setup
+ok 2 - pulling into void
+ok 3 - checking the results
+ok 4 - pulling into void using master:master
+ok 5 - pulling into void does not overwrite untracked files
+ok 6 - test . as a remote
+ok 7 - the default remote . should not break explicit pull
+ok 8 - --rebase
+ok 9 - pull.rebase
+ok 10 - branch.to-rebase.rebase
+ok 11 - branch.to-rebase.rebase should override pull.rebase
+ok 12 - --rebase with rebased upstream
+ok 13 - --rebase with rebased default upstream
+ok 14 - rebased upstream + fetch + pull --rebase
+ok 15 - pull --rebase dies early with dirty working directory
+ok 16 - pull --rebase works on branch yet to be born
+ok 17 - setup for detecting upstreamed changes
+ok 18 - git pull --rebase detects upstreamed changes
+ok 19 - setup for avoiding reapplying old patches
+ok 20 - git pull --rebase does not reapply old patches
+ok 21 - git pull --rebase against local branch
+# passed all 21 test(s)
+1..21
+*** t5521-pull-options.sh ***
+ok 1 - setup
+ok 2 - git pull -q
+ok 3 - git pull
+ok 4 - git pull -v
+ok 5 - git pull -v -q
+ok 6 - git pull -q -v
+ok 7 - git pull --force
+ok 8 - git pull --all
+# passed all 8 test(s)
+1..8
+*** t5522-pull-symlink.sh ***
+ok 1 - setup
+ok 2 - pulling from real subdir
+ok 3 - pulling from symlinked subdir
+ok 4 - pushing from symlinked subdir
+# passed all 4 test(s)
+1..4
+*** t5523-push-upstream.sh ***
+ok 1 - set up terminal for tests
+ok 2 - setup bare parent
+ok 3 - setup local commit
+ok 4 - push -u master:master
+ok 5 - push -u master:other
+ok 6 - push -u --dry-run master:otherX
+ok 7 - push -u master2:master2
+ok 8 - push -u master2:other2
+ok 9 - push -u :master2
+ok 10 - push -u --all
+ok 11 - push -u HEAD
+ok 12 # skip progress messages go to tty (missing TTY)
+ok 13 - progress messages do not go to non-tty
+ok 14 - progress messages go to non-tty (forced)
+ok 15 # skip push -q suppresses progress (missing TTY)
+ok 16 # skip push --no-progress suppresses progress (missing TTY)
+ok 17 # skip quiet push (missing TTY)
+# passed all 17 test(s)
+1..17
+*** t5524-pull-msg.sh ***
+ok 1 - setup
+ok 2 - pull
+# passed all 2 test(s)
+1..2
+*** t5525-fetch-tagopt.sh ***
+ok 1 - setup
+ok 2 - fetch with tagopt=--no-tags does not get tag
+ok 3 - fetch --tags with tagopt=--no-tags gets tag
+ok 4 - fetch --no-tags with tagopt=--tags does not get tag
+ok 5 - fetch with tagopt=--tags gets tag
+# passed all 5 test(s)
+1..5
+*** t5526-fetch-submodules.sh ***
+ok 1 - setup
+ok 2 - fetch --recurse-submodules recurses into submodules
+ok 3 - fetch alone only fetches superproject
+ok 4 - fetch --no-recurse-submodules only fetches superproject
+ok 5 - using fetchRecurseSubmodules=true in .gitmodules recurses into submodules
+ok 6 - --no-recurse-submodules overrides .gitmodules config
+ok 7 - using fetchRecurseSubmodules=false in .git/config overrides setting in .gitmodules
+ok 8 - --recurse-submodules overrides fetchRecurseSubmodules setting from .git/config
+ok 9 - --quiet propagates to submodules
+ok 10 - --dry-run propagates to submodules
+ok 11 - Without --dry-run propagates to submodules
+ok 12 - recurseSubmodules=true propagates into submodules
+ok 13 - --recurse-submodules overrides config in submodule
+ok 14 - --no-recurse-submodules overrides config setting
+ok 15 - Recursion doesn't happen when no new commits are fetched in the superproject
+ok 16 - Recursion stops when no new submodule commits are fetched
+ok 17 - Recursion doesn't happen when new superproject commits don't change any submodules
+ok 18 - Recursion picks up config in submodule
+ok 19 - Recursion picks up all submodules when necessary
+ok 20 - '--recurse-submodules=on-demand' doesn't recurse when no new commits are fetched in the superproject (and ignores config)
+ok 21 - '--recurse-submodules=on-demand' recurses as deep as necessary (and ignores config)
+ok 22 - '--recurse-submodules=on-demand' stops when no new submodule commits are found in the superproject (and ignores config)
+ok 23 - 'fetch.recurseSubmodules=on-demand' overrides global config
+ok 24 - 'submodule.<sub>.fetchRecurseSubmodules=on-demand' overrides fetch.recurseSubmodules
+ok 25 - don't fetch submodule when newly recorded commits are already present
+# passed all 25 test(s)
+1..25
+*** t5527-fetch-odd-refs.sh ***
+ok 1 - setup repo with odd suffix ref
+ok 2 - suffix ref is ignored during fetch
+# passed all 2 test(s)
+1..2
+*** 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 packing
+ok 4 - corrupt repo differently
+ok 5 - fsck fails
+ok 6 - upload-pack fails due to error in rev-list
+ok 7 - upload-pack error message when bad ref requested
+ok 8 - upload-pack fails due to error in pack-objects enumeration
+ok 9 - create empty repository
+ok 10 - fetch fails
+# passed all 10 test(s)
+1..10
+*** t5531-deep-submodule-push.sh ***
+ok 1 - setup
+ok 2 - push
+ok 3 - push if submodule has no remote
+ok 4 - push fails if submodule commit not on remote
+ok 5 - push succeeds after commit was pushed to remote
+ok 6 - push fails when commit on multiple branches if one branch has no remote
+ok 7 - push succeeds if submodule has no remote and is on the first superproject commit
+# passed all 7 test(s)
+1..7
+*** t5532-fetch-proxy.sh ***
+ok 1 - setup remote repo
+ok 2 - setup local repo
+ok 3 - fetch through proxy works
+# passed all 3 test(s)
+1..3
+*** t5540-http-push.sh ***
+# passed all 0 test(s)
+1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable)
+*** t5541-http-push.sh ***
+# passed all 0 test(s)
+1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable)
+*** t5550-http-fetch.sh ***
+# passed all 0 test(s)
+1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable)
+*** t5551-http-fetch.sh ***
+# passed all 0 test(s)
+1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable)
+*** t5560-http-backend-noserver.sh ***
+ok 1 - setup repository
+ok 2 - direct refs/heads/master not found
+ok 3 - static file is ok
+ok 4 - no export by default
+ok 5 - export if git-daemon-export-ok
+ok 6 - static file if http.getanyfile true is ok
+ok 7 - static file if http.getanyfile false fails
+ok 8 - http.uploadpack default enabled
+ok 9 - http.uploadpack true
+ok 10 - http.uploadpack false
+ok 11 - http.receivepack default disabled
+ok 12 - http.receivepack true
+ok 13 - http.receivepack false
+ok 14 - http-backend blocks bad PATH_INFO
+# passed all 14 test(s)
+1..14
+*** t5561-http-backend.sh ***
+# passed all 0 test(s)
+1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable)
+*** 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)
+1..5
+*** t5601-clone.sh ***
+ok 1 - setup
+ok 2 - clone with excess parameters (1)
+ok 3 - clone with excess parameters (2)
+ok 4 - output from clone
+ok 5 - clone does not keep pack
+ok 6 - clone checks out files
+ok 7 - clone respects GIT_WORK_TREE
+ok 8 - clone creates intermediate directories
+ok 9 - clone creates intermediate directories for bare repo
+ok 10 - clone --mirror
+ok 11 - clone --bare names the local repository <name>.git
+ok 12 - clone --mirror does not repeat tags
+ok 13 - clone to destination with trailing /
+ok 14 - clone to destination with extra trailing /
+ok 15 - clone to an existing empty directory
+ok 16 - clone to an existing non-empty directory
+ok 17 - clone to an existing path
+ok 18 - clone a void
+ok 19 - clone respects global branch.autosetuprebase
+ok 20 - respect url-encoding of file://
+ok 21 - do not query-string-decode + in URLs
+ok 22 - do not respect url-encoding of non-url path
+ok 23 - clone separate gitdir
+ok 24 - clone separate gitdir: output
+ok 25 - clone from .git file
+ok 26 - fetch from .git gitfile
+ok 27 - fetch from gitfile parent
+ok 28 - clone separate gitdir where target already exists
+ok 29 - clone --reference from original
+ok 30 - clone with more than one --reference
+ok 31 - clone from original with relative alternate
+# passed all 31 test(s)
+1..31
+*** t5602-clone-remote-exec.sh ***
+ok 1 - setup
+ok 2 - clone calls git upload-pack unqualified with no -u option
+ok 3 - clone calls specified git upload-pack with -u option
+# passed all 3 test(s)
+1..3
+*** 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 - fetched no objects
+ok 9 - existence of info/alternates
+ok 10 - pulling from reference
+ok 11 - that reference gets used
+ok 12 - updating origin
+ok 13 - pulling changes from origin
+ok 14 - that alternate to origin gets used
+ok 15 - pulling changes from origin
+ok 16 - check objects expected to exist locally
+ok 17 - preparing alternate repository #1
+ok 18 - cloning alternate repo #2 and adding changes to repo #1
+ok 19 - cloning alternate repo #1, using #2 as reference
+ok 20 - cloning with reference being subset of source (-l -s)
+ok 21 - clone with reference from a tagged repository
+# passed all 21 test(s)
+1..21
+*** 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
+ok 9 - bundle clone without .bundle suffix
+ok 10 - bundle clone with .bundle suffix
+ok 11 - bundle clone from b4
+ok 12 - bundle clone from b4.bundle that does not exist
+ok 13 - bundle clone with nonexistent HEAD
+ok 14 - clone empty repository
+ok 15 - clone empty repository, and then push should not segfault.
+ok 16 - cloning non-existent directory fails
+ok 17 - cloning non-git directory fails
+# passed all 17 test(s)
+1..17
+*** t5702-clone-options.sh ***
+ok 1 - setup
+ok 2 - clone -o
+ok 3 - redirected clone
+ok 4 - redirected clone -v
+# passed all 4 test(s)
+1..4
+*** t5704-bundle.sh ***
+ok 1 - setup
+ok 2 - tags can be excluded by rev-list options
+ok 3 - die if bundle file cannot be created
+not ok 4 - bundle --stdin # TODO known breakage
+not ok 5 - bundle --stdin <rev-list options> # TODO known breakage
+ok 6 - empty bundle file is rejected
+# still have 2 known breakage(s)
+# passed all remaining 4 test(s)
+1..6
+*** t5705-clone-2gb.sh ***
+Skipping expensive 2GB clone test; enable it with GIT_TEST_CLONE_2GB=t
+ok 1 # skip setup (missing CLONE_2GB)
+ok 2 # skip clone - bare (missing CLONE_2GB)
+ok 3 # skip clone - with worktree, file:// protocol (missing CLONE_2GB)
+# passed all 3 test(s)
+1..3
+*** t5706-clone-branch.sh ***
+ok 1 - setup
+ok 2 - vanilla clone chooses HEAD
+ok 3 - clone -b chooses specified branch
+ok 4 - clone -b sets up tracking
+ok 5 - clone -b does not munge remotes/origin/HEAD
+ok 6 - clone -b with bogus branch chooses HEAD
+# passed all 6 test(s)
+1..6
+*** t5707-clone-detached.sh ***
+ok 1 - setup
+ok 2 - clone repo (detached HEAD points to branch)
+ok 3 - cloned HEAD matches
+not ok 4 - cloned HEAD is detached # TODO known breakage
+ok 5 - clone repo (detached HEAD points to tag)
+ok 6 - cloned HEAD matches
+ok 7 - cloned HEAD is detached
+ok 8 - clone repo (detached HEAD points to history)
+ok 9 - cloned HEAD matches
+ok 10 - cloned HEAD is detached
+ok 11 - clone repo (orphan detached HEAD)
+ok 12 - cloned HEAD matches
+ok 13 - cloned HEAD is detached
+# still have 1 known breakage(s)
+# passed all remaining 12 test(s)
+1..13
+*** t5708-clone-config.sh ***
+ok 1 - clone -c sets config in cloned repo
+ok 2 - clone -c can set multi-keys
+ok 3 - clone -c without a value is boolean true
+ok 4 - clone -c config is available during clone
+# passed all 4 test(s)
+1..4
+*** 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)
+1..11
+*** t5800-remote-helpers.sh ***
+ok 1 - setup repository
+ok 2 - cloning from local repo
+ok 3 - cloning from remote repo
+ok 4 - create new commit on remote
+ok 5 - pulling from local repo
+ok 6 - pulling from remote remote
+ok 7 - pushing to local repo
+ok 8 - synch with changes from localclone
+ok 9 - pushing remote local repo
+ok 10 - fetch new branch
+ok 11 - fetch multiple branches
+ok 12 - push when remote has extra refs
+ok 13 - push new branch by name
+not ok 14 - push new branch with old:new refspec # TODO known breakage
+# still have 1 known breakage(s)
+# passed all remaining 13 test(s)
+1..14
+*** t5900-repo-selection.sh ***
+ok 1 - find .git dir in worktree
+ok 2 - automagically add .git suffix
+ok 3 - automagically add .git suffix to worktree
+ok 4 - prefer worktree foo over bare foo.git
+ok 5 - prefer bare foo over bare foo.git
+ok 6 - disambiguate with full foo.git
+ok 7 - we are not fooled by non-git foo directory
+ok 8 - prefer inner .git over outer bare
+# passed all 8 test(s)
+1..8
+*** t6000-rev-list-misc.sh ***
+ok 1 - setup
+ok 2 - rev-list --objects heeds pathspecs
+ok 3 - rev-list --objects with pathspecs and deeper paths
+ok 4 - rev-list --objects with pathspecs and copied files
+# passed all 4 test(s)
+1..4
+*** 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)
+1..13
+*** 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)
+1..45
+*** 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)
+1..33
+*** t6004-rev-list-path-optim.sh ***
+ok 1 - setup
+ok 2 - path-optimization
+ok 3 - further setup
+ok 4 - path optimization 2
+ok 5 - pathspec with leading path
+ok 6 - pathspec with glob (1)
+ok 7 - pathspec with glob (2)
+# passed all 7 test(s)
+1..7
+*** 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)
+1..6
+*** t6006-rev-list-format.sh ***
+ok 1 - setup
+ok 2 - format percent
+ok 3 - format hash
+ok 4 - format tree
+ok 5 - format parents
+ok 6 - format author
+ok 7 - format committer
+ok 8 - format encoding
+ok 9 - format subject
+ok 10 - format body
+ok 11 - format raw-body
+ok 12 - format colors
+ok 13 - format advanced-colors
+ok 14 - setup complex body
+ok 15 - format complex-encoding
+ok 16 - format complex-subject
+ok 17 - format complex-body
+ok 18 - %x00 shows NUL
+ok 19 - %ad respects --date=
+ok 20 - empty email
+ok 21 - del LF before empty (1)
+ok 22 - del LF before empty (2)
+ok 23 - add LF before non-empty (1)
+ok 24 - add LF before non-empty (2)
+ok 25 - add SP before non-empty (1)
+ok 26 - add SP before non-empty (2)
+ok 27 - --abbrev
+ok 28 - %H is not affected by --abbrev-commit
+ok 29 - %h is not affected by --abbrev-commit
+ok 30 - "%h %gD: %gs" is same as git-reflog
+ok 31 - "%h %gD: %gs" is same as git-reflog (with date)
+ok 32 - "%h %gD: %gs" is same as git-reflog (with --abbrev)
+ok 33 - %gd shortens ref name
+ok 34 - reflog identity
+ok 35 - oneline with empty message
+# passed all 35 test(s)
+1..35
+*** t6007-rev-list-cherry-pick-file.sh ***
+ok 1 - setup
+ok 2 - --left-right
+ok 3 - --count
+ok 4 - --cherry-pick foo comes up empty
+ok 5 - --cherry-pick bar does not come up empty
+ok 6 - bar does not come up empty
+ok 7 - --cherry-pick bar does not come up empty (II)
+ok 8 - --cherry-mark
+ok 9 - --cherry-mark --left-right
+ok 10 - --cherry-pick --right-only
+ok 11 - --cherry-pick --left-only
+ok 12 - --cherry
+ok 13 - --cherry --count
+ok 14 - --cherry-mark --count
+ok 15 - --cherry-mark --left-right --count
+ok 16 - --cherry-pick with independent, but identical branches
+ok 17 - --count --left-right
+# passed all 17 test(s)
+1..17
+*** t6008-rev-list-submodule.sh ***
+ok 1 - setup
+ok 2 - Ilari's test
+# passed all 2 test(s)
+1..2
+*** t6009-rev-list-parent.sh ***
+ok 1 - setup
+ok 2 - one is ancestor of others and should not be shown
+ok 3 - setup roots, merges and octopuses
+ok 4 - rev-list roots
+ok 5 - rev-list no merges
+ok 6 - rev-list no octopuses
+ok 7 - rev-list no roots
+ok 8 - rev-list merges
+ok 9 - rev-list octopus
+ok 10 - rev-list ordinary commits
+ok 11 - rev-list --merges --no-merges yields empty set
+ok 12 - rev-list override and infinities
+ok 13 - dodecapus
+# passed all 13 test(s)
+1..13
+*** t6010-merge-base.sh ***
+ok 1 - setup
+ok 2 - set up G and H
+ok 3 - merge-base G H
+ok 4 - merge-base/show-branch --independent
+ok 5 - unsynchronized clocks
+ok 6 - --independent with unsynchronized clocks
+ok 7 - merge-base for octopus-step (setup)
+ok 8 - merge-base A B C
+ok 9 - criss-cross merge-base for octopus-step
+# passed all 9 test(s)
+1..9
+*** t6011-rev-list-with-bad-commit.sh ***
+ok 1 - setup
+ok 2 - verify number of revisions
+ok 3 - corrupt second commit object
+ok 4 - rev-list should fail
+ok 5 - git repack _MUST_ fail
+ok 6 - first commit is still available
+# passed all 6 test(s)
+1..6
+*** t6012-rev-list-simplify.sh ***
+ok 1 - setup
+ok 2 - log --full-history
+ok 3 - log --full-history -- file
+ok 4 - log --full-history --topo-order -- file
+ok 5 - log --full-history --date-order -- file
+ok 6 - log --simplify-merges -- file
+ok 7 - log -- file
+ok 8 - log --topo-order -- file
+ok 9 - log --first-parent -- another-file
+# passed all 9 test(s)
+1..9
+*** t6013-rev-list-reverse-parents.sh ***
+ok 1 - set up --reverse example
+ok 2 - --reverse --parents --full-history combines correctly
+ok 3 - --boundary does too
+# passed all 3 test(s)
+1..3
+*** t6014-rev-list-all.sh ***
+ok 1 - setup
+ok 2 - rev-list --all lists detached HEAD
+ok 3 - repack does not lose detached HEAD
+# passed all 3 test(s)
+1..3
+*** t6015-rev-list-show-all-parents.sh ***
+ok 1 - set up --show-all --parents test
+ok 2 - --parents rewrites TREESAME parents correctly
+ok 3 - --parents --show-all does not rewrites TREESAME parents
+# passed all 3 test(s)
+1..3
+*** t6016-rev-list-graph-simplify-history.sh ***
+ok 1 - set up rev-list --graph test
+ok 2 - --graph --all
+ok 3 - --graph --simplify-by-decoration
+ok 4 - setup: get rid of decorations on B
+ok 5 - --graph --simplify-by-decoration prune branch B
+ok 6 - --graph --full-history -- bar.txt
+ok 7 - --graph --full-history --simplify-merges -- bar.txt
+ok 8 - --graph -- bar.txt
+ok 9 - --graph --sparse -- bar.txt
+ok 10 - --graph ^C4
+ok 11 - --graph ^C3
+ok 12 - --graph --boundary ^C3
+# passed all 12 test(s)
+1..12
+*** t6017-rev-list-stdin.sh ***
+ok 1 - setup
+ok 2 - check rev-list master
+ok 3 - check log --stat master
+ok 4 - check rev-list side-1 ^side-4
+ok 5 - check log --stat side-1 ^side-4
+ok 6 - check rev-list side-1 ^side-7 --
+ok 7 - check log --stat side-1 ^side-7 --
+ok 8 - check rev-list side-1 ^side-7 -- file-1
+ok 9 - check log --stat side-1 ^side-7 -- file-1
+ok 10 - check rev-list side-1 ^side-7 -- file-2
+ok 11 - check log --stat side-1 ^side-7 -- file-2
+ok 12 - check rev-list side-3 ^side-4 -- file-3
+ok 13 - check log --stat side-3 ^side-4 -- file-3
+ok 14 - check rev-list side-3 ^side-2
+ok 15 - check log --stat side-3 ^side-2
+ok 16 - check rev-list side-3 ^side-2 -- file-1
+ok 17 - check log --stat side-3 ^side-2 -- file-1
+ok 18 - not only --stdin
+# passed all 18 test(s)
+1..18
+*** t6018-rev-list-glob.sh ***
+ok 1 - setup
+ok 2 - rev-parse --glob=refs/heads/subspace/*
+ok 3 - rev-parse --glob=heads/subspace/*
+ok 4 - rev-parse --glob=refs/heads/subspace/
+ok 5 - rev-parse --glob=heads/subspace/
+ok 6 - rev-parse --glob=heads/subspace
+not ok 7 - rev-parse accepts --glob as detached option # TODO known breakage
+not ok 8 - rev-parse is not confused by option-like glob # TODO known breakage
+ok 9 - rev-parse --branches=subspace/*
+ok 10 - rev-parse --branches=subspace/
+ok 11 - rev-parse --branches=subspace
+ok 12 - rev-parse --glob=heads/subspace/* --glob=heads/other/*
+ok 13 - rev-parse --glob=heads/someref/* master
+ok 14 - rev-parse --glob=heads/*
+ok 15 - rev-parse --tags=foo
+ok 16 - rev-parse --remotes=foo
+ok 17 - rev-list --glob=refs/heads/subspace/*
+ok 18 - rev-list --glob refs/heads/subspace/*
+ok 19 - rev-list not confused by option-like --glob arg
+ok 20 - rev-list --glob=heads/subspace/*
+ok 21 - rev-list --glob=refs/heads/subspace/
+ok 22 - rev-list --glob=heads/subspace/
+ok 23 - rev-list --glob=heads/subspace
+ok 24 - rev-list --branches=subspace/*
+ok 25 - rev-list --branches=subspace/
+ok 26 - rev-list --branches=subspace
+ok 27 - rev-list --branches
+ok 28 - rev-list --glob=heads/someref/* master
+ok 29 - rev-list --glob=heads/subspace/* --glob=heads/other/*
+ok 30 - rev-list --glob=heads/*
+ok 31 - rev-list --tags=foo
+ok 32 - rev-list --tags
+ok 33 - rev-list --remotes=foo
+ok 34 - shortlog accepts --glob/--tags/--remotes
+not ok 35 - shortlog accepts --glob as detached option # TODO known breakage
+not ok 36 - shortlog --glob is not confused by option-like argument # TODO known breakage
+# still have 4 known breakage(s)
+# passed all remaining 32 test(s)
+1..36
+*** t6019-rev-list-ancestry-path.sh ***
+ok 1 - setup
+ok 2 - rev-list D..M
+ok 3 - rev-list --ancestry-path D..M
+ok 4 - rev-list D..M -- M.t
+ok 5 - rev-list --ancestry-patch D..M -- M.t
+ok 6 - setup criss-cross
+ok 7 - criss-cross: rev-list --ancestry-path cb..bc
+ok 8 - criss-cross: rev-list --ancestry-path --all ^cb
+# passed all 8 test(s)
+1..8
+*** t6020-merge-df.sh ***
+ok 1 - prepare repository
+ok 2 - Merge with d/f conflicts
+ok 3 - F/D conflict
+ok 4 - setup modify/delete + directory/file conflict
+ok 5 - modify/delete + directory/file conflict
+ok 6 - modify/delete + directory/file conflict; other way
+# passed all 6 test(s)
+1..6
+*** t6021-merge-criss-cross.sh ***
+ok 1 - prepare repository
+ok 2 - Criss-cross merge
+ok 3 - Criss-cross merge result
+ok 4 - Criss-cross merge fails (-s resolve)
+# passed all 4 test(s)
+1..4
+*** 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
+ok 13 - setup for rename + d/f conflicts
+ok 14 - Rename+D/F conflict; renamed file merges + dir not in way
+ok 15 - Rename+D/F conflict; renamed file merges but dir in way
+ok 16 - Same as previous, but merged other way
+ok 17 - Rename+D/F conflict; renamed file cannot merge, dir not in way
+ok 18 - Rename+D/F conflict; renamed file cannot merge and dir in the way
+ok 19 - Same as previous, but merged other way
+ok 20 - setup both rename source and destination involved in D/F conflict
+ok 21 - both rename source and destination involved in D/F conflict
+ok 22 - setup pair rename to parent of other (D/F conflicts)
+ok 23 - pair rename to parent of other (D/F conflicts) w/ untracked dir
+ok 24 - pair rename to parent of other (D/F conflicts) w/ clean start
+ok 25 - setup rename of one file to two, with directories in the way
+ok 26 - check handling of differently renamed file with D/F conflicts
+ok 27 - setup rename one file to two; directories moving out of the way
+ok 28 - check handling of differently renamed file with D/F conflicts
+ok 29 - setup avoid unnecessary update, normal rename
+ok 30 - avoid unnecessary update, normal rename
+ok 31 - setup to test avoiding unnecessary update, with D/F conflict
+ok 32 - avoid unnecessary update, with D/F conflict
+ok 33 - setup avoid unnecessary update, dir->(file,nothing)
+ok 34 - avoid unnecessary update, dir->(file,nothing)
+ok 35 - setup avoid unnecessary update, modify/delete
+ok 36 - avoid unnecessary update, modify/delete
+ok 37 - setup avoid unnecessary update, rename/add-dest
+ok 38 - avoid unnecessary update, rename/add-dest
+ok 39 - setup merge of rename + small change
+ok 40 - merge rename + small change
+ok 41 - setup for use of extended merge markers
+ok 42 - merge master into rename has correct extended markers
+ok 43 - merge rename into master has correct extended markers
+ok 44 - setup spurious "refusing to lose untracked" message
+ok 45 - no spurious "refusing to lose untracked" message
+# passed all 45 test(s)
+1..45
+*** t6023-merge-file.sh ***
+ok 1 - merge with no changes
+ok 2 - merge without conflict
+ok 3 - works in subdirectory
+ok 4 - merge without conflict (--quiet)
+ok 5 - merge without conflict (missing LF at EOF)
+ok 6 - merge result added missing LF
+ok 7 - merge with conflicts
+ok 8 - expected conflict markers
+ok 9 - merge with conflicts, using -L
+ok 10 - expected conflict markers, with -L
+ok 11 - conflict in removed tail
+ok 12 - expected conflict markers
+ok 13 - binary files cannot be merged
+ok 14 - MERGE_ZEALOUS simplifies non-conflicts
+ok 15 - ZEALOUS_ALNUM
+ok 16 - "diff3 -m" style output (1)
+ok 17 - "diff3 -m" style output (2)
+ok 18 - marker size
+# passed all 18 test(s)
+1..18
+*** 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
+ok 5 - refuse to merge binary files
+ok 6 - mark rename/delete as unmerged
+# passed all 6 test(s)
+1..6
+*** 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)
+1..7
+*** 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 - retry the merge with longer context
+ok 6 - custom merge backend
+ok 7 - custom merge backend
+ok 8 - up-to-date merge without common ancestor
+# passed all 8 test(s)
+1..8
+*** t6027-merge-binary.sh ***
+ok 1 - setup
+ok 2 - resolve
+ok 3 - recursive
+# passed all 3 test(s)
+1..3
+*** 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)
+1..6
+*** t6029-merge-subtree.sh ***
+ok 1 - setup
+ok 2 - subtree available and works like recursive
+ok 3 - setup
+ok 4 - initial merge
+ok 5 - merge update
+ok 6 - initial ambiguous subtree
+ok 7 - merge using explicit
+ok 8 - merge2 using explicit
+# passed all 8 test(s)
+1..8
+*** 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 fails if given any junk instead of revs
+ok 6 - bisect reset: back in the master branch
+ok 7 - bisect reset: back in another branch
+ok 8 - bisect reset when not bisecting
+ok 9 - bisect reset removes packed refs
+ok 10 - bisect reset removes bisect state after --no-checkout
+ok 11 - bisect start: back in good branch
+ok 12 - bisect start: no ".git/BISECT_START" created if junk rev
+ok 13 - bisect start: existing ".git/BISECT_START" not modified if junk rev
+ok 14 - bisect start: no ".git/BISECT_START" if mistaken rev
+ok 15 - bisect start: no ".git/BISECT_START" if checkout error
+ok 16 - bisect skip: successfull result
+ok 17 - bisect skip: cannot tell between 3 commits
+ok 18 - bisect skip: cannot tell between 2 commits
+ok 19 - bisect skip: with commit both bad and skipped
+ok 20 - "git bisect run" simple case
+ok 21 - "git bisect run" with more complex "git bisect start"
+ok 22 - bisect skip: add line and then a new test
+ok 23 - bisect skip and bisect replay
+ok 24 - bisect run & skip: cannot tell between 2
+ok 25 - bisect run & skip: find first bad
+ok 26 - bisect skip only one range
+ok 27 - bisect skip many ranges
+ok 28 - bisect starting with a detached HEAD
+ok 29 - bisect errors out if bad and good are mistaken
+ok 30 - bisect does not create a "bisect" branch
+ok 31 - side branch creation
+ok 32 - good merge base when good and bad are siblings
+ok 33 - skipped merge base when good and bad are siblings
+ok 34 - bad merge base when good and bad are siblings
+ok 35 - many merge bases creation
+ok 36 - good merge bases when good and bad are siblings
+ok 37 - optimized merge base checks
+ok 38 - "parallel" side branch creation
+ok 39 - restricting bisection on one dir
+ok 40 - restricting bisection on one dir and a file
+ok 41 - skipping away from skipped commit
+ok 42 - erroring out when using bad path parameters
+ok 43 - test bisection on bare repo - --no-checkout specified
+ok 44 - test bisection on bare repo - --no-checkout defaulted
+ok 45 - broken branch creation
+ok 46 - bisect fails if tree is broken on start commit
+ok 47 - bisect fails if tree is broken on trial commit
+ok 48 - bisect: --no-checkout - start commit bad
+ok 49 - bisect: --no-checkout - trial commit bad
+ok 50 - bisect: --no-checkout - target before breakage
+ok 51 - bisect: --no-checkout - target in breakage
+ok 52 - bisect: --no-checkout - target after breakage
+ok 53 - bisect: demonstrate identification of damage boundary
+# passed all 53 test(s)
+1..53
+*** t6031-merge-recursive.sh ***
+ok 1 - mode change in one branch: keep changed version
+ok 2 - verify executable bit on file
+ok 3 - mode change in both branches: expect conflict
+ok 4 - verify executable bit on file
+ok 5 - merging with triple rename across D/F conflict
+# passed all 5 test(s)
+1..5
+*** t6032-merge-large-rename.sh ***
+ok 1 - setup (initial)
+ok 2 - rename (5, ok)
+ok 3 - set diff.renamelimit to 4
+ok 4 - rename (4, ok)
+ok 5 - rename (5, fail)
+ok 6 - set merge.renamelimit to 5
+ok 7 - rename (5, ok)
+ok 8 - rename (6, fail)
+ok 9 - setup large simple rename
+ok 10 - massive simple rename does not spam added files
+# passed all 10 test(s)
+1..10
+*** t6033-merge-crlf.sh ***
+ok 1 - setup
+ok 2 - Check "ours" is CRLF
+ok 3 - Check that conflict file is CRLF
+# passed all 3 test(s)
+1..3
+*** t6034-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)
+1..3
+*** t6035-merge-dir-to-symlink.sh ***
+ok 1 - create a commit where dir a/b changed to symlink
+ok 2 - checkout does not clobber untracked symlink
+ok 3 - a/b-2/c/d is kept when clobbering symlink b
+ok 4 - checkout should not have deleted a/b-2/c/d
+ok 5 - setup for merge test
+ok 6 - Handle D/F conflict, do not lose a/b-2/c/d in merge (resolve)
+ok 7 - Handle D/F conflict, do not lose a/b-2/c/d in merge (recursive)
+ok 8 - Handle F/D conflict, do not lose a/b-2/c/d in merge (resolve)
+ok 9 - Handle F/D conflict, do not lose a/b-2/c/d in merge (recursive)
+not ok 10 - do not lose untracked in merge (resolve) # TODO known breakage
+ok 11 - do not lose untracked in merge (recursive)
+ok 12 - do not lose modifications in merge (resolve)
+ok 13 - do not lose modifications in merge (recursive)
+ok 14 - setup a merge where dir a/b-2 changed to symlink
+ok 15 - merge should not have D/F conflicts (resolve)
+ok 16 - merge should not have D/F conflicts (recursive)
+ok 17 - merge should not have F/D conflicts (recursive)
+# still have 1 known breakage(s)
+# passed all remaining 16 test(s)
+1..17
+*** t6036-recursive-corner-cases.sh ***
+ok 1 - setup basic criss-cross + rename with no modifications
+ok 2 - merge simple rename+criss-cross with no modifications
+ok 3 - setup criss-cross + rename merges with basic modification
+ok 4 - merge criss-cross + rename merges with basic modification
+ok 5 - setup differently handled merges of rename/add conflict
+ok 6 - git detects differently handled merges conflict
+ok 7 - setup criss-cross + modify/delete resolved differently
+ok 8 - git detects conflict merging criss-cross+modify/delete
+ok 9 - git detects conflict merging criss-cross+modify/delete, reverse direction
+ok 10 - setup differently handled merges of content conflict
+not ok 11 - git detects conflict w/ criss-cross+contrived resolution # TODO known breakage
+ok 12 - setup differently handled merges of directory/file conflict
+ok 13 - merge of D & E1 fails but has appropriate contents
+ok 14 - merge of E1 & D fails but has appropriate contents
+ok 15 - merge of D & E2 fails but has appropriate contents
+ok 16 - merge of E2 & D fails but has appropriate contents
+ok 17 - setup rename/rename(1to2)/modify followed by what looks like rename/rename(2to1)/modify
+ok 18 - handle rename/rename(1to2)/modify followed by what looks like rename/rename(2to1)/modify
+ok 19 - setup criss-cross + rename/rename/add + modify/modify
+not ok 20 - detect rename/rename/add-source for virtual merge-base # TODO known breakage
+ok 21 - setup criss-cross+rename/rename/add-dest + simple modify
+ok 22 - virtual merge base handles rename/rename(1to2)/add-dest
+# still have 2 known breakage(s)
+# passed all remaining 20 test(s)
+1..22
+*** t6037-merge-ours-theirs.sh ***
+ok 1 - setup
+ok 2 - plain recursive - should conflict
+ok 3 - recursive favouring theirs
+ok 4 - recursive favouring ours
+ok 5 - pull with -X
+# passed all 5 test(s)
+1..5
+*** t6038-merge-text-auto.sh ***
+ok 1 - setup
+ok 2 - set up fuzz_conflict() helper
+ok 3 - Merge after setting text=auto
+ok 4 - Merge addition of text=auto
+ok 5 - Detect CRLF/LF conflict after setting text=auto
+ok 6 - Detect LF/CRLF conflict from addition of text=auto
+not ok 7 - checkout -m after setting text=auto # TODO known breakage
+not ok 8 - checkout -m addition of text=auto # TODO known breakage
+not ok 9 - cherry-pick patch from after text=auto was added # TODO known breakage
+ok 10 - Test delete/normalize conflict
+# still have 3 known breakage(s)
+# passed all remaining 7 test(s)
+1..10
+*** t6040-tracking-info.sh ***
+ok 1 - setup
+ok 2 - branch -v
+ok 3 - branch -vv
+ok 4 - checkout
+ok 5 - checkout with local tracked branch
+ok 6 - status
+ok 7 - fail to track lightweight tags
+ok 8 - fail to track annotated tags
+ok 9 - setup tracking with branch --set-upstream on existing branch
+ok 10 - --set-upstream does not change branch
+ok 11 - --set-upstream @{-1}
+# passed all 11 test(s)
+1..11
+*** t6042-merge-rename-corner-cases.sh ***
+ok 1 - setup rename/delete + untracked file
+ok 2 - Does git preserve Gollum's precious artifact?
+ok 3 - setup rename/modify/add-source conflict
+not ok 4 - rename/modify/add-source conflict resolvable # TODO known breakage
+ok 5 - setup resolvable conflict missed if rename missed
+not ok 6 - conflict caused if rename not detected # TODO known breakage
+ok 7 - setup conflict resolved wrong if rename missed
+not ok 8 - missed conflict if rename not detected # TODO known breakage
+ok 9 - setup undetected rename/add-source causes data loss
+not ok 10 - detect rename/add-source and preserve all data # TODO known breakage
+not ok 11 - detect rename/add-source and preserve all data, merge other way # TODO known breakage
+ok 12 - setup content merge + rename/directory conflict
+ok 13 - rename/directory conflict + clean content merge
+ok 14 - rename/directory conflict + content merge conflict
+ok 15 - setup content merge + rename/directory conflict w/ disappearing dir
+ok 16 - disappearing dir in rename/directory conflict handled
+ok 17 - setup rename/rename (2to1) + modify/modify
+ok 18 - handle rename/rename (2to1) conflict correctly
+ok 19 - setup simple rename/rename (1to2) conflict
+ok 20 - merge has correct working tree contents
+ok 21 - setup rename/rename(1to2)/add-source conflict
+not ok 22 - detect conflict with rename/rename(1to2)/add-source merge # TODO known breakage
+ok 23 - setup rename/rename(1to2)/add-source resolvable conflict
+not ok 24 - rename/rename/add-source still tracks new a file # TODO known breakage
+ok 25 - setup rename/rename(1to2)/add-dest conflict
+ok 26 - rename/rename/add-dest merge still knows about conflicting file versions
+# still have 7 known breakage(s)
+# passed all remaining 19 test(s)
+1..26
+*** t6050-replace.sh ***
+ok 1 - set up buggy branch
+ok 2 - replace the author
+ok 3 - test --no-replace-objects option
+ok 4 - test GIT_NO_REPLACE_OBJECTS env variable
+ok 5 - tag replaced commit
+ok 6 - "git fsck" works
+ok 7 - repack, clone and fetch work
+ok 8 - "git replace" listing and deleting
+ok 9 - "git replace" replacing
+ok 10 - create parallel branch without the bug
+ok 11 - push to cloned repo
+ok 12 - push branch with replacement
+ok 13 - fetch branch with replacement
+ok 14 - bisect and replacements
+ok 15 - index-pack and replacements
+ok 16 - not just commits
+# passed all 16 test(s)
+1..16
+*** t6060-merge-index.sh ***
+ok 1 - setup diverging branches
+ok 2 - read-tree does not resolve content merge
+ok 3 - git merge-index git-merge-one-file resolves
+ok 4 - setup bare merge
+ok 5 - merge-one-file fails without a work tree
+ok 6 - merge-one-file respects GIT_WORK_TREE
+ok 7 - merge-one-file respects core.worktree
+# passed all 7 test(s)
+1..7
+*** 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 - final^1^@ = final^1^1 final^1^2
+ok 13 - final^1^! = final^1 ^final^1^1 ^final^1^2
+ok 14 - repack for next test
+ok 15 - short SHA-1 works
+# passed all 15 test(s)
+1..15
+*** t6110-rev-list-sparse.sh ***
+ok 1 - setup
+ok 2 - rev-list --first-parent --boundary
+# passed all 2 test(s)
+1..2
+*** 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 HEAD^^^
+ok 8 - describe --tags HEAD
+ok 9 - describe --tags HEAD^
+ok 10 - describe --tags HEAD^^
+ok 11 - describe --tags HEAD^^2
+ok 12 - describe --tags HEAD^^2^
+ok 13 - describe --tags HEAD^^^
+ok 14 - describe --all HEAD
+ok 15 - describe --all HEAD^
+ok 16 - describe --all HEAD^^^
+ok 17 - describe --long HEAD^^2^
+ok 18 - describe --long HEAD^^2
+ok 19 - describe --all A^0
+ok 20 - no warning was displayed for A
+ok 21 - rename tag A to Q locally
+ok 22 - describe HEAD
+ok 23 - warning was displayed for Q
+ok 24 - rename tag Q back to A
+ok 25 - pack tag refs
+ok 26 - describe HEAD
+ok 27 - describe --dirty
+ok 28 - set-up dirty work tree
+ok 29 - describe --dirty
+ok 30 - describe --dirty=.mod
+ok 31 - describe --dirty HEAD
+ok 32 - set-up matching pattern tests
+ok 33 - describe --match=test-*
+ok 34 - describe --tags --match=test1-*
+ok 35 - describe --tags --match=test2-*
+ok 36 - describe --long --tags --match=test2-* HEAD^
+# passed all 36 test(s)
+1..36
+*** t6200-fmt-merge-msg.sh ***
+ok 1 - setup
+ok 2 - message for merging local branch
+ok 3 - message for merging external branch
+ok 4 - [merge] summary/log configuration
+ok 5 - setup: clear [merge] configuration
+ok 6 - setup FETCH_HEAD
+ok 7 - merge.log=3 limits shortlog length
+ok 8 - merge.log=5 shows all 5 commits
+ok 9 - merge.log=0 disables shortlog
+ok 10 - --log=3 limits shortlog length
+ok 11 - --log=5 shows all 5 commits
+ok 12 - --no-log disables shortlog
+ok 13 - --log=0 disables shortlog
+ok 14 - fmt-merge-msg -m
+ok 15 - setup: expected shortlog for two branches
+ok 16 - shortlog for two branches
+ok 17 - merge-msg -F
+ok 18 - merge-msg -F in subdirectory
+ok 19 - merge-msg with nothing to merge
+ok 20 - merge-msg tag
+ok 21 - merge-msg two tags
+ok 22 - merge-msg tag and branch
+ok 23 - merge-msg lots of commits
+# passed all 23 test(s)
+1..23
+*** t6300-for-each-ref.sh ***
+You do not seem to have gpg installed
+ok 1 - Create sample commit with known timestamp
+ok 2 - Create upstream config
+ok 3 - basic atom: head refname
+ok 4 - basic atom: head upstream
+ok 5 - basic atom: head objecttype
+ok 6 - basic atom: head objectsize
+ok 7 - basic atom: head objectname
+ok 8 - basic atom: head tree
+ok 9 - basic atom: head parent
+ok 10 - basic atom: head numparent
+ok 11 - basic atom: head object
+ok 12 - basic atom: head type
+ok 13 - basic atom: head author
+ok 14 - basic atom: head authorname
+ok 15 - basic atom: head authoremail
+ok 16 - basic atom: head authordate
+ok 17 - basic atom: head committer
+ok 18 - basic atom: head committername
+ok 19 - basic atom: head committeremail
+ok 20 - basic atom: head committerdate
+ok 21 - basic atom: head tag
+ok 22 - basic atom: head tagger
+ok 23 - basic atom: head taggername
+ok 24 - basic atom: head taggeremail
+ok 25 - basic atom: head taggerdate
+ok 26 - basic atom: head creator
+ok 27 - basic atom: head creatordate
+ok 28 - basic atom: head subject
+ok 29 - basic atom: head contents:subject
+ok 30 - basic atom: head body
+ok 31 - basic atom: head contents:body
+ok 32 - basic atom: head contents:signature
+ok 33 - basic atom: head contents
+ok 34 - basic atom: tag refname
+ok 35 - basic atom: tag upstream
+ok 36 - basic atom: tag objecttype
+ok 37 - basic atom: tag objectsize
+ok 38 - basic atom: tag objectname
+ok 39 - basic atom: tag tree
+ok 40 - basic atom: tag parent
+ok 41 - basic atom: tag numparent
+ok 42 - basic atom: tag object
+ok 43 - basic atom: tag type
+ok 44 - basic atom: tag author
+ok 45 - basic atom: tag authorname
+ok 46 - basic atom: tag authoremail
+ok 47 - basic atom: tag authordate
+ok 48 - basic atom: tag committer
+ok 49 - basic atom: tag committername
+ok 50 - basic atom: tag committeremail
+ok 51 - basic atom: tag committerdate
+ok 52 - basic atom: tag tag
+ok 53 - basic atom: tag tagger
+ok 54 - basic atom: tag taggername
+ok 55 - basic atom: tag taggeremail
+ok 56 - basic atom: tag taggerdate
+ok 57 - basic atom: tag creator
+ok 58 - basic atom: tag creatordate
+ok 59 - basic atom: tag subject
+ok 60 - basic atom: tag contents:subject
+ok 61 - basic atom: tag body
+ok 62 - basic atom: tag contents:body
+ok 63 - basic atom: tag contents:signature
+ok 64 - basic atom: tag contents
+ok 65 - Check invalid atoms names are errors
+ok 66 - Check format specifiers are ignored in naming date atoms
+ok 67 - Check valid format specifiers for date fields
+ok 68 - Check invalid format specifiers are errors
+ok 69 - Check unformatted date fields output
+ok 70 - Check format "default" formatted date fields output
+ok 71 - Check format "relative" date fields output
+ok 72 - Check format "short" date fields output
+ok 73 - Check format "local" date fields output
+ok 74 - Check format "iso8601" date fields output
+ok 75 - Check format "rfc2822" date fields output
+ok 76 - Verify ascending sort
+ok 77 - Verify descending sort
+ok 78 - Quoting style: shell
+ok 79 - Quoting style: perl
+ok 80 - Quoting style: python
+ok 81 - Quoting style: tcl
+ok 82 - more than one quoting style: --perl --shell
+ok 83 - more than one quoting style: -s --python
+ok 84 - more than one quoting style: --python --tcl
+ok 85 - more than one quoting style: --tcl --perl
+ok 86 - Check short refname format
+ok 87 - Check short upstream format
+ok 88 - Check short objectname format
+ok 89 - Check for invalid refname format
+ok 90 - Check ambiguous head and tag refs (strict)
+ok 91 - Check ambiguous head and tag refs (loose)
+ok 92 - Check ambiguous head and tag refs II (loose)
+ok 93 - an unusual tag with an incomplete line
+ok 94 - create tag with subject and body content
+ok 95 - basic atom: refs/tags/subject-body subject
+ok 96 - basic atom: refs/tags/subject-body body
+ok 97 - basic atom: refs/tags/subject-body contents
+ok 98 - create tag with multiline subject
+ok 99 - basic atom: refs/tags/multiline subject
+ok 100 - basic atom: refs/tags/multiline contents:subject
+ok 101 - basic atom: refs/tags/multiline body
+ok 102 - basic atom: refs/tags/multiline contents:body
+ok 103 - basic atom: refs/tags/multiline contents:signature
+ok 104 - basic atom: refs/tags/multiline contents
+ok 105 # skip create signed tags (missing GPG)
+ok 106 # skip basic atom: refs/tags/signed-empty subject (missing GPG)
+ok 107 # skip basic atom: refs/tags/signed-empty contents:subject (missing GPG)
+ok 108 # skip basic atom: refs/tags/signed-empty body (missing GPG)
+ok 109 # skip basic atom: refs/tags/signed-empty contents:body (missing GPG)
+ok 110 # skip basic atom: refs/tags/signed-empty contents:signature (missing GPG)
+ok 111 # skip basic atom: refs/tags/signed-empty contents (missing GPG)
+ok 112 # skip basic atom: refs/tags/signed-short subject (missing GPG)
+ok 113 # skip basic atom: refs/tags/signed-short contents:subject (missing GPG)
+ok 114 # skip basic atom: refs/tags/signed-short body (missing GPG)
+ok 115 # skip basic atom: refs/tags/signed-short contents:body (missing GPG)
+ok 116 # skip basic atom: refs/tags/signed-short contents:signature (missing GPG)
+ok 117 # skip basic atom: refs/tags/signed-short contents (missing GPG)
+ok 118 # skip basic atom: refs/tags/signed-long subject (missing GPG)
+ok 119 # skip basic atom: refs/tags/signed-long contents:subject (missing GPG)
+ok 120 # skip basic atom: refs/tags/signed-long body (missing GPG)
+ok 121 # skip basic atom: refs/tags/signed-long contents:body (missing GPG)
+ok 122 # skip basic atom: refs/tags/signed-long contents:signature (missing GPG)
+ok 123 # skip basic atom: refs/tags/signed-long contents (missing GPG)
+# passed all 123 test(s)
+1..123
+*** t6500-gc.sh ***
+ok 1 - gc empty repository
+ok 2 - gc --gobbledegook
+ok 3 - gc -h with invalid configuration
+# passed all 3 test(s)
+1..3
+*** 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 - checking -k on non-existing file
+ok 9 - checking -k on untracked file
+ok 10 - checking -k on multiple untracked files
+ok 11 - checking -f on untracked file with existing target
+ok 12 - adding another file
+ok 13 - moving whole subdirectory
+ok 14 - commiting the change
+ok 15 - checking the commit
+ok 16 - succeed when source is a prefix of destination
+ok 17 - moving whole subdirectory into subdirectory
+ok 18 - commiting the change
+ok 19 - checking the commit
+ok 20 - do not move directory over existing directory
+ok 21 - move into "."
+ok 22 - Michael Cassar's test case
+ok 23 - Sergey Vlasov's test case
+ok 24 - absolute pathname
+ok 25 - absolute pathname outside should fail
+ok 26 - git mv to move multiple sources into a directory
+ok 27 - git mv should not change sha1 of moved cache entry
+ok 28 - git mv should overwrite symlink to a file
+ok 29 - git mv should overwrite file with a symlink
+# passed all 29 test(s)
+1..29
+*** t7003-filter-branch.sh ***
+ok 1 - setup
+ok 2 - rewrite identically
+ok 3 - result is really identical
+ok 4 - rewrite bare repository identically
+ok 5 - result is really identical
+ok 6 - correct GIT_DIR while using -d
+ok 7 - Fail if commit filter fails
+ok 8 - rewrite, renaming a specific file
+ok 9 - test that the file was renamed
+ok 10 - rewrite, renaming a specific directory
+ok 11 - test that the directory was renamed
+ok 12 - rewrite one branch, keeping a side branch
+ok 13 - common ancestor is still common (unchanged)
+ok 14 - filter subdirectory only
+ok 15 - subdirectory filter result looks okay
+ok 16 - more setup
+ok 17 - use index-filter to move into a subdirectory
+ok 18 - stops when msg filter fails
+ok 19 - author information is preserved
+ok 20 - remove a certain author's commits
+ok 21 - barf on invalid name
+ok 22 - "map" works in commit filter
+ok 23 - Name needing quotes
+ok 24 - Subdirectory filter with disappearing trees
+ok 25 - Tag name filtering retains tag message
+ok 26 - Tag name filtering strips gpg signature
+ok 27 - Tag name filtering allows slashes in tag names
+ok 28 - Prune empty commits
+ok 29 - --remap-to-ancestor with filename filters
+ok 30 - automatic remapping to ancestor with filename filters
+ok 31 - setup submodule
+ok 32 - rewrite submodule with another content
+ok 33 - replace submodule revision
+# passed all 33 test(s)
+1..33
+*** t7004-tag.sh ***
+You do not seem to have gpg installed
+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 - tag -l can accept multiple patterns
+ok 33 - a non-annotated tag created without parameters should point to HEAD
+ok 34 - trying to verify an unknown tag should fail
+ok 35 - trying to verify a non-annotated and non-signed tag should fail
+ok 36 - trying to verify many non-annotated or unknown tags, should fail
+ok 37 - creating an annotated tag with -m message should succeed
+ok 38 - creating an annotated tag with -F messagefile should succeed
+ok 39 - creating an annotated tag with -F - should succeed
+ok 40 - trying to create a tag with a non-existing -F file should fail
+ok 41 - trying to create tags giving both -m or -F options should fail
+ok 42 - creating a tag with an empty -m message should succeed
+ok 43 - creating a tag with an empty -F messagefile should succeed
+ok 44 - extra blanks in the message for an annotated tag should be removed
+ok 45 - creating a tag with blank -m message with spaces should succeed
+ok 46 - creating a tag with blank -F messagefile with spaces should succeed
+ok 47 - creating a tag with -F file of spaces and no newline should succeed
+ok 48 - creating a tag using a -F messagefile with #comments should succeed
+ok 49 - creating a tag with a #comment in the -m message should succeed
+ok 50 - creating a tag with #comments in the -F messagefile should succeed
+ok 51 - creating a tag with a file of #comment and no newline should succeed
+ok 52 - listing the one-line message of a non-signed tag should succeed
+ok 53 - listing the zero-lines message of a non-signed tag should succeed
+ok 54 - listing many message lines of a non-signed tag should succeed
+ok 55 - annotations for blobs are empty
+ok 56 # skip trying to verify an annotated non-signed tag should fail (missing GPG)
+ok 57 # skip trying to verify a file-annotated non-signed tag should fail (missing GPG)
+ok 58 # skip trying to verify two annotated non-signed tags should fail (missing GPG)
+ok 59 # skip creating a signed tag with -m message should succeed (missing GPG)
+ok 60 # skip sign with a given key id (missing GPG)
+ok 61 # skip sign with an unknown id (1) (missing GPG)
+ok 62 # skip sign with an unknown id (2) (missing GPG)
+ok 63 # skip -u implies signed tag (missing GPG)
+ok 64 # skip creating a signed tag with -F messagefile should succeed (missing GPG)
+ok 65 # skip creating a signed tag with -F - should succeed (missing GPG)
+ok 66 # skip -s implies annotated tag (missing GPG)
+ok 67 # skip trying to create a signed tag with non-existing -F file should fail (missing GPG)
+ok 68 # skip verifying a signed tag should succeed (missing GPG)
+ok 69 # skip verifying two signed tags in one command should succeed (missing GPG)
+ok 70 # skip verifying many signed and non-signed tags should fail (missing GPG)
+ok 71 # skip verifying a forged tag should fail (missing GPG)
+ok 72 # skip creating a signed tag with an empty -m message should succeed (missing GPG)
+ok 73 # skip creating a signed tag with an empty -F messagefile should succeed (missing GPG)
+ok 74 # skip extra blanks in the message for a signed tag should be removed (missing GPG)
+ok 75 # skip creating a signed tag with a blank -m message should succeed (missing GPG)
+ok 76 # skip creating a signed tag with blank -F file with spaces should succeed (missing GPG)
+ok 77 # skip creating a signed tag with spaces and no newline should succeed (missing GPG)
+ok 78 # skip creating a signed tag with a -F file with #comments should succeed (missing GPG)
+ok 79 # skip creating a signed tag with #commented -m message should succeed (missing GPG)
+ok 80 # skip creating a signed tag with #commented -F messagefile should succeed (missing GPG)
+ok 81 # skip creating a signed tag with a #comment and no newline should succeed (missing GPG)
+ok 82 # skip listing the one-line message of a signed tag should succeed (missing GPG)
+ok 83 # skip listing the zero-lines message of a signed tag should succeed (missing GPG)
+ok 84 # skip listing many message lines of a signed tag should succeed (missing GPG)
+ok 85 # skip creating a signed tag pointing to a tree should succeed (missing GPG)
+ok 86 # skip creating a signed tag pointing to a blob should succeed (missing GPG)
+ok 87 # skip creating a signed tag pointing to another tag should succeed (missing GPG)
+t7004-tag.sh: line 1025: gpghome/gpg.conf: No such file or directory
+ok 88 # skip creating a signed tag with rfc1991 (missing GPG)
+ok 89 # skip reediting a signed tag body omits signature (missing GPG)
+ok 90 # skip verifying rfc1991 signature (missing GPG)
+ok 91 # skip list tag with rfc1991 signature (missing GPG)
+ok 92 # skip verifying rfc1991 signature without --rfc1991 (missing GPG)
+ok 93 # skip list tag with rfc1991 signature without --rfc1991 (missing GPG)
+ok 94 # skip reediting a signed tag body omits signature (missing GPG)
+ok 95 # skip git tag -s fails if gpg is misconfigured (missing GPG)
+ok 96 # skip verify signed tag fails when public key is not present (missing GPG)
+ok 97 - git tag -a fails if tag annotation is empty
+ok 98 - message in editor has initial comment
+ok 99 - message in editor has initial comment: first line
+ok 100 - message in editor has initial comment: remainder
+ok 101 - overwriting an annoted tag should use its previous body
+ok 102 - filename for the message is relative to cwd
+ok 103 - filename for the message is relative to cwd
+ok 104 - creating second commit and tag
+ok 105 - creating third commit without tag
+ok 106 - checking that first commit is in all tags (hash)
+ok 107 - checking that first commit is in all tags (tag)
+ok 108 - checking that first commit is in all tags (relative)
+ok 109 - checking that second commit only has one tag
+ok 110 - checking that third commit has no tags
+ok 111 - creating simple branch
+ok 112 - checking that branch head only has one tag
+ok 113 - merging original branch into this branch
+ok 114 - checking that original branch head has one tag now
+ok 115 - checking that initial commit is in all tags
+ok 116 - mixing incompatibles modes and options is forbidden
+# passed all 116 test(s)
+1..116
+*** t7005-editor.sh ***
+ok 1 - determine default editor
+ok 2 - setup
+ok 3 - dumb should error out when falling back on vi
+ok 4 - dumb should prefer EDITOR to VISUAL
+ok 5 - Using vi
+ok 6 - Using EDITOR
+ok 7 - Using VISUAL
+ok 8 - Using core_editor
+ok 9 - Using GIT_EDITOR
+ok 10 - Using vi (override)
+ok 11 - Using EDITOR (override)
+ok 12 - Using VISUAL (override)
+ok 13 - Using core_editor (override)
+ok 14 - Using GIT_EDITOR (override)
+ok 15 - editor with a space
+ok 16 - core.editor with a space
+# passed all 16 test(s)
+1..16
+*** t7006-pager.sh ***
+ok 1 - determine default pager
+ok 2 - set up terminal for tests
+ok 3 - setup
+ok 4 # skip some commands use a pager (missing TTY)
+ok 5 # skip pager runs from subdir (missing TTY)
+ok 6 # skip some commands do not use a pager (missing TTY)
+ok 7 - no pager when stdout is a pipe
+ok 8 - no pager when stdout is a regular file
+ok 9 # skip git --paginate rev-list uses a pager (missing TTY)
+ok 10 - no pager even with --paginate when stdout is a pipe
+ok 11 # skip no pager with --no-pager (missing TTY)
+ok 12 # skip configuration can disable pager (missing TTY)
+ok 13 # skip git config uses a pager if configured to (missing TTY)
+ok 14 # skip configuration can enable pager (from subdir) (missing TTY)
+ok 15 - tests can detect color
+ok 16 - no color when stdout is a regular file
+ok 17 # skip color when writing to a pager (missing TTY)
+ok 18 # skip colors are suppressed by color.pager (missing TTY)
+ok 19 - color when writing to a file intended for a pager
+ok 20 # skip colors are sent to pager for external commands (missing TTY)
+ok 21 - setup: some aliases
+ok 22 # skip git log - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 23 # skip git log - PAGER overrides default pager (missing TTY)
+ok 24 # skip git log - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 25 # skip git log - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 26 # skip git log - GIT_PAGER overrides core.pager (missing TTY)
+ok 27 # skip git -p log - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 28 # skip git -p log - PAGER overrides default pager (missing TTY)
+ok 29 # skip git -p log - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 30 # skip git -p log - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 31 # skip git -p log - GIT_PAGER overrides core.pager (missing TTY)
+ok 32 # skip git aliasedlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 33 # skip git aliasedlog - PAGER overrides default pager (missing TTY)
+ok 34 # skip git aliasedlog - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 35 # skip git aliasedlog - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 36 # skip git aliasedlog - GIT_PAGER overrides core.pager (missing TTY)
+ok 37 # skip git -p aliasedlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 38 # skip git -p aliasedlog - PAGER overrides default pager (missing TTY)
+ok 39 # skip git -p aliasedlog - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 40 # skip git -p aliasedlog - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 41 # skip git -p aliasedlog - GIT_PAGER overrides core.pager (missing TTY)
+ok 42 # skip git -p true - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 43 # skip git -p true - PAGER overrides default pager (missing TTY)
+ok 44 # skip git -p true - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 45 # skip git -p true - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 46 # skip git -p true - GIT_PAGER overrides core.pager (missing TTY)
+ok 47 # skip git -p request-pull - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 48 # skip git -p request-pull - PAGER overrides default pager (missing TTY)
+ok 49 # skip git -p request-pull - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 50 # skip git -p request-pull - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 51 # skip git -p request-pull - GIT_PAGER overrides core.pager (missing TTY)
+ok 52 # skip git -p - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 53 # skip git -p - PAGER overrides default pager (missing TTY)
+ok 54 # skip git -p - repository-local core.pager setting is not used (missing TTY)
+ok 55 # skip git -p - core.pager is not used from subdirectory (missing TTY)
+ok 56 # skip git -p - GIT_PAGER overrides core.pager (missing TTY)
+ok 57 # skip no pager for 'git -p nonsense' (missing TTY)
+ok 58 # skip git shortlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 59 # skip git shortlog - PAGER overrides default pager (missing TTY)
+ok 60 # skip git shortlog - repository-local core.pager setting overrides PAGER (missing TTY)
+ok 61 # skip git shortlog - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 62 # skip git shortlog - GIT_PAGER overrides core.pager (missing TTY)
+ok 63 - setup: configure shortlog not to paginate
+ok 64 # skip no pager for 'git shortlog' (missing TTY)
+ok 65 # skip git shortlog - core.pager is not used from subdirectory (missing TTY)
+ok 66 # skip git -p shortlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY)
+ok 67 # skip git -p shortlog - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 68 # skip git -p apply </dev/null - core.pager overrides PAGER from subdirectory (missing TTY)
+ok 69 # skip command-specific pager (missing TTY)
+ok 70 # skip command-specific pager overrides core.pager (missing TTY)
+ok 71 # skip command-specific pager overridden by environment (missing TTY)
+ok 72 - setup external command
+ok 73 # skip command-specific pager works for external commands (missing TTY)
+ok 74 # skip sub-commands of externals use their own pager (missing TTY)
+ok 75 # skip external command pagers override sub-commands (missing TTY)
+# passed all 75 test(s)
+1..75
+*** t7007-show.sh ***
+ok 1 - setup
+ok 2 - showing a tag that point at a missing object
+# passed all 2 test(s)
+1..2
+*** t7008-grep-binary.sh ***
+ok 1 - setup
+ok 2 - git grep ina a
+ok 3 - git grep -ah ina a
+ok 4 - git grep -I ina a
+ok 5 - git grep -c ina a
+ok 6 - git grep -l ina a
+ok 7 - git grep -L bar a
+ok 8 - git grep -q ina a
+ok 9 - git grep -F ile a
+ok 10 - git grep -Fi iLE a
+ok 11 - git grep ile a
+not ok 12 - git grep .fi a # TODO known breakage
+ok 13 - git grep -F y<NUL>f a
+ok 14 - git grep -F y<NUL>x a
+ok 15 - git grep -Fi Y<NUL>f a
+ok 16 - git grep -Fi Y<NUL>x a
+ok 17 - git grep y<NUL>f a
+ok 18 - git grep y<NUL>x a
+ok 19 - grep respects binary diff attribute
+ok 20 - grep respects not-binary diff attribute
+# still have 1 known breakage(s)
+# passed all remaining 19 test(s)
+1..20
+*** t7010-setup.sh ***
+ok 1 - setup
+ok 2 - git add (absolute)
+ok 3 - git add (funny relative)
+ok 4 - git rm (absolute)
+ok 5 - git rm (funny relative)
+ok 6 - git ls-files (absolute)
+ok 7 - git ls-files (relative #1)
+ok 8 - git ls-files (relative #2)
+ok 9 - git ls-files (relative #3)
+ok 10 - commit using absolute path names
+ok 11 - log using absolute path names
+ok 12 - blame using absolute path names
+ok 13 - setup deeper work tree
+ok 14 - add a directory outside the work tree
+ok 15 - add a file outside the work tree, nasty case 1
+ok 16 - add a file outside the work tree, nasty case 2
+# passed all 16 test(s)
+1..16
+*** t7011-skip-worktree-reading.sh ***
+ok 1 - setup
+ok 2 - update-index
+ok 3 - update-index
+ok 4 - update-index --remove
+ok 5 - update-index --remove
+ok 6 - ls-files --delete
+ok 7 - ls-files --delete
+ok 8 - ls-files --modified
+ok 9 - ls-files --modified
+ok 10 - grep with skip-worktree file
+ok 11 - diff-index does not examine skip-worktree absent entries
+ok 12 - diff-index does not examine skip-worktree dirty entries
+ok 13 - diff-files does not examine skip-worktree absent entries
+ok 14 - diff-files does not examine skip-worktree dirty entries
+ok 15 - git-rm succeeds on skip-worktree absent entries
+ok 16 - commit on skip-worktree absent entries
+ok 17 - commit on skip-worktree dirty entries
+# passed all 17 test(s)
+1..17
+*** t7012-skip-worktree-writing.sh ***
+ok 1 - setup
+ok 2 - read-tree updates worktree, absent case
+ok 3 - read-tree updates worktree, dirty case
+ok 4 - read-tree removes worktree, absent case
+ok 5 - read-tree removes worktree, dirty case
+ok 6 - index setup
+ok 7 - git-add ignores worktree content
+ok 8 - git-add ignores worktree content
+ok 9 - git-rm fails if worktree is dirty
+ok 10 - git-clean, absent case
+ok 11 - git-clean, dirty case
+# passed all 11 test(s)
+1..11
+*** t7060-wtstatus.sh ***
+ok 1 - setup
+ok 2 - A/A conflict
+ok 3 - Report path with conflict
+ok 4 - Report new path with conflict
+ok 5 - M/D conflict does not segfault
+ok 6 - rename & unmerged setup
+ok 7 - rename & unmerged status
+ok 8 - git diff-index --cached shows 2 added + 1 unmerged
+ok 9 - git diff-index --cached -M shows 2 added + 1 unmerged
+ok 10 - git diff-index --cached -C shows 2 copies + 1 unmerged
+# passed all 10 test(s)
+1..10
+*** 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)
+1..10
+*** 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
+ok 21 - resetting specific path that is unmerged
+ok 22 - disambiguation (1)
+ok 23 - disambiguation (2)
+ok 24 - disambiguation (3)
+ok 25 - disambiguation (4)
+# passed all 25 test(s)
+1..25
+*** t7103-reset-bare.sh ***
+ok 1 - setup non-bare
+ok 2 - "hard" reset requires a worktree
+ok 3 - "merge" reset requires a worktree
+ok 4 - "keep" reset requires a worktree
+ok 5 - "mixed" reset is ok
+ok 6 - "soft" reset is ok
+ok 7 - hard reset works with GIT_WORK_TREE
+ok 8 - setup bare
+ok 9 - "hard" reset is not allowed in bare
+ok 10 - "merge" reset is not allowed in bare
+ok 11 - "keep" reset is not allowed in bare
+ok 12 - "mixed" reset is not allowed in bare
+ok 13 - "soft" reset is allowed in bare
+# passed all 13 test(s)
+1..13
+*** t7104-reset.sh ***
+ok 1 - setup
+ok 2 - reset --hard should restore unmerged ones
+ok 3 - reset --hard did not corrupt index nor cached-tree
+# passed all 3 test(s)
+1..3
+*** t7105-reset-patch.sh ***
+ok 1 - setup
+ok 2 - saying "n" does nothing
+ok 3 - git reset -p
+ok 4 - git reset -p HEAD^
+ok 5 - git reset -p dir
+ok 6 - git reset -p -- foo (inside dir)
+ok 7 - git reset -p HEAD^ -- dir
+ok 8 - none of this moved HEAD
+# passed all 8 test(s)
+1..8
+*** t7110-reset-merge.sh ***
+ok 1 - setup
+ok 2 - reset --merge is ok with changes in file it does not touch
+ok 3 - reset --merge is ok when switching back
+ok 4 - reset --keep is ok with changes in file it does not touch
+ok 5 - reset --keep is ok when switching back
+ok 6 - reset --merge discards changes added to index (1)
+ok 7 - reset --merge is ok again when switching back (1)
+ok 8 - reset --keep fails with changes in index in files it touches
+ok 9 - reset --merge discards changes added to index (2)
+ok 10 - reset --merge is ok again when switching back (2)
+ok 11 - reset --keep keeps changes it does not touch
+ok 12 - reset --keep keeps changes when switching back
+ok 13 - reset --merge fails with changes in file it touches
+ok 14 - reset --keep fails with changes in file it touches
+ok 15 - setup 3 different branches
+ok 16 - "reset --merge HEAD^" is ok with pending merge
+ok 17 - "reset --keep HEAD^" fails with pending merge
+ok 18 - "reset --merge HEAD" is ok with pending merge
+ok 19 - "reset --keep HEAD" fails with pending merge
+ok 20 - --merge is ok with added/deleted merge
+ok 21 - --keep fails with added/deleted merge
+# passed all 21 test(s)
+1..21
+*** t7111-reset-table.sh ***
+ok 1 - creating initial commits
+ok 2 - check: A B C D --soft A B D
+ok 3 - check: A B C D --mixed A D D
+ok 4 - check: A B C D --hard D D D
+ok 5 - check: A B C D --merge XXXXX  
+ok 6 - check: A B C D --keep XXXXX  
+ok 7 - check: A B C C --soft A B C
+ok 8 - check: A B C C --mixed A C C
+ok 9 - check: A B C C --hard C C C
+ok 10 - check: A B C C --merge XXXXX  
+ok 11 - check: A B C C --keep A C C
+ok 12 - check: B B C D --soft B B D
+ok 13 - check: B B C D --mixed B D D
+ok 14 - check: B B C D --hard D D D
+ok 15 - check: B B C D --merge D D D
+ok 16 - check: B B C D --keep XXXXX  
+ok 17 - check: B B C C --soft B B C
+ok 18 - check: B B C C --mixed B C C
+ok 19 - check: B B C C --hard C C C
+ok 20 - check: B B C C --merge C C C
+ok 21 - check: B B C C --keep B C C
+ok 22 - check: B C C D --soft B C D
+ok 23 - check: B C C D --mixed B D D
+ok 24 - check: B C C D --hard D D D
+ok 25 - check: B C C D --merge XXXXX  
+ok 26 - check: B C C D --keep XXXXX  
+ok 27 - check: B C C C --soft B C C
+ok 28 - check: B C C C --mixed B C C
+ok 29 - check: B C C C --hard C C C
+ok 30 - check: B C C C --merge B C C
+ok 31 - check: B C C C --keep B C C
+ok 32 - setting up branches to test with unmerged entries
+ok 33 - check: X U B C --soft XXXXX  
+ok 34 - check: X U B C --mixed X C C
+ok 35 - check: X U B C --hard C C C
+ok 36 - check: X U B C --merge C C C
+ok 37 - check: X U B C --keep XXXXX  
+ok 38 - check: X U B B --soft XXXXX  
+ok 39 - check: X U B B --mixed X B B
+ok 40 - check: X U B B --hard B B B
+ok 41 - check: X U B B --merge B B B
+ok 42 - check: X U B B --keep XXXXX  
+# passed all 42 test(s)
+1..42
+*** 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 - format of merge conflict from checkout -m
+ok 9 - checkout --merge --conflict=diff3 <branch>
+ok 10 - checkout to detach HEAD (with advice declined)
+ok 11 - checkout to detach HEAD
+ok 12 - checkout to detach HEAD with branchname^
+ok 13 - checkout to detach HEAD with :/message
+ok 14 - checkout to detach HEAD with HEAD^0
+ok 15 - checkout with ambiguous tag/branch names
+ok 16 - checkout with ambiguous tag/branch names
+ok 17 - switch branches while in subdirectory
+ok 18 - checkout specific path while in subdirectory
+ok 19 - checkout w/--track sets up tracking
+ok 20 - checkout w/autosetupmerge=always sets up tracking
+ok 21 - checkout w/--track from non-branch HEAD fails
+ok 22 - checkout w/--track from tag fails
+ok 23 - detach a symbolic link HEAD
+ok 24 - checkout with --track fakes a sensible -b <name>
+ok 25 - checkout with --track, but without -b, fails with too short tracked name
+ok 26 - checkout an unmerged path should fail
+ok 27 - checkout with an unmerged path can be ignored
+ok 28 - checkout unmerged stage
+ok 29 - checkout with --merge
+ok 30 - checkout with --merge, in diff3 -m style
+ok 31 - checkout --conflict=merge, overriding config
+ok 32 - checkout --conflict=diff3
+ok 33 - failing checkout -b should not break working tree
+ok 34 - switch out of non-branch
+ok 35 - custom merge driver with checkout -m
+# passed all 35 test(s)
+1..35
+*** t7300-clean.sh ***
+ok 1 - setup
+ok 2 - git clean with skip-worktree .gitignore
+ok 3 - git clean
+ok 4 - git clean src/
+ok 5 - git clean src/ src/
+ok 6 - git clean with prefix
+ok 7 - git clean with relative prefix
+ok 8 - git clean with absolute path
+ok 9 - git clean with out of work tree relative path
+ok 10 - git clean with out of work tree absolute path
+ok 11 - git clean -d with prefix and path
+ok 12 - git clean symbolic link
+ok 13 - git clean with wildcard
+ok 14 - git clean -n
+ok 15 - git clean -d
+ok 16 - git clean -d src/ examples/
+ok 17 - git clean -x
+ok 18 - git clean -d -x
+ok 19 - git clean -X
+ok 20 - git clean -d -X
+ok 21 - clean.requireForce defaults to true
+ok 22 - clean.requireForce
+ok 23 - clean.requireForce and -n
+ok 24 - clean.requireForce and -f
+ok 25 - core.excludesfile
+ok 26 - removal failure
+ok 27 - nested git work tree
+ok 28 - force removal of nested git work tree
+ok 29 - git clean -e
+ok 30 - git clean -d with an unreadable empty directory
+# passed all 30 test(s)
+1..30
+*** t7400-submodule-basic.sh ***
+ok 1 - setup - initial commit
+ok 2 - setup - repository in init subdirectory
+ok 3 - setup - commit with gitlink
+ok 4 - setup - hide init subdirectory
+ok 5 - setup - repository to add submodules to
+ok 6 - submodule add
+ok 7 - submodule add to .gitignored path fails
+ok 8 - submodule add to .gitignored path with --force
+ok 9 - submodule add --branch
+ok 10 - submodule add with ./ in path
+ok 11 - submodule add with // in path
+ok 12 - submodule add with /.. in path
+ok 13 - submodule add with ./, /.. and // in path
+ok 14 - setup - add an example entry to .gitmodules
+ok 15 - status should fail for unmapped paths
+ok 16 - setup - map path in .gitmodules
+ok 17 - status should only print one line
+ok 18 - setup - fetch commit name from submodule
+ok 19 - status should initially be "missing"
+ok 20 - init should register submodule url in .git/config
+ok 21 - update should fail when path is used by a file
+ok 22 - update should fail when path is used by a nonempty directory
+ok 23 - update should work when path is an empty dir
+ok 24 - status should be "up-to-date" after update
+ok 25 - status should be "modified" after submodule commit
+ok 26 - the --cached sha1 should be rev1
+ok 27 - git diff should report the SHA1 of the new submodule commit
+ok 28 - update should checkout rev1
+ok 29 - status should be "up-to-date" after update
+ok 30 - checkout superproject with subproject already present
+ok 31 - apply submodule diff
+ok 32 - update --init
+ok 33 - do not add files from a submodule
+ok 34 - gracefully add submodule with a trailing slash
+ok 35 - ls-files gracefully handles trailing slash
+ok 36 - moving to a commit without submodule does not leave empty dir
+ok 37 - submodule <invalid-path> warns
+ok 38 - add submodules without specifying an explicit path
+ok 39 - add should fail when path is used by a file
+ok 40 - add should fail when path is used by an existing directory
+ok 41 - use superproject as upstream when path is relative and no url is set there
+ok 42 - set up for relative path tests
+ok 43 - relative path works with URL
+ok 44 - relative path works with [email protected]:path
+# passed all 44 test(s)
+1..44
+*** t7401-submodule-summary.sh ***
+ok 1 - added submodule
+ok 2 - modified submodule(forward)
+ok 3 - modified submodule(forward), --files
+ok 4 - modified submodule(backward)
+ok 5 - modified submodule(backward and forward)
+ok 6 - --summary-limit
+ok 7 - typechanged submodule(submodule->blob), --cached
+ok 8 - typechanged submodule(submodule->blob), --files
+ok 9 - typechanged submodule(submodule->blob)
+ok 10 - nonexistent commit
+ok 11 - typechanged submodule(blob->submodule)
+ok 12 - deleted submodule
+ok 13 - multiple submodules
+ok 14 - path filter
+ok 15 - given commit
+ok 16 - --for-status
+ok 17 - fail when using --files together with --cached
+ok 18 - should not fail in an empty repo
+# passed all 18 test(s)
+1..18
+*** t7402-submodule-rebase.sh ***
+ok 1 - setup
+ok 2 - rebase with a dirty submodule
+ok 3 - interactive rebase with a dirty submodule
+ok 4 - rebase with dirty file and submodule fails
+ok 5 - stash with a dirty submodule
+# passed all 5 test(s)
+1..5
+*** t7403-submodule-sync.sh ***
+ok 1 - setup
+ok 2 - change submodule
+ok 3 - change submodule url
+ok 4 - "git submodule sync" should update submodule URLs
+ok 5 - "git submodule sync" should update known submodule URLs
+ok 6 - "git submodule sync" should not vivify uninteresting submodule
+# passed all 6 test(s)
+1..6
+*** t7405-submodule-merge.sh ***
+ok 1 - setup
+ok 2 - setup for merge search
+ok 3 - merge with one side as a fast-forward of the other
+ok 4 - merging should conflict for non fast-forward
+ok 5 - merging should fail for ambiguous common parent
+ok 6 - merging should fail for changes that are backwards
+ok 7 - git submodule status should display the merge conflict properly with merge base
+ok 8 - git submodule status should display the merge conflict properly without merge-base
+ok 9 - merging with a modify/modify conflict between merge bases
+ok 10 - setup for recursive merge with submodule
+ok 11 - recursive merge with submodule
+# passed all 11 test(s)
+1..11
+*** t7406-submodule-update.sh ***
+ok 1 - setup a submodule tree
+ok 2 - submodule update detaching the HEAD 
+ok 3 - submodule update does not fetch already present commits
+ok 4 - submodule update should fail due to local changes
+ok 5 - submodule update should throw away changes with --force 
+ok 6 - submodule update --rebase staying on master
+ok 7 - submodule update --merge staying on master
+ok 8 - submodule update - rebase in .git/config
+ok 9 - submodule update - checkout in .git/config but --rebase given
+ok 10 - submodule update - merge in .git/config
+ok 11 - submodule update - checkout in .git/config but --merge given
+ok 12 - submodule update - checkout in .git/config
+ok 13 - submodule init picks up rebase
+ok 14 - submodule init picks up merge
+ok 15 - submodule update --merge  - ignores --merge  for new submodules
+ok 16 - submodule update --rebase - ignores --rebase for new submodules
+ok 17 - submodule update ignores update=merge config for new submodules
+ok 18 - submodule update ignores update=rebase config for new submodules
+ok 19 - submodule init picks up update=none
+ok 20 - submodule update - update=none in .git/config
+ok 21 - submodule update - update=none in .git/config but --checkout given
+ok 22 - submodule update --init skips submodule with update=none
+ok 23 - submodule update continues after checkout error
+ok 24 - submodule update continues after recursive checkout error
+ok 25 - submodule update exit immediately in case of merge conflict
+ok 26 - submodule update exit immediately after recursive rebase error
+ok 27 - add different submodules to the same path
+ok 28 - submodule add places git-dir in superprojects git-dir
+ok 29 - submodule update places git-dir in superprojects git-dir
+ok 30 - submodule add places git-dir in superprojects git-dir recursive
+ok 31 - submodule update places git-dir in superprojects git-dir recursive
+not ok - 32 submodule add properly re-creates deeper level submodules
+#	
+#		(cd super &&
+#		 git reset --hard master &&
+#		 rm -rf deeper/ &&
+#		 git submodule add ../submodule deeper/submodule
+#		)
+#	
+# failed 1 among 32 test(s)
+1..32
+make[3]: [t7406-submodule-update.sh] Error 1 (ignored)
+*** t7407-submodule-foreach.sh ***
+ok 1 - setup a submodule tree
+ok 2 - test basic "submodule foreach" usage
+ok 3 - setup nested submodules
+ok 4 - use "submodule foreach" to checkout 2nd level submodule
+ok 5 - use "foreach --recursive" to checkout all submodules
+ok 6 - test messages from "foreach --recursive"
+ok 7 - test "foreach --quiet --recursive"
+ok 8 - use "update --recursive" to checkout all submodules
+ok 9 - test "status --recursive"
+ok 10 - ensure "status --cached --recursive" preserves the --cached flag
+ok 11 - use "git clone --recursive" to checkout all submodules
+ok 12 - test "update --recursive" with a flag with spaces
+ok 13 - use "update --recursive nested1" to checkout all submodules rooted in nested1
+ok 14 - command passed to foreach retains notion of stdin
+ok 15 - command passed to foreach --recursive retains notion of stdin
+# passed all 15 test(s)
+1..15
+*** t7408-submodule-reference.sh ***
+ok 1 - preparing first repository
+ok 2 - preparing second repository
+ok 3 - preparing supermodule
+ok 4 - submodule add --reference
+ok 5 - after add: existence of info/alternates
+ok 6 - that reference gets used with add
+ok 7 - cloning supermodule
+ok 8 - update with reference
+ok 9 - after update: existence of info/alternates
+ok 10 - that reference gets used with update
+# passed all 10 test(s)
+1..10
+*** 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 - commit message from template with whitespace issue
+ok 14 - using alternate GIT_INDEX_FILE (1)
+ok 15 - using alternate GIT_INDEX_FILE (2)
+ok 16 - --signoff
+ok 17 - commit message from file (1)
+ok 18 - commit message from file (2)
+ok 19 - commit message from stdin
+ok 20 - commit -F overrides -t
+ok 21 - Commit without message is allowed with --allow-empty-message
+ok 22 - Commit without message is no-no without --allow-empty-message
+ok 23 - Commit a message with --allow-empty-message
+ok 24 - commit --fixup provides correct one-line commit message
+ok 25 - commit --squash works with -F
+ok 26 - commit --squash works with -m
+ok 27 - commit --squash works with -C
+ok 28 - commit --squash works with -c
+ok 29 - commit --squash works with -C for same commit
+ok 30 - commit --squash works with -c for same commit
+ok 31 - commit --squash works with editor
+ok 32 - invalid message options when using --fixup
+# passed all 32 test(s)
+1..32
+*** t7501-commit.sh ***
+ok 1 - initial status
+ok 2 - fail initial amend
+ok 3 - setup: initial commit
+ok 4 - -m and -F do not mix
+ok 5 - -m and -C do not mix
+ok 6 - paths and -a do not mix
+ok 7 - can use paths with --interactive
+ok 8 - using invalid commit with -C
+ok 9 - nothing to commit
+ok 10 - setup: non-initial commit
+ok 11 - commit message from non-existing file
+ok 12 - empty commit message
+ok 13 - setup: commit message from file
+ok 14 - amend commit
+ok 15 - set up editor
+ok 16 - amend without launching editor
+ok 17 - --amend --edit
+ok 18 - -m --edit
+ok 19 - -m and -F do not mix
+ok 20 - using message from other commit
+ok 21 - editing message from other commit
+ok 22 - message from stdin
+ok 23 - overriding author from command line
+ok 24 - interactive add
+ok 25 - commit --interactive doesn't change index if editor aborts
+ok 26 - editor not invoked if -F is given
+ok 27 - partial commit that involves removal (1)
+ok 28 - partial commit that involves removal (2)
+ok 29 - partial commit that involves removal (3)
+ok 30 - amend commit to fix author
+ok 31 - amend commit to fix date
+ok 32 - commit complains about bogus date
+ok 33 - sign off (1)
+ok 34 - sign off (2)
+ok 35 - signoff gap
+ok 36 - signoff gap 2
+ok 37 - multiple -m
+ok 38 - amend commit to fix author
+ok 39 - git commit <file> with dirty index
+ok 40 - same tree (single parent)
+ok 41 - same tree (single parent) --allow-empty
+ok 42 - same tree (merge and amend merge)
+ok 43 - amend using the message from another commit
+ok 44 - amend using the message from a commit named with tag
+ok 45 - amend can copy notes
+# passed all 45 test(s)
+1..45
+*** t7502-commit.sh ***
+ok 1 - output summary format
+ok 2 - output summary format: root-commit
+ok 3 - output summary format for commit with an empty diff
+ok 4 - output summary format for merges
+ok 5 - the basics
+ok 6 - partial
+ok 7 - partial modification in a subdirectory
+ok 8 - partial removal
+ok 9 - sign off
+ok 10 - multiple -m
+ok 11 - verbose
+ok 12 - verbose respects diff config
+ok 13 - cleanup commit messages (verbatim,-t)
+ok 14 - cleanup commit messages (verbatim,-F)
+ok 15 - cleanup commit messages (verbatim,-m)
+ok 16 - cleanup commit messages (whitespace,-F)
+ok 17 - cleanup commit messages (strip,-F)
+ok 18 - cleanup commit messages (strip,-F,-e)
+ok 19 - cleanup commit messages (strip,-F,-e): output
+ok 20 - author different from committer
+ok 21 - committer is automatic
+ok 22 - do not fire editor in the presence of conflicts
+ok 23 - a SIGTERM should break locks
+ok 24 - Hand committing of a redundant merge removes dups
+ok 25 - A single-liner subject with a token plus colon is not a footer
+ok 26 - commit
+ok 27 - commit
+ok 28 - commit --status
+ok 29 - commit --no-status
+ok 30 - commit with commit.status = yes
+ok 31 - commit with commit.status = no
+ok 32 - commit --status with commit.status = yes
+ok 33 - commit --no-status with commit.status = yes
+ok 34 - commit --status with commit.status = no
+ok 35 - commit --no-status with commit.status = no
+ok 36 - commit
+ok 37 - commit
+ok 38 - commit --status
+ok 39 - commit --no-status
+ok 40 - commit with commit.status = yes
+ok 41 - commit with commit.status = no
+ok 42 - commit --status with commit.status = yes
+ok 43 - commit --no-status with commit.status = yes
+ok 44 - commit --status with commit.status = no
+ok 45 - commit --no-status with commit.status = no
+# passed all 45 test(s)
+1..45
+*** 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
+ok 9 - with hook requiring GIT_PREFIX
+ok 10 - with failing hook requiring GIT_PREFIX
+# passed all 10 test(s)
+1..10
+*** 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)
+1..20
+*** t7505-prepare-commit-msg-hook.sh ***
+ok 1 - with no hook
+ok 2 - with hook (-m)
+ok 3 - with hook (-m editor)
+ok 4 - with hook (-t)
+ok 5 - with hook (-F)
+ok 6 - with hook (-F editor)
+ok 7 - with hook (-C)
+ok 8 - with hook (editor)
+ok 9 - with hook (--amend)
+ok 10 - with hook (-c)
+ok 11 - with hook (merge)
+ok 12 - with failing hook
+ok 13 - with failing hook (--no-verify)
+# passed all 13 test(s)
+1..13
+*** t7506-status-submodule.sh ***
+ok 1 - setup
+ok 2 - status clean
+ok 3 - commit --dry-run -a clean
+ok 4 - status with modified file in submodule
+ok 5 - status with modified file in submodule (porcelain)
+ok 6 - status with added file in submodule
+ok 7 - status with added file in submodule (porcelain)
+ok 8 - status with untracked file in submodule
+ok 9 - status -uno with untracked file in submodule
+ok 10 - status with untracked file in submodule (porcelain)
+ok 11 - status with added and untracked file in submodule
+ok 12 - status with added and untracked file in submodule (porcelain)
+ok 13 - status with modified file in modified submodule
+ok 14 - status with modified file in modified submodule (porcelain)
+ok 15 - status with added file in modified submodule
+ok 16 - status with added file in modified submodule (porcelain)
+ok 17 - status with untracked file in modified submodule
+ok 18 - status with untracked file in modified submodule (porcelain)
+ok 19 - status with added and untracked file in modified submodule
+ok 20 - status with added and untracked file in modified submodule (porcelain)
+ok 21 - setup .git file for sub
+ok 22 - status with added file in modified submodule with .git file
+ok 23 - rm submodule contents
+ok 24 - status clean (empty submodule dir)
+ok 25 - status -a clean (empty submodule dir)
+ok 26 - status with merge conflict in .gitmodules
+ok 27 - diff with merge conflict in .gitmodules
+ok 28 - diff --submodule with merge conflict in .gitmodules
+# passed all 28 test(s)
+1..28
+*** t7507-commit-verbose.sh ***
+ok 1 - setup
+ok 2 - initial commit shows verbose diff
+ok 3 - second commit
+ok 4 - verbose diff is stripped out
+ok 5 - verbose diff is stripped out (mnemonicprefix)
+ok 6 - diff in message is retained without -v
+not ok 7 - diff in message is retained with -v # TODO known breakage
+# still have 1 known breakage(s)
+# passed all remaining 6 test(s)
+1..7
+*** t7508-status.sh ***
+ok 1 - status -h in broken repository
+ok 2 - commit -h in broken repository
+ok 3 - setup
+ok 4 - status (1)
+ok 5 - status (2)
+ok 6 - status (advice.statusHints false)
+ok 7 - status -s
+ok 8 - status with gitignore
+ok 9 - status with gitignore (nothing untracked)
+ok 10 - status -s -b
+ok 11 - setup dir3
+ok 12 - status -uno
+ok 13 - status (status.showUntrackedFiles no)
+ok 14 - status -uno (advice.statusHints false)
+ok 15 - status -s -uno
+ok 16 - status -s (status.showUntrackedFiles no)
+ok 17 - status -unormal
+ok 18 - status (status.showUntrackedFiles normal)
+ok 19 - status -s -unormal
+ok 20 - status -s (status.showUntrackedFiles normal)
+ok 21 - status -uall
+ok 22 - status (status.showUntrackedFiles all)
+ok 23 - teardown dir3
+ok 24 - status -s -uall
+ok 25 - status -s (status.showUntrackedFiles all)
+ok 26 - status with relative paths
+ok 27 - status -s with relative paths
+ok 28 - status --porcelain ignores relative paths setting
+ok 29 - setup unique colors
+ok 30 - status with color.ui
+ok 31 - status with color.status
+ok 32 - status -s with color.ui
+ok 33 - status -s with color.status
+ok 34 - status -s -b with color.status
+ok 35 - status --porcelain ignores color.ui
+ok 36 - status --porcelain ignores color.status
+ok 37 - status --porcelain ignores -b
+ok 38 - status without relative paths
+ok 39 - status -s without relative paths
+ok 40 - dry-run of partial commit excluding new file in index
+ok 41 - status refreshes the index
+ok 42 - setup status submodule summary
+ok 43 - status submodule summary is disabled by default
+ok 44 - status --untracked-files=all does not show submodule
+ok 45 - status -s submodule summary is disabled by default
+ok 46 - status -s --untracked-files=all does not show submodule
+ok 47 - status submodule summary
+ok 48 - status -s submodule summary
+ok 49 - status submodule summary (clean submodule): commit
+ok 50 - status -s submodule summary (clean submodule)
+ok 51 - status -z implies porcelain
+ok 52 - commit --dry-run submodule summary (--amend)
+ok 53 - status succeeds in a read-only repository
+ok 54 - --ignore-submodules=untracked suppresses submodules with untracked content
+ok 55 - .gitmodules ignore=untracked suppresses submodules with untracked content
+ok 56 - .git/config ignore=untracked suppresses submodules with untracked content
+ok 57 - --ignore-submodules=dirty suppresses submodules with untracked content
+ok 58 - .gitmodules ignore=dirty suppresses submodules with untracked content
+ok 59 - .git/config ignore=dirty suppresses submodules with untracked content
+ok 60 - --ignore-submodules=dirty suppresses submodules with modified content
+ok 61 - .gitmodules ignore=dirty suppresses submodules with modified content
+ok 62 - .git/config ignore=dirty suppresses submodules with modified content
+ok 63 - --ignore-submodules=untracked doesn't suppress submodules with modified content
+ok 64 - .gitmodules ignore=untracked doesn't suppress submodules with modified content
+ok 65 - .git/config ignore=untracked doesn't suppress submodules with modified content
+ok 66 - --ignore-submodules=untracked doesn't suppress submodule summary
+ok 67 - .gitmodules ignore=untracked doesn't suppress submodule summary
+ok 68 - .git/config ignore=untracked doesn't suppress submodule summary
+ok 69 - --ignore-submodules=dirty doesn't suppress submodule summary
+ok 70 - .gitmodules ignore=dirty doesn't suppress submodule summary
+ok 71 - .git/config ignore=dirty doesn't suppress submodule summary
+ok 72 - --ignore-submodules=all suppresses submodule summary
+not ok 73 - .gitmodules ignore=all suppresses submodule summary # TODO known breakage
+not ok 74 - .git/config ignore=all suppresses submodule summary # TODO known breakage
+# still have 2 known breakage(s)
+# passed all remaining 72 test(s)
+1..74
+*** t7509-commit.sh ***
+ok 1 - -C option copies authorship and message
+ok 2 - -C option copies only the message with --reset-author
+ok 3 - -c option copies authorship and message
+ok 4 - -c option copies only the message with --reset-author
+ok 5 - --amend option copies authorship
+ok 6 - --amend option with empty author
+ok 7 - --amend option with missing author
+ok 8 - --reset-author makes the commit ours even with --amend option
+ok 9 - --reset-author and --author are mutually exclusive
+ok 10 - --reset-author should be rejected without -c/-C/--amend
+ok 11 - commit respects CHERRY_PICK_HEAD and MERGE_MSG
+ok 12 - --reset-author with CHERRY_PICK_HEAD
+# passed all 12 test(s)
+1..12
+*** t7510-signed-commit.sh ***
+You do not seem to have gpg installed
+ok 1 # skip create signed commits (missing GPG)
+ok 2 # skip show signatures (missing GPG)
+ok 3 # skip detect fudged signature (missing GPG)
+ok 4 # skip detect fudged signature with NUL (missing GPG)
+ok 5 # skip amending already signed commit (missing GPG)
+# passed all 5 test(s)
+1..5
+*** t7511-status-index.sh ***
+ok 1 - status, filename length 1
+ok 2 - status, filename length 2
+ok 3 - status, filename length 3
+ok 4 - status, filename length 4
+ok 5 - status, filename length 5
+ok 6 - status, filename length 6
+ok 7 - status, filename length 7
+ok 8 - status, filename length 8
+ok 9 - status, filename length 9
+ok 10 - status, filename length 10
+ok 11 - status, filename length 11
+ok 12 - status, filename length 12
+ok 13 - status, filename length 13
+ok 14 - status, filename length 14
+ok 15 - status, filename length 15
+ok 16 - status, filename length 16
+ok 17 - status, filename length 17
+ok 18 - status, filename length 18
+ok 19 - status, filename length 19
+ok 20 - status, filename length 20
+ok 21 - status, filename length 21
+ok 22 - status, filename length 22
+ok 23 - status, filename length 23
+ok 24 - status, filename length 24
+# passed all 24 test(s)
+1..24
+*** t7600-merge.sh ***
+You do not seem to have gpg installed
+ok 1 - setup
+ok 2 - test option parsing
+ok 3 - merge -h with invalid index
+ok 4 - reject non-strategy with a git-merge-foo name
+ok 5 - merge c0 with c1
+ok 6 - merge c0 with c1 with --ff-only
+ok 7 - merge from unborn branch
+ok 8 - merge c1 with c2
+ok 9 - merge c1 with c2 and c3
+ok 10 - merges with --ff-only
+ok 11 - merges with merge.ff=only
+ok 12 - merge c0 with c1 (no-commit)
+ok 13 - merge c1 with c2 (no-commit)
+ok 14 - merge c1 with c2 and c3 (no-commit)
+ok 15 - merge c0 with c1 (squash)
+ok 16 - merge c0 with c1 (squash, ff-only)
+ok 17 - merge c1 with c2 (squash)
+ok 18 - unsuccesful merge of c1 with c2 (squash, ff-only)
+ok 19 - merge c1 with c2 and c3 (squash)
+ok 20 - merge c1 with c2 (no-commit in config)
+ok 21 - merge c1 with c2 (log in config)
+ok 22 - merge c1 with c2 (log in config gets overridden)
+ok 23 - merge c1 with c2 (squash in config)
+ok 24 - override config option -n with --summary
+ok 25 - override config option -n with --stat
+ok 26 - override config option --stat
+ok 27 - merge c1 with c2 (override --no-commit)
+ok 28 - merge c1 with c2 (override --squash)
+ok 29 - merge c0 with c1 (no-ff)
+ok 30 - merge c0 with c1 (merge.ff=false)
+ok 31 - combine branch.master.mergeoptions with merge.ff
+ok 32 - tolerate unknown values for merge.ff
+ok 33 - combining --squash and --no-ff is refused
+ok 34 - combining --ff-only and --no-ff is refused
+ok 35 - merge c0 with c1 (ff overrides no-ff)
+ok 36 - merge log message
+ok 37 - merge c1 with c0, c2, c0, and c1
+ok 38 - merge c1 with c0, c2, c0, and c1
+ok 39 - merge c1 with c1 and c2
+ok 40 - merge fast-forward in a dirty tree
+ok 41 - in-index merge
+ok 42 - refresh the index before merging
+ok 43 - merge early part of c2
+ok 44 - merge --no-ff --no-commit && commit
+ok 45 - amending no-ff merge commit
+ok 46 - merge --no-ff --edit
+ok 47 # skip merge --ff-only tag (missing GPG)
+ok 48 # skip merge --no-edit tag should skip editor (missing GPG)
+# passed all 48 test(s)
+1..48
+*** t7601-merge-pull-config.sh ***
+ok 1 - setup
+ok 2 - merge c1 with c2
+ok 3 - merge c1 with c2 (ours in pull.twohead)
+ok 4 - merge c1 with c2 and c3 (recursive in pull.octopus)
+ok 5 - merge c1 with c2 and c3 (recursive and octopus in pull.octopus)
+ok 6 - setup conflicted merge
+ok 7 - merge picks up the best result
+ok 8 - merge picks up the best result (from config)
+ok 9 - merge errors out on invalid strategy
+ok 10 - merge errors out on invalid strategy
+# passed all 10 test(s)
+1..10
+*** t7602-merge-octopus-many.sh ***
+ok 1 - setup
+ok 2 - merge c1 with c2, c3, c4, ... c29
+ok 3 - merge output uses pretty names
+ok 4 - merge up-to-date output uses pretty names
+ok 5 - merge fast-forward output uses pretty names
+# passed all 5 test(s)
+1..5
+*** t7603-merge-reduce-heads.sh ***
+ok 1 - setup
+ok 2 - merge c1 with c2, c3, c4, c5
+ok 3 - setup
+ok 4 - merge E and I
+ok 5 - verify merge result
+ok 6 - add conflicts
+ok 7 - merge E2 and I2, causing a conflict and resolve it
+ok 8 - verify merge result
+# passed all 8 test(s)
+1..8
+*** t7604-merge-custom-message.sh ***
+ok 1 - setup
+ok 2 - merge c2 with a custom message
+ok 3 - merge --log appends to custom message
+# passed all 3 test(s)
+1..3
+*** t7605-merge-resolve.sh ***
+ok 1 - setup
+ok 2 - merge c1 to c2
+ok 3 - merge c2 to c3 (fails)
+# passed all 3 test(s)
+1..3
+*** t7606-merge-custom.sh ***
+ok 1 - set up custom strategy
+ok 2 - setup
+ok 3 - merge c2 with a custom strategy
+ok 4 - trivial merge with custom strategy
+# passed all 4 test(s)
+1..4
+*** t7607-merge-overwrite.sh ***
+ok 1 - setup
+ok 2 - will not overwrite untracked file
+ok 3 - will overwrite tracked file
+ok 4 - will not overwrite new file
+ok 5 - will not overwrite staged changes
+ok 6 - will not overwrite removed file
+ok 7 - will not overwrite re-added file
+ok 8 - will not overwrite removed file with staged changes
+ok 9 - will not overwrite untracked subtree
+ok 10 - will not overwrite untracked file in leading path
+ok 11 - will not overwrite untracked symlink in leading path
+ok 12 - will not be confused by symlink in leading path
+ok 13 - will not overwrite untracked file on unborn branch
+ok 14 - will not overwrite untracked file on unborn branch .git/MERGE_HEAD sanity etc.
+ok 15 - failed merge leaves unborn branch in the womb
+ok 16 - set up unborn branch and content
+ok 17 - will not clobber WT/index when merging into unborn
+# passed all 17 test(s)
+1..17
+*** t7608-merge-messages.sh ***
+ok 1 - merge local branch
+ok 2 - merge octopus branches
+ok 3 - merge tag
+ok 4 - ambiguous tag
+ok 5 - remote-tracking branch
+# passed all 5 test(s)
+1..5
+*** t7609-merge-co-error-msgs.sh ***
+ok 1 - setup
+ok 2 - untracked files overwritten by merge (fast and non-fast forward)
+ok 3 - untracked files or local changes ovewritten by merge
+ok 4 - cannot switch branches because of local changes
+ok 5 - not uptodate file porcelain checkout error
+ok 6 - not_uptodate_dir porcelain checkout error
+# passed all 6 test(s)
+1..6
+*** t7610-mergetool.sh ***
+ok 1 - setup
+ok 2 - custom mergetool
+ok 3 - mergetool crlf
+ok 4 - mergetool in subdir
+ok 5 - mergetool on file in parent dir
+ok 6 - mergetool skips autoresolved
+ok 7 - mergetool merges all from subdir
+ok 8 - mergetool skips resolved paths when rerere is active
+ok 9 - mergetool takes partial path
+ok 10 - deleted vs modified submodule
+ok 11 - file vs modified submodule
+ok 12 - submodule in subdirectory
+ok 13 - directory vs modified submodule
+ok 14 - file with no base
+# passed all 14 test(s)
+1..14
+*** t7611-merge-abort.sh ***
+ok 1 - setup
+ok 2 - fails without MERGE_HEAD (unstarted merge)
+ok 3 - fails without MERGE_HEAD (unstarted merge): .git/MERGE_HEAD sanity
+ok 4 - fails without MERGE_HEAD (completed merge)
+ok 5 - fails without MERGE_HEAD (completed merge): .git/MERGE_HEAD sanity
+ok 6 - Forget previous merge
+ok 7 - Abort after --no-commit
+ok 8 - Abort after conflicts
+ok 9 - Clean merge with dirty index fails
+ok 10 - Conflicting merge with dirty index fails
+ok 11 - Reset index (but preserve worktree changes)
+ok 12 - Abort clean merge with non-conflicting dirty worktree
+ok 13 - Abort conflicting merge with non-conflicting dirty worktree
+ok 14 - Reset worktree changes
+ok 15 - Fail clean merge with conflicting dirty worktree
+ok 16 - Fail conflicting merge with conflicting dirty worktree
+ok 17 - Reset worktree changes
+ok 18 - Fail clean merge with matching dirty worktree
+ok 19 - Abort clean merge with matching dirty index
+ok 20 - Reset worktree changes
+ok 21 - Fail conflicting merge with matching dirty worktree
+ok 22 - Abort conflicting merge with matching dirty index
+ok 23 - Reset worktree changes
+ok 24 - Abort merge with pre- and post-merge worktree changes
+ok 25 - Reset worktree changes
+ok 26 - Abort merge with pre- and post-merge index changes
+# passed all 26 test(s)
+1..26
+*** t7700-repack.sh ***
+ok 1 - objects in packs marked .keep are not repacked
+ok 2 - loose objects in alternate ODB are not repacked
+ok 3 - packed obs in alt ODB are repacked even when local repo is packless
+ok 4 - packed obs in alt ODB are repacked when local repo has packs
+ok 5 - packed obs in alternate ODB kept pack are repacked
+ok 6 - packed unreachable obs in alternate ODB are not loosened
+ok 7 - local packed unreachable obs that exist in alternate ODB are not loosened
+ok 8 - objects made unreachable by grafts only are kept
+# passed all 8 test(s)
+1..8
+*** t7701-repack-unpack-unreachable.sh ***
+ok 1 - -A with -d option leaves unreachable objects unpacked
+ok 2 - -A without -d option leaves unreachable objects packed
+ok 3 - unpacked objects receive timestamp of pack file
+# passed all 3 test(s)
+1..3
+*** t7800-difftool.sh ***
+ok 1 - setup
+ok 2 - custom commands
+ok 3 - difftool ignores bad --tool values
+ok 4 - difftool honors --gui
+ok 5 - difftool --gui works without configured diff.guitool
+ok 6 - GIT_DIFF_TOOL variable
+ok 7 - GIT_DIFF_TOOL overrides
+ok 8 - GIT_DIFFTOOL_NO_PROMPT variable
+ok 9 - GIT_DIFFTOOL_PROMPT variable
+ok 10 - difftool.prompt config variable is false
+ok 11 - difftool merge.prompt = false
+ok 12 - difftool.prompt can overridden with -y
+ok 13 - difftool.prompt can overridden with --prompt
+ok 14 - difftool last flag wins
+ok 15 - difftool + mergetool config variables
+ok 16 - difftool.<tool>.path
+ok 17 - difftool --extcmd=cat
+ok 18 - difftool --extcmd cat
+ok 19 - difftool -x cat
+ok 20 - difftool --extcmd echo arg1
+ok 21 - difftool --extcmd cat arg1
+ok 22 - difftool --extcmd cat arg2
+ok 23 - setup with 2 files different
+ok 24 - say no to the first file
+ok 25 - say no to the second file
+# passed all 25 test(s)
+1..25
+*** t7810-grep.sh ***
+ok 1 - setup
+ok 2 - grep should not segfault with a bad input
+ok 3 - grep -w HEAD
+ok 4 - grep -w HEAD
+ok 5 - grep -w HEAD
+ok 6 - grep -w HEAD (w)
+ok 7 - grep -w HEAD (x)
+ok 8 - grep -w HEAD (y-1)
+ok 9 - grep -w HEAD (y-2)
+ok 10 - grep -w HEAD (z)
+ok 11 - grep HEAD (t-1)
+ok 12 - grep HEAD (t-2)
+ok 13 - grep HEAD (t-3)
+ok 14 - grep -c HEAD (no /dev/null)
+ok 15 - grep --max-depth -1 HEAD
+ok 16 - grep --max-depth 0 HEAD
+ok 17 - grep --max-depth 0 -- '*' HEAD
+ok 18 - grep --max-depth 1 HEAD
+ok 19 - grep --max-depth 0 -- t HEAD
+ok 20 - grep --max-depth 0 -- . t HEAD
+ok 21 - grep --max-depth 0 -- t . HEAD
+ok 22 - grep HEAD with grep.extendedRegexp=false
+ok 23 - grep HEAD with grep.extendedRegexp=true
+ok 24 - grep -w in working tree
+ok 25 - grep -w in working tree
+ok 26 - grep -w in working tree
+ok 27 - grep -w in working tree (w)
+ok 28 - grep -w in working tree (x)
+ok 29 - grep -w in working tree (y-1)
+ok 30 - grep -w in working tree (y-2)
+ok 31 - grep -w in working tree (z)
+ok 32 - grep in working tree (t-1)
+ok 33 - grep in working tree (t-2)
+ok 34 - grep in working tree (t-3)
+ok 35 - grep -c in working tree (no /dev/null)
+ok 36 - grep --max-depth -1 in working tree
+ok 37 - grep --max-depth 0 in working tree
+ok 38 - grep --max-depth 0 -- '*' in working tree
+ok 39 - grep --max-depth 1 in working tree
+ok 40 - grep --max-depth 0 -- t in working tree
+ok 41 - grep --max-depth 0 -- . t in working tree
+ok 42 - grep --max-depth 0 -- t . in working tree
+ok 43 - grep in working tree with grep.extendedRegexp=false
+ok 44 - grep in working tree with grep.extendedRegexp=true
+ok 45 - grep -l -C
+ok 46 - grep -l -C
+ok 47 - grep -L -C
+ok 48 - grep -e A --and -e B
+ok 49 - grep ( -e A --or -e B ) --and -e B
+ok 50 - grep -e A --and --not -e B
+ok 51 - grep should ignore GREP_OPTIONS
+ok 52 - grep -f, non-existent file
+ok 53 - grep -f, one pattern
+ok 54 - grep -f, multiple patterns
+ok 55 - grep -f, ignore empty lines
+ok 56 - grep -f, ignore empty lines, read patterns from stdin
+ok 57 - grep -q, silently report matches
+ok 58 - grep -C1, hunk mark between files
+ok 59 - grep -C1 hunk mark between files
+ok 60 - log grep setup
+ok 61 - log grep (1)
+ok 62 - log grep (2)
+ok 63 - log grep (3)
+ok 64 - log grep (4)
+ok 65 - log grep (5)
+ok 66 - log grep (6)
+ok 67 - log --grep --author implicitly uses all-match
+ok 68 - log with multiple --author uses union
+ok 69 - log with --grep and multiple --author uses all-match
+ok 70 - log with --grep and multiple --author uses all-match
+ok 71 - grep with CE_VALID file
+ok 72 - grep -p with userdiff
+ok 73 - grep -p
+ok 74 - grep -p -B5
+ok 75 - grep -W
+ok 76 - grep -W with userdiff
+ok 77 - grep from a subdirectory to search wider area (1)
+ok 78 - grep from a subdirectory to search wider area (2)
+ok 79 - grep -Fi
+ok 80 - outside of git repository
+ok 81 - inside git repository but with --no-index
+ok 82 - setup double-dash tests
+ok 83 - grep -- pattern
+ok 84 - grep -- pattern -- pathspec
+ok 85 - grep -e pattern -- path
+ok 86 - grep -e -- -- path
+ok 87 # skip grep --perl-regexp pattern (missing LIBPCRE)
+ok 88 # skip grep -P pattern (missing LIBPCRE)
+ok 89 - grep pattern with grep.extendedRegexp=true
+ok 90 # skip grep -P pattern with grep.extendedRegexp=true (missing LIBPCRE)
+ok 91 # skip grep -P -v pattern (missing LIBPCRE)
+ok 92 # skip grep -P -i pattern (missing LIBPCRE)
+ok 93 # skip grep -P -w pattern (missing LIBPCRE)
+ok 94 - grep -G invalidpattern properly dies 
+ok 95 - grep -E invalidpattern properly dies 
+ok 96 # skip grep -P invalidpattern properly dies  (missing LIBPCRE)
+ok 97 - grep -G -E -F pattern
+ok 98 - grep -E -F -G pattern
+ok 99 - grep -F -G -E pattern
+ok 100 - grep -G -F -P -E pattern
+ok 101 # skip grep -G -F -E -P pattern (missing LIBPCRE)
+ok 102 - grep --color, separator
+ok 103 - grep --break
+ok 104 - grep --break with context
+ok 105 - grep --heading
+ok 106 - mimic ack-grep --group
+# passed all 106 test(s)
+1..106
+*** t7811-grep-open.sh ***
+ok 1 - determine default pager
+ok 2 - setup
+ok 3 - git grep -O
+ok 4 - git grep -O --cached
+ok 5 - git grep -O --no-index
+ok 6 - setup: fake "less"
+ok 7 - git grep -O jumps to line in less
+ok 8 - modified file
+ok 9 - copes with color settings
+ok 10 - run from subdir
+# passed all 10 test(s)
+1..10
+*** 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 - an obfuscated email added
+ok 20 - obfuscated email parsed
+ok 21 - Annotating an old revision works
+# passed all 21 test(s)
+1..21
+*** 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
+ok 19 - an obfuscated email added
+ok 20 - obfuscated email parsed
+ok 21 - Blame --show-email works
+# passed all 21 test(s)
+1..21
+*** t8003-blame-corner-cases.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
+ok 14 - blame path that used to be a directory
+ok 15 - blame to a commit with no author name
+ok 16 - blame -L with invalid start
+ok 17 - blame -L with invalid end
+ok 18 - indent of line numbers, nine lines
+ok 19 - indent of line numbers, ten lines
+# passed all 19 test(s)
+1..19
+*** t8004-blame-with-conflicts.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)
+1..3
+*** t8005-blame-i18n.sh ***
+ok 1 - setup the repository
+ok 2 - blame respects i18n.commitencoding
+ok 3 - blame respects i18n.logoutputencoding
+ok 4 - blame respects --encoding=UTF-8
+ok 5 - blame respects --encoding=none
+# passed all 5 test(s)
+1..5
+*** t8006-blame-textconv.sh ***
+ok 1 - setup 
+ok 2 - no filter specified
+ok 3 - setup textconv filters
+ok 4 - blame with --no-textconv
+ok 5 - basic blame on last commit
+ok 6 - blame --textconv going through revisions
+ok 7 - blame --textconv with local changes
+ok 8 - setup +cachetextconv
+ok 9 - blame --textconv works with textconvcache
+ok 10 - setup -cachetextconv
+ok 11 - make a new commit
+ok 12 - blame from previous revision
+ok 13 - blame with --no-textconv (on symlink)
+ok 14 - blame --textconv (on symlink)
+ok 15 - make another new commit
+ok 16 - blame on last commit (-C -C, symlink)
+# passed all 16 test(s)
+1..16
+*** t8007-cat-file-textconv.sh ***
+ok 1 - setup 
+ok 2 - no filter specified
+ok 3 - setup textconv filters
+ok 4 - cat-file without --textconv
+ok 5 - cat-file without --textconv on previous commit
+ok 6 - cat-file --textconv on last commit
+ok 7 - cat-file --textconv on previous commit
+ok 8 - cat-file without --textconv (symlink)
+ok 9 - cat-file --textconv on index (symlink)
+ok 10 - cat-file --textconv on HEAD (symlink)
+# passed all 10 test(s)
+1..10
+*** t8008-blame-formats.sh ***
+ok 1 - setup
+ok 2 - normal blame output
+ok 3 - blame --porcelain output
+ok 4 - blame --line-porcelain output
+# passed all 4 test(s)
+1..4
+*** t9001-send-email.sh ***
+ok 1 - prepare reference tree
+ok 2 - Setup helper tool
+ok 3 - Extract patches
+ok 4 - No confirm with --suppress-cc
+ok 5 - No confirm with --confirm=never
+ok 6 - No confirm with sendemail.confirm=never
+ok 7 - Send patches
+ok 8 - setup expect
+ok 9 - Verify commandline
+ok 10 - Send patches with --envelope-sender
+ok 11 - setup expect
+ok 12 - Verify commandline
+ok 13 - Send patches with --envelope-sender=auto
+ok 14 - setup expect
+ok 15 - Verify commandline
+ok 16 - setup expect
+ok 17 - Show all headers
+ok 18 - Prompting works
+ok 19 - tocmd works
+ok 20 - cccmd works
+ok 21 - reject long lines
+ok 22 - no patch was sent
+ok 23 - Author From: in message body
+ok 24 - Author From: not in message body
+ok 25 - allow long lines with --no-validate
+ok 26 - Invalid In-Reply-To
+ok 27 - Valid In-Reply-To when prompting
+ok 28 - In-Reply-To without --chain-reply-to
+ok 29 - In-Reply-To with --chain-reply-to
+ok 30 - setup fake editor
+ok 31 - --compose works
+ok 32 - first message is compose text
+ok 33 - second message is patch
+ok 34 - setup expect
+ok 35 - sendemail.cc set
+ok 36 - setup expect
+ok 37 - sendemail.cc unset
+ok 38 - setup expect
+ok 39 - sendemail.cccmd
+ok 40 - setup expect
+ok 41 - --suppress-cc=all
+ok 42 - setup expect
+ok 43 - --suppress-cc=body
+ok 44 - setup expect
+ok 45 - --suppress-cc=body --suppress-cc=cccmd
+ok 46 - setup expect
+ok 47 - --suppress-cc=sob
+ok 48 - setup expect
+ok 49 - --suppress-cc=bodycc
+ok 50 - setup expect
+ok 51 - --suppress-cc=cc
+ok 52 - --confirm=always
+ok 53 - --confirm=auto
+ok 54 - --confirm=cc
+ok 55 - --confirm=compose
+ok 56 - confirm by default (due to cc)
+ok 57 - confirm by default (due to --compose)
+ok 58 - confirm detects EOF (inform assumes y)
+ok 59 - confirm detects EOF (auto causes failure)
+ok 60 - confirm doesnt loop forever
+ok 61 - utf8 Cc is rfc2047 encoded
+ok 62 - --compose adds MIME for utf8 body
+ok 63 - --compose respects user mime type
+ok 64 - --compose adds MIME for utf8 subject
+ok 65 - detects ambiguous reference/file conflict
+ok 66 - feed two files
+ok 67 - in-reply-to but no threading
+ok 68 - no in-reply-to and no threading
+ok 69 - threading but no chain-reply-to
+ok 70 - warning with an implicit --chain-reply-to
+ok 71 - no warning with an explicit --chain-reply-to
+ok 72 - no warning with an explicit --no-chain-reply-to
+ok 73 - no warning with sendemail.chainreplyto = false
+ok 74 - no warning with sendemail.chainreplyto = true
+ok 75 - sendemail.to works
+ok 76 - --no-to overrides sendemail.to
+ok 77 - sendemail.cc works
+ok 78 - --no-cc overrides sendemail.cc
+ok 79 - sendemail.bcc works
+ok 80 - --no-bcc overrides sendemail.bcc
+ok 81 - patches To headers are used by default
+ok 82 - patches To headers are appended to
+ok 83 - To headers from files reset each patch
+ok 84 - setup expect
+ok 85 - setup expect
+ok 86 - asks about and fixes 8bit encodings
+ok 87 - sendemail.8bitEncoding works
+ok 88 - --8bit-encoding overrides sendemail.8bitEncoding
+ok 89 - setup expect
+ok 90 - setup expect
+ok 91 - --8bit-encoding also treats subject
+ok 92 - refusing to send cover letter template
+ok 93 - --force sends cover letter template anyway
+ok 94 - sendemail.aliasfiletype=mailrc
+ok 95 - sendemail.aliasfile=~/.mailrc
+# passed all 95 test(s)
+1..95
+*** t9010-svn-fe.sh ***
+ok 1 - empty dump
+ok 2 - v4 dumps not supported
+not ok 3 - empty revision # TODO known breakage
+ok 4 - empty properties
+ok 5 - author name and commit message
+ok 6 - unsupported properties are ignored
+not ok 7 - timestamp and empty file # TODO known breakage
+ok 8 - directory with files
+ok 9 - node without action
+ok 10 - action: add node without text
+not ok 11 - change file mode but keep old content # TODO known breakage
+ok 12 - NUL in property value
+ok 13 - NUL in log message, file content, and property name
+ok 14 - change file mode and reiterate content
+ok 15 - deltas not supported
+ok 16 - property deltas supported
+ok 17 - properties on /
+ok 18 - deltas for typechange
+ok 19 - set up svn repo
+ok 20 - t9135/svn.dump
+# still have 3 known breakage(s)
+# passed all remaining 17 test(s)
+1..20
+*** t9100-git-svn-basic.sh ***
+define NO_SVN_TESTS to skip git svn tests
+# UTF-8 locale not set, some tests skipped (C)
+ok 1 - initialize git svn
+not ok - 2 import an SVN revision into git
+#	git svn fetch
+ok 3 - checkout from svn
+not ok - 4 try a deep --rmdir with a commit
+#	
+#		git checkout -f -b mybranch ${remotes_git_svn} &&
+#		mv dir/a/b/c/d/e/file dir/file &&
+#		cp dir/file file &&
+#		git update-index --add --remove dir/a/b/c/d/e/file dir/file file &&
+#		git commit -m "$name" &&
+#		git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch &&
+#		svn_cmd up "$SVN_TREE" &&
+#		test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a
+not ok - 5 detect node change from file to directory #1
+#	
+#		mkdir dir/new_file &&
+#		mv dir/file dir/new_file/file &&
+#		mv dir/new_file dir/file &&
+#		git update-index --remove dir/file &&
+#		git update-index --add dir/file/file &&
+#		git commit -m 'detect node change from file to directory #1' &&
+#		test_must_fail git svn set-tree --find-copies-harder --rmdir 		remotes/git-svn..mybranch
+not ok - 6 detect node change from directory to file #1
+#	
+#		rm -rf dir "$GIT_DIR"/index &&
+#		git checkout -f -b mybranch2 ${remotes_git_svn} &&
+#		mv bar/zzz zzz &&
+#		rm -rf bar &&
+#		mv zzz bar &&
+#		git update-index --remove -- bar/zzz &&
+#		git update-index --add -- bar &&
+#		git commit -m "$name" &&
+#		test_must_fail git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch2
+not ok - 7 detect node change from file to directory #2
+#	
+#		rm -f "$GIT_DIR"/index &&
+#		git checkout -f -b mybranch3 ${remotes_git_svn} &&
+#		rm bar/zzz &&
+#		git update-index --remove bar/zzz &&
+#		mkdir bar/zzz &&
+#		echo yyy > bar/zzz/yyy &&
+#		git update-index --add bar/zzz/yyy &&
+#		git commit -m "$name" &&
+#		test_must_fail git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch3
+not ok - 8 detect node change from directory to file #2
+#	
+#		rm -f "$GIT_DIR"/index &&
+#		git checkout -f -b mybranch4 ${remotes_git_svn} &&
+#		rm -rf dir &&
+#		git update-index --remove -- dir/file &&
+#		touch dir &&
+#		echo asdf > dir &&
+#		git update-index --add -- dir &&
+#		git commit -m "$name" &&
+#		test_must_fail git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch4
+not ok - 9 remove executable bit from a file
+#	
+#		rm -f "$GIT_DIR"/index &&
+#		git checkout -f -b mybranch5 ${remotes_git_svn} &&
+#		chmod -x exec.sh &&
+#		git update-index exec.sh &&
+#		git commit -m "$name" &&
+#		git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch5 &&
+#		svn_cmd up "$SVN_TREE" &&
+#		test ! -x "$SVN_TREE"/exec.sh
+not ok - 10 add executable bit back file
+#	
+#		chmod +x exec.sh &&
+#		git update-index exec.sh &&
+#		git commit -m "$name" &&
+#		git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch5 &&
+#		svn_cmd up "$SVN_TREE" &&
+#		test -x "$SVN_TREE"/exec.sh
+not ok - 11 executable file becomes a symlink to bar/zzz (file)
+#	
+#		rm exec.sh &&
+#		ln -s bar/zzz exec.sh &&
+#		git update-index exec.sh &&
+#		git commit -m "$name" &&
+#		git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch5 &&
+#		svn_cmd up "$SVN_TREE" &&
+#		test -h "$SVN_TREE"/exec.sh
+not ok - 12 new symlink is added to a file that was also just made executable
+#	
+#		chmod +x bar/zzz &&
+#		ln -s bar/zzz exec-2.sh &&
+#		git update-index --add bar/zzz exec-2.sh &&
+#		git commit -m "$name" &&
+#		git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch5 &&
+#		svn_cmd up "$SVN_TREE" &&
+#		test -x "$SVN_TREE"/bar/zzz &&
+#		test -h "$SVN_TREE"/exec-2.sh
+not ok - 13 modify a symlink to become a file
+#	
+#		echo git help > help || true &&
+#		rm exec-2.sh &&
+#		cp help exec-2.sh &&
+#		git update-index exec-2.sh &&
+#		git commit -m "$name" &&
+#		git svn set-tree --find-copies-harder --rmdir \
+#			${remotes_git_svn}..mybranch5 &&
+#		svn_cmd up "$SVN_TREE" &&
+#		test -f "$SVN_TREE"/exec-2.sh &&
+#		test ! -h "$SVN_TREE"/exec-2.sh &&
+#		test_cmp help "$SVN_TREE"/exec-2.sh
+ok 14 # skip commit with UTF-8 message: locale: C (missing UTF8)
+not ok - 15 test fetch functionality (svn => git) with alternate GIT_SVN_ID
+#	git svn init "$svnrepo" && git svn fetch &&
+#	     git rev-list --pretty=raw ${remotes_git_svn} | grep ^tree | uniq > a &&
+#	     git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&
+#	     test_cmp a b
+not ok - 16 check imported tree checksums expected tree checksums
+#	test_cmp a expected
+ok 17 - exit if remote refs are ambigious
+ok 18 - exit if init-ing a would clobber a URL
+not ok - 19 init allows us to connect to another directory in the same repo
+#	
+#	        git svn init --minimize-url -i bar "$svnrepo/bar" &&
+#	        git config --get svn-remote.svn.fetch \
+#	                              "^bar:refs/remotes/bar$" &&
+#	        git config --get svn-remote.svn.fetch \
+#	                              "^:refs/${remotes_git_svn}$"
+#	        
+not ok - 20 dcommit $rev does not clobber current branch
+#	
+#		git svn fetch -i bar &&
+#		git checkout -b my-bar refs/remotes/bar &&
+#		echo 1 > foo &&
+#		git add foo &&
+#		git commit -m "change 1" &&
+#		echo 2 > foo &&
+#		git add foo &&
+#		git commit -m "change 2" &&
+#		old_head=$(git rev-parse HEAD) &&
+#		git svn dcommit -i bar HEAD^ &&
+#		test $old_head = $(git rev-parse HEAD) &&
+#		test refs/heads/my-bar = $(git symbolic-ref HEAD) &&
+#		git log refs/remotes/bar | grep "change 1" &&
+#		! git log refs/remotes/bar | grep "change 2" &&
+#		git checkout master &&
+#		git branch -D my-bar
+#		
+not ok - 21 able to dcommit to a subdirectory
+#	
+#		git svn fetch -i bar &&
+#		git checkout -b my-bar refs/remotes/bar &&
+#		echo abc > d &&
+#		git update-index --add d &&
+#		git commit -m '/bar/d should be in the log' &&
+#		git svn dcommit -i bar &&
+#		test -z "`git diff refs/heads/my-bar refs/remotes/bar`" &&
+#		mkdir newdir &&
+#		echo new > newdir/dir &&
+#		git update-index --add newdir/dir &&
+#		git commit -m 'add a new directory' &&
+#		git svn dcommit -i bar &&
+#		test -z "`git diff refs/heads/my-bar refs/remotes/bar`" &&
+#		echo foo >> newdir/dir &&
+#		git update-index newdir/dir &&
+#		git commit -m 'modify a file in new directory' &&
+#		git svn dcommit -i bar &&
+#		test -z "`git diff refs/heads/my-bar refs/remotes/bar`"
+#		
+not ok - 22 dcommit should not fail with a touched file
+#	
+#		test_commit "commit-new-file-foo2" foo2 &&
+#		test-chmtime =-60 foo &&
+#		git svn dcommit
+#	
+not ok - 23 rebase should not fail with a touched file
+#	
+#		test-chmtime =-60 foo &&
+#		git svn rebase
+#	
+not ok - 24 able to set-tree to a subdirectory
+#	
+#		echo cba > d &&
+#		git update-index d &&
+#		git commit -m 'update /bar/d' &&
+#		git svn set-tree -i bar HEAD &&
+#		test -z "`git diff refs/heads/my-bar refs/remotes/bar`"
+#		
+not ok - 25 git-svn works in a bare repository
+#	
+#		mkdir bare-repo &&
+#		( cd bare-repo &&
+#		git init --bare &&
+#		GIT_DIR=. git svn init "$svnrepo" &&
+#		git svn fetch ) &&
+#		rm -rf bare-repo
+#		
+# failed 20 among 25 test(s)
+1..25
+make[3]: [t9100-git-svn-basic.sh] Error 1 (ignored)
+*** t9101-git-svn-props.sh ***
+ok 1 - checkout working copy from svn
+ok 2 - setup some commits to svn
+ok 3 - initialize git svn
+not ok - 4 fetch revisions from svn
+#	git svn fetch
+not ok - 5 test svn:keywords ignoring
+#	git checkout -b mybranch ${remotes_git_svn} &&
+#		echo Hi again >> kw.c &&
+#		git commit -a -m "test keywords ignoring" &&
+#		git svn set-tree ${remotes_git_svn}..mybranch &&
+#		git pull . ${remotes_git_svn}
+sed: Cannot open file kw.c.
+not ok - 6 raw $Id$ found in kw.c
+#	test '/* $Id$ */' = ''
+ok 7 - propset CR on crlf files
+not ok - 8 fetch and pull latest from svn and checkout a new wc
+#	git svn fetch &&
+#		 git pull . ${remotes_git_svn} &&
+#		 svn_cmd co "$svnrepo" new_wc