Debian Bug report logs - #678764
git: FTBFS: tests failed

version graph

Package: git-svn; Maintainer for git-svn is Gerrit Pape <pape@smarden.org>; Source for git-svn is src:git.

Reported by: Lucas Nussbaum <lucas@lucas-nussbaum.net>

Date: Sun, 24 Jun 2012 09:52:14 UTC

Severity: serious

Tags: experimental, fixed-upstream, jessie, patch, sid, upstream

Merged with 678137

Found in versions git/1:1.7.2.5-3, git/1:1.7.2.5-1, git/1:1.7.10-1, git/1:1.7.10.4-1

Fixed in version git/1:1.7.10.4-2

Done: Jonathan Nieder <jrnieder@gmail.com>

Bug is archived. No further changes may be made.

Forwarded to http://thread.gmane.org/gmane.comp.version-control.git/184644

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Gerrit Pape <pape@smarden.org>:
Bug#678764; Package src:git. (Sun, 24 Jun 2012 09:52:18 GMT) Full text and rfc822 format available.

Acknowledgement sent to Lucas Nussbaum <lucas@lucas-nussbaum.net>:
New Bug report received and forwarded. Copy sent to Gerrit Pape <pape@smarden.org>. (Sun, 24 Jun 2012 09:52:35 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Lucas Nussbaum <lucas@lucas-nussbaum.net>
To: submit@bugs.debian.org
Subject: git: FTBFS: tests failed
Date: Sun, 24 Jun 2012 11:27:58 +0200
Source: git
Version: 1:1.7.10.4-1
Severity: serious
Tags: wheezy sid
User: debian-qa@lists.debian.org
Usertags: qa-ftbfs-20120624 qa-ftbfs
Justification: FTBFS on amd64

Hi,

During a rebuild of all packages in sid, your package failed to build on
amd64.

Relevant part:
> make[3]: Entering directory `/«PKGBUILDDIR»/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
> ok 5 - required filter success
> ok 6 - required filter smudge failure
> ok 7 - required filter clean failure
> # passed all 7 test(s)
> 1..7
> *** 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 - OPT_BOOL() #1
> ok 3 - OPT_BOOL() #2
> ok 4 - OPT_BOOL() #3
> ok 5 - OPT_BOOL() #4
> ok 6 - OPT_BOOL() #5
> ok 7 - OPT_BOOL() is idempotent #1
> ok 8 - OPT_BOOL() is idempotent #2
> ok 9 - OPT_BOOL() negation #1
> ok 10 - OPT_BOOL() negation #2
> ok 11 - OPT_BOOL() no negation #1
> ok 12 - OPT_BOOL() no negation #2
> ok 13 - OPT_BOOL() positivation
> ok 14 - short options
> ok 15 - long options
> ok 16 - missing required value
> ok 17 - intermingled arguments
> ok 18 - unambiguously abbreviated option
> ok 19 - unambiguously abbreviated option with "="
> ok 20 - ambiguously abbreviated option
> ok 21 - non ambiguous option (after two options it abbreviates)
> ok 22 - detect possible typos
> ok 23 - detect possible typos
> ok 24 - keep some options as arguments
> ok 25 - OPT_DATE() and OPT_SET_PTR() work
> ok 26 - OPT_CALLBACK() and OPT_BIT() work
> ok 27 - OPT_CALLBACK() and callback errors work
> ok 28 - OPT_BIT() and OPT_SET_INT() work
> ok 29 - OPT_NEGBIT() and OPT_SET_INT() work
> ok 30 - OPT_BIT() works
> ok 31 - OPT_NEGBIT() works
> ok 32 - OPT_COUNTUP() with PARSE_OPT_NODASH works
> ok 33 - OPT_NUMBER_CALLBACK() works
> ok 34 - negation of OPT_NONEG flags is not ambiguous
> ok 35 - --list keeps list of strings
> ok 36 - --no-list resets list
> # passed all 36 test(s)
> 1..36
> *** 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
> ok 4 - unreadable directory in PATH
> # passed all 4 test(s)
> 1..4
> *** 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
> *** 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: 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 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 # skip sanity: gettext("") metadata is OK (missing GETTEXT_LOCALE)
> ok 9 # skip sanity: gettext(unknown) is passed through (missing GETTEXT_LOCALE)
> ok 10 # skip xgettext: C extraction of _() and N_() strings (missing GETTEXT_LOCALE)
> ok 11 # skip xgettext: C extraction with %s (missing GETTEXT_LOCALE)
> ok 12 # skip xgettext: Shell extraction (missing GETTEXT_LOCALE)
> ok 13 # skip xgettext: Shell extraction with $variable (missing GETTEXT_LOCALE)
> ok 14 # skip xgettext: Perl extraction (missing GETTEXT_LOCALE)
> ok 15 # skip xgettext: Perl extraction with %s (missing GETTEXT_LOCALE)
> ok 16 # skip sanity: Some gettext("") data for real locale (missing GETTEXT_LOCALE)
> # passed all 16 test(s)
> 1..16
> *** 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: No is_IS UTF-8 locale available
> # lib-gettext: No is_IS ISO-8859-1 locale available
> # run 1: Perl Git::I18N API (/usr/bin/perl /«PKGBUILDDIR»/t/t0202/test.pl)
> 1..8
> ok 1 - Testing Git::I18N with NO Perl gettext library
> ok 2 - Git::I18N is located at /«PKGBUILDDIR»/t/../perl/blib/lib/Git/I18N.pm
> ok 3 - sanity: Git::I18N has 1 export(s)
> ok 4 - sanity: Git::I18N exports everything by default
> ok 5 - sanity: __ has a $ prototype
> ok 6 - Passing a string through __() in the C locale works
> ok 7 # skip GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests
> ok 8 # skip GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests
> # test_external test Perl Git::I18N API was ok
> # test_external_without_stderr test no stderr: Perl Git::I18N API was ok
> *** t0203-gettext-setlocale-sanity.sh ***
> # lib-gettext: No is_IS UTF-8 locale available
> # lib-gettext: No is_IS ISO-8859-1 locale available
> ok 1 - git show a ISO-8859-1 commit under C locale
> ok 2 # skip git show a ISO-8859-1 commit under a UTF-8 locale (missing GETTEXT_LOCALE)
> # passed all 2 test(s)
> 1..2
> *** t0204-gettext-reencode-sanity.sh ***
> # lib-gettext: No is_IS UTF-8 locale available
> # lib-gettext: No is_IS ISO-8859-1 locale available
> ok 1 # skip gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic (missing GETTEXT_LOCALE)
> ok 2 # skip gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes (missing GETTEXT_LOCALE)
> ok 3 # skip gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Icelandic (missing GETTEXT_ISO_LOCALE)
> ok 4 # skip gettext: impossible ISO-8859-1 output (missing GETTEXT_ISO_LOCALE)
> ok 5 # skip gettext: Fetching a UTF-8 msgid -> UTF-8 (missing GETTEXT_LOCALE)
> ok 6 # skip gettext: Fetching a UTF-8 msgid -> ISO-8859-1 (missing GETTEXT_ISO_LOCALE)
> ok 7 # skip gettext.c: git init UTF-8 -> UTF-8 (missing GETTEXT_LOCALE)
> ok 8 # skip gettext.c: git init UTF-8 -> ISO-8859-1 (missing GETTEXT_ISO_LOCALE)
> # passed all 8 test(s)
> 1..8
> *** t0205-gettext-poison.sh ***
> # lib-gettext: No is_IS UTF-8 locale available
> # lib-gettext: No is_IS ISO-8859-1 locale available
> 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
> *** t1051-large-conversion.sh ***
> ok 1 - setup input tests
> ok 2 - autocrlf=true converts on input
> ok 3 - eol=crlf converts on input
> ok 4 - ident converts on input
> ok 5 - user-defined filters convert on input
> ok 6 - setup output tests
> ok 7 - autocrlf=true converts on output
> ok 8 - eol=crlf converts on output
> ok 9 - user-defined filters convert on output
> ok 10 - ident converts on output
> # passed all 10 test(s)
> 1..10
> *** 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 - refer config from subdirectory via GIT_CONFIG
> ok 56 - --set in alternative GIT_CONFIG
> ok 57 - rename section
> ok 58 - rename succeeded
> ok 59 - rename non-existing section
> ok 60 - rename succeeded
> ok 61 - rename another section
> ok 62 - rename succeeded
> ok 63 - rename a section with a var on the same line
> ok 64 - rename succeeded
> ok 65 - renaming empty section name is rejected
> ok 66 - renaming to bogus section is rejected
> ok 67 - remove section
> ok 68 - section was removed properly
> ok 69 - section ending
> ok 70 - numbers
> ok 71 - invalid unit
> ok 72 - bool
> ok 73 - invalid bool (--get)
> ok 74 - invalid bool (set)
> ok 75 - set --bool
> ok 76 - set --int
> ok 77 - get --bool-or-int
> ok 78 - set --bool-or-int
> ok 79 - set --path
> ok 80 - get --path
> ok 81 - get --path copes with unset $HOME
> ok 82 - quoting
> ok 83 - key with newline
> ok 84 - value with newline
> ok 85 - value continued on next line
> ok 86 - --null --list
> ok 87 - --null --get-regexp
> ok 88 - inner whitespace kept verbatim
> ok 89 - symlinked configuration
> ok 90 - nonexistent configuration
> ok 91 - symlink to nonexistent configuration
> ok 92 - check split_cmdline return
> ok 93 - git -c "key=value" support
> ok 94 - key sanity-checking
> ok 95 - git -c works with aliases of builtins
> ok 96 - git -c does not split values on equals
> ok 97 - git -c dies on bogus config
> ok 98 - git -c complains about empty key
> ok 99 - git -c complains about empty key and value
> ok 100 - git config --edit works
> ok 101 - git config --edit respects core.editor
> ok 102 - barf on syntax error
> ok 103 - barf on incomplete section header
> ok 104 - barf on incomplete string
> # passed all 104 test(s)
> 1..104
> *** 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: 't1304-default-acl.sh: 18: t1304-default-acl.sh: setfacl: not found'; return code: '127')
> 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
> *** t1305-config-include.sh ***
> ok 1 - include file by absolute path
> ok 2 - include file by relative path
> ok 3 - chained relative paths
> ok 4 - include paths get tilde-expansion
> ok 5 - include options can still be examined
> ok 6 - listing includes option and expansion
> ok 7 - single file lookup does not expand includes by default
> ok 8 - single file list does not expand includes by default
> ok 9 - writing config file does not expand includes
> ok 10 - config modification does not affect includes
> ok 11 - missing include files are ignored
> ok 12 - absolute includes from command line work
> ok 13 - relative includes from command line fail
> ok 14 - include cycles are detected
> # passed all 14 test(s)
> 1..14
> *** 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 "master@{May 25 2005}" (before history)
> ok 29 - Query master@{2005-05-25} (before history)
> ok 30 - Query "master@{May 26 2005 23:31:59}" (1 second before history)
> ok 31 - Query "master@{May 26 2005 23:32:00}" (exactly history start)
> ok 32 - Query "master@{May 26 2005 23:32:30}" (first non-creation change)
> ok 33 - Query "master@{2005-05-26 23:33:01}" (middle of history with gap)
> ok 34 - Query "master@{2005-05-26 23:38:00}" (middle of history)
> ok 35 - Query "master@{2005-05-26 23:43:00}" (exact end of history)
> ok 36 - Query "master@{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 master@{2005-05-26 23:30}:F (expect TEST)
> ok 41 - git cat-file blob master@{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/foo@bar' is valid
> ok 28 - ref name 'heads/v@{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 @{now} syntax shows reflog date (format=%gd)
> ok 9 - using --date= shows reflog date (multiline)
> ok 10 - using --date= shows reflog date (oneline)
> ok 11 - using --date= shows reflog date (format=%gd)
> ok 12 - log.date does not invoke "--date" magic (multiline)
> ok 13 - log.date does not invoke "--date" magic (oneline)
> ok 14 - log.date does not invoke "--date" magic (format=%gd)
> ok 15 - --date magic does not override explicit @{0} syntax
> ok 16 - empty reflog file
> # passed all 16 test(s)
> 1..16
> *** 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
> ok 6 - empty prefix is actually written out
> 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
> # passed all 31 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 - master@{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 - my-side@{upstream} resolves to correct full name
> ok 5 - my-side@{u} resolves to correct commit
> ok 6 - not-tracking@{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 my-side@{u} forks from the same
> ok 10 - merge my-side@{u} records the correct name
> ok 11 - branch -d other@{u}
> ok 12 - checkout other@{u}
> ok 13 - log -g other@{u}
> ok 14 - log -g other@{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
> ok 6 - checking out in a newly created repo
> # passed all 6 test(s)
> 1..6
> *** 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 warns orphaning 1 of 2 commits
> ok 16 - checkout warns orphaning 1 of 2 commits: output
> ok 17 - checkout does not warn leaving ref tip
> ok 18 - checkout does not warn leaving ref tip
> ok 19 - checkout does not warn leaving reachable commit
> ok 20 - checkout does not warn leaving reachable commit
> ok 21 - tracking count is accurate after orphan check
> # passed all 21 test(s)
> 1..21
> *** 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
> ok 77 - --merged catches invalid object names
> # passed all 77 test(s)
> 1..77
> *** 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 # skip notes timing with /usr/bin/time (missing USR_BIN_TIME of USR_BIN_TIME,NOT_EXPENSIVE)
> 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,USR_BIN_TIME 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,USR_BIN_TIME 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,USR_BIN_TIME 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
> ok 19 - switch cwd before committing notes merge
> # passed all 19 test(s)
> 1..19
> *** 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 - test-rebase@{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 - submodule conflict setup
> ok 45 - rebase -i continue with only submodule staged
> ok 46 - rebase -i continue with unstaged submodule
> ok 47 - avoid unnecessary reset
> ok 48 - reword
> ok 49 - rebase -i can copy notes
> ok 50 - rebase -i can copy notes over a fixup
> ok 51 - rebase while detaching HEAD
> ok 52 - always cherry-pick with --no-ff
> ok 53 - set up commits with funny messages
> ok 54 - rebase-i history with funny messages
> # still have 1 known breakage(s)
> # passed all remaining 53 test(s)
> 1..54
> *** 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
> ok 6 - rebase --onto outputs the invalid ref
> # passed all 6 test(s)
> 1..6
> *** 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 - advice from failed cherry-pick --no-commit
> ok 5 - failed cherry-pick sets CHERRY_PICK_HEAD
> ok 6 - successful cherry-pick does not set CHERRY_PICK_HEAD
> ok 7 - cherry-pick --no-commit does not set CHERRY_PICK_HEAD
> ok 8 - cherry-pick w/dirty tree does not set CHERRY_PICK_HEAD
> ok 9 - cherry-pick --strategy=resolve w/dirty tree does not set CHERRY_PICK_HEAD
> ok 10 - GIT_CHERRY_PICK_HELP suppresses CHERRY_PICK_HEAD
> ok 11 - git reset clears CHERRY_PICK_HEAD
> ok 12 - failed commit does not clear CHERRY_PICK_HEAD
> ok 13 - cancelled commit does not clear CHERRY_PICK_HEAD
> ok 14 - successful commit clears CHERRY_PICK_HEAD
> ok 15 - failed cherry-pick produces dirty index
> ok 16 - failed cherry-pick registers participants in index
> ok 17 - failed cherry-pick describes conflict in work tree
> ok 18 - diff3 -m style
> ok 19 - revert also handles conflicts sanely
> ok 20 - failed revert sets REVERT_HEAD
> ok 21 - successful revert does not set REVERT_HEAD
> ok 22 - revert --no-commit sets REVERT_HEAD
> ok 23 - revert w/dirty tree does not set REVERT_HEAD
> ok 24 - GIT_CHERRY_PICK_HELP does not suppress REVERT_HEAD
> ok 25 - git reset clears REVERT_HEAD
> ok 26 - failed commit does not clear REVERT_HEAD
> ok 27 - revert conflict, diff3 -m style
> # passed all 27 test(s)
> 1..27
> *** 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 --refresh with pathspec
> ok 22 - git add should fail atomically upon an unreadable file
> ok 23 - git add --ignore-errors
> ok 24 - git add (add.ignore-errors)
> ok 25 - git add (add.ignore-errors = false)
> ok 26 - --no-ignore-errors overrides config
> ok 27 - git add 'fo\[ou\]bar' ignores foobar
> ok 28 - git add to resolve conflicts on otherwise ignored path
> ok 29 - "add non-existent" should fail
> ok 30 - git add --dry-run of existing changed file
> ok 31 - git add --dry-run of non-existing file
> ok 32 - git add --dry-run of an existing file output
> ok 33 - git add --dry-run --ignore-missing of non-existing file
> ok 34 - git add --dry-run --ignore-missing of non-existing file output
> # passed all 34 test(s)
> 1..34
> *** 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)"
> ok 36 - patch mode ignores unmerged entries
> # passed all 36 test(s)
> 1..36
> *** 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 stash@{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 and file
> ok 2 - diff unchanged symlink and file
> ok 3 - diff removed symlink and file
> ok 4 - diff identical, but newly created symlink and file
> ok 5 - diff different symlink and file
> 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 - format-patch --stdout paginates
> ok 61 - format-patch --stdout pagination can be disabled
> 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 - unset default driver
> ok 22 - diff driver 'bibtex'
> ok 23 - diff driver 'cpp'
> ok 24 - diff driver 'csharp'
> ok 25 - diff driver 'fortran'
> ok 26 - diff driver 'html'
> ok 27 - diff driver 'java'
> ok 28 - diff driver 'matlab'
> ok 29 - diff driver 'objc'
> ok 30 - diff driver 'pascal'
> ok 31 - diff driver 'perl'
> ok 32 - diff driver 'php'
> ok 33 - diff driver 'python'
> ok 34 - diff driver 'ruby'
> ok 35 - diff driver 'tex'
> ok 36 - word-diff with diff.sbe
> ok 37 - word-diff with no newline at EOF
> ok 38 - setup history with two files
> ok 39 - wordRegex for the first file does not apply to the second
> # passed all 39 test(s)
> 1..39
> *** 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
> ok 41 - diff --submodule with objects referenced by alternates
> # passed all 41 test(s)
> 1..41
> *** 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
> *** t4052-stat-output.sh ***
> ok 1 - set up terminal for tests
> ok 2 - preparation
> ok 3 - format-patch: small change with long name gives more space to the name
> ok 4 - format-patch --stat=width: a long name is given more room when the bar is short
> ok 5 - format-patch --stat-width=width with long name
> ok 6 - format-patch --stat=...,name-width with long name
> ok 7 - format-patch --stat-name-width with long name
> ok 8 - diff: small change with long name gives more space to the name
> ok 9 - diff --stat=width: a long name is given more room when the bar is short
> ok 10 - diff --stat-width=width with long name
> ok 11 - diff --stat=...,name-width with long name
> ok 12 - diff --stat-name-width with long name
> ok 13 - show: small change with long name gives more space to the name
> ok 14 - show --stat=width: a long name is given more room when the bar is short
> ok 15 - show --stat-width=width with long name
> ok 16 - show --stat=...,name-width with long name
> ok 17 - show --stat-name-width with long name
> ok 18 - log: small change with long name gives more space to the name
> ok 19 - log --stat=width: a long name is given more room when the bar is short
> ok 20 - log --stat-width=width with long name
> ok 21 - log --stat=...,name-width with long name
> ok 22 - log --stat-name-width with long name
> ok 23 - preparation for big change tests
> ok 24 - format-patch ignores COLUMNS (big change)
> ok 25 - format-patch --graph ignores COLUMNS (big change)
> ok 26 - diff respects COLUMNS (big change)
> ok 27 - show respects COLUMNS (big change)
> ok 28 - show --graph respects COLUMNS (big change)
> ok 29 - log respects COLUMNS (big change)
> ok 30 - log --graph respects COLUMNS (big change)
> ok 31 - format-patch ignores not enough COLUMNS (big change)
> ok 32 - format-patch --graph ignores not enough COLUMNS (big change)
> ok 33 - diff respects not enough COLUMNS (big change)
> ok 34 - show respects not enough COLUMNS (big change)
> ok 35 - show --graph respects not enough COLUMNS (big change)
> ok 36 - log respects not enough COLUMNS (big change)
> ok 37 - log --graph respects not enough COLUMNS (big change)
> ok 38 - format-patch ignores statGraphWidth config
> ok 39 - format-patch --graph ignores statGraphWidth config
> ok 40 - diff respects statGraphWidth config
> ok 41 - show respects statGraphWidth config
> ok 42 - show --graph respects statGraphWidth config
> ok 43 - log respects statGraphWidth config
> ok 44 - log --graph respects statGraphWidth config
> ok 45 - format-patch --stat=width with big change
> ok 46 - format-patch --stat-width=width with big change
> ok 47 - format-patch --stat-graph-width with big change
> ok 48 - format-patch --stat-width=width --graph with big change
> ok 49 - format-patch --stat-graph-width --graph with big change
> ok 50 - diff --stat=width with big change
> ok 51 - diff --stat-width=width with big change
> ok 52 - diff --stat-graph-width with big change
> ok 53 - show --stat=width with big change
> ok 54 - show --stat-width=width with big change
> ok 55 - show --stat-graph-width with big change
> ok 56 - show --stat-width=width --graph with big change
> ok 57 - show --stat-graph-width --graph with big change
> ok 58 - log --stat=width with big change
> ok 59 - log --stat-width=width with big change
> ok 60 - log --stat-graph-width with big change
> ok 61 - log --stat-width=width --graph with big change
> ok 62 - log --stat-graph-width --graph with big change
> ok 63 - preparation for long filename tests
> ok 64 - format-patch --stat=width with big change is more balanced
> ok 65 - format-patch --stat=width --graph with big change is balanced
> ok 66 - diff --stat=width with big change is more balanced
> ok 67 - show --stat=width with big change is more balanced
> ok 68 - show --stat=width --graph with big change is balanced
> ok 69 - log --stat=width with big change is more balanced
> ok 70 - log --stat=width --graph with big change is balanced
> ok 71 - format-patch ignores COLUMNS (long filename)
> ok 72 - format-patch --graph ignores COLUMNS (long filename)
> ok 73 - diff respects COLUMNS (long filename)
> ok 74 - show respects COLUMNS (long filename)
> ok 75 - show --graph respects COLUMNS (long filename)
> ok 76 - log respects COLUMNS (long filename)
> ok 77 - log --graph respects COLUMNS (long filename)
> ok 78 - format-patch ignores prefix greater than COLUMNS (big change)
> ok 79 - format-patch --graph ignores prefix greater than COLUMNS (big change)
> ok 80 - diff respects prefix greater than COLUMNS (big change)
> ok 81 - show respects prefix greater than COLUMNS (big change)
> ok 82 - show --graph respects prefix greater than COLUMNS (big change)
> ok 83 - log respects prefix greater than COLUMNS (big change)
> ok 84 - log --graph respects prefix greater than COLUMNS (big change)
> ok 85 - merge --stat respects COLUMNS (big change)
> ok 86 - merge --stat respects COLUMNS (long filename)
> # passed all 86 test(s)
> 1..86
> *** t4053-diff-no-index.sh ***
> ok 1 - setup
> ok 2 - git diff --no-index directories
> # passed all 2 test(s)
> 1..2
> *** 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 --keep-non-patch really keeps the non-patch part
> ok 15 - am -3 falls back to 3-way merge
> ok 16 - am -3 -p0 can read --no-prefix patch
> ok 17 - am can rename a file
> ok 18 - am -3 can rename a file
> ok 19 - am -3 can rename a file after falling back to 3-way merge
> ok 20 - am -3 -q is quiet
> ok 21 - am pauses on conflict
> ok 22 - am --skip works
> ok 23 - am --resolved works
> ok 24 - am takes patches from a Pine mailbox
> ok 25 - am fails on mail without patch
> ok 26 - am fails on empty patch
> ok 27 - am works from stdin in subdirectory
> ok 28 - am works from file (relative path given) in subdirectory
> ok 29 - am works from file (absolute path given) in subdirectory
> ok 30 - am --committer-date-is-author-date
> ok 31 - am without --committer-date-is-author-date
> ok 32 - am --ignore-date
> ok 33 - am into an unborn branch
> ok 34 - am newline in subject
> ok 35 - am -q is quiet
> ok 36 - am empty-file does not infloop
> # passed all 36 test(s)
> 1..36
> *** 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"
> ok 33 - log --graph with diff and stats
> # passed all 33 test(s)
> 1..33
> *** 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
> ok 10 - NUL separation
> ok 11 - NUL termination
> ok 12 - NUL separation with --stat
> not ok 13 - NUL termination with --stat # TODO known breakage
> # still have 1 known breakage(s)
> # passed all remaining 12 test(s)
> 1..13
> *** 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
> *** t4209-log-pickaxe.sh ***
> ok 1 - setup
> ok 2 - log --grep
> ok 3 - log --grep --regexp-ignore-case
> ok 4 - log --grep -i
> ok 5 - log --author --regexp-ignore-case
> ok 6 - log --author -i
> ok 7 - log -G (nomatch)
> ok 8 - log -G (match)
> ok 9 - log -G --regexp-ignore-case (nomatch)
> ok 10 - log -G -i (nomatch)
> ok 11 - log -G --regexp-ignore-case (match)
> ok 12 - log -G -i (match)
> ok 13 - log -S (nomatch)
> ok 14 - log -S (match)
> ok 15 - log -S --regexp-ignore-case (match)
> ok 16 - log -S -i (match)
> ok 17 - log -S --regexp-ignore-case (nomatch)
> ok 18 - log -S -i (nomatch)
> # passed all 18 test(s)
> 1..18
> *** 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 - pack-objects with bogus arguments
> ok 4 - unpack without delta
> ok 5 - check unpack without delta
> ok 6 - pack with REF_DELTA
> ok 7 - unpack with REF_DELTA
> ok 8 - check unpack with REF_DELTA
> ok 9 - pack with OFS_DELTA
> ok 10 - unpack with OFS_DELTA
> ok 11 - check unpack with OFS_DELTA
> ok 12 - compare delta flavors
> ok 13 - use packed objects
> ok 14 - use packed deltified (REF_DELTA) objects
> ok 15 - use packed deltified (OFS_DELTA) objects
> ok 16 - survive missing objects/pack directory
> ok 17 - verify pack
> ok 18 - verify pack -v
> ok 19 - verify-pack catches mismatched .idx and .pack files
> ok 20 - verify-pack catches a corrupted pack signature
> ok 21 - verify-pack catches a corrupted pack version
> ok 22 - verify-pack catches a corrupted type/size of the 1st packed object data
> ok 23 - verify-pack catches a corrupted sum of the index file itself
> ok 24 - build pack index for an existing pack
> ok 25 - unpacking with --strict
> ok 26 - index-pack with --strict
> ok 27 - honor pack.packSizeLimit
> ok 28 - verify resulting packs
> ok 29 - tolerate packsizelimit smaller than biggest object
> ok 30 - verify resulting packs
> ok 31 - fake a SHA1 hash collision
> ok 32 - make sure index-pack detects the SHA1 collision
> # passed all 32 test(s)
> 1..32
> *** 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 - pack-objects --index-version=2, is not accepted
> ok 12 - index v2: force some 64-bit offsets with pack-objects
> ok 13 - index v2: verify a pack with some 64-bit offsets
> ok 14 - 64-bit offsets: should be different from previous index v2 results
> ok 15 - index v2: force some 64-bit offsets with index-pack
> ok 16 - 64-bit offsets: index-pack result should match pack-objects one
> ok 17 - index-pack --verify on 64-bit offset v2 (cheat)
> ok 18 - index-pack --verify on 64-bit offset v2
> ok 19 - [index v1] 1) stream pack to repository
> ok 20 - [index v1] 2) create a stealth corruption in a delta base reference
> ok 21 - [index v1] 3) corrupted delta happily returned wrong data
> ok 22 - [index v1] 4) confirm that the pack is actually corrupted
> ok 23 - [index v1] 5) pack-objects happily reuses corrupted data
> ok 24 - [index v1] 6) newly created pack is BAD !
> ok 25 - [index v2] 1) stream pack to repository
> ok 26 - [index v2] 2) create a stealth corruption in a delta base reference
> ok 27 - [index v2] 3) corrupted delta happily returned wrong data
> ok 28 - [index v2] 4) confirm that the pack is actually corrupted
> ok 29 - [index v2] 5) pack-objects refuses to reuse corrupted data
> ok 30 - [index v2] 6) verify-pack detects CRC mismatch
> ok 31 - running index-pack in the object store
> # passed all 31 test(s)
> 1..31
> *** 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 - single branch clone
> ok 7 - single branch object count
> ok 8 - clone shallow
> ok 9 - clone shallow object count
> ok 10 - clone shallow object count (part 2)
> ok 11 - fsck in shallow repo
> ok 12 - simple fetch in shallow repo
> ok 13 - no changes expected
> ok 14 - fetch same depth in shallow repo
> ok 15 - no changes expected
> ok 16 - add two more
> ok 17 - pull in shallow repo
> ok 18 - clone shallow object count
> ok 19 - add two more (part 2)
> ok 20 - deepening pull in shallow repo
> ok 21 - clone shallow object count
> ok 22 - deepening fetch in shallow repo
> ok 23 - clone shallow object count
> ok 24 - pull in shallow repo with missing merge base
> ok 25 - additional simple shallow deepenings
> ok 26 - clone shallow object count
> ok 27 - clone shallow without --no-single-branch
> ok 28 - clone shallow object count
> ok 29 - clone shallow with --branch
> ok 30 - clone shallow object count
> ok 31 - clone shallow with detached HEAD
> ok 32 - shallow clone pulling tags
> ok 33 - shallow cloning single tag
> ok 34 - setup tests for the --stdin parameter
> ok 35 - fetch refs from cmdline
> ok 36 - fetch refs from stdin
> ok 37 - fetch mixed refs from cmdline and stdin
> ok 38 - test duplicate refs from stdin
> # passed all 38 test(s)
> 1..38
> *** 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 uses remote ref names to describe new refs
> ok 13 - fetch must not resolve short tag name
> ok 14 - fetch can now resolve short remote name
> ok 15 - create bundle 1
> ok 16 - header of bundle looks right
> ok 17 - create bundle 2
> ok 18 - unbundle 1
> ok 19 - bundle 1 has only 3 files 
> ok 20 - unbundle 2
> ok 21 - bundle does not prerequisite objects
> ok 22 - bundle should be able to create a full history
> Skipping rsync tests because rsync was not found
> ok 23 - fetch with a non-applying branch.<name>.merge
> ok 24 - fetch from GIT URL with a non-applying branch.<name>.merge [1]
> ok 25 - fetch from GIT URL with a non-applying branch.<name>.merge [2]
> ok 26 - fetch from GIT URL with a non-applying branch.<name>.merge [3]
> ok 27 - quoting of a strangely named repo
> ok 28 - bundle should record HEAD correctly
> ok 29 - explicit fetch should not update tracking
> ok 30 - explicit pull should not update tracking
> ok 31 - configured fetch updates tracking
> ok 32 - pushing nonexistent branch by mistake should not segv
> ok 33 - auto tag following fetches minimum
> ok 34 - refuse to fetch into the current branch
> ok 35 - fetch into the current branch with --update-head-ok
> ok 36 - fetch --dry-run
> ok 37 - should be able to fetch with duplicate refspecs
> ok 38 - all boundary commits are excluded
> # passed all 38 test(s)
> 1..38
> *** 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
> ok 65 - push --prune
> ok 66 - push --prune refspec
> # passed all 66 test(s)
> 1..66
> *** 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 - progress messages go to tty
> ok 13 - progress messages do not go to non-tty
> ok 14 - progress messages go to non-tty (forced)
> ok 15 - push -q suppresses progress
> ok 16 - push --no-progress suppresses progress
> ok 17 - quiet push
> # 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
> *** t5528-push-default.sh ***
> ok 1 - setup bare remotes
> ok 2 - "upstream" pushes to configured upstream
> ok 3 - "upstream" does not push on unconfigured remote
> ok 4 - "upstream" does not push on unconfigured branch
> ok 5 - "upstream" does not push when remotes do not match
> # passed all 5 test(s)
> 1..5
> *** 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)
> *** t5570-git-daemon.sh ***
> # passed all 0 test(s)
> 1..0 # SKIP git-daemon testing disabled (define GIT_TEST_GIT_DAEMON 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 --mirror with detached HEAD
> ok 12 - clone --bare with detached HEAD
> ok 13 - clone --bare names the local repository <name>.git
> ok 14 - clone --mirror does not repeat tags
> ok 15 - clone to destination with trailing /
> ok 16 - clone to destination with extra trailing /
> ok 17 - clone to an existing empty directory
> ok 18 - clone to an existing non-empty directory
> ok 19 - clone to an existing path
> ok 20 - clone a void
> ok 21 - clone respects global branch.autosetuprebase
> ok 22 - respect url-encoding of file://
> ok 23 - do not query-string-decode + in URLs
> ok 24 - do not respect url-encoding of non-url path
> ok 25 - clone separate gitdir
> ok 26 - clone separate gitdir: output
> ok 27 - clone from .git file
> ok 28 - fetch from .git gitfile
> ok 29 - fetch from gitfile parent
> ok 30 - clone separate gitdir where target already exists
> ok 31 - clone --reference from original
> ok 32 - clone with more than one --reference
> ok 33 - clone from original with relative alternate
> ok 34 - clone checking out a tag
> # passed all 34 test(s)
> 1..34
> *** 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
> ok 22 - prepare branched repository
> ok 23 - fetch with incomplete alternates
> # passed all 23 test(s)
> 1..23
> *** 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
> ok 7 - ridiculously long subject in boundary
> # still have 2 known breakage(s)
> # passed all remaining 5 test(s)
> 1..7
> *** 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
> # 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 ***
> # passed all 0 test(s)
> 1..0 # SKIP skipping git-remote-hg tests, python not available
> *** 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
> ok 36 - single-character name is parsed correctly
> # passed all 36 test(s)
> 1..36
> *** 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
> ok 46 - do not follow renames for empty files
> # passed all 46 test(s)
> 1..46
> *** 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
> ok 7 - merge fast-forward octopus
> # passed all 7 test(s)
> 1..7
> *** 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 ***
> 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 - create signed tags
> ok 106 - basic atom: refs/tags/signed-empty subject
> ok 107 - basic atom: refs/tags/signed-empty contents:subject
> ok 108 - basic atom: refs/tags/signed-empty body
> ok 109 - basic atom: refs/tags/signed-empty contents:body
> ok 110 - basic atom: refs/tags/signed-empty contents:signature
> ok 111 - basic atom: refs/tags/signed-empty contents
> ok 112 - basic atom: refs/tags/signed-short subject
> ok 113 - basic atom: refs/tags/signed-short contents:subject
> ok 114 - basic atom: refs/tags/signed-short body
> ok 115 - basic atom: refs/tags/signed-short contents:body
> ok 116 - basic atom: refs/tags/signed-short contents:signature
> ok 117 - basic atom: refs/tags/signed-short contents
> ok 118 - basic atom: refs/tags/signed-long subject
> ok 119 - basic atom: refs/tags/signed-long contents:subject
> ok 120 - basic atom: refs/tags/signed-long body
> ok 121 - basic atom: refs/tags/signed-long contents:body
> ok 122 - basic atom: refs/tags/signed-long contents:signature
> ok 123 - basic atom: refs/tags/signed-long contents
> # 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 ***
> 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 - trying to verify an annotated non-signed tag should fail
> ok 57 - trying to verify a file-annotated non-signed tag should fail
> ok 58 - trying to verify two annotated non-signed tags should fail
> ok 59 - creating a signed tag with -m message should succeed
> ok 60 - sign with a given key id
> ok 61 - sign with an unknown id (1)
> ok 62 - sign with an unknown id (2)
> ok 63 - -u implies signed tag
> ok 64 - creating a signed tag with -F messagefile should succeed
> ok 65 - creating a signed tag with -F - should succeed
> ok 66 - -s implies annotated tag
> ok 67 - trying to create a signed tag with non-existing -F file should fail
> ok 68 - verifying a signed tag should succeed
> ok 69 - verifying two signed tags in one command should succeed
> ok 70 - verifying many signed and non-signed tags should fail
> ok 71 - verifying a forged tag should fail
> ok 72 - creating a signed tag with an empty -m message should succeed
> ok 73 - creating a signed tag with an empty -F messagefile should succeed
> ok 74 - extra blanks in the message for a signed tag should be removed
> ok 75 - creating a signed tag with a blank -m message should succeed
> ok 76 - creating a signed tag with blank -F file with spaces should succeed
> ok 77 - creating a signed tag with spaces and no newline should succeed
> ok 78 - creating a signed tag with a -F file with #comments should succeed
> ok 79 - creating a signed tag with #commented -m message should succeed
> ok 80 - creating a signed tag with #commented -F messagefile should succeed
> ok 81 - creating a signed tag with a #comment and no newline should succeed
> ok 82 - listing the one-line message of a signed tag should succeed
> ok 83 - listing the zero-lines message of a signed tag should succeed
> ok 84 - listing many message lines of a signed tag should succeed
> ok 85 - creating a signed tag pointing to a tree should succeed
> ok 86 - creating a signed tag pointing to a blob should succeed
> ok 87 - creating a signed tag pointing to another tag should succeed
> ok 88 - creating a signed tag with rfc1991
> ok 89 - reediting a signed tag body omits signature
> ok 90 - verifying rfc1991 signature
> ok 91 - list tag with rfc1991 signature
> ok 92 - verifying rfc1991 signature without --rfc1991
> ok 93 - list tag with rfc1991 signature without --rfc1991
> ok 94 - reediting a signed tag body omits signature
> ok 95 - git tag -s fails if gpg is misconfigured
> ok 96 - verify signed tag fails when public key is not present
> 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
> ok 117 - --points-at cannot be used in non-list mode
> ok 118 - --points-at finds lightweight tags
> ok 119 - --points-at finds annotated tags of commits
> ok 120 - --points-at finds annotated tags of tags
> ok 121 - multiple --points-at are OR-ed together
> # passed all 121 test(s)
> 1..121
> *** 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 editor
> ok 6 - Using EDITOR
> ok 7 - Using VISUAL
> ok 8 - Using core_editor
> ok 9 - Using GIT_EDITOR
> ok 10 - Using editor (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 - some commands use a pager
> not ok 5 - pager runs from subdir # TODO known breakage
> ok 6 - some commands do not use a pager
> ok 7 - no pager when stdout is a pipe
> ok 8 - no pager when stdout is a regular file
> ok 9 - git --paginate rev-list uses a pager
> ok 10 - no pager even with --paginate when stdout is a pipe
> ok 11 - no pager with --no-pager
> ok 12 - configuration can disable pager
> ok 13 - git config uses a pager if configured to
> ok 14 - configuration can enable pager (from subdir)
> ok 15 - tests can detect color
> ok 16 - no color when stdout is a regular file
> ok 17 - color when writing to a pager
> ok 18 - colors are suppressed by color.pager
> ok 19 - color when writing to a file intended for a pager
> ok 20 - colors are sent to pager for external commands
> ok 21 - setup: some aliases
> ok 22 - git log - default pager is used by default
> ok 23 - git log - PAGER overrides default pager
> ok 24 - git log - repository-local core.pager setting overrides PAGER
> ok 25 - git log - core.pager overrides PAGER from subdirectory
> ok 26 - git log - GIT_PAGER overrides core.pager
> ok 27 - git -p log - default pager is used by default
> ok 28 - git -p log - PAGER overrides default pager
> ok 29 - git -p log - repository-local core.pager setting overrides PAGER
> ok 30 - git -p log - core.pager overrides PAGER from subdirectory
> ok 31 - git -p log - GIT_PAGER overrides core.pager
> ok 32 - git aliasedlog - default pager is used by default
> ok 33 - git aliasedlog - PAGER overrides default pager
> ok 34 - git aliasedlog - repository-local core.pager setting overrides PAGER
> ok 35 - git aliasedlog - core.pager overrides PAGER from subdirectory
> ok 36 - git aliasedlog - GIT_PAGER overrides core.pager
> ok 37 - git -p aliasedlog - default pager is used by default
> ok 38 - git -p aliasedlog - PAGER overrides default pager
> ok 39 - git -p aliasedlog - repository-local core.pager setting overrides PAGER
> not ok 40 - git -p aliasedlog - core.pager overrides PAGER from subdirectory # TODO known breakage
> ok 41 - git -p aliasedlog - GIT_PAGER overrides core.pager
> ok 42 - git -p true - default pager is used by default
> ok 43 - git -p true - PAGER overrides default pager
> ok 44 - git -p true - repository-local core.pager setting overrides PAGER
> not ok 45 - git -p true - core.pager overrides PAGER from subdirectory # TODO known breakage
> ok 46 - git -p true - GIT_PAGER overrides core.pager
> ok 47 - git -p request-pull - default pager is used by default
> ok 48 - git -p request-pull - PAGER overrides default pager
> ok 49 - git -p request-pull - repository-local core.pager setting overrides PAGER
> not ok 50 - git -p request-pull - core.pager overrides PAGER from subdirectory # TODO known breakage
> ok 51 - git -p request-pull - GIT_PAGER overrides core.pager
> ok 52 - git -p - default pager is used by default
> ok 53 - git -p - PAGER overrides default pager
> not ok 54 - git -p - repository-local core.pager setting is not used # TODO known breakage
> ok 55 - git -p - core.pager is not used from subdirectory
> ok 56 - git -p - GIT_PAGER overrides core.pager
> not ok 57 - no pager for 'git -p nonsense' # TODO known breakage
> ok 58 - git shortlog - default pager is used by default
> ok 59 - git shortlog - PAGER overrides default pager
> ok 60 - git shortlog - repository-local core.pager setting overrides PAGER
> ok 61 - git shortlog - core.pager overrides PAGER from subdirectory
> ok 62 - git shortlog - GIT_PAGER overrides core.pager
> ok 63 - setup: configure shortlog not to paginate
> ok 64 - no pager for 'git shortlog'
> ok 65 - git shortlog - core.pager is not used from subdirectory
> ok 66 - git -p shortlog - default pager is used by default
> ok 67 - git -p shortlog - core.pager overrides PAGER from subdirectory
> ok 68 - git -p apply </dev/null - core.pager overrides PAGER from subdirectory
> ok 69 - command-specific pager
> ok 70 - command-specific pager overrides core.pager
> ok 71 - command-specific pager overridden by environment
> ok 72 - setup external command
> ok 73 - command-specific pager works for external commands
> ok 74 - sub-commands of externals use their own pager
> ok 75 - external command pagers override sub-commands
> # still have 6 known breakage(s)
> # passed all remaining 69 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 user@host:path
> ok 45 - moving the superproject does not break submodules
> # passed all 45 test(s)
> 1..45
> *** 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
> ok 32 - submodule add properly re-creates deeper level submodules
> ok 33 - submodule update properly revives a moved submodule
> # passed all 33 test(s)
> 1..33
> *** 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 superproject
> ok 4 - submodule add --reference
> ok 5 - after add: existence of info/alternates
> ok 6 - that reference gets used with add
> ok 7 - cloning superproject
> 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 - template "emptyness" check does not kick in with -F
> ok 14 - template "emptyness" check
> ok 15 - setup: commit message from file
> ok 16 - amend commit
> ok 17 - set up editor
> ok 18 - amend without launching editor
> ok 19 - --amend --edit
> ok 20 - -m --edit
> ok 21 - -m and -F do not mix
> ok 22 - using message from other commit
> ok 23 - editing message from other commit
> ok 24 - message from stdin
> ok 25 - overriding author from command line
> ok 26 - interactive add
> ok 27 - commit --interactive doesn't change index if editor aborts
> ok 28 - editor not invoked if -F is given
> ok 29 - partial commit that involves removal (1)
> ok 30 - partial commit that involves removal (2)
> ok 31 - partial commit that involves removal (3)
> ok 32 - amend commit to fix author
> ok 33 - amend commit to fix date
> ok 34 - commit complains about bogus date
> ok 35 - sign off (1)
> ok 36 - sign off (2)
> ok 37 - signoff gap
> ok 38 - signoff gap 2
> ok 39 - multiple -m
> ok 40 - amend commit to fix author
> ok 41 - git commit <file> with dirty index
> ok 42 - same tree (single parent)
> ok 43 - same tree (single parent) --allow-empty
> ok 44 - same tree (merge and amend merge)
> ok 45 - amend using the message from another commit
> ok 46 - amend using the message from a commit named with tag
> ok 47 - amend can copy notes
> # passed all 47 test(s)
> 1..47
> *** 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
> ok 11 - check the author in hook
> # passed all 11 test(s)
> 1..11
> *** 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 - status -s -z -b
> ok 12 - setup dir3
> ok 13 - status -uno
> ok 14 - status (status.showUntrackedFiles no)
> ok 15 - status -uno (advice.statusHints false)
> ok 16 - status -s -uno
> ok 17 - status -s (status.showUntrackedFiles no)
> ok 18 - status -unormal
> ok 19 - status (status.showUntrackedFiles normal)
> ok 20 - status -s -unormal
> ok 21 - status -s (status.showUntrackedFiles normal)
> ok 22 - status -uall
> ok 23 - status (status.showUntrackedFiles all)
> ok 24 - teardown dir3
> ok 25 - status -s -uall
> ok 26 - status -s (status.showUntrackedFiles all)
> ok 27 - status with relative paths
> ok 28 - status -s with relative paths
> ok 29 - status --porcelain ignores relative paths setting
> ok 30 - setup unique colors
> ok 31 - status with color.ui
> ok 32 - status with color.status
> ok 33 - status -s with color.ui
> ok 34 - status -s with color.status
> ok 35 - status -s -b with color.status
> ok 36 - status --porcelain ignores color.ui
> ok 37 - status --porcelain ignores color.status
> ok 38 - status --porcelain respects -b
> ok 39 - status without relative paths
> ok 40 - status -s without relative paths
> ok 41 - dry-run of partial commit excluding new file in index
> ok 42 - status refreshes the index
> ok 43 - setup status submodule summary
> ok 44 - status submodule summary is disabled by default
> ok 45 - status --untracked-files=all does not show submodule
> ok 46 - status -s submodule summary is disabled by default
> ok 47 - status -s --untracked-files=all does not show submodule
> ok 48 - status submodule summary
> ok 49 - status -s submodule summary
> ok 50 - status submodule summary (clean submodule): commit
> ok 51 - status -s submodule summary (clean submodule)
> ok 52 - status -z implies porcelain
> ok 53 - commit --dry-run submodule summary (--amend)
> ok 54 - status succeeds in a read-only repository
> ok 55 - --ignore-submodules=untracked suppresses submodules with untracked content
> ok 56 - .gitmodules ignore=untracked suppresses submodules with untracked content
> ok 57 - .git/config ignore=untracked suppresses submodules with untracked content
> ok 58 - --ignore-submodules=dirty suppresses submodules with untracked content
> ok 59 - .gitmodules ignore=dirty suppresses submodules with untracked content
> ok 60 - .git/config ignore=dirty suppresses submodules with untracked content
> ok 61 - --ignore-submodules=dirty suppresses submodules with modified content
> ok 62 - .gitmodules ignore=dirty suppresses submodules with modified content
> ok 63 - .git/config ignore=dirty suppresses submodules with modified content
> ok 64 - --ignore-submodules=untracked doesn't suppress submodules with modified content
> ok 65 - .gitmodules ignore=untracked doesn't suppress submodules with modified content
> ok 66 - .git/config ignore=untracked doesn't suppress submodules with modified content
> ok 67 - --ignore-submodules=untracked doesn't suppress submodule summary
> ok 68 - .gitmodules ignore=untracked doesn't suppress submodule summary
> ok 69 - .git/config ignore=untracked doesn't suppress submodule summary
> ok 70 - --ignore-submodules=dirty doesn't suppress submodule summary
> ok 71 - .gitmodules ignore=dirty doesn't suppress submodule summary
> ok 72 - .git/config ignore=dirty doesn't suppress submodule summary
> ok 73 - --ignore-submodules=all suppresses submodule summary
> not ok 74 - .gitmodules ignore=all suppresses submodule summary # TODO known breakage
> not ok 75 - .git/config ignore=all suppresses submodule summary # TODO known breakage
> # still have 2 known breakage(s)
> # passed all remaining 73 test(s)
> 1..75
> *** 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 ***
> ok 1 - create signed commits
> ok 2 - show signatures
> ok 3 - detect fudged signature
> ok 4 - detect fudged signature with NUL
> ok 5 - amending already signed commit
> # 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 ***
> 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 - merge --ff-only tag
> ok 48 - merge --no-edit tag should skip editor
> # 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 reduces irrelevant remote heads
> 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 - pull c2, c3, c4, c5 into c1
> ok 4 - setup
> ok 5 - merge E and I
> ok 6 - verify merge result
> ok 7 - add conflicts
> ok 8 - merge E2 and I2, causing a conflict and resolve it
> ok 9 - verify merge result
> ok 10 - fast-forward to redundant refs
> ok 11 - verify merge result
> ok 12 - merge up-to-date redundant refs
> ok 13 - verify merge result
> # passed all 13 test(s)
> 1..13
> *** 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
> ok 4 - do not bother loosening old objects
> # passed all 4 test(s)
> 1..4
> *** 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, multiple patterns
> ok 56 - grep -f, ignore empty lines
> ok 57 - grep -f, ignore empty lines, read patterns from stdin
> ok 58 - grep -q, silently report matches
> ok 59 - grep -C1, hunk mark between files
> ok 60 - grep -C1 hunk mark between files
> ok 61 - log grep setup
> ok 62 - log grep (1)
> ok 63 - log grep (2)
> ok 64 - log grep (3)
> ok 65 - log grep (4)
> ok 66 - log grep (5)
> ok 67 - log grep (6)
> ok 68 - log --grep --author implicitly uses all-match
> ok 69 - log with multiple --author uses union
> ok 70 - log with --grep and multiple --author uses all-match
> ok 71 - log with --grep and multiple --author uses all-match
> ok 72 - grep with CE_VALID file
> ok 73 - grep -p with userdiff
> ok 74 - grep -p
> ok 75 - grep -p -B5
> ok 76 - grep -W
> ok 77 - grep -W with userdiff
> ok 78 - grep from a subdirectory to search wider area (1)
> ok 79 - grep from a subdirectory to search wider area (2)
> ok 80 - grep -Fi
> ok 81 - outside of git repository
> ok 82 - inside git repository but with --no-index
> ok 83 - setup double-dash tests
> ok 84 - grep -- pattern
> ok 85 - grep -- pattern -- pathspec
> ok 86 - grep -e pattern -- path
> ok 87 - grep -e -- -- path
> ok 88 # skip grep --perl-regexp pattern (missing LIBPCRE)
> ok 89 # skip grep -P pattern (missing LIBPCRE)
> ok 90 - grep pattern with grep.extendedRegexp=true
> ok 91 # skip grep -P pattern with grep.extendedRegexp=true (missing LIBPCRE)
> ok 92 # skip grep -P -v pattern (missing LIBPCRE)
> ok 93 # skip grep -P -i pattern (missing LIBPCRE)
> ok 94 # skip grep -P -w pattern (missing LIBPCRE)
> ok 95 - grep -G invalidpattern properly dies 
> ok 96 - grep -E invalidpattern properly dies 
> ok 97 # skip grep -P invalidpattern properly dies  (missing LIBPCRE)
> ok 98 - grep -G -E -F pattern
> ok 99 - grep -E -F -G pattern
> ok 100 - grep -F -G -E pattern
> ok 101 - grep -G -F -P -E pattern
> ok 102 # skip grep -G -F -E -P pattern (missing LIBPCRE)
> ok 103 - grep --color, separator
> ok 104 - grep --break
> ok 105 - grep --break with context
> ok 106 - grep --heading
> ok 107 - mimic ack-grep --group
> ok 108 # skip grep -E "^ " (missing LIBPCRE)
> ok 109 # skip grep -P "^ " (missing LIBPCRE)
> # passed all 109 test(s)
> 1..109
> *** 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 - setup: have pipes?
> ok 2 - empty dump
> ok 3 - v4 dumps not supported
> not ok 4 - empty revision # TODO known breakage
> ok 5 - empty properties
> ok 6 - author name and commit message
> ok 7 - unsupported properties are ignored
> not ok 8 - timestamp and empty file # TODO known breakage
> ok 9 - directory with files
> ok 10 - branch name with backslash
> ok 11 - node without action
> ok 12 - action: add node without text
> not ok 13 - change file mode but keep old content # TODO known breakage
> ok 14 - NUL in property value
> ok 15 - NUL in log message, file content, and property name
> ok 16 - change file mode and reiterate content
> ok 17 - deltas supported
> ok 18 - property deltas supported
> ok 19 - properties on /
> ok 20 - deltas for typechange
> ok 21 - deltas need not consume the whole preimage
> ok 22 - no hang for delta trying to read past end of preimage
> ok 23 - set up svn repo
> ok 24 - t9135/svn.dump
> # still have 3 known breakage(s)
> # passed all remaining 21 test(s)
> 1..24
> *** t9011-svn-da.sh ***
> ok 1 - reject empty delta
> ok 2 - delta can empty file
> ok 3 - reject svndiff2
> ok 4 - one-window empty delta
> ok 5 - reject incomplete window header
> ok 6 - reject declared delta longer than actual delta
> ok 7 - two-window empty delta
> ok 8 - noisy zeroes
> ok 9 - reject variable-length int in magic
> ok 10 - reject truncated integer
> ok 11 - nonempty (but unused) preimage view
> ok 12 - preimage view: right endpoint cannot backtrack
> ok 13 - preimage view: left endpoint can advance
> ok 14 - preimage view: offsets compared by value
> ok 15 - preimage view: reject truncated preimage
> ok 16 - forbid unconsumed inline data
> ok 17 - reject truncated inline data
> ok 18 - reject truncated inline data (after instruction section)
> ok 19 - copyfrom_data
> ok 20 - multiple copyfrom_data
> ok 21 - incomplete multiple insn
> ok 22 - catch attempt to copy missing data
> ok 23 - copyfrom target to repeat data
> ok 24 - copyfrom target out of order
> ok 25 - catch copyfrom future
> ok 26 - copy to sustain
> ok 27 - catch copy that overflows
> ok 28 - copyfrom source
> ok 29 - copy backwards
> ok 30 - offsets are relative to window
> ok 31 - example from notes/svndiff
> # passed all 31 test(s)
> 1..31
> *** t9100-git-svn-basic.sh ***
> define NO_SVN_TESTS to skip git svn tests
> # UTF-8 locale not set, some tests skipped ()
> 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" &&
> #		git svn set-tree --find-copies-harder --rmdir \
> #			${remotes_git_svn}..mybranch3 &&
> #		svn_cmd up "$SVN_TREE" &&
> #		test -d "$SVN_TREE"/bar/zzz &&
> #		test -e "$SVN_TREE"/bar/zzz/yyy
> #	
> 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 file
> #	
> #		rm exec.sh &&
> #		ln -s file 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 file &&
> #		ln -s file exec-2.sh &&
> #		git update-index --add file 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"/file &&
> #		test -h "$SVN_TREE"/exec-2.sh
> not ok - 13 modify a symlink to become a file
> #	
> #		echo git help >help &&
> #		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:  (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

The full build log is available from:
   http://people.debian.org/~lucas/logs/2012/06/24/git_1.7.10.4-1_unstable.log

A list of current common problems and possible solutions is available at 
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.




Information forwarded to debian-bugs-dist@lists.debian.org, Gerrit Pape <pape@smarden.org>:
Bug#678764; Package src:git. (Sun, 24 Jun 2012 15:42:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonathan Nieder <jrnieder@gmail.com>:
Extra info received and forwarded to list. Copy sent to Gerrit Pape <pape@smarden.org>. (Sun, 24 Jun 2012 15:42:05 GMT) Full text and rfc822 format available.

Message #10 received at 678764@bugs.debian.org (full text, mbox):

From: Jonathan Nieder <jrnieder@gmail.com>
To: Lucas Nussbaum <lucas@lucas-nussbaum.net>
Cc: 678764@bugs.debian.org
Subject: Re: git: FTBFS: tests failed
Date: Sun, 24 Jun 2012 10:39:02 -0500
reassign 678764 git-svn 1:1.7.10.4-1
forcemerge 678137 678764
quit

Hi,

Lucas Nussbaum wrote:

> During a rebuild of all packages in sid, your package failed to build on
> amd64.

Thanks for reporting it.  This is bug#678137.

Hope that helps,
Jonathan




Bug reassigned from package 'src:git' to 'git-svn'. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:07 GMT) Full text and rfc822 format available.

No longer marked as found in versions git/1:1.7.10.4-1. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:08 GMT) Full text and rfc822 format available.

Marked as found in versions git/1:1.7.10.4-1. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:09 GMT) Full text and rfc822 format available.

Set Bug forwarded-to-address to 'http://thread.gmane.org/gmane.comp.version-control.git/184644'. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:09 GMT) Full text and rfc822 format available.

Marked as found in versions git/1:1.7.2.5-3. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:10 GMT) Full text and rfc822 format available.

Added tag(s) upstream and experimental. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:11 GMT) Full text and rfc822 format available.

Merged 678137 678764 Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:12 GMT) Full text and rfc822 format available.

Marked as found in versions git/1:1.7.2.5-1. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:42:19 GMT) Full text and rfc822 format available.

Marked as found in versions git/1:1.7.10-1. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sun, 24 Jun 2012 15:45:10 GMT) Full text and rfc822 format available.

Removed tag(s) wheezy. Request was from Gerrit Pape <pape@smarden.org> to control@bugs.debian.org. (Tue, 28 Aug 2012 09:33:05 GMT) Full text and rfc822 format available.

Added indication that bug 678764 blocks 683794 Request was from Mehdi Dogguy <mehdi@dogguy.org> to 683794-submit@bugs.debian.org. (Mon, 10 Sep 2012 09:48:06 GMT) Full text and rfc822 format available.

Added tag(s) fixed-upstream. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Thu, 13 Sep 2012 15:21:10 GMT) Full text and rfc822 format available.

Added tag(s) patch. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Tue, 09 Oct 2012 10:27:08 GMT) Full text and rfc822 format available.

Message #37 received at 678137-close@bugs.debian.org (full text, mbox):

From: Jonathan Nieder <jrnieder@gmail.com>
To: 678137-close@bugs.debian.org
Subject: Bug#678137: fixed in git 1:1.7.10.4-2
Date: Thu, 01 Nov 2012 14:47:51 +0000
Source: git
Source-Version: 1:1.7.10.4-2

We believe that the bug you reported is fixed in the latest version of
git, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 678137@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jonathan Nieder <jrnieder@gmail.com> (supplier of updated git package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Fri, 12 Oct 2012 13:27:36 -0700
Source: git
Binary: git git-man git-core git-doc git-arch git-cvs git-svn git-email git-daemon-run git-daemon-sysvinit git-gui gitk git-el gitweb git-all
Architecture: source i386 all
Version: 1:1.7.10.4-2
Distribution: unstable
Urgency: low
Maintainer: Gerrit Pape <pape@smarden.org>
Changed-By: Jonathan Nieder <jrnieder@gmail.com>
Description: 
 git        - fast, scalable, distributed revision control system
 git-all    - fast, scalable, distributed revision control system (all subpacka
 git-arch   - fast, scalable, distributed revision control system (arch interop
 git-core   - fast, scalable, distributed revision control system (obsolete)
 git-cvs    - fast, scalable, distributed revision control system (cvs interope
 git-daemon-run - fast, scalable, distributed revision control system (git-daemon s
 git-daemon-sysvinit - fast, scalable, distributed revision control system (git-daemon s
 git-doc    - fast, scalable, distributed revision control system (documentatio
 git-el     - fast, scalable, distributed revision control system (emacs suppor
 git-email  - fast, scalable, distributed revision control system (email add-on
 git-gui    - fast, scalable, distributed revision control system (GUI)
 git-man    - fast, scalable, distributed revision control system (manual pages
 git-svn    - fast, scalable, distributed revision control system (svn interope
 gitk       - fast, scalable, distributed revision control system (revision tre
 gitweb     - fast, scalable, distributed revision control system (web interfac
Closes: 587650 678137
Changes: 
 git (1:1.7.10.4-2) unstable; urgency=low
 .
   * debian/diff:
     * 0013...0030: new from the upstream 'master' branch: git svn:
       adapt to svn 1.7 changes:
       * normalize paths and URLs passed to Subversion (thx Michael G.
         Schwern; closes: #678137)
       * use correct "svn cp" syntax when checking git svn's mangling
         of @-signs in branch names (svn became stricter).
       * commit filetype changes between a regular file and symlink as
         replacement (deletion followed by addition) instead of
         modification of files.  Otherwise, clients pulling the change
         with "svn update" hit an assertion failure (svn issue 4091).
     * 0031-git-svn-use-YAML-format-...diff: new from 1.7.11: git svn:
       use YAML format for mergeinfo cache when possible.
   * debian/control: git-svn: Depends: libyaml-perl for platform- and
     version-independent .git/svn/.caches format; Build-Depends:
     libyaml-perl for tests (thx Tim Retout for the analysis; closes:
     #587650).
Checksums-Sha1: 
 aedf1ad2da02097c035b79087a051b742730c27b 1978 git_1.7.10.4-2.dsc
 a9eb7be02b689a7e415aca34ee241cb630829947 521778 git_1.7.10.4-2.diff.gz
 543861240a43cc398166de9dc09e4a484b384255 6560854 git_1.7.10.4-2_i386.deb
 30fd9356f75398175632a9cd547202adc5e3ed37 2280716 git-doc_1.7.10.4-2_all.deb
 a7ea8c90b6b976ab3d4d7c6a5a781db74fc322d6 463434 git-arch_1.7.10.4-2_all.deb
 7be0f418036f98b6b7ee92ccaddaac5f7ad3f23f 533006 git-cvs_1.7.10.4-2_all.deb
 da193d008469bd1e5ae3b0e3c5376890a8fa924b 521314 git-svn_1.7.10.4-2_all.deb
 a10d353e98ac384f7020f780fe046cc1ac5b44b0 450484 git-daemon-run_1.7.10.4-2_all.deb
 c6dd968e8afb44016942fa24aa7ac037a5a948d4 451606 git-daemon-sysvinit_1.7.10.4-2_all.deb
 d2fd2a0d69151a32cccbae508cf243f42757826e 469130 git-email_1.7.10.4-2_all.deb
 f81ca28e787397447ece23098e3771c38042b00c 727260 git-gui_1.7.10.4-2_all.deb
 9f59552aac943afdc3731853d92c8954a0a87d76 576282 gitk_1.7.10.4-2_all.deb
 04d9996cd52671203fd83591f887a0f766ad26e9 453094 gitweb_1.7.10.4-2_all.deb
 25f85d9cdd588ddbe41afdedf7e8e0139aeb4477 448838 git-all_1.7.10.4-2_all.deb
 504e14226bb3aee12614f847ef2c766d4e2d9c15 1338 git-core_1.7.10.4-2_all.deb
 9f4d5ef38838051b6442a5b1b2688115eedb0915 470882 git-el_1.7.10.4-2_all.deb
 67c1de3e22331abca5b1fba559ca75619b040e7f 1074480 git-man_1.7.10.4-2_all.deb
Checksums-Sha256: 
 db6c1c23fe0fd84b9be8637d7699ba6bb3bfba477fe294f79385b19a437a1394 1978 git_1.7.10.4-2.dsc
 6f660d2afc0553d404e15db110b0d105dfa54b21ae7475269970496b5dbd2237 521778 git_1.7.10.4-2.diff.gz
 f2cfa683cb7a2c58b53c5a618399820d1ae05e94bf2ff62ed9c2490aa383f0e8 6560854 git_1.7.10.4-2_i386.deb
 28b84fff03c73ce3f30783d6503d8ae821b033ed7d3b14192e107e8325460306 2280716 git-doc_1.7.10.4-2_all.deb
 031ad85dc2a583ae877655a52e1a3fc2c8e51703803ad2013e81dfa984f7c589 463434 git-arch_1.7.10.4-2_all.deb
 3428cb78475cf4bad128377513b67d6802e701e87269c3a54b557b6ff5b4f8c0 533006 git-cvs_1.7.10.4-2_all.deb
 1bdf6e08633023016cc2724b5699e307009c9f9cb8b1f91f0a2ead2f272cd2fb 521314 git-svn_1.7.10.4-2_all.deb
 63a87302732d32d7a9bacaaa06057f9eea7891721b8c40485cbed4776536ab9f 450484 git-daemon-run_1.7.10.4-2_all.deb
 9e0f87910dc19979692354a7e192b77cebece436f4b1936c58d3b65ffd1816df 451606 git-daemon-sysvinit_1.7.10.4-2_all.deb
 c2a06d8129094c143a10347bff15835292e78fa8daadf20cab6a829f49283400 469130 git-email_1.7.10.4-2_all.deb
 692b3cbbd031a197a27145bdab40df1a0b8e70db8417f5d748ef778adf0d55a6 727260 git-gui_1.7.10.4-2_all.deb
 0057b2376b483eb0b479a1c879961761e0e43bbc02db4d439e748bc1079086c1 576282 gitk_1.7.10.4-2_all.deb
 e1acae429860e35be60e7e933e3f407a998828b7e1d8251db0c751187a353487 453094 gitweb_1.7.10.4-2_all.deb
 7d517a0c382181451fa8835fee1b037c49d58f2266a2dfe9a734f010986a89d3 448838 git-all_1.7.10.4-2_all.deb
 9f96d9491673343bf943f2b531b58d0def814f396d350e379978941d1336c18f 1338 git-core_1.7.10.4-2_all.deb
 b50c8436a275b41b7841db2e9fe4508cb3d4c377f33b39fafdaf4fe95f85657b 470882 git-el_1.7.10.4-2_all.deb
 fe17b6a422353377748a725cfc4489cf48b44684bdfa9b64fae0b7c5d8bda09b 1074480 git-man_1.7.10.4-2_all.deb
Files: 
 c5c2cbe2a1b52c665177c02331d9dafe 1978 vcs optional git_1.7.10.4-2.dsc
 508ced975f1cf6394efc695a30a909f4 521778 vcs optional git_1.7.10.4-2.diff.gz
 e11416a4d7ed3f426bda5010da633877 6560854 vcs optional git_1.7.10.4-2_i386.deb
 194e6132281b35da3d3a9a802695e28f 2280716 doc optional git-doc_1.7.10.4-2_all.deb
 0cc8720c0af6f23ded72b592c135f034 463434 vcs optional git-arch_1.7.10.4-2_all.deb
 b761a783167f1b833131e8cc1632344f 533006 vcs optional git-cvs_1.7.10.4-2_all.deb
 bf1d7c2c0d06f5a7095d3eb846de3d21 521314 vcs optional git-svn_1.7.10.4-2_all.deb
 9c913312cb00ec6a98c85283613a6a83 450484 vcs optional git-daemon-run_1.7.10.4-2_all.deb
 87387506a22d5f258b3f5e768cfd7e06 451606 vcs extra git-daemon-sysvinit_1.7.10.4-2_all.deb
 890756f423da7e3c64cc14e36bbe216c 469130 vcs optional git-email_1.7.10.4-2_all.deb
 7cbeb68b2f862b99cef0eb592551f502 727260 vcs optional git-gui_1.7.10.4-2_all.deb
 f9531b81958db44e0c61a3cdacecb6ba 576282 vcs optional gitk_1.7.10.4-2_all.deb
 1d1d491518546732ad1d23c78b1050ee 453094 vcs optional gitweb_1.7.10.4-2_all.deb
 64a4afd542cc37ce0468ccc21b297ee6 448838 vcs optional git-all_1.7.10.4-2_all.deb
 6576f7a118c293aa7db2c8b68c221ea4 1338 vcs optional git-core_1.7.10.4-2_all.deb
 ceb311636d431176c3e08f00617b3e03 470882 vcs optional git-el_1.7.10.4-2_all.deb
 2b958d6c65b60955dc3507269fe98701 1074480 doc optional git-man_1.7.10.4-2_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlCSfxUACgkQ+C5cwEsrK57SAwCdGwCqEMCpIPXcPtGTXX7yXbty
IGAAoKl1jxijXydVXUh9KsXiwaa2zrAv
=VH/L
-----END PGP SIGNATURE-----




Added tag(s) jessie. Request was from Julien Cristau <jcristau@debian.org> to control@bugs.debian.org. (Thu, 18 Apr 2013 17:38:06 GMT) Full text and rfc822 format available.

Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Sat, 15 Jun 2013 07:37:09 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Fri Apr 18 17:11:05 2014; Machine Name: beach.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.