# HG changeset patch # User Craig Mohrman # Date 1428081602 25200 # Node ID 253de46fd78c014dd5d88746590c1e4cd8cec46f # Parent 150852e281c4adc8434296baab641ce6fb06b275 20761309 problem in UTILITY/GIT 20460364 GIT should have some master test results to compare against diff -r 150852e281c4 -r 253de46fd78c components/git/Makefile --- a/components/git/Makefile Fri Apr 03 10:46:51 2015 -0600 +++ b/components/git/Makefile Fri Apr 03 10:20:02 2015 -0700 @@ -69,6 +69,10 @@ COMPONENT_INSTALL_ENV+= PERL_LIB=$(shell $(PERL) -MConfig -e 'print "$$Config{installvendorarch}"') COMPONENT_INSTALL_ARGS+= INSTALL="$(INSTALL)" +# get rid of terminal escape codes in test output +COMPONENT_TEST_ENV = TERM=dumb +# many failures; keep going; later versions of git are much cleaner +COMPONENT_TEST_ARGS += -k -i COMPONENT_TEST_TARGETS = test # This runs configure but configure doesn't generate a Makefile. diff -r 150852e281c4 -r 253de46fd78c components/git/patches/imap-send.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/git/patches/imap-send.patch Fri Apr 03 10:20:02 2015 -0700 @@ -0,0 +1,120 @@ +This patch fixes CVE-2013-0308. +It was created from a diff between the version 1.8.1.4 of this file +from the community and the current one. The only changes to this file +are for addressing this CVE. +Here is the community diff: +https://github.com/gitster/git/commit/0ee7198f457c8ea031b09b528cfd88f0f0e630d8 + +--- git-1.7.9.2/imap-send.c_orig 2012-02-22 18:04:18.000000000 -0800 ++++ git-1.7.9.2/imap-send.c 2015-03-25 12:23:29.465800340 -0700 +@@ -31,6 +31,7 @@ + #else + #include + #include ++#include + #endif + + struct store_conf { +@@ -266,12 +267,64 @@ + } + } + ++#ifdef NO_OPENSSL + static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int verify) + { +-#ifdef NO_OPENSSL + fprintf(stderr, "SSL requested but SSL support not compiled in\n"); + return -1; ++} ++ + #else ++ ++static int host_matches(const char *host, const char *pattern) ++{ ++ if (pattern[0] == '*' && pattern[1] == '.') { ++ pattern += 2; ++ if (!(host = strchr(host, '.'))) ++ return 0; ++ host++; ++ } ++ ++ return *host && *pattern && !strcasecmp(host, pattern); ++} ++ ++static int verify_hostname(X509 *cert, const char *hostname) ++{ ++ int len; ++ X509_NAME *subj; ++ char cname[1000]; ++ int i, found; ++ STACK_OF(GENERAL_NAME) *subj_alt_names; ++ ++ /* try the DNS subjectAltNames */ ++ found = 0; ++ if ((subj_alt_names = X509_get_ext_d2i(cert, NID_subject_alt_name, NULL, NULL))) { ++ int num_subj_alt_names = sk_GENERAL_NAME_num(subj_alt_names); ++ for (i = 0; !found && i < num_subj_alt_names; i++) { ++ GENERAL_NAME *subj_alt_name = sk_GENERAL_NAME_value(subj_alt_names, i); ++ if (subj_alt_name->type == GEN_DNS && ++ strlen((const char *)subj_alt_name->d.ia5->data) == (size_t)subj_alt_name->d.ia5->length && ++ host_matches(hostname, (const char *)(subj_alt_name->d.ia5->data))) ++ found = 1; ++ } ++ sk_GENERAL_NAME_pop_free(subj_alt_names, GENERAL_NAME_free); ++ } ++ if (found) ++ return 0; ++ ++ /* try the common name */ ++ if (!(subj = X509_get_subject_name(cert))) ++ return error("cannot get certificate subject"); ++ if ((len = X509_NAME_get_text_by_NID(subj, NID_commonName, cname, sizeof(cname))) < 0) ++ return error("cannot get certificate common name"); ++ if (strlen(cname) == (size_t)len && host_matches(hostname, cname)) ++ return 0; ++ return error("certificate owner '%s' does not match hostname '%s'", ++ cname, hostname); ++} ++ ++static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int verify) ++{ + #if (OPENSSL_VERSION_NUMBER >= 0x10000000L) + const SSL_METHOD *meth; + #else +@@ -279,6 +332,7 @@ + #endif + SSL_CTX *ctx; + int ret; ++ X509 *cert; + + SSL_library_init(); + SSL_load_error_strings(); +@@ -322,9 +376,18 @@ + return -1; + } + ++ if (verify) { ++ /* make sure the hostname matches that of the certificate */ ++ cert = SSL_get_peer_certificate(sock->ssl); ++ if (!cert) ++ return error("unable to get peer certificate."); ++ if (verify_hostname(cert, server.host) < 0) ++ return -1; ++ } ++ + return 0; +-#endif + } ++#endif + + static int socket_read(struct imap_socket *sock, char *buf, int len) + { +@@ -1022,7 +1085,7 @@ + + ret = socket_write(&ctx->imap->buf.sock, response, strlen(response)); + if (ret != strlen(response)) +- return error("IMAP error: sending response failed\n"); ++ return error("IMAP error: sending response failed"); + + free(response); + diff -r 150852e281c4 -r 253de46fd78c components/git/patches/t_Makefile.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/git/patches/t_Makefile.patch Fri Apr 03 10:20:02 2015 -0700 @@ -0,0 +1,14 @@ +The ordering to the tests was non-deterministic without sorting the list. +This will be fed back to the community. + +--- git-1.7.9.2/t/Makefile_orig 2015-03-26 14:29:33.733092028 -0700 ++++ git-1.7.9.2/t/Makefile 2015-03-26 14:29:53.247281197 -0700 +@@ -17,7 +17,7 @@ + # Shell quote; + SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) + +-T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) ++T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)) + TSVN = $(wildcard t91[0-9][0-9]-*.sh) + TGITWEB = $(wildcard t95[0-9][0-9]-*.sh) + diff -r 150852e281c4 -r 253de46fd78c components/git/test/results-64.master --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/git/test/results-64.master Fri Apr 03 10:20:02 2015 -0700 @@ -0,0 +1,12605 @@ +make[1]: Entering directory `$(@D)' + SUBDIR gitweb + SUBDIR ../ +make[3]: `GIT-VERSION-FILE' is up to date. + GEN git-instaweb + SUBDIR git-gui + SUBDIR gitk-git +make[2]: Nothing to be done for `all'. + SUBDIR perl +mkdir -p blib/lib +rm -f blib/lib/Git.pm; cp Git.pm blib/lib/ +rm -f blib/lib/Error.pm +cp private-Error.pm blib/lib/Error.pm + SUBDIR git_remote_helpers + SUBDIR templates +/usr/gnu/bin/make -C t/ all +make[2]: Entering directory `$(@D)/t' +rm -f -r test-results +/usr/gnu/bin/make aggregate-results-and-cleanup +make[3]: Entering directory `$(@D)/t' +*** t0000-basic.sh *** +ok 1 - .git/objects should be empty after git init in an empty repo. +ok 2 - .git/objects should have 3 subdirectories. +ok 3 - success is reported like this +not ok 4 - pretend we have a known breakage # TODO known breakage +ok 5 - pretend we have fixed a known breakage (run in sub test-lib) +ok 6 - test runs if prerequisite is satisfied +ok 7 # skip unmet prerequisite causes test to be skipped (missing DONTHAVEIT) +ok 8 - test runs if prerequisites are satisfied +ok 9 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of HAVEIT,DONTHAVEIT) +ok 10 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of DONTHAVEIT,HAVEIT) +ok 11 - tests clean up after themselves +ok 12 - tests clean up even on failures +ok 13 - git update-index without --add should fail adding. +ok 14 - git update-index with --add should succeed. +ok 15 - writing tree out with git write-tree +ok 16 - validate object ID of a known tree. +ok 17 - git update-index without --remove should fail removing. +ok 18 - git update-index with --remove should be able to remove. +ok 19 - git write-tree should be able to write an empty tree. +ok 20 - validate object ID of a known tree. +ok 21 - adding various types of objects with git update-index --add. +ok 22 - showing stage with git ls-files --stage +ok 23 - validate git ls-files output for a known tree. +ok 24 - writing tree out with git write-tree. +ok 25 - validate object ID for a known tree. +ok 26 - showing tree with git ls-tree +ok 27 - git ls-tree output for a known tree. +ok 28 - showing tree with git ls-tree -r +ok 29 - git ls-tree -r output for a known tree. +ok 30 - showing tree with git ls-tree -r -t +ok 31 - git ls-tree -r output for a known tree. +ok 32 - writing partial tree out with git write-tree --prefix. +ok 33 - validate object ID for a known tree. +ok 34 - writing partial tree out with git write-tree --prefix. +ok 35 - validate object ID for a known tree. +ok 36 - put invalid objects into the index. +ok 37 - writing this tree without --missing-ok. +ok 38 - writing this tree with --missing-ok. +ok 39 - git read-tree followed by write-tree should be idempotent. +ok 40 - validate git diff-files output for a know cache/work tree state. +ok 41 - git update-index --refresh should succeed. +ok 42 - no diff after checkout and git update-index --refresh. +ok 43 - git commit-tree records the correct tree in a commit. +ok 44 - git commit-tree records the correct parent in a commit. +ok 45 - git commit-tree omits duplicated parent in a commit. +ok 46 - update-index D/F conflict +ok 47 - real path works as expected +ok 48 - very long name in the index handled sanely +# still have 1 known breakage(s) +# passed all remaining 47 test(s) +1..48 +*** t0001-init.sh *** +ok 1 - plain +ok 2 - plain nested in bare +ok 3 - plain through aliased command, outside any git repo +not ok 4 - plain nested through aliased command # TODO known breakage +not ok 5 - plain nested in bare through aliased command # TODO known breakage +ok 6 - plain with GIT_WORK_TREE +ok 7 - plain bare +ok 8 - plain bare with GIT_WORK_TREE +ok 9 - GIT_DIR bare +ok 10 - init --bare +ok 11 - GIT_DIR non-bare +ok 12 - GIT_DIR & GIT_WORK_TREE (1) +ok 13 - GIT_DIR & GIT_WORK_TREE (2) +ok 14 - reinit +ok 15 - init with --template +ok 16 - init with --template (blank) +ok 17 - init with init.templatedir set +ok 18 - init --bare/--shared overrides system/global config +ok 19 - init honors global core.sharedRepository +ok 20 - init rejects insanely long --template +ok 21 - init creates a new directory +ok 22 - init creates a new bare directory +ok 23 - init recreates a directory +ok 24 - init recreates a new bare directory +ok 25 - init creates a new deep directory +ok 26 - init creates a new deep directory (umask vs. shared) +ok 27 - init notices EEXIST (1) +ok 28 - init notices EEXIST (2) +ok 29 - init notices EPERM +ok 30 - init creates a new bare directory with global --bare +ok 31 - init prefers command line to GIT_DIR +ok 32 - init with separate gitdir +ok 33 - re-init to update git link +ok 34 - re-init to move gitdir +ok 35 - re-init to move gitdir symlink +# still have 2 known breakage(s) +# passed all remaining 33 test(s) +1..35 +*** t0002-gitfile.sh *** +ok 1 - initial setup +ok 2 - bad setup: invalid .git file format +ok 3 - bad setup: invalid .git file path +ok 4 - final setup + check rev-parse --git-dir +ok 5 - check hash-object +ok 6 - check cat-file +ok 7 - check update-index +ok 8 - check write-tree +ok 9 - check commit-tree +ok 10 - check rev-list +# passed all 10 test(s) +1..10 +*** t0003-attributes.sh *** +ok 1 - setup +ok 2 - command line checks +ok 3 - attribute test +ok 4 - attribute matching is case sensitive when core.ignorecase=0 +ok 5 - attribute matching is case insensitive when core.ignorecase=1 +ok 6 - check whether FS is case-insensitive +ok 7 # skip additional case insensitivity tests (missing CASE_INSENSITIVE_FS) +ok 8 - unnormalized paths +ok 9 - relative paths +ok 10 - prefixes are not confused with leading directories +ok 11 - core.attributesfile +ok 12 - attribute test: read paths from stdin +ok 13 - attribute test: --all option +ok 14 - attribute test: --cached option +ok 15 - root subdir attribute test +ok 16 - setup bare +ok 17 - bare repository: check that .gitattribute is ignored +ok 18 - bare repository: check that --cached honors index +ok 19 - bare repository: test info/attributes +# passed all 19 test(s) +1..19 +*** t0004-unwritable.sh *** +ok 1 - setup +ok 2 - write-tree should notice unwritable repository +ok 3 - commit should notice unwritable repository +ok 4 - update-index should notice unwritable repository +ok 5 - add should notice unwritable repository +# passed all 5 test(s) +1..5 +*** t0005-signals.sh *** +ok 1 - sigchain works +# passed all 1 test(s) +1..1 +*** t0006-date.sh *** +ok 1 - relative date (5 seconds ago) +ok 2 - relative date (5 minutes ago) +ok 3 - relative date (5 hours ago) +ok 4 - relative date (5 days ago) +ok 5 - relative date (3 weeks ago) +ok 6 - relative date (5 months ago) +ok 7 - relative date (1 year, 2 months ago) +ok 8 - relative date (1 year, 9 months ago) +ok 9 - relative date (20 years ago) +ok 10 - relative date (12 months ago) +ok 11 - relative date (2 years ago) +ok 12 - parse date (2008) +ok 13 - parse date (2008-02) +ok 14 - parse date (2008-02-14) +ok 15 - parse date (2008-02-14 20:30:45) +ok 16 - parse date (2008-02-14 20:30:45 -0500) +ok 17 - parse date (2008-02-14 20:30:45 -0015) +ok 18 - parse date (2008-02-14 20:30:45 -5) +ok 19 - parse date (2008-02-14 20:30:45 -5:) +ok 20 - parse date (2008-02-14 20:30:45 -05) +ok 21 - parse date (2008-02-14 20:30:45 -:30) +ok 22 - parse date (2008-02-14 20:30:45 -05:00) +ok 23 - parse date (2008-02-14 20:30:45 TZ=EST5) +ok 24 - parse approxidate (now) +ok 25 - parse approxidate (5 seconds ago) +ok 26 - parse approxidate (5.seconds.ago) +ok 27 - parse approxidate (10.minutes.ago) +ok 28 - parse approxidate (yesterday) +ok 29 - parse approxidate (3.days.ago) +ok 30 - parse approxidate (3.weeks.ago) +ok 31 - parse approxidate (3.months.ago) +ok 32 - parse approxidate (2.years.3.months.ago) +ok 33 - parse approxidate (6am yesterday) +ok 34 - parse approxidate (6pm yesterday) +ok 35 - parse approxidate (3:00) +ok 36 - parse approxidate (15:00) +ok 37 - parse approxidate (noon today) +ok 38 - parse approxidate (noon yesterday) +ok 39 - parse approxidate (last tuesday) +ok 40 - parse approxidate (July 5th) +ok 41 - parse approxidate (06/05/2009) +ok 42 - parse approxidate (06.05.2009) +ok 43 - parse approxidate (Jun 6, 5AM) +ok 44 - parse approxidate (5AM Jun 6) +ok 45 - parse approxidate (6AM, June 7, 2009) +# passed all 45 test(s) +1..45 +*** t0010-racy-git.sh *** +ok 1 - Racy GIT trial #0 part A +ok 2 - Racy GIT trial #0 part B +ok 3 - Racy GIT trial #1 part A +ok 4 - Racy GIT trial #1 part B +ok 5 - Racy GIT trial #2 part A +ok 6 - Racy GIT trial #2 part B +ok 7 - Racy GIT trial #3 part A +ok 8 - Racy GIT trial #3 part B +ok 9 - Racy GIT trial #4 part A +ok 10 - Racy GIT trial #4 part B +# passed all 10 test(s) +1..10 +*** t0020-crlf.sh *** +ok 1 - setup +ok 2 - safecrlf: autocrlf=input, all CRLF +ok 3 - safecrlf: autocrlf=input, mixed LF/CRLF +ok 4 - safecrlf: autocrlf=true, all LF +ok 5 - safecrlf: autocrlf=true mixed LF/CRLF +ok 6 - safecrlf: print warning only once +ok 7 - switch off autocrlf, safecrlf, reset HEAD +ok 8 - update with autocrlf=input +ok 9 - update with autocrlf=true +ok 10 - checkout with autocrlf=true +ok 11 - checkout with autocrlf=input +ok 12 - apply patch (autocrlf=input) +ok 13 - apply patch --cached (autocrlf=input) +ok 14 - apply patch --index (autocrlf=input) +ok 15 - apply patch (autocrlf=true) +ok 16 - apply patch --cached (autocrlf=true) +ok 17 - apply patch --index (autocrlf=true) +ok 18 - .gitattributes says two is binary +ok 19 - .gitattributes says two is input +ok 20 - .gitattributes says two and three are text +ok 21 - in-tree .gitattributes (1) +ok 22 - in-tree .gitattributes (2) +ok 23 - in-tree .gitattributes (3) +ok 24 - in-tree .gitattributes (4) +ok 25 - checkout with existing .gitattributes +ok 26 - checkout when deleting .gitattributes +ok 27 - invalid .gitattributes (must not crash) +ok 28 - setting up for new autocrlf tests +ok 29 - report no change after setting autocrlf +ok 30 - files are clean after checkout +ok 31 - LF only file gets CRLF with autocrlf +ok 32 - Mixed file is still mixed with autocrlf +ok 33 - CRLF only file has CRLF with autocrlf +ok 34 - New CRLF file gets LF in repo +# passed all 34 test(s) +1..34 +*** t0021-conversion.sh *** +ok 1 - setup +ok 2 - check +ok 3 - expanded_in_repo +ok 4 - filter shell-escaped filenames +# passed all 4 test(s) +1..4 +*** t0022-crlf-rename.sh *** +ok 1 - setup +ok 2 - diff -M +# passed all 2 test(s) +1..2 +*** t0023-crlf-am.sh *** +ok 1 - setup +ok 2 - am +# passed all 2 test(s) +1..2 +*** t0024-crlf-archive.sh *** +ok 1 - setup +ok 2 - tar archive +ok 3 - zip archive +# passed all 3 test(s) +1..3 +*** t0025-crlf-auto.sh *** +ok 1 - setup +ok 2 - default settings cause no changes +ok 3 - crlf=true causes a CRLF file to be normalized +ok 4 - text=true causes a CRLF file to be normalized +ok 5 - eol=crlf gives a normalized file CRLFs with autocrlf=false +ok 6 - eol=crlf gives a normalized file CRLFs with autocrlf=input +ok 7 - eol=lf gives a normalized file LFs with autocrlf=true +ok 8 - autocrlf=true does not normalize CRLF files +ok 9 - text=auto, autocrlf=true _does_ normalize CRLF files +ok 10 - text=auto, autocrlf=true does not normalize binary files +ok 11 - eol=crlf _does_ normalize binary files +# passed all 11 test(s) +1..11 +*** t0026-eol-config.sh *** +ok 1 - setup +ok 2 - eol=lf puts LFs in normalized file +ok 3 - eol=crlf puts CRLFs in normalized file +ok 4 - autocrlf=true overrides eol=lf +ok 5 - autocrlf=true overrides unset eol +# passed all 5 test(s) +1..5 +*** t0030-stripspace.sh *** +ok 1 - long lines without spaces should be unchanged +ok 2 - lines with spaces at the beginning should be unchanged +ok 3 - lines with intermediate spaces should be unchanged +ok 4 - consecutive blank lines should be unified +ok 5 - only consecutive blank lines should be completely removed +ok 6 - consecutive blank lines at the beginning should be removed +ok 7 - consecutive blank lines at the end should be removed +ok 8 - text without newline at end should end with newline +ok 9 - text plus spaces without newline at end should end with newline +ok 10 - text plus spaces without newline at end should not show spaces +ok 11 - text plus spaces without newline should show the correct lines +ok 12 - text plus spaces at end should not show spaces +ok 13 - text plus spaces at end should be cleaned and newline must remain +ok 14 - spaces with newline at end should be replaced with empty string +ok 15 - spaces without newline at end should not show spaces +ok 16 - spaces without newline at end should be replaced with empty string +ok 17 - consecutive text lines should be unchanged +ok 18 - strip comments, too +# passed all 18 test(s) +1..18 +*** t0040-parse-options.sh *** +ok 1 - test help +ok 2 - short options +ok 3 - long options +ok 4 - missing required value +ok 5 - intermingled arguments +ok 6 - unambiguously abbreviated option +ok 7 - unambiguously abbreviated option with "=" +ok 8 - ambiguously abbreviated option +ok 9 - non ambiguous option (after two options it abbreviates) +ok 10 - detect possible typos +ok 11 - keep some options as arguments +ok 12 - OPT_DATE() and OPT_SET_PTR() work +ok 13 - OPT_CALLBACK() and OPT_BIT() work +ok 14 - OPT_CALLBACK() and callback errors work +ok 15 - OPT_BIT() and OPT_SET_INT() work +ok 16 - OPT_NEGBIT() and OPT_SET_INT() work +ok 17 - OPT_BIT() works +ok 18 - OPT_NEGBIT() works +ok 19 - OPT_BOOLEAN() with PARSE_OPT_NODASH works +ok 20 - OPT_NUMBER_CALLBACK() works +ok 21 - negation of OPT_NONEG flags is not ambiguous +ok 22 - --list keeps list of strings +ok 23 - --no-list resets list +# passed all 23 test(s) +1..23 +*** t0050-filesystem.sh *** +ok 1 - see what we expect +ok 2 - detection of case insensitive filesystem during repo init +ok 3 - detection of filesystem w/o symlink support during repo init +ok 4 - setup case tests +ok 5 - rename (case change) +ok 6 - merge (case change) +not ok 7 - add (with different case) # TODO known breakage +ok 8 - setup unicode normalization tests +ok 9 - rename (silent unicode normalization) +ok 10 - merge (silent unicode normalization) +# still have 1 known breakage(s) +# passed all remaining 9 test(s) +1..10 +*** t0055-beyond-symlinks.sh *** +ok 1 - setup +ok 2 - update-index --add beyond symlinks +ok 3 - add beyond symlinks +# passed all 3 test(s) +1..3 +*** t0060-path-utils.sh *** +ok 1 - normalize path: => +ok 2 - normalize path: . => +ok 3 - normalize path: ./ => +ok 4 - normalize path: ./. => +ok 5 - normalize path: ./.. => ++failed++ +ok 6 - normalize path: ../. => ++failed++ +ok 7 - normalize path: ./../.// => ++failed++ +ok 8 - normalize path: dir/.. => +ok 9 - normalize path: dir/sub/../.. => +ok 10 - normalize path: dir/sub/../../.. => ++failed++ +ok 11 - normalize path: dir => dir +ok 12 - normalize path: dir// => dir/ +ok 13 - normalize path: ./dir => dir +ok 14 - normalize path: dir/. => dir/ +ok 15 - normalize path: dir///./ => dir/ +ok 16 - normalize path: dir//sub/.. => dir/ +ok 17 - normalize path: dir/sub/../ => dir/ +ok 18 - normalize path: dir/sub/../. => dir/ +ok 19 - normalize path: dir/s1/../s2/ => dir/s2/ +ok 20 - normalize path: d1/s1///s2/..//../s3/ => d1/s3/ +ok 21 - normalize path: d1/s1//../s2/../../d2 => d2 +ok 22 - normalize path: d1/.../d2 => d1/.../d2 +ok 23 - normalize path: d1/..././../d2 => d1/d2 +ok 24 - normalize path: / => / +ok 25 - normalize path: // => / +ok 26 - normalize path: /// => / +ok 27 - normalize path: /. => / +ok 28 - normalize path: /./ => / +ok 29 - normalize path: /./.. => ++failed++ +ok 30 - normalize path: /../. => ++failed++ +ok 31 - normalize path: /./../.// => ++failed++ +ok 32 - normalize path: /dir/.. => / +ok 33 - normalize path: /dir/sub/../.. => / +ok 34 - normalize path: /dir/sub/../../.. => ++failed++ +ok 35 - normalize path: /dir => /dir +ok 36 - normalize path: /dir// => /dir/ +ok 37 - normalize path: /./dir => /dir +ok 38 - normalize path: /dir/. => /dir/ +ok 39 - normalize path: /dir///./ => /dir/ +ok 40 - normalize path: /dir//sub/.. => /dir/ +ok 41 - normalize path: /dir/sub/../ => /dir/ +ok 42 - normalize path: //dir/sub/../. => /dir/ +ok 43 - normalize path: /dir/s1/../s2/ => /dir/s2/ +ok 44 - normalize path: /d1/s1///s2/..//../s3/ => /d1/s3/ +ok 45 - normalize path: /d1/s1//../s2/../../d2 => /d2 +ok 46 - normalize path: /d1/.../d2 => /d1/.../d2 +ok 47 - normalize path: /d1/..././../d2 => /d1/d2 +ok 48 - longest ancestor: / => -1 +ok 49 - longest ancestor: / / => -1 +ok 50 - longest ancestor: /foo => -1 +ok 51 - longest ancestor: /foo : => -1 +ok 52 - longest ancestor: /foo ::. => -1 +ok 53 - longest ancestor: /foo ::..:: => -1 +ok 54 - longest ancestor: /foo / => 0 +ok 55 - longest ancestor: /foo /fo => -1 +ok 56 - longest ancestor: /foo /foo => -1 +ok 57 - longest ancestor: /foo /foo/ => -1 +ok 58 - longest ancestor: /foo /bar => -1 +ok 59 - longest ancestor: /foo /bar/ => -1 +ok 60 - longest ancestor: /foo /foo/bar => -1 +ok 61 - longest ancestor: /foo /foo:/bar/ => -1 +ok 62 - longest ancestor: /foo /foo/:/bar/ => -1 +ok 63 - longest ancestor: /foo /foo::/bar/ => -1 +ok 64 - longest ancestor: /foo /:/foo:/bar/ => 0 +ok 65 - longest ancestor: /foo /foo:/:/bar/ => 0 +ok 66 - longest ancestor: /foo /:/bar/:/foo => 0 +ok 67 - longest ancestor: /foo/bar => -1 +ok 68 - longest ancestor: /foo/bar / => 0 +ok 69 - longest ancestor: /foo/bar /fo => -1 +ok 70 - longest ancestor: /foo/bar foo => -1 +ok 71 - longest ancestor: /foo/bar /foo => 4 +ok 72 - longest ancestor: /foo/bar /foo/ => 4 +ok 73 - longest ancestor: /foo/bar /foo/ba => -1 +ok 74 - longest ancestor: /foo/bar /:/fo => 0 +ok 75 - longest ancestor: /foo/bar /foo:/foo/ba => 4 +ok 76 - longest ancestor: /foo/bar /bar => -1 +ok 77 - longest ancestor: /foo/bar /bar/ => -1 +ok 78 - longest ancestor: /foo/bar /fo: => -1 +ok 79 - longest ancestor: /foo/bar :/fo => -1 +ok 80 - longest ancestor: /foo/bar /foo:/bar/ => 4 +ok 81 - longest ancestor: /foo/bar /:/foo:/bar/ => 4 +ok 82 - longest ancestor: /foo/bar /foo:/:/bar/ => 4 +ok 83 - longest ancestor: /foo/bar /:/bar/:/fo => 0 +ok 84 - longest ancestor: /foo/bar /:/bar/ => 0 +ok 85 - longest ancestor: /foo/bar .:/foo/. => 4 +ok 86 - longest ancestor: /foo/bar .:/foo/.:.: => 4 +ok 87 - longest ancestor: /foo/bar /foo/./:.:/bar => 4 +ok 88 - longest ancestor: /foo/bar .:/bar => -1 +ok 89 - strip_path_suffix +# passed all 89 test(s) +1..89 +*** t0061-run-command.sh *** +ok 1 - start_command reports ENOENT +ok 2 - run_command can run a command +ok 3 - run_command reports EACCES +# passed all 3 test(s) +1..3 +*** t0070-fundamental.sh *** +ok 1 - character classes (isspace, isalpha etc.) +ok 2 - mktemp to nonexistent directory prints filename +ok 3 - mktemp to unwritable directory prints filename +# passed all 3 test(s) +1..3 +*** t0080-vcs-svn.sh *** +ok 1 - obj pool: store data +ok 2 - obj pool: NULL is offset ~0 +ok 3 - obj pool: out-of-bounds access +ok 4 - obj pool: high-water mark +ok 5 - string pool +ok 6 - treap sort +# passed all 6 test(s) +1..6 +*** t0081-line-buffer.sh *** +ok 1 - hello world +ok 2 - 0-length read, send along greeting +ok 3 - read from file descriptor +ok 4 - skip, copy null byte +ok 5 - read null byte +ok 6 - long reads are truncated +ok 7 - long copies are truncated +ok 8 - long binary reads are truncated +# passed all 8 test(s) +1..8 +*** t0090-cache-tree.sh *** +not ok 1 - initial commit has cache-tree # TODO known breakage +ok 2 - read-tree HEAD establishes cache-tree +ok 3 - git-add invalidates cache-tree +ok 4 - update-index invalidates cache-tree +ok 5 - write-tree establishes cache-tree +ok 6 - test-scrap-cache-tree works +ok 7 - second commit has cache-tree +ok 8 - reset --hard gives cache-tree +ok 9 - reset --hard without index gives cache-tree +not ok 10 - checkout gives cache-tree # TODO known breakage +# still have 2 known breakage(s) +# passed all remaining 8 test(s) +1..10 +*** t0100-previous.sh *** +ok 1 - branch -d @{-1} +ok 2 - branch -d @{-12} when there is not enough switches yet +ok 3 - merge @{-1} +ok 4 - merge @{-1} when there is not enough switches yet +# passed all 4 test(s) +1..4 +*** t0101-at-syntax.sh *** +ok 1 - setup +ok 2 - @{0} shows current +ok 3 - @{1} shows old +ok 4 - @{now} shows current +ok 5 - @{2001-09-17} (before the first commit) shows old +ok 6 - silly approxidates work +ok 7 - notice misspelled upstream +ok 8 - complain about total nonsense +# passed all 8 test(s) +1..8 +*** t0200-gettext-basic.sh *** +# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale +# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale +ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu) +ok 2 - sanity: $TEXTDOMAIN is git +ok 3 - xgettext sanity: Perl _() strings are not extracted +ok 4 - xgettext sanity: Comment extraction with --add-comments +ok 5 - xgettext sanity: Comment extraction with --add-comments stops at statements +ok 6 - sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease +ok 7 - sanity: Icelandic locale was compiled +ok 8 - sanity: gettext("") metadata is OK +ok 9 - sanity: gettext(unknown) is passed through +ok 10 - xgettext: C extraction of _() and N_() strings +ok 11 - xgettext: C extraction with %s +ok 12 - xgettext: Shell extraction +ok 13 - xgettext: Shell extraction with $variable +ok 14 - xgettext: Perl extraction +ok 15 - xgettext: Perl extraction with %s +ok 16 - sanity: Some gettext("") data for real locale +# passed all 16 test(s) +1..16 +*** t0201-gettext-fallbacks.sh *** +# lib-gettext: No is_IS UTF-8 locale available +# lib-gettext: No is_IS ISO-8859-1 locale available +ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough) +ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set +ok 3 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough +ok 4 - gettext: our gettext() fallback has pass-through semantics +ok 5 - eval_gettext: our eval_gettext() fallback has pass-through semantics +ok 6 - eval_gettext: our eval_gettext() fallback can interpolate variables +ok 7 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces +ok 8 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes +# passed all 8 test(s) +1..8 +*** t0202-gettext-perl.sh *** +# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale +# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale +# run 1: Perl Git::I18N API ($(PERL) $(@D)/t/t0202/test.pl) +1..8 +# test_external test Perl Git::I18N API failed: $(PERL) $(@D)/t/t0202/test.pl +# test_external_without_stderr test no stderr: Perl Git::I18N API failed: $(PERL) $(@D)/t/t0202/test.pl: +make[3]: [t0202-gettext-perl.sh] Error 1 (ignored) +*** t0203-gettext-setlocale-sanity.sh *** +# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale +# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale +ok 1 - git show a ISO-8859-1 commit under C locale +ok 2 - git show a ISO-8859-1 commit under a UTF-8 locale +# passed all 2 test(s) +1..2 +*** t0204-gettext-reencode-sanity.sh *** +# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale +# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale +ok 1 - gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic +ok 2 - gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes +ok 3 - gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Icelandic +ok 4 - gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Runes +not ok - 5 gettext: Fetching a UTF-8 msgid -> UTF-8 +# +# printf "TILRAUN: ‚einfaldar‘ og „tvöfaldar“ gæsalappir" >expect && +# LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: ‘single’ and “double” quotes" >actual && +# test_cmp expect actual +# +not ok - 6 gettext: Fetching a UTF-8 msgid -> ISO-8859-1 +# +# LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "TEST: ‘single’ and “double” quotes" >actual && +# grep "einfaldar" actual && +# grep "$(echo tvöfaldar | iconv -f UTF-8 -t ISO8859-1)" actual +# +ok 7 - gettext.c: git init UTF-8 -> UTF-8 +ok 8 - gettext.c: git init UTF-8 -> ISO-8859-1 +# failed 2 among 8 test(s) +1..8 +make[3]: [t0204-gettext-reencode-sanity.sh] Error 1 (ignored) +*** t0205-gettext-poison.sh *** +# lib-gettext: Found 'is_IS.UTF-8' as an is_IS UTF-8 locale +# lib-gettext: Found 'is_IS.ISO8859-1' as an is_IS ISO-8859-1 locale +ok 1 # skip sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu) (missing GETTEXT_POISON) +ok 2 # skip sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison (missing GETTEXT_POISON) +ok 3 # skip gettext: our gettext() fallback has poison semantics (missing GETTEXT_POISON) +ok 4 # skip eval_gettext: our eval_gettext() fallback has poison semantics (missing GETTEXT_POISON) +# passed all 4 test(s) +1..4 +*** t0300-credentials.sh *** +ok 1 - setup helper scripts +ok 2 - credential_fill invokes helper +ok 3 - credential_fill invokes multiple helpers +ok 4 - credential_fill stops when we get a full response +ok 5 - credential_fill continues through partial response +ok 6 - credential_fill passes along metadata +ok 7 - credential_approve calls all helpers +ok 8 - do not bother storing password-less credential +ok 9 - credential_reject calls all helpers +ok 10 - usernames can be preserved +ok 11 - usernames can be overridden +ok 12 - do not bother completing already-full credential +ok 13 - empty helper list falls back to internal getpass +ok 14 - internal getpass does not ask for known username +ok 15 - respect configured credentials +ok 16 - match configured credential +ok 17 - do not match configured credential +ok 18 - pull username from config +ok 19 - http paths can be part of context +# passed all 19 test(s) +1..19 +*** t0301-credential-cache.sh *** +ok 1 - helper (cache) has no existing data +ok 2 - helper (cache) stores password +ok 3 - helper (cache) can retrieve password +ok 4 - helper (cache) requires matching protocol +ok 5 - helper (cache) requires matching host +ok 6 - helper (cache) requires matching username +ok 7 - helper (cache) requires matching path +ok 8 - helper (cache) can forget host +ok 9 - helper (cache) can store multiple users +ok 10 - helper (cache) can forget user +ok 11 - helper (cache) remembers other user +ok 12 - helper (cache --timeout=1) times out +# passed all 12 test(s) +1..12 +*** t0302-credential-store.sh *** +ok 1 - helper (store) has no existing data +ok 2 - helper (store) stores password +ok 3 - helper (store) can retrieve password +ok 4 - helper (store) requires matching protocol +ok 5 - helper (store) requires matching host +ok 6 - helper (store) requires matching username +ok 7 - helper (store) requires matching path +ok 8 - helper (store) can forget host +ok 9 - helper (store) can store multiple users +ok 10 - helper (store) can forget user +ok 11 - helper (store) remembers other user +# passed all 11 test(s) +1..11 +*** t0303-credential-external.sh *** +# skipping external helper tests (set GIT_TEST_CREDENTIAL_HELPER) +# skipping external helper timeout tests +# passed all 0 test(s) +1..0 +*** t1000-read-tree-m-3way.sh *** +ok 1 - adding test file NN and Z/NN +ok 2 - adding test file ND and Z/ND +ok 3 - adding test file NM and Z/NM +ok 4 - adding test file DN and Z/DN +ok 5 - adding test file DD and Z/DD +ok 6 - adding test file DM and Z/DM +ok 7 - adding test file MN and Z/MN +ok 8 - adding test file MD and Z/MD +ok 9 - adding test file MM and Z/MM +ok 10 - adding test file SS +ok 11 - adding test file TT +ok 12 - prepare initial tree +ok 13 - change in branch A (removal) +ok 14 - change in branch A (modification) +ok 15 - change in branch A (modification) +ok 16 - change in branch A (modification) +ok 17 - change in branch A (modification) +ok 18 - change in branch A (modification) +ok 19 - change in branch A (modification) +ok 20 - change in branch A (addition) +ok 21 - change in branch A (addition) +ok 22 - change in branch A (addition) +ok 23 - change in branch A (addition) +ok 24 - change in branch A (addition) +ok 25 - change in branch A (edit) +ok 26 - change in branch A (change file to directory) +ok 27 - recording branch A tree +ok 28 - reading original tree and checking out +ok 29 - change in branch B (removal) +ok 30 - change in branch B (modification) +ok 31 - change in branch B (modification) +ok 32 - change in branch B (modification) +ok 33 - change in branch B (modification) +ok 34 - change in branch B (modification) +ok 35 - change in branch B (modification) +ok 36 - change in branch B (addition) +ok 37 - change in branch B (addition) +ok 38 - change in branch B (addition) +ok 39 - change in branch B (addition) +ok 40 - change in branch B (addition and modification) +ok 41 - change in branch B (modification) +ok 42 - change in branch B (addition of a file to conflict with directory) +ok 43 - recording branch B tree +ok 44 - keep contents of 3 trees for easy access +ok 45 - 3-way merge with git read-tree -m, empty cache +ok 46 - 3-way merge with git read-tree -m, match H +ok 47 - 1 - must not have an entry not in A. +ok 48 - 2 - must match B in !O && !A && B case. +ok 49 - 2 - matching B alone is OK in !O && !A && B case. +ok 50 - 3 - must match A in !O && A && !B case. +ok 51 - 3 - matching A alone is OK in !O && A && !B case. +ok 52 - 3 (fail) - must match A in !O && A && !B case. +ok 53 - 4 - must match and be up-to-date in !O && A && B && A!=B case. +ok 54 - 4 (fail) - must match and be up-to-date in !O && A && B && A!=B case. +ok 55 - 4 (fail) - must match and be up-to-date in !O && A && B && A!=B case. +ok 56 - 5 - must match in !O && A && B && A==B case. +ok 57 - 5 - must match in !O && A && B && A==B case. +ok 58 - 5 (fail) - must match A in !O && A && B && A==B case. +ok 59 - 6 - must not exist in O && !A && !B case +ok 60 - 7 - must not exist in O && !A && B && O!=B case +ok 61 - 8 - must not exist in O && !A && B && O==B case +ok 62 - 9 - must match and be up-to-date in O && A && !B && O!=A case +ok 63 - 9 (fail) - must match and be up-to-date in O && A && !B && O!=A case +ok 64 - 9 (fail) - must match and be up-to-date in O && A && !B && O!=A case +ok 65 - 10 - must match and be up-to-date in O && A && !B && O==A case +ok 66 - 10 (fail) - must match and be up-to-date in O && A && !B && O==A case +ok 67 - 10 (fail) - must match and be up-to-date in O && A && !B && O==A case +ok 68 - 11 - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case +ok 69 - 11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case +ok 70 - 11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case +ok 71 - 12 - must match A in O && A && B && O!=A && A==B case +ok 72 - 12 - must match A in O && A && B && O!=A && A==B case +ok 73 - 12 (fail) - must match A in O && A && B && O!=A && A==B case +ok 74 - 13 - must match A in O && A && B && O!=A && O==B case +ok 75 - 13 - must match A in O && A && B && O!=A && O==B case +ok 76 - 14 - must match and be up-to-date in O && A && B && O==A && O!=B case +ok 77 - 14 - may match B in O && A && B && O==A && O!=B case +ok 78 - 14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case +ok 79 - 14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case +ok 80 - 15 - must match A in O && A && B && O==A && O==B case +ok 81 - 15 - must match A in O && A && B && O==A && O==B case +ok 82 - 15 (fail) - must match A in O && A && B && O==A && O==B case +ok 83 - 16 - A matches in one and B matches in another. +# passed all 83 test(s) +1..83 +*** t1001-read-tree-m-2way.sh *** +ok 1 - setup +ok 2 - 1, 2, 3 - no carry forward +ok 3 - 4 - carry forward local addition. +ok 4 - 5 - carry forward local addition. +ok 5 - 6 - local addition already has the same. +ok 6 - 7 - local addition already has the same. +ok 7 - 8 - conflicting addition. +ok 8 - 9 - conflicting addition. +ok 9 - 10 - path removed. +ok 10 - 11 - dirty path removed. +ok 11 - 12 - unmatching local changes being removed. +ok 12 - 13 - unmatching local changes being removed. +ok 13 - 14 - unchanged in two heads. +ok 14 - 15 - unchanged in two heads. +ok 15 - 16 - conflicting local change. +ok 16 - 17 - conflicting local change. +ok 17 - 18 - local change already having a good result. +ok 18 - 19 - local change already having a good result, further modified. +ok 19 - 20 - no local change, use new tree. +ok 20 - 21 - no local change, dirty cache. +ok 21 - 22 - local change cache updated. +ok 22 - DF vs DF/DF case setup. +ok 23 - DF vs DF/DF case test. +ok 24 - a/b (untracked) vs a case setup. +ok 25 - a/b (untracked) vs a, plus c/d case test. +ok 26 - a/b vs a, plus c/d case setup. +ok 27 - a/b vs a, plus c/d case test. +ok 28 - -m references the correct modified tree +# passed all 28 test(s) +1..28 +*** t1002-read-tree-m-u-2way.sh *** +ok 1 - setup +ok 2 - 1, 2, 3 - no carry forward +ok 3 - 4 - carry forward local addition. +ok 4 - 5 - carry forward local addition. +ok 5 - 6 - local addition already has the same. +ok 6 - 7 - local addition already has the same. +ok 7 - 8 - conflicting addition. +ok 8 - 9 - conflicting addition. +ok 9 - 10 - path removed. +ok 10 - 11 - dirty path removed. +ok 11 - 12 - unmatching local changes being removed. +ok 12 - 13 - unmatching local changes being removed. +ok 13 - 14 - unchanged in two heads. +ok 14 - 15 - unchanged in two heads. +ok 15 - 16 - conflicting local change. +ok 16 - 17 - conflicting local change. +ok 17 - 18 - local change already having a good result. +ok 18 - 19 - local change already having a good result, further modified. +ok 19 - 20 - no local change, use new tree. +ok 20 - 21 - no local change, dirty cache. +ok 21 - DF vs DF/DF case setup. +ok 22 - DF vs DF/DF case test. +# passed all 22 test(s) +1..22 +*** t1003-read-tree-prefix.sh *** +ok 1 - setup +ok 2 - read-tree --prefix +# passed all 2 test(s) +1..2 +*** t1004-read-tree-m-u-wf.sh *** +ok 1 - two-way setup +ok 2 - two-way not clobbering +ok 3 - two-way with incorrect --exclude-per-directory (1) +ok 4 - two-way with incorrect --exclude-per-directory (2) +ok 5 - two-way clobbering a ignored file +ok 6 - three-way not complaining on an untracked path in both +ok 7 - three-way not clobbering a working tree file +ok 8 - three-way not complaining on an untracked file +ok 9 - 3-way not overwriting local changes (setup) +ok 10 - 3-way not overwriting local changes (our side) +ok 11 - 3-way not overwriting local changes (their side) +ok 12 - funny symlink in work tree +ok 13 - funny symlink in work tree, un-unlink-able +ok 14 - D/F setup +ok 15 - D/F +ok 16 - D/F resolve +ok 17 - D/F recursive +# passed all 17 test(s) +1..17 +*** t1005-read-tree-reset.sh *** +ok 1 - setup +ok 2 - reset should work +ok 3 - reset should remove remnants from a failed merge +ok 4 - Porcelain reset should remove remnants too +ok 5 - Porcelain checkout -f should remove remnants too +ok 6 - Porcelain checkout -f HEAD should remove remnants too +# passed all 6 test(s) +1..6 +*** t1006-cat-file.sh *** +ok 1 - setup +ok 2 - blob exists +ok 3 - Type of blob is correct +ok 4 - Size of blob is correct +ok 5 - Content of blob is correct +ok 6 - Pretty content of blob is correct +ok 7 - --batch output of blob is correct +ok 8 - --batch-check output of blob is correct +ok 9 - tree exists +ok 10 - Type of tree is correct +ok 11 - Size of tree is correct +ok 12 - Pretty content of tree is correct +ok 13 - --batch-check output of tree is correct +ok 14 - commit exists +ok 15 - Type of commit is correct +ok 16 - Size of commit is correct +ok 17 - Content of commit is correct +ok 18 - Pretty content of commit is correct +ok 19 - --batch output of commit is correct +ok 20 - --batch-check output of commit is correct +ok 21 - tag exists +ok 22 - Type of tag is correct +ok 23 - Size of tag is correct +ok 24 - Content of tag is correct +ok 25 - Pretty content of tag is correct +ok 26 - --batch output of tag is correct +ok 27 - --batch-check output of tag is correct +ok 28 - Reach a blob from a tag pointing to it +ok 29 - Passing -t with --batch fails +ok 30 - Passing --batch with -t fails +ok 31 - Passing -s with --batch fails +ok 32 - Passing --batch with -s fails +ok 33 - Passing -e with --batch fails +ok 34 - Passing --batch with -e fails +ok 35 - Passing -p with --batch fails +ok 36 - Passing --batch with -p fails +ok 37 - Passing with --batch fails +ok 38 - Passing --batch with 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 with --batch-check fails +ok 49 - Passing --batch-check with 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 only packed objects +# passed all 27 test(s) +1..27 +*** t1300-repo-config.sh *** +ok 1 - clear default config +ok 2 - initial +ok 3 - mixed case +ok 4 - similar section +ok 5 - uppercase section +ok 6 - replace with non-match +ok 7 - replace with non-match (actually matching) +ok 8 - non-match result +ok 9 - find mixed-case key by canonical name +ok 10 - find mixed-case key by non-canonical name +ok 11 - subsections are not canonicalized by git-config +ok 12 - unset with cont. lines +ok 13 - unset with cont. lines is correct +ok 14 - multiple unset +ok 15 - multiple unset is correct +ok 16 - --replace-all missing value +ok 17 - --replace-all +ok 18 - all replaced +ok 19 - really mean test +ok 20 - really really mean test +ok 21 - get value +ok 22 - unset +ok 23 - multivar +ok 24 - non-match +ok 25 - non-match value +ok 26 - ambiguous get +ok 27 - get multivar +ok 28 - multivar replace +ok 29 - ambiguous value +ok 30 - ambiguous unset +ok 31 - invalid unset +ok 32 - multivar unset +ok 33 - invalid key +ok 34 - correct key +ok 35 - hierarchical section +ok 36 - hierarchical section value +ok 37 - working --list +ok 38 - --list without repo produces empty output +ok 39 - --get-regexp +ok 40 - --add +ok 41 - get variable with no value +ok 42 - get variable with empty value +ok 43 - get-regexp variable with no value +ok 44 - get-regexp --bool variable with no value +ok 45 - get-regexp variable with empty value +ok 46 - get bool variable with no value +ok 47 - get bool variable with empty value +ok 48 - no arguments, but no crash +ok 49 - new section is partial match of another +ok 50 - new variable inserts into proper section +ok 51 - alternative GIT_CONFIG (non-existing file should fail) +ok 52 - alternative GIT_CONFIG +ok 53 - alternative GIT_CONFIG (--file) +ok 54 - refer config from subdirectory +ok 55 - --set in alternative GIT_CONFIG +ok 56 - rename section +ok 57 - rename succeeded +ok 58 - rename non-existing section +ok 59 - rename succeeded +ok 60 - rename another section +ok 61 - rename succeeded +ok 62 - rename a section with a var on the same line +ok 63 - rename succeeded +ok 64 - remove section +ok 65 - section was removed properly +ok 66 - section ending +ok 67 - numbers +ok 68 - invalid unit +ok 69 - bool +ok 70 - invalid bool (--get) +ok 71 - invalid bool (set) +ok 72 - set --bool +ok 73 - set --int +ok 74 - get --bool-or-int +ok 75 - set --bool-or-int +ok 76 - set --path +ok 77 - get --path +ok 78 - get --path copes with unset $HOME +ok 79 - quoting +ok 80 - key with newline +ok 81 - value with newline +ok 82 - value continued on next line +ok 83 - --null --list +ok 84 - --null --get-regexp +ok 85 - inner whitespace kept verbatim +ok 86 - symlinked configuration +ok 87 - nonexistent configuration +ok 88 - symlink to nonexistent configuration +ok 89 - check split_cmdline return +ok 90 - git -c "key=value" support +ok 91 - key sanity-checking +ok 92 - git -c works with aliases of builtins +ok 93 - git -c does not split values on equals +ok 94 - git -c dies on bogus config +ok 95 - git -c complains about empty key +ok 96 - git -c complains about empty key and value +# passed all 96 test(s) +1..96 +*** t1301-shared-repo.sh *** +ok 1 - shared = 0400 (faulty permission u-w) +ok 2 - shared=1 does not clear bits preset by umask 002 +ok 3 - shared=1 does not clear bits preset by umask 022 +ok 4 - shared=all +ok 5 - update-server-info honors core.sharedRepository +ok 6 - shared = 0660 (r--r-----) ro +ok 7 - shared = 0660 (rw-rw----) rw +ok 8 - shared = 0640 (r--r-----) ro +ok 9 - shared = 0640 (rw-r-----) rw +ok 10 - shared = 0600 (r--------) ro +ok 11 - shared = 0600 (rw-------) rw +ok 12 - shared = 0666 (r--r--r--) ro +ok 13 - shared = 0666 (rw-rw-rw-) rw +ok 14 - shared = 0664 (r--r--r--) ro +ok 15 - shared = 0664 (rw-rw-r--) rw +ok 16 - git reflog expire honors core.sharedRepository +ok 17 - forced modes +# passed all 17 test(s) +1..17 +*** t1302-repo-version.sh *** +ok 1 - setup +ok 2 - gitdir selection on normal repos +ok 3 - gitdir selection on unsupported repo +ok 4 - gitdir not required mode +ok 5 - gitdir required mode +# passed all 5 test(s) +1..5 +*** t1303-wacky-config.sh *** +ok 1 - modify same key +ok 2 - add key in same section +ok 3 - add key in different section +ok 4 - make sure git config escapes section names properly +ok 5 - do not crash on special long config line +# passed all 5 test(s) +1..5 +*** t1304-default-acl.sh *** +Unable to use setfacl (output: 'File system doesn't support aclent_t style ACL's. +See acl(5) for more information on ACL styles support by Solaris.'; return code: '2') +ok 1 # skip Setup test repo (missing SETFACL) +ok 2 # skip Objects creation does not break ACLs with restrictive umask (missing SETFACL) +ok 3 # skip git gc does not break ACLs with restrictive umask (missing SETFACL) +# passed all 3 test(s) +1..3 +*** t1400-update-ref.sh *** +ok 1 - setup +ok 2 - create refs/heads/master +ok 3 - create refs/heads/master +ok 4 - fail to delete refs/heads/master with stale ref +ok 5 - delete refs/heads/master +ok 6 - delete refs/heads/master without oldvalue verification +ok 7 - fail to create refs/heads/gu/fixes +ok 8 - create refs/heads/master (by HEAD) +ok 9 - create refs/heads/master (by HEAD) +ok 10 - fail to delete refs/heads/master (by HEAD) with stale ref +ok 11 - delete refs/heads/master (by HEAD) +ok 12 - delete symref without dereference +ok 13 - delete symref without dereference when the referred ref is packed +ok 14 - (not) create HEAD with old sha1 +ok 15 - (not) prior created .git/refs/heads/master +ok 16 - create HEAD +ok 17 - (not) change HEAD with wrong SHA1 +ok 18 - (not) changed .git/refs/heads/master +ok 19 - create refs/heads/master (logged by touch) +ok 20 - update refs/heads/master (logged by touch) +ok 21 - set refs/heads/master (logged by touch) +ok 22 - verifying refs/heads/master's log +ok 23 - enable core.logAllRefUpdates +ok 24 - create refs/heads/master (logged by config) +ok 25 - update refs/heads/master (logged by config) +ok 26 - set refs/heads/master (logged by config) +ok 27 - verifying refs/heads/master's log +ok 28 - Query "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 --date= shows reflog date (multiline) +ok 9 - using --date= shows reflog date (oneline) +ok 10 - empty reflog file +# passed all 10 test(s) +1..10 +*** t1412-reflog-loop.sh *** +ok 1 - setup commits +ok 2 - setup reflog with alternating commits +ok 3 - reflog shows all entries +# passed all 3 test(s) +1..3 +*** t1420-lost-found.sh *** +ok 1 - setup +ok 2 - lost and found something +# passed all 2 test(s) +1..2 +*** t1450-fsck.sh *** +ok 1 - setup +ok 2 - loose objects borrowed from alternate are not missing +ok 3 - HEAD is part of refs, valid objects appear valid +ok 4 - setup: helpers for corruption tests +ok 5 - object with bad sha1 +ok 6 - branch pointing to non-commit +ok 7 - email without @ is okay +ok 8 - email with embedded > is not okay +ok 9 - missing < email delimiter is reported nicely +ok 10 - missing email is reported nicely +ok 11 - > in name is reported +ok 12 - tag pointing to nonexistent +ok 13 - tag pointing to something else than its type +ok 14 - cleaned up +ok 15 - rev-list --verify-objects +ok 16 - rev-list --verify-objects with bad sha1 +# passed all 16 test(s) +1..16 +*** t1500-rev-parse.sh *** +ok 1 - toplevel: is-bare-repository +ok 2 - toplevel: is-inside-git-dir +ok 3 - toplevel: is-inside-work-tree +ok 4 - toplevel: prefix +ok 5 - toplevel: git-dir +ok 6 - .git/: is-bare-repository +ok 7 - .git/: is-inside-git-dir +ok 8 - .git/: is-inside-work-tree +ok 9 - .git/: prefix +ok 10 - .git/: git-dir +ok 11 - .git/objects/: is-bare-repository +ok 12 - .git/objects/: is-inside-git-dir +ok 13 - .git/objects/: is-inside-work-tree +ok 14 - .git/objects/: prefix +ok 15 - .git/objects/: git-dir +ok 16 - subdirectory: is-bare-repository +ok 17 - subdirectory: is-inside-git-dir +ok 18 - subdirectory: is-inside-work-tree +ok 19 - subdirectory: prefix +ok 20 - subdirectory: git-dir +ok 21 - core.bare = true: is-bare-repository +ok 22 - core.bare = true: is-inside-git-dir +ok 23 - core.bare = true: is-inside-work-tree +ok 24 - core.bare undefined: is-bare-repository +ok 25 - core.bare undefined: is-inside-git-dir +ok 26 - core.bare undefined: is-inside-work-tree +ok 27 - GIT_DIR=../.git, core.bare = false: is-bare-repository +ok 28 - GIT_DIR=../.git, core.bare = false: is-inside-git-dir +ok 29 - GIT_DIR=../.git, core.bare = false: is-inside-work-tree +ok 30 - GIT_DIR=../.git, core.bare = false: prefix +ok 31 - GIT_DIR=../.git, core.bare = true: is-bare-repository +ok 32 - GIT_DIR=../.git, core.bare = true: is-inside-git-dir +ok 33 - GIT_DIR=../.git, core.bare = true: is-inside-work-tree +ok 34 - GIT_DIR=../.git, core.bare = true: prefix +ok 35 - GIT_DIR=../.git, core.bare undefined: is-bare-repository +ok 36 - GIT_DIR=../.git, core.bare undefined: is-inside-git-dir +ok 37 - GIT_DIR=../.git, core.bare undefined: is-inside-work-tree +ok 38 - GIT_DIR=../.git, core.bare undefined: prefix +ok 39 - GIT_DIR=../repo.git, core.bare = false: is-bare-repository +ok 40 - GIT_DIR=../repo.git, core.bare = false: is-inside-git-dir +ok 41 - GIT_DIR=../repo.git, core.bare = false: is-inside-work-tree +ok 42 - GIT_DIR=../repo.git, core.bare = false: prefix +ok 43 - GIT_DIR=../repo.git, core.bare = true: is-bare-repository +ok 44 - GIT_DIR=../repo.git, core.bare = true: is-inside-git-dir +ok 45 - GIT_DIR=../repo.git, core.bare = true: is-inside-work-tree +ok 46 - GIT_DIR=../repo.git, core.bare = true: prefix +ok 47 - GIT_DIR=../repo.git, core.bare undefined: is-bare-repository +ok 48 - GIT_DIR=../repo.git, core.bare undefined: is-inside-git-dir +ok 49 - GIT_DIR=../repo.git, core.bare undefined: is-inside-work-tree +ok 50 - GIT_DIR=../repo.git, core.bare undefined: prefix +# passed all 50 test(s) +1..50 +*** t1501-worktree.sh *** +ok 1 - setup +ok 2 - setup: helper for testing rev-parse +ok 3 - setup: core.worktree = relative path +ok 4 - outside +ok 5 - inside work tree +not ok 6 - empty prefix is actually written out # TODO known breakage +ok 7 - subdir of work tree +ok 8 - setup: core.worktree = absolute path +ok 9 - outside +ok 10 - inside work tree +ok 11 - subdir of work tree +ok 12 - setup: GIT_WORK_TREE=relative (override core.worktree) +ok 13 - outside +ok 14 - inside work tree +ok 15 - subdir of work tree +ok 16 - setup: GIT_WORK_TREE=absolute, below git dir +ok 17 - outside +ok 18 - in repo.git +ok 19 - inside work tree +ok 20 - subdir of work tree +ok 21 - find work tree from repo +ok 22 - find work tree from work tree +ok 23 - _gently() groks relative GIT_DIR & GIT_WORK_TREE +ok 24 - diff-index respects work tree under .git dir +ok 25 - diff-files respects work tree under .git dir +ok 26 - git diff respects work tree under .git dir +ok 27 - git grep +ok 28 - git commit +ok 29 - absolute pathspec should fail gracefully +ok 30 - make_relative_path handles double slashes in GIT_DIR +ok 31 - relative $GIT_WORK_TREE and git subprocesses +# still have 1 known breakage(s) +# passed all remaining 30 test(s) +1..31 +*** t1502-rev-parse-parseopt.sh *** +ok 1 - test --parseopt help output +ok 2 - test --parseopt +ok 3 - test --parseopt with mixed options and arguments +ok 4 - test --parseopt with -- +ok 5 - test --parseopt --stop-at-non-option +ok 6 - test --parseopt --keep-dashdash +ok 7 - test --parseopt --keep-dashdash --stop-at-non-option with -- +ok 8 - test --parseopt --keep-dashdash --stop-at-non-option without -- +# passed all 8 test(s) +1..8 +*** t1503-rev-parse-verify.sh *** +ok 1 - set up basic repo with 1 file (hello) and 4 commits +ok 2 - works with one good rev +ok 3 - fails with any bad rev or many good revs +ok 4 - fails silently when using -q +ok 5 - no stdout output on error +ok 6 - use --default +ok 7 - 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 - @{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 " updates the index +ok 3 - "checkout " updates the index only +ok 4 - "checkout " honors diff.ignoreSubmodules +ok 5 - "checkout " honors submodule.*.ignore from .gitmodules +ok 6 - "checkout " honors submodule.*.ignore from .git/config +# passed all 6 test(s) +1..6 +*** t2014-switch.sh *** +ok 1 - setup +ok 2 - check all changes are staged +ok 3 - second commit +ok 4 - check +# passed all 4 test(s) +1..4 +*** t2015-checkout-unborn.sh *** +ok 1 - setup +ok 2 - checkout from unborn preserves untracked files +ok 3 - checkout from unborn preserves index contents +ok 4 - checkout from unborn merges identical index contents +ok 5 - checking out another branch from unborn state +# passed all 5 test(s) +1..5 +*** t2016-checkout-patch.sh *** +ok 1 - setup +ok 2 - saying "n" does nothing +ok 3 - git checkout -p +ok 4 - git checkout -p with staged changes +ok 5 - git checkout -p HEAD with NO staged changes: abort +ok 6 - git checkout -p HEAD with NO staged changes: apply +ok 7 - git checkout -p HEAD with change already staged +ok 8 - git checkout -p HEAD^ +ok 9 - git checkout -p handles deletion +ok 10 - path limiting works: dir +ok 11 - path limiting works: -- dir +ok 12 - path limiting works: HEAD^ -- dir +ok 13 - path limiting works: foo inside dir +ok 14 - none of this moved HEAD +# passed all 14 test(s) +1..14 +*** t2017-checkout-orphan.sh *** +ok 1 - Setup +ok 2 - --orphan creates a new orphan branch from HEAD +ok 3 - --orphan creates a new orphan branch from +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 +ok 18 - checkout -B to the current branch works +# passed all 18 test(s) +1..18 +*** t2019-checkout-ambiguous-ref.sh *** +ok 1 - setup ambiguous refs +ok 2 - checkout ambiguous ref succeeds +ok 3 - checkout produces ambiguity warning +ok 4 - checkout chooses branch over tag +ok 5 - checkout reports switch to branch +ok 6 - checkout vague ref succeeds +ok 7 - checkout produces ambiguity warning +ok 8 - checkout chooses branch over tag +ok 9 - checkout reports switch to branch +# passed all 9 test(s) +1..9 +*** t2020-checkout-detach.sh *** +ok 1 - setup +ok 2 - checkout branch does not detach +ok 3 - checkout tag detaches +ok 4 - checkout branch by full name detaches +ok 5 - checkout non-ref detaches +ok 6 - checkout ref^0 detaches +ok 7 - checkout --detach detaches +ok 8 - checkout --detach without branch name +ok 9 - checkout --detach errors out for non-commit +ok 10 - checkout --detach errors out for extra argument +ok 11 - checkout --detached and -b are incompatible +ok 12 - checkout --detach moves HEAD +ok 13 - checkout warns on orphan commits +ok 14 - checkout warns on orphan commits: output +ok 15 - checkout does not warn leaving ref tip +ok 16 - checkout does not warn leaving ref tip +ok 17 - checkout does not warn leaving reachable commit +ok 18 - checkout does not warn leaving reachable commit +ok 19 - tracking count is accurate after orphan check +# passed all 19 test(s) +1..19 +*** t2021-checkout-overwrite.sh *** +ok 1 - setup +ok 2 - create a commit where dir a/b changed to file +ok 3 - checkout commit with dir must not remove untracked a/b +ok 4 - create a commit where dir a/b changed to symlink +ok 5 - checkout commit with dir must not remove untracked a/b +# passed all 5 test(s) +1..5 +*** t2022-checkout-paths.sh *** +ok 1 - setup +ok 2 - checking out paths out of a tree does not clobber unrelated paths +# passed all 2 test(s) +1..2 +*** t2023-checkout-m.sh *** +ok 1 - setup +ok 2 - git merge master +ok 3 - -m restores 2-way conflicted+resolved file +ok 4 - -m restores 3-way conflicted+resolved file +# passed all 4 test(s) +1..4 +*** t2030-unresolve-info.sh *** +ok 1 - setup +ok 2 - add records switch clears +ok 3 - rm records reset clears +ok 4 - plumbing clears +ok 5 - add records checkout -m undoes +ok 6 - unmerge with plumbing +ok 7 - rerere and rerere forget +ok 8 - rerere and rerere forget (subdirectory) +# passed all 8 test(s) +1..8 +*** t2050-git-dir-relative.sh *** +ok 1 - Setting up post-commit hook +ok 2 - post-commit hook used ordinarily +ok 3 - post-commit-hook created and used from top dir +ok 4 - post-commit-hook from sub dir +# passed all 4 test(s) +1..4 +*** t2100-update-cache-badpath.sh *** +ok 1 - git update-index --add to add various paths. +ok 2 - git update-index to add conflicting path path0/file0 should fail. +ok 3 - git update-index to add conflicting path path1/file1 should fail. +ok 4 - git update-index to add conflicting path path2 should fail. +ok 5 - git update-index to add conflicting path path3 should fail. +# passed all 5 test(s) +1..5 +*** t2101-update-index-reupdate.sh *** +ok 1 - update-index --add +ok 2 - update-index --again +ok 3 - update-index --remove --again +ok 4 - first commit +ok 5 - update-index again +ok 6 - update-index --update from subdir +ok 7 - update-index --update with pathspec +# passed all 7 test(s) +1..7 +*** t2102-update-index-symlinks.sh *** +ok 1 - preparation +ok 2 - modify the symbolic link +ok 3 - the index entry must still be a symbolic link +# passed all 3 test(s) +1..3 +*** t2103-update-index-ignore-missing.sh *** +ok 1 - basics +ok 2 - --ignore-missing --refresh +ok 3 - --unmerged --refresh +ok 4 - --ignore-submodules --refresh (1) +ok 5 - --ignore-submodules --refresh (2) +# passed all 5 test(s) +1..5 +*** t2104-update-index-skip-worktree.sh *** +ok 1 - setup +ok 2 - index is at version 2 +ok 3 - update-index --skip-worktree +ok 4 - index is at version 3 after having some skip-worktree entries +ok 5 - ls-files -t +ok 6 - update-index --no-skip-worktree +ok 7 - index version is back to 2 when there is no skip-worktree entry +# passed all 7 test(s) +1..7 +*** t2105-update-index-gitfile.sh *** +ok 1 - submodule with absolute .git file +ok 2 - add gitlink to absolute .git file +ok 3 - submodule with relative .git file +ok 4 - add gitlink to relative .git file +# passed all 4 test(s) +1..4 +*** t2106-update-index-assume-unchanged.sh *** +ok 1 - setup +ok 2 - do not switch branches with dirty file +# passed all 2 test(s) +1..2 +*** t2107-update-index-basic.sh *** +ok 1 - update-index --nonsense fails +ok 2 - update-index --nonsense dumps usage +ok 3 - update-index -h with corrupt index +# passed all 3 test(s) +1..3 +*** t2200-add-update.sh *** +ok 1 - setup +ok 2 - update +ok 3 - update noticed a removal +ok 4 - update touched correct path +ok 5 - update did not touch other tracked files +ok 6 - update did not touch untracked files +ok 7 - cache tree has not been corrupted +ok 8 - update from a subdirectory +ok 9 - change gets noticed +ok 10 - replace a file with a symlink +ok 11 - add everything changed +ok 12 - touch and then add -u +ok 13 - touch and then add explicitly +ok 14 - add -n -u should not add but just report +ok 15 - add -u resolves unmerged paths +ok 16 - "add -u non-existent" should fail +# passed all 16 test(s) +1..16 +*** t2201-add-update-typechange.sh *** +ok 1 - setup +ok 2 - modify +ok 3 - diff-files +ok 4 - diff-index +ok 5 - add -u +ok 6 - commit -a +# passed all 6 test(s) +1..6 +*** t2202-add-addremove.sh *** +ok 1 - setup +ok 2 - git add --all +# passed all 2 test(s) +1..2 +*** t2203-add-intent.sh *** +ok 1 - intent to add +ok 2 - check result of "add -N" +ok 3 - intent to add is just an ordinary empty blob +ok 4 - intent to add does not clobber existing paths +ok 5 - i-t-a entry is simply ignored +ok 6 - can commit with an unrelated i-t-a entry in index +ok 7 - can "commit -a" with an i-t-a entry +# passed all 7 test(s) +1..7 +*** t2204-add-ignored.sh *** +ok 1 - setup +ok 2 - no complaints for unignored file +ok 3 - no complaints for unignored dir/file +ok 4 - no complaints for unignored dir +ok 5 - no complaints for unignored d* +ok 6 - complaints for ignored ign +ok 7 - complaints for ignored ign output +ok 8 - complaints for ignored ign with unignored file +ok 9 - complaints for ignored ign with unignored file output +ok 10 - complaints for ignored dir/ign +ok 11 - complaints for ignored dir/ign output +ok 12 - complaints for ignored dir/ign with unignored file +ok 13 - complaints for ignored dir/ign with unignored file output +ok 14 - complaints for ignored dir/sub +ok 15 - complaints for ignored dir/sub output +ok 16 - complaints for ignored dir/sub with unignored file +ok 17 - complaints for ignored dir/sub with unignored file output +ok 18 - complaints for ignored dir/sub/ign +ok 19 - complaints for ignored dir/sub/ign output +ok 20 - complaints for ignored dir/sub/ign with unignored file +ok 21 - complaints for ignored dir/sub/ign with unignored file output +ok 22 - complaints for ignored sub/file +ok 23 - complaints for ignored sub/file output +ok 24 - complaints for ignored sub/file with unignored file +ok 25 - complaints for ignored sub/file with unignored file output +ok 26 - complaints for ignored sub +ok 27 - complaints for ignored sub output +ok 28 - complaints for ignored sub with unignored file +ok 29 - complaints for ignored sub with unignored file output +ok 30 - complaints for ignored sub/file +ok 31 - complaints for ignored sub/file output +ok 32 - complaints for ignored sub/file with unignored file +ok 33 - complaints for ignored sub/file with unignored file output +ok 34 - complaints for ignored sub/ign +ok 35 - complaints for ignored sub/ign output +ok 36 - complaints for ignored sub/ign with unignored file +ok 37 - complaints for ignored sub/ign with unignored file output +ok 38 - complaints for ignored sub in dir +ok 39 - complaints for ignored sub in dir output +ok 40 - complaints for ignored sub/file in dir +ok 41 - complaints for ignored sub/file in dir output +ok 42 - complaints for ignored sub/ign in dir +ok 43 - complaints for ignored sub/ign in dir output +ok 44 - complaints for ignored ign in sub +ok 45 - complaints for ignored ign in sub output +ok 46 - complaints for ignored file in sub +ok 47 - complaints for ignored file in sub output +# passed all 47 test(s) +1..47 +*** t2300-cd-to-toplevel.sh *** +ok 1 - at physical root +ok 2 - at physical subdir +ok 3 - at symbolic root +ok 4 - at symbolic subdir +ok 5 - at internal symbolic subdir +# passed all 5 test(s) +1..5 +*** t3000-ls-files-others.sh *** +ok 1 - setup +ok 2 - setup: expected output +ok 3 - ls-files --others +ok 4 - ls-files --others --directory +ok 5 - --no-empty-directory hides empty directory +ok 6 - ls-files --others with symlinked submodule +# passed all 6 test(s) +1..6 +*** t3001-ls-files-others-exclude.sh *** +ok 1 - git ls-files --others with various exclude options. +ok 2 - git ls-files --others with + line endings. +ok 3 - setup skip-worktree gitignore +ok 4 - git ls-files --others with various exclude options. +ok 5 - restore gitignore +ok 6 - git status honors core.excludesfile +ok 7 - trailing slash in exclude allows directory match(1) +ok 8 - trailing slash in exclude allows directory match (2) +ok 9 - trailing slash in exclude forces directory match (1) +ok 10 - trailing slash in exclude forces directory match (2) +ok 11 - negated exclude matches can override previous ones +ok 12 - subdirectory ignore (setup) +ok 13 - subdirectory ignore (toplevel) +ok 14 - subdirectory ignore (l1/l2) +ok 15 - subdirectory ignore (l1) +# passed all 15 test(s) +1..15 +*** t3002-ls-files-dashpath.sh *** +ok 1 - setup +ok 2 - git ls-files without path restriction. +ok 3 - git ls-files with path restriction. +ok 4 - git ls-files with path restriction with --. +ok 5 - git ls-files with path restriction with -- --. +ok 6 - git ls-files with no path restriction. +# passed all 6 test(s) +1..6 +*** t3003-ls-files-exclude.sh *** +ok 1 - create repo with file +ok 2 - ls-files output contains file (cached) +ok 3 - ls-files output contains file (modified) +ok 4 - add file to gitignore +ok 5 - ls-files output contains file (cached) +ok 6 - ls-files output contains file (modified) +ok 7 - ls-files -i lists only tracked-but-ignored files +# passed all 7 test(s) +1..7 +*** t3004-ls-files-basic.sh *** +ok 1 - ls-files in empty repository +ok 2 - ls-files with nonexistent path +ok 3 - ls-files with nonsense option +ok 4 - ls-files -h in corrupt repository +# passed all 4 test(s) +1..4 +*** t3005-ls-files-relative.sh *** +ok 1 - prepare +ok 2 - ls-files with mixed levels +ok 3 - ls-files -c +ok 4 - ls-files -o +# passed all 4 test(s) +1..4 +*** t3010-ls-files-killed-modified.sh *** +ok 1 - git update-index --add to add various paths. +ok 2 - git ls-files -k to show killed files. +ok 3 - validate git ls-files -k output. +ok 4 - git ls-files -m to show modified files. +ok 5 - validate git ls-files -m output. +# passed all 5 test(s) +1..5 +*** t3020-ls-files-error-unmatch.sh *** +ok 1 - setup +ok 2 - git ls-files --error-unmatch should fail with unmatched path. +ok 3 - git ls-files --error-unmatch should succeed eith matched paths. +# passed all 3 test(s) +1..3 +*** t3030-merge-recursive.sh *** +ok 1 - setup 1 +ok 2 - setup 2 +ok 3 - setup 3 +ok 4 - setup 4 +ok 5 - setup 5 +ok 6 - setup 6 +ok 7 - setup 7 +ok 8 - setup 8 +ok 9 - setup 9 +ok 10 - merge-recursive simple +ok 11 - merge-recursive result +ok 12 - fail if the index has unresolved entries +ok 13 - merge-recursive remove conflict +ok 14 - merge-recursive remove conflict +ok 15 - merge-recursive d/f simple +ok 16 - merge-recursive result +ok 17 - merge-recursive d/f conflict +ok 18 - merge-recursive d/f conflict result +ok 19 - merge-recursive d/f conflict the other way +ok 20 - merge-recursive d/f conflict result the other way +ok 21 - merge-recursive d/f conflict +ok 22 - merge-recursive d/f conflict result +ok 23 - merge-recursive d/f conflict +ok 24 - merge-recursive d/f conflict result +ok 25 - reset and 3-way merge +ok 26 - reset and bind merge +ok 27 - merge removes empty directories +not ok 28 - merge-recursive simple w/submodule # TODO known breakage +not ok 29 - merge-recursive simple w/submodule result # TODO known breakage +ok 30 - merge-recursive copy vs. rename +not ok 31 - merge-recursive rename vs. rename/symlink # TODO known breakage +# still have 3 known breakage(s) +# passed all remaining 28 test(s) +1..31 +*** t3031-merge-criscross.sh *** +ok 1 - setup repo with criss-cross history +ok 2 - recursive merge between F and G, causes segfault +# passed all 2 test(s) +1..2 +*** t3032-merge-recursive-options.sh *** +ok 1 - setup +ok 2 - naive merge fails +ok 3 - --ignore-space-change makes merge succeed +ok 4 - naive cherry-pick fails +ok 5 - -Xignore-space-change makes cherry-pick succeed +ok 6 - --ignore-space-change: our w/s-only change wins +ok 7 - --ignore-space-change: their real change wins over w/s +ok 8 - --ignore-space-change: does not ignore new spaces +ok 9 - --ignore-all-space drops their new spaces +ok 10 - --ignore-all-space keeps our new spaces +ok 11 - --ignore-space-at-eol +# passed all 11 test(s) +1..11 +*** t3040-subprojects-basic.sh *** +ok 1 - setup: create superproject +ok 2 - setup: create subprojects +ok 3 - check if fsck ignores the subprojects +ok 4 - check if commit in a subproject detected +ok 5 - check if a changed subproject HEAD can be committed +ok 6 - check if diff-index works for subproject elements +ok 7 - check if diff-tree works for subproject elements +ok 8 - check if git diff works for subproject elements +ok 9 - check if clone works +ok 10 - removing and adding subproject +ok 11 - checkout in superproject +# passed all 11 test(s) +1..11 +*** t3050-subprojects-fetch.sh *** +ok 1 - setup +ok 2 - clone +ok 3 - advance +ok 4 - fetch +# passed all 4 test(s) +1..4 +*** t3060-ls-files-with-tree.sh *** +ok 1 - setup +ok 2 - git -ls-files --with-tree should succeed from subdir +ok 3 - git -ls-files --with-tree should add entries from named tree. +# passed all 3 test(s) +1..3 +*** t3100-ls-tree-restrict.sh *** +ok 1 - setup +ok 2 - ls-tree plain +ok 3 - ls-tree recursive +ok 4 - ls-tree recursive with -t +ok 5 - ls-tree recursive with -d +ok 6 - ls-tree filtered with path +ok 7 - ls-tree filtered with path1 path0 +ok 8 - ls-tree filtered with path0/ +ok 9 - ls-tree filtered with path2 +ok 10 - ls-tree filtered with path2/ +ok 11 - ls-tree filtered with path2/baz +ok 12 - ls-tree filtered with path2/bak +ok 13 - ls-tree -t filtered with path2/bak +ok 14 - ls-tree with one path a prefix of the other +# passed all 14 test(s) +1..14 +*** t3101-ls-tree-dirname.sh *** +ok 1 - setup +ok 2 - ls-tree plain +ok 3 - ls-tree recursive +ok 4 - ls-tree filter 1.txt +ok 5 - ls-tree filter path1/b/c/1.txt +ok 6 - ls-tree filter all 1.txt files +ok 7 - ls-tree filter directories +ok 8 - ls-tree filter odd names +ok 9 - ls-tree filter missing files and extra slashes +ok 10 - ls-tree filter is leading path match +ok 11 - ls-tree --full-name +ok 12 - ls-tree --full-tree +ok 13 - ls-tree --full-tree -r +ok 14 - ls-tree --abbrev=5 +ok 15 - ls-tree --name-only +ok 16 - ls-tree --name-only -r +# passed all 16 test(s) +1..16 +*** t3102-ls-tree-wildcards.sh *** +ok 1 - setup +ok 2 - ls-tree a[a] matches literally +# passed all 2 test(s) +1..2 +*** t3103-ls-tree-misc.sh *** +ok 1 - setup +ok 2 - ls-tree fails with non-zero exit code on broken tree +# passed all 2 test(s) +1..2 +*** t3200-branch.sh *** +ok 1 - prepare a trivial repository +ok 2 - git branch --help should not have created a bogus branch +ok 3 - branch -h in broken repository +ok 4 - git branch abc should create a branch +ok 5 - git branch a/b/c should create a branch +ok 6 - git branch -l d/e/f should create a branch and a log +ok 7 - git branch -d d/e/f should delete a branch and a log +ok 8 - git branch j/k should work after branch j has been deleted +ok 9 - git branch l should work after branch l/m has been deleted +ok 10 - git branch -m dumps usage +ok 11 - git branch -m m m/m should work +ok 12 - git branch -m n/n n should work +ok 13 - git branch -m o/o o should fail when o/p exists +ok 14 - git branch -m q r/q should fail when r exists +ok 15 - git branch -M foo bar should fail when bar is checked out +ok 16 - git branch -M baz bam should succeed when baz is checked out +ok 17 - git branch -M master should work when master is checked out +ok 18 - git branch -M master master should work when master is checked out +ok 19 - git branch -M master2 master2 should work when master is checked out +ok 20 - git branch -v -d t should work +ok 21 - git branch -v -m t s should work +ok 22 - git branch -m -d t s should fail +ok 23 - git branch --list -d t should fail +ok 24 - git branch -m q q2 without config should succeed +ok 25 - git branch -m s/s s should work when s/t is deleted +ok 26 - config information was renamed, too +ok 27 - renaming a symref is not allowed +ok 28 - git branch -m u v should fail when the reflog for u is a symlink +ok 29 - test tracking setup via --track +ok 30 - test tracking setup (non-wildcard, matching) +ok 31 - test tracking setup (non-wildcard, not matching) +ok 32 - test tracking setup via config +ok 33 - test overriding tracking setup via --no-track +ok 34 - no tracking without .fetch entries +ok 35 - test tracking setup via --track but deeper +ok 36 - test deleting branch deletes branch config +ok 37 - test deleting branch without config +ok 38 - test --track without .fetch entries +ok 39 - branch from non-branch HEAD w/autosetupmerge=always +ok 40 - branch from non-branch HEAD w/--track causes failure +ok 41 - branch from tag w/--track causes failure +ok 42 - git checkout -b g/h/i -l should create a branch and a log +ok 43 - checkout -b makes reflog by default +ok 44 - checkout -b does not make reflog when core.logAllRefUpdates = false +ok 45 - checkout -b with -l makes reflog when core.logAllRefUpdates = false +ok 46 - avoid ambiguous track +ok 47 - autosetuprebase local on a tracked local branch +ok 48 - autosetuprebase always on a tracked local branch +ok 49 - autosetuprebase remote on a tracked local branch +ok 50 - autosetuprebase never on a tracked local branch +ok 51 - autosetuprebase local on a tracked remote branch +ok 52 - autosetuprebase never on a tracked remote branch +ok 53 - autosetuprebase remote on a tracked remote branch +ok 54 - autosetuprebase always on a tracked remote branch +ok 55 - autosetuprebase unconfigured on a tracked remote branch +ok 56 - autosetuprebase unconfigured on a tracked local branch +ok 57 - autosetuprebase unconfigured on untracked local branch +ok 58 - autosetuprebase unconfigured on untracked remote branch +ok 59 - autosetuprebase never on an untracked local branch +ok 60 - autosetuprebase local on an untracked local branch +ok 61 - autosetuprebase remote on an untracked local branch +ok 62 - autosetuprebase always on an untracked local branch +ok 63 - autosetuprebase never on an untracked remote branch +ok 64 - autosetuprebase local on an untracked remote branch +ok 65 - autosetuprebase remote on an untracked remote branch +ok 66 - autosetuprebase always on an untracked remote branch +ok 67 - autosetuprebase always on detached HEAD +ok 68 - detect misconfigured autosetuprebase (bad value) +ok 69 - detect misconfigured autosetuprebase (no value) +ok 70 - attempt to delete a branch without base and unmerged to HEAD +ok 71 - attempt to delete a branch merged to its base +ok 72 - attempt to delete a branch merged to its base +ok 73 - use set-upstream on the current branch +ok 74 - use --edit-description +ok 75 - detect typo in branch name when using --edit-description +ok 76 - refuse --edit-description on unborn branch for now +# passed all 76 test(s) +1..76 +*** t3201-branch-contains.sh *** +ok 1 - setup +ok 2 - branch --contains=master +ok 3 - branch --contains master +ok 4 - branch --contains=side +ok 5 - side: branch --merged +ok 6 - side: branch --no-merged +ok 7 - master: branch --merged +ok 8 - master: branch --no-merged +# passed all 8 test(s) +1..8 +*** t3202-show-branch-octopus.sh *** +ok 1 - setup +ok 2 - show-branch with more than 8 branches +ok 3 - show-branch with showbranch.default +# passed all 3 test(s) +1..3 +*** t3203-branch-output.sh *** +ok 1 - make commits +ok 2 - make branches +ok 3 - make remote branches +ok 4 - git branch shows local branches +ok 5 - git branch --list shows local branches +ok 6 - git branch --list pattern shows matching local branches +ok 7 - git branch -r shows remote branches +ok 8 - git branch -a shows local and remote branches +ok 9 - git branch -v shows branch summaries +ok 10 - git branch --list -v pattern shows branch summaries +ok 11 - git branch -v pattern does not show branch summaries +ok 12 - git branch shows detached HEAD properly +# passed all 12 test(s) +1..12 +*** t3210-pack-refs.sh *** +ok 1 - prepare a trivial repository +ok 2 - see if git show-ref works as expected +ok 3 - see if a branch still exists when packed +ok 4 - git branch c/d should barf if branch c exists +ok 5 - see if a branch still exists after git pack-refs --prune +ok 6 - see if git pack-refs --prune remove ref files +ok 7 - see if git pack-refs --prune removes empty dirs +ok 8 - git branch g should work when git branch g/h has been deleted +ok 9 - git branch i/j/k should barf if branch i exists +ok 10 - test git branch k after branch k/l/m and k/lm have been deleted +ok 11 - test git branch n after some branch deletion and pruning +ok 12 - see if up-to-date packed refs are preserved +ok 13 - pack, prune and repack +# passed all 13 test(s) +1..13 +*** t3300-funny-names.sh *** +ok 1 - setup expect +ok 2 - git ls-files no-funny +ok 3 - setup expect +ok 4 - git ls-files with-funny +ok 5 - setup expect +ok 6 - git ls-files -z with-funny +ok 7 - setup expect +ok 8 - git ls-tree with funny +ok 9 - setup expect +ok 10 - git diff-index with-funny +ok 11 - git diff-tree with-funny +ok 12 - setup expect +ok 13 - git diff-index -z with-funny +ok 14 - git diff-tree -z with-funny +ok 15 - setup expect +ok 16 - git diff-tree -C with-funny +ok 17 - setup expect +ok 18 - git diff-tree delete with-funny +ok 19 - setup expect +ok 20 - git diff-tree delete with-funny +ok 21 - setup expect +ok 22 - git diff-tree delete with-funny +ok 23 - setup expect +ok 24 - git diff-tree rename with-funny applied +ok 25 - setup expect +ok 26 - git diff-tree delete with-funny applied +ok 27 - git apply non-git diff +# passed all 27 test(s) +1..27 +*** t3301-notes.sh *** +ok 1 - cannot annotate non-existing HEAD +ok 2 - setup +ok 3 - need valid notes ref +ok 4 - refusing to add notes in refs/heads/ +ok 5 - refusing to edit notes in refs/remotes/ +ok 6 - handle empty notes gracefully +ok 7 - show non-existent notes entry with %N +ok 8 - create notes +ok 9 - show notes entry with %N +ok 10 - create reflog entry +ok 11 - edit existing notes +ok 12 - cannot "git notes add -m" where notes already exists +ok 13 - can overwrite existing note with "git notes add -f -m" +ok 14 - add w/no options on existing note morphs into edit +ok 15 - can overwrite existing note with "git notes add -f" +ok 16 - show notes +ok 17 - create multi-line notes (setup) +ok 18 - show multi-line notes +ok 19 - create -F notes (setup) +ok 20 - show -F notes +ok 21 - Re-adding -F notes without -f fails +ok 22 - git log --pretty=raw does not show notes +ok 23 - git log --show-notes +ok 24 - git log --no-notes +ok 25 - git format-patch does not show notes +ok 26 - git format-patch --show-notes does show notes +ok 27 - git show does show notes +ok 28 - git show --pretty does not show notes +ok 29 - git show --pretty=raw does not show notes +ok 30 - git show --pretty=short does not show notes +ok 31 - git show --pretty=medium does not show notes +ok 32 - git show --pretty=full does not show notes +ok 33 - git show --pretty=fuller does not show notes +ok 34 - git show --pretty=format:%s does not show notes +ok 35 - git show --oneline does not show notes +ok 36 - setup alternate notes ref +ok 37 - git log --notes shows default notes +ok 38 - git log --notes=X shows only X +ok 39 - git log --notes --notes=X shows both +ok 40 - git log --no-notes resets default state +ok 41 - git log --no-notes resets ref list +ok 42 - create -m notes (setup) +ok 43 - show -m notes +ok 44 - remove note with add -f -F /dev/null (setup) +ok 45 - verify note removal with -F /dev/null +ok 46 - do not create empty note with -m "" (setup) +ok 47 - verify non-creation of note with -m "" +ok 48 - create note with combination of -m and -F +ok 49 - remove note with "git notes remove" (setup) +ok 50 - verify note removal with "git notes remove" +ok 51 - removing non-existing note should not create new commit +ok 52 - removing more than one +ok 53 - removing is atomic +ok 54 - removing with --ignore-missing +ok 55 - removing with --ignore-missing but bogus ref +ok 56 - remove reads from --stdin +ok 57 - remove --stdin is also atomic +ok 58 - removing with --stdin --ignore-missing +ok 59 - list notes with "git notes list" +ok 60 - list notes with "git notes" +ok 61 - list specific note with "git notes list " +ok 62 - listing non-existing notes fails +ok 63 - append to existing note with "git notes append" +ok 64 - "git notes list" does not expand to "git notes list HEAD" +ok 65 - appending empty string does not change existing note +ok 66 - git notes append == add when there is no existing note +ok 67 - appending empty string to non-existing note does not create note +ok 68 - create other note on a different notes ref (setup) +ok 69 - Do not show note on other ref by default +ok 70 - Do show note when ref is given in GIT_NOTES_REF +ok 71 - Do show note when ref is given in core.notesRef config +ok 72 - Do not show note when core.notesRef is overridden +ok 73 - Show all notes when notes.displayRef=refs/notes/* +ok 74 - core.notesRef is implicitly in notes.displayRef +ok 75 - notes.displayRef can be given more than once +ok 76 - notes.displayRef respects order +ok 77 - GIT_NOTES_DISPLAY_REF works +ok 78 - GIT_NOTES_DISPLAY_REF overrides config +ok 79 - --show-notes=* adds to GIT_NOTES_DISPLAY_REF +ok 80 - --no-standard-notes +ok 81 - --standard-notes +ok 82 - --show-notes=ref accumulates +ok 83 - Allow notes on non-commits (trees, blobs, tags) +ok 84 - create note from other note with "git notes add -C" +ok 85 - create note from non-existing note with "git notes add -C" fails +ok 86 - create note from other note with "git notes add -c" +ok 87 - create note from non-existing note with "git notes add -c" fails +ok 88 - append to note from other note with "git notes append -C" +ok 89 - create note from other note with "git notes append -c" +ok 90 - append to note from other note with "git notes append -c" +ok 91 - copy note with "git notes copy" +ok 92 - prevent overwrite with "git notes copy" +ok 93 - allow overwrite with "git notes copy -f" +ok 94 - cannot copy note from object without notes +ok 95 - git notes copy --stdin +ok 96 - git notes copy --for-rewrite (unconfigured) +ok 97 - git notes copy --for-rewrite (enabled) +ok 98 - git notes copy --for-rewrite (disabled) +ok 99 - git notes copy --for-rewrite (overwrite) +ok 100 - git notes copy --for-rewrite (ignore) +ok 101 - git notes copy --for-rewrite (append) +ok 102 - git notes copy --for-rewrite (append two to one) +ok 103 - git notes copy --for-rewrite (append empty) +ok 104 - GIT_NOTES_REWRITE_MODE works +ok 105 - GIT_NOTES_REWRITE_REF works +ok 106 - GIT_NOTES_REWRITE_REF overrides config +ok 107 - git notes copy diagnoses too many or too few parameters +ok 108 - git notes get-ref (no overrides) +ok 109 - git notes get-ref (core.notesRef) +ok 110 - git notes get-ref (GIT_NOTES_REF) +ok 111 - git notes get-ref (--ref) +# passed all 111 test(s) +1..111 +*** t3302-notes-index-expensive.sh *** +ok 1 - setup / mkdir +ok 2 - setup 10 +ok 3 - notes work +ok 4 - notes timing with /usr/bin/time +ok 5 - teardown / cd .. +ok 6 # skip setup / mkdir (missing EXPENSIVE) +ok 7 # skip setup 100 (missing EXPENSIVE) +ok 8 # skip notes work (missing EXPENSIVE) +ok 9 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE) +ok 10 # skip teardown / cd .. (missing EXPENSIVE) +ok 11 # skip setup / mkdir (missing EXPENSIVE) +ok 12 # skip setup 1000 (missing EXPENSIVE) +ok 13 # skip notes work (missing EXPENSIVE) +ok 14 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE) +ok 15 # skip teardown / cd .. (missing EXPENSIVE) +ok 16 # skip setup / mkdir (missing EXPENSIVE) +ok 17 # skip setup 10000 (missing EXPENSIVE) +ok 18 # skip notes work (missing EXPENSIVE) +ok 19 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE) +ok 20 # skip teardown / cd .. (missing EXPENSIVE) +# passed all 20 test(s) +1..20 +*** t3303-notes-subtrees.sh *** +ok 1 - setup: create 100 commits +ok 2 - test notes in 2/38-fanout +ok 3 - verify notes in 2/38-fanout +ok 4 - test notes in 2/2/36-fanout +ok 5 - verify notes in 2/2/36-fanout +ok 6 - test notes in 2/2/2/34-fanout +ok 7 - verify notes in 2/2/2/34-fanout +ok 8 - test same notes in no fanout and 2/38-fanout +ok 9 - verify same notes in no fanout and 2/38-fanout +ok 10 - test same notes in no fanout and 2/2/36-fanout +ok 11 - verify same notes in no fanout and 2/2/36-fanout +ok 12 - test same notes in 2/38-fanout and 2/2/36-fanout +ok 13 - verify same notes in 2/38-fanout and 2/2/36-fanout +ok 14 - test same notes in 2/2/2/34-fanout and 2/2/36-fanout +ok 15 - verify same notes in 2/2/2/34-fanout and 2/2/36-fanout +ok 16 - test notes in no fanout concatenated with 2/38-fanout +ok 17 - verify notes in no fanout concatenated with 2/38-fanout +ok 18 - test notes in no fanout concatenated with 2/2/36-fanout +ok 19 - verify notes in no fanout concatenated with 2/2/36-fanout +ok 20 - test notes in 2/38-fanout concatenated with 2/2/36-fanout +ok 21 - verify notes in 2/38-fanout concatenated with 2/2/36-fanout +ok 22 - test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout +ok 23 - verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout +# passed all 23 test(s) +1..23 +*** t3304-notes-mixed.sh *** +ok 1 - setup: create a couple of commits +ok 2 - create a notes tree with both notes and non-notes +ok 3 - verify contents of notes +ok 4 - verify contents of non-notes +ok 5 - git-notes preserves non-notes +ok 6 - verify contents of non-notes after git-notes +# passed all 6 test(s) +1..6 +*** t3305-notes-fanout.sh *** +ok 1 - creating many notes with git-notes +ok 2 - many notes created correctly with git-notes +ok 3 - many notes created with git-notes triggers fanout +ok 4 - deleting most notes with git-notes +ok 5 - most notes deleted correctly with git-notes +ok 6 - deleting most notes triggers fanout consolidation +# passed all 6 test(s) +1..6 +*** t3306-notes-prune.sh *** +ok 1 - setup: create a few commits with notes +ok 2 - verify commits and notes +ok 3 - remove some commits +ok 4 - verify that commits are gone +ok 5 - verify that notes are still present +ok 6 - prune -n does not remove notes +ok 7 - prune -n lists prunable notes +ok 8 - prune notes +ok 9 - verify that notes are gone +ok 10 - remove some commits +ok 11 - prune -v notes +ok 12 - verify that notes are gone +# passed all 12 test(s) +1..12 +*** t3307-notes-man.sh *** +ok 1 - setup +ok 2 - example 1: notes to add an Acked-by line +ok 3 - example 2: binary notes +# passed all 3 test(s) +1..3 +*** t3308-notes-merge.sh *** +ok 1 - setup +ok 2 - verify initial notes (x) +ok 3 - fail to merge empty notes ref into empty notes ref (z => y) +ok 4 - fail to merge into various non-notes refs +ok 5 - fail to merge various non-note-trees +ok 6 - merge notes into empty notes ref (x => y) +ok 7 - merge empty notes ref (z => y) +ok 8 - change notes on other notes ref (y) +ok 9 - merge previous notes commit (y^ => y) => No-op +ok 10 - verify changed notes on other notes ref (y) +ok 11 - verify unchanged notes on original notes ref (x) +ok 12 - merge original notes (x) into changed notes (y) => No-op +ok 13 - merge changed (y) into original (x) => Fast-forward +ok 14 - merge empty notes ref (z => y) +ok 15 - change notes on other notes ref (y) +ok 16 - change notes on notes ref (x) +ok 17 - merge y into x => Non-conflicting 3-way merge +ok 18 - create notes on new, separate notes ref (w) +ok 19 - merge w into x => Non-conflicting history-less merge +# passed all 19 test(s) +1..19 +*** t3309-notes-merge-auto-resolve.sh *** +ok 1 - setup commits +ok 2 - setup merge base (x) +ok 3 - verify state of merge base (x) +ok 4 - setup local branch (y) +ok 5 - verify state of local branch (y) +ok 6 - setup remote branch (z) +ok 7 - verify state of remote branch (z) +ok 8 - merge z into y with invalid strategy => Fail/No changes +ok 9 - merge z into y with "ours" strategy => Non-conflicting 3-way merge +ok 10 - reset to pre-merge state (y) +ok 11 - merge z into y with "theirs" strategy => Non-conflicting 3-way merge +ok 12 - reset to pre-merge state (y) +ok 13 - merge z into y with "union" strategy => Non-conflicting 3-way merge +ok 14 - reset to pre-merge state (y) +ok 15 - merge y into z with "union" strategy => Non-conflicting 3-way merge +ok 16 - reset to pre-merge state (z) +ok 17 - merge y into z with "cat_sort_uniq" strategy => Non-conflicting 3-way merge +# passed all 17 test(s) +1..17 +*** t3310-notes-merge-manual-resolve.sh *** +ok 1 - setup commits +ok 2 - setup merge base (x) +ok 3 - setup local branch (y) +ok 4 - setup remote branch (z) +ok 5 - merge z into m (== y) with default ("manual") resolver => Conflicting 3-way merge +ok 6 - change notes in z +ok 7 - cannot do merge w/conflicts when previous merge is unfinished +ok 8 - setup unrelated notes ref (w) +ok 9 - can do merge without conflicts even if previous merge is unfinished (x => w) +ok 10 - finalize conflicting merge (z => m) +ok 11 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge +ok 12 - abort notes merge +ok 13 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge +ok 14 - add + remove notes in finalized merge (z => m) +ok 15 - redo merge of z into m (== y) with default ("manual") resolver => Conflicting 3-way merge +ok 16 - reset notes ref m to somewhere else (w) +ok 17 - fail to finalize conflicting merge if underlying ref has moved in the meantime (m != NOTES_MERGE_PARTIAL^1) +ok 18 - resolve situation by aborting the notes merge +# passed all 18 test(s) +1..18 +*** t3311-notes-merge-fanout.sh *** +ok 1 - setup a few initial commits with notes (notes ref: x) +ok 2 - sanity check (x) +ok 3 - Add a few hundred commits w/notes to trigger fanout (x -> y) +ok 4 - notes tree has fanout (y) +ok 5 - No-op merge (already included) (x => y) +ok 6 - Fast-forward merge (y => x) +ok 7 - change some of the initial 5 notes (x -> z) +ok 8 - notes tree has no fanout (z) +ok 9 - successful merge without conflicts (y => z) +ok 10 - notes tree still has fanout after merge (m) +ok 11 - introduce conflicting changes (y -> w) +ok 12 - successful merge using "ours" strategy (z => w) +ok 13 - notes tree still has fanout after merge (m) +ok 14 - successful merge using "theirs" strategy (z => w) +ok 15 - notes tree still has fanout after merge (m) +ok 16 - successful merge using "union" strategy (z => w) +ok 17 - notes tree still has fanout after merge (m) +ok 18 - successful merge using "cat_sort_uniq" strategy (z => w) +ok 19 - notes tree still has fanout after merge (m) +ok 20 - fails to merge using "manual" strategy (z => w) +ok 21 - notes tree still has fanout after merge (m) +ok 22 - verify conflict entries (with no fanout) +ok 23 - resolve and finalize merge (z => w) +ok 24 - notes tree still has fanout after merge (m) +# passed all 24 test(s) +1..24 +*** t3400-rebase.sh *** +ok 1 - prepare repository with topic branches +ok 2 - rebase on dirty worktree +ok 3 - rebase on dirty cache +ok 4 - rebase against master +ok 5 - rebase against master twice +ok 6 - rebase against master twice with --force +ok 7 - rebase against master twice from another branch +ok 8 - rebase fast-forward to master +ok 9 - the rebase operation should not have destroyed author information +ok 10 - the rebase operation should not have destroyed author information (2) +ok 11 - HEAD was detached during rebase +ok 12 - rebase after merge master +ok 13 - rebase of history with merges is linearized +ok 14 - rebase of history with merges after upstream merge is linearized +ok 15 - rebase a single mode change +ok 16 - rebase is not broken by diff.renames +ok 17 - setup: recover +ok 18 - Show verbose error when HEAD could not be detached +ok 19 - fail when upstream arg is missing and not on branch +ok 20 - fail when upstream arg is missing and not configured +ok 21 - default to @{upstream} when upstream arg is missing +ok 22 - rebase -q is quiet +ok 23 - Rebase a commit that sprinkles CRs in +ok 24 - rebase can copy notes +ok 25 - rebase -m can copy notes +ok 26 - rebase commit with an ancient timestamp +# passed all 26 test(s) +1..26 +*** t3401-rebase-partial.sh *** +ok 1 - prepare repository with topic branch +ok 2 - pick top patch from topic branch into master +ok 3 - rebase topic branch against new master and check git am did not get halted +ok 4 - rebase --merge topic branch that was partially merged upstream +# passed all 4 test(s) +1..4 +*** t3402-rebase-merge.sh *** +ok 1 - setup +ok 2 - reference merge +ok 3 - rebase +ok 4 - 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 +ok 8 - rebase on top of a non-conflicting commit +ok 9 - reflog for the branch shows state before rebase +ok 10 - exchange two commits +ok 11 - stop on conflicting pick +ok 12 - abort +ok 13 - abort with error when new base cannot be checked out +ok 14 - retain authorship +ok 15 - squash +ok 16 - retain authorship when squashing +ok 17 - -p handles "no changes" gracefully +not ok 18 - exchange two commits with -p # TODO known breakage +ok 19 - preserve merges with -p +ok 20 - edit ancestor with -p +ok 21 - --continue tries to commit +ok 22 - verbose flag is heeded, even after --continue +ok 23 - multi-squash only fires up editor once +ok 24 - multi-fixup does not fire up editor +ok 25 - commit message used after conflict +ok 26 - commit message retained after conflict +ok 27 - squash and fixup generate correct log messages +ok 28 - squash ignores comments +ok 29 - squash ignores blank lines +ok 30 - squash works as expected +ok 31 - interrupted squash works as expected +ok 32 - interrupted squash works as expected (case 2) +ok 33 - ignore patch if in upstream +ok 34 - --continue tries to commit, even for "edit" +ok 35 - aborted --continue does not squash commits after "edit" +ok 36 - auto-amend only edited commits after "edit" +ok 37 - clean error after failed "exec" +ok 38 - rebase a detached HEAD +ok 39 - rebase a commit violating pre-commit +ok 40 - rebase with a file named HEAD in worktree +ok 41 - do "noop" when there is nothing to cherry-pick +ok 42 - submodule rebase setup +ok 43 - submodule rebase -i +ok 44 - avoid unnecessary reset +ok 45 - reword +ok 46 - rebase -i can copy notes +ok 47 - rebase -i can copy notes over a fixup +ok 48 - rebase while detaching HEAD +ok 49 - always cherry-pick with --no-ff +ok 50 - set up commits with funny messages +ok 51 - rebase-i history with funny messages +# still have 1 known breakage(s) +# passed all remaining 50 test(s) +1..51 +*** t3405-rebase-malformed.sh *** +ok 1 - setup +ok 2 - rebase +# passed all 2 test(s) +1..2 +*** t3406-rebase-message.sh *** +ok 1 - setup +ok 2 - rebase -m +ok 3 - rebase --stat +ok 4 - rebase w/config rebase.stat +ok 5 - rebase -n overrides config rebase.stat config +# passed all 5 test(s) +1..5 +*** t3407-rebase-abort.sh *** +ok 1 - setup +ok 2 - rebase --abort +ok 3 - rebase --abort after --skip +ok 4 - rebase --abort after --continue +ok 5 - rebase --abort does not update reflog +ok 6 - rebase --abort can not be used with other options +ok 7 - rebase --merge --abort +ok 8 - rebase --merge --abort after --skip +ok 9 - rebase --merge --abort after --continue +ok 10 - rebase --merge --abort does not update reflog +ok 11 - rebase --abort can not be used with other options +# passed all 11 test(s) +1..11 +*** t3408-rebase-multi-line.sh *** +ok 1 - setup +ok 2 - rebase +# passed all 2 test(s) +1..2 +*** t3409-rebase-preserve-merges.sh *** +ok 1 - setup for merge-preserving rebase +ok 2 - rebase -p fakes interactive rebase +ok 3 - --continue works after a conflict +ok 4 - rebase -p preserves no-ff merges +ok 5 - rebase -p works when base inside second parent +# passed all 5 test(s) +1..5 +*** t3410-rebase-preserve-dropped-merges.sh *** +ok 1 - setup +ok 2 - skip same-resolution merges with -p +ok 3 - keep different-resolution merges with -p +# passed all 3 test(s) +1..3 +*** t3411-rebase-preserve-around-merges.sh *** +ok 1 - setup +ok 2 - squash F1 into D1 +ok 3 - rebase two levels of merge +# passed all 3 test(s) +1..3 +*** t3412-rebase-root.sh *** +ok 1 - prepare repository +ok 2 - rebase --root expects --onto +ok 3 - setup pre-rebase hook +ok 4 - rebase --root --onto +ok 5 - pre-rebase got correct input (1) +ok 6 - rebase --root --onto +ok 7 - pre-rebase got correct input (2) +ok 8 - rebase -i --root --onto +ok 9 - pre-rebase got correct input (3) +ok 10 - rebase -i --root --onto +ok 11 - pre-rebase got correct input (4) +ok 12 - rebase -i -p with linear history +ok 13 - pre-rebase got correct input (5) +ok 14 - set up merge history +ok 15 - rebase -i -p with merge +ok 16 - set up second root and merge +ok 17 - rebase -i -p with two roots +ok 18 - setup pre-rebase hook that fails +ok 19 - pre-rebase hook stops rebase +ok 20 - pre-rebase hook stops rebase -i +ok 21 - remove pre-rebase hook +ok 22 - set up a conflict +ok 23 - rebase --root with conflict (first part) +ok 24 - fix the conflict +ok 25 - rebase --root with conflict (second part) +ok 26 - rebase -i --root with conflict (first part) +ok 27 - fix the conflict +ok 28 - rebase -i --root with conflict (second part) +ok 29 - rebase -i -p --root with conflict (first part) +ok 30 - fix the conflict +ok 31 - rebase -i -p --root with conflict (second part) +# passed all 31 test(s) +1..31 +*** t3413-rebase-hook.sh *** +ok 1 - setup +ok 2 - rebase +ok 3 - rebase -i +ok 4 - setup pre-rebase hook +ok 5 - pre-rebase hook gets correct input (1) +ok 6 - pre-rebase hook gets correct input (2) +ok 7 - pre-rebase hook gets correct input (3) +ok 8 - pre-rebase hook gets correct input (4) +ok 9 - pre-rebase hook gets correct input (5) +ok 10 - pre-rebase hook gets correct input (6) +ok 11 - setup pre-rebase hook that fails +ok 12 - pre-rebase hook stops rebase (1) +ok 13 - pre-rebase hook stops rebase (2) +ok 14 - rebase --no-verify overrides pre-rebase (1) +ok 15 - rebase --no-verify overrides pre-rebase (2) +# passed all 15 test(s) +1..15 +*** t3414-rebase-preserve-onto.sh *** +ok 1 - setup +ok 2 - rebase from B1 onto H1 +ok 3 - rebase from E1 onto H1 +ok 4 - rebase from C1 onto H1 +# passed all 4 test(s) +1..4 +*** t3415-rebase-autosquash.sh *** +ok 1 - setup +ok 2 - auto fixup (option) +ok 3 - auto fixup (config) +ok 4 - auto squash (option) +ok 5 - auto squash (config) +ok 6 - misspelled auto squash +ok 7 - auto squash that matches 2 commits +ok 8 - auto squash that matches a commit after the squash +ok 9 - auto squash that matches a sha1 +ok 10 - auto squash that matches longer sha1 +ok 11 - use commit --fixup +ok 12 - use commit --squash +# passed all 12 test(s) +1..12 +*** t3416-rebase-onto-threedots.sh *** +ok 1 - setup +ok 2 - rebase --onto master...topic +ok 3 - rebase --onto master... +ok 4 - rebase --onto master...side +ok 5 - rebase -i --onto master...topic +ok 6 - rebase -i --onto master... +ok 7 - rebase -i --onto master...side +# passed all 7 test(s) +1..7 +*** t3417-rebase-whitespace-fix.sh *** +ok 1 - blank line at end of file; extend at end of file +ok 2 - two blanks line at end of file; extend at end of file +ok 3 - same, but do not remove trailing spaces +ok 4 - at beginning of file +# passed all 4 test(s) +1..4 +*** t3418-rebase-continue.sh *** +ok 1 - setup +ok 2 - interactive rebase --continue works with touched file +ok 3 - non-interactive rebase --continue works with touched file +ok 4 - rebase --continue can not be used with other options +ok 5 - rebase --continue remembers merge strategy and options +ok 6 - rebase --continue remembers --rerere-autoupdate +# passed all 6 test(s) +1..6 +*** t3419-rebase-patch-id.sh *** +ok 1 - setup +ok 2 - setup: 500 lines +ok 3 - setup attributes +ok 4 - detect upstream patch +ok 5 - do not drop patch +ok 6 # skip setup: 50000 lines (missing EXPENSIVE) +ok 7 # skip setup attributes (missing EXPENSIVE) +ok 8 # skip detect upstream patch (missing EXPENSIVE) +ok 9 # skip do not drop patch (missing EXPENSIVE) +# passed all 9 test(s) +1..9 +*** t3500-cherry.sh *** +ok 1 - prepare repository with topic branch, and check cherry finds the 2 patches from there +ok 2 - check that cherry with limit returns only the top patch +ok 3 - cherry-pick one of the 2 patches, and check cherry recognized one and only one as new +# passed all 3 test(s) +1..3 +*** t3501-revert-cherry-pick.sh *** +ok 1 - setup +ok 2 - cherry-pick --nonsense +ok 3 - revert --nonsense +ok 4 - cherry-pick after renaming branch +ok 5 - revert after renaming branch +ok 6 - cherry-pick on stat-dirty working tree +ok 7 - revert forbidden on dirty working tree +# passed all 7 test(s) +1..7 +*** t3502-cherry-pick-merge.sh *** +ok 1 - setup +ok 2 - cherry-pick a non-merge with -m should fail +ok 3 - cherry pick a merge without -m should fail +ok 4 - cherry pick a merge (1) +ok 5 - cherry pick a merge (2) +ok 6 - cherry pick a merge relative to nonexistent parent should fail +ok 7 - revert a non-merge with -m should fail +ok 8 - revert a merge without -m should fail +ok 9 - revert a merge (1) +ok 10 - revert a merge (2) +ok 11 - revert a merge relative to nonexistent parent should fail +# passed all 11 test(s) +1..11 +*** t3503-cherry-pick-root.sh *** +ok 1 - setup +ok 2 - cherry-pick a root commit +ok 3 - revert a root commit +ok 4 - cherry-pick a root commit with an external strategy +ok 5 - revert a root commit with an external strategy +ok 6 - cherry-pick two root commits +# passed all 6 test(s) +1..6 +*** t3504-cherry-pick-rerere.sh *** +ok 1 - setup +ok 2 - conflicting merge +ok 3 - fixup +ok 4 - cherry-pick conflict +ok 5 - reconfigure +ok 6 - cherry-pick conflict without rerere +# passed all 6 test(s) +1..6 +*** t3505-cherry-pick-empty.sh *** +ok 1 - setup +ok 2 - cherry-pick an empty commit +ok 3 - index lockfile was removed +ok 4 - cherry-pick a commit with an empty message +ok 5 - index lockfile was removed +# passed all 5 test(s) +1..5 +*** t3506-cherry-pick-ff.sh *** +ok 1 - setup +ok 2 - cherry-pick using --ff fast forwards +ok 3 - cherry-pick not using --ff does not fast forwards +ok 4 - merge setup +ok 5 - cherry-pick a non-merge with --ff and -m should fail +ok 6 - cherry pick a merge with --ff but without -m should fail +ok 7 - cherry pick with --ff a merge (1) +ok 8 - cherry pick with --ff a merge (2) +ok 9 - cherry pick a merge relative to nonexistent parent with --ff should fail +ok 10 - cherry pick a root commit with --ff +# passed all 10 test(s) +1..10 +*** t3507-cherry-pick-conflict.sh *** +ok 1 - setup +ok 2 - failed cherry-pick does not advance HEAD +ok 3 - advice from failed cherry-pick +ok 4 - failed cherry-pick sets CHERRY_PICK_HEAD +ok 5 - successful cherry-pick does not set CHERRY_PICK_HEAD +ok 6 - cherry-pick --no-commit does not set CHERRY_PICK_HEAD +ok 7 - cherry-pick w/dirty tree does not set CHERRY_PICK_HEAD +ok 8 - cherry-pick --strategy=resolve w/dirty tree does not set CHERRY_PICK_HEAD +ok 9 - GIT_CHERRY_PICK_HELP suppresses CHERRY_PICK_HEAD +ok 10 - git reset clears CHERRY_PICK_HEAD +ok 11 - failed commit does not clear CHERRY_PICK_HEAD +ok 12 - cancelled commit does not clear CHERRY_PICK_HEAD +ok 13 - successful commit clears CHERRY_PICK_HEAD +ok 14 - failed cherry-pick produces dirty index +ok 15 - failed cherry-pick registers participants in index +ok 16 - failed cherry-pick describes conflict in work tree +ok 17 - diff3 -m style +ok 18 - revert also handles conflicts sanely +ok 19 - failed revert sets REVERT_HEAD +ok 20 - successful revert does not set REVERT_HEAD +ok 21 - revert --no-commit sets REVERT_HEAD +ok 22 - revert w/dirty tree does not set REVERT_HEAD +ok 23 - GIT_CHERRY_PICK_HELP does not suppress REVERT_HEAD +ok 24 - git reset clears REVERT_HEAD +ok 25 - failed commit does not clear REVERT_HEAD +ok 26 - revert conflict, diff3 -m style +# passed all 26 test(s) +1..26 +*** t3508-cherry-pick-many-commits.sh *** +ok 1 - setup +ok 2 - cherry-pick first..fourth works +ok 3 - cherry-pick --strategy resolve first..fourth works +ok 4 - cherry-pick --ff first..fourth works +ok 5 - cherry-pick -n first..fourth works +ok 6 - revert first..fourth works +ok 7 - revert ^first fourth works +ok 8 - revert fourth fourth~1 fourth~2 works +ok 9 - cherry-pick -3 fourth works +ok 10 - cherry-pick --stdin works +# passed all 10 test(s) +1..10 +*** t3509-cherry-pick-merge-df.sh *** +ok 1 - Initialize repository +ok 2 - Setup rename across paths each below D/F conflicts +ok 3 - Cherry-pick succeeds with rename across D/F conflicts +ok 4 - Setup rename with file on one side matching directory name on other +ok 5 - Cherry-pick succeeds with was_a_dir/file -> was_a_dir (resolve) +ok 6 - Cherry-pick succeeds with was_a_dir/file -> was_a_dir (recursive) +ok 7 - Setup rename with file on one side matching different dirname on other +ok 8 - Cherry-pick with rename to different D/F conflict succeeds (resolve) +ok 9 - Cherry-pick with rename to different D/F conflict succeeds (recursive) +# passed all 9 test(s) +1..9 +*** t3510-cherry-pick-sequence.sh *** +ok 1 - setup +ok 2 - cherry-pick persists data on failure +ok 3 - cherry-pick mid-cherry-pick-sequence +ok 4 - cherry-pick persists opts correctly +ok 5 - cherry-pick cleans up sequencer state upon success +ok 6 - --quit does not complain when no cherry-pick is in progress +ok 7 - --abort requires cherry-pick in progress +ok 8 - --quit cleans up sequencer state +ok 9 - --quit keeps HEAD and conflicted index intact +ok 10 - --abort to cancel multiple cherry-pick +ok 11 - --abort to cancel single cherry-pick +ok 12 - cherry-pick --abort to cancel multiple revert +ok 13 - revert --abort works, too +ok 14 - --abort to cancel single revert +ok 15 - --abort keeps unrelated change, easy case +ok 16 - --abort refuses to clobber unrelated change, harder case +ok 17 - cherry-pick still writes sequencer state when one commit is left +ok 18 - --abort after last commit in sequence +ok 19 - cherry-pick does not implicitly stomp an existing operation +ok 20 - --continue complains when no cherry-pick is in progress +ok 21 - --continue complains when there are unresolved conflicts +ok 22 - --continue of single cherry-pick +ok 23 - --continue of single revert +ok 24 - --continue after resolving conflicts +ok 25 - --continue after resolving conflicts and committing +ok 26 - --continue asks for help after resolving patch to nil +ok 27 - follow advice and skip nil patch +ok 28 - --continue respects opts +ok 29 - --continue of single-pick respects -x +ok 30 - --continue respects -x in first commit in multi-pick +ok 31 - --signoff is not automatically propagated to resolved conflict +ok 32 - --signoff dropped for implicit commit of resolution, multi-pick case +ok 33 - sign-off needs to be reaffirmed after conflict resolution, single-pick case +ok 34 - malformed instruction sheet 1 +ok 35 - malformed instruction sheet 2 +ok 36 - empty commit set +ok 37 - malformed instruction sheet 3 +ok 38 - instruction sheet, fat-fingers version +ok 39 - commit descriptions in insn sheet are optional +# passed all 39 test(s) +1..39 +*** t3600-rm.sh *** +ok 1 - Initialize test directory +ok 2 - add files with funny names +ok 3 - Pre-check that foo exists and is in index before git rm foo +ok 4 - Test that git rm foo succeeds +ok 5 - Test that git rm --cached foo succeeds if the index matches the file +ok 6 - Test that git rm --cached foo succeeds if the index matches the file +ok 7 - Test that git rm --cached foo fails if the index matches neither the file nor HEAD +ok 8 - Test that git rm --cached -f foo works in case where --cached only did not +ok 9 - Post-check that foo exists but is not in index after git rm foo +ok 10 - Pre-check that bar exists and is in index before "git rm bar" +ok 11 - Test that "git rm bar" succeeds +ok 12 - Post-check that bar does not exist and is not in index after "git rm -f bar" +ok 13 - Test that "git rm -- -q" succeeds (remove a file that looks like an option) +ok 14 - Test that "git rm -f" succeeds with embedded space, tab, or newline characters. +ok 15 - Test that "git rm -f" fails if its rm fails +ok 16 - When the rm in "git rm -f" fails, it should not remove the file from the index +ok 17 - Remove nonexistent file with --ignore-unmatch +ok 18 - "rm" command printed +ok 19 - "rm" command suppressed with --quiet +ok 20 - Re-add foo and baz +ok 21 - Modify foo -- rm should refuse +ok 22 - Modified foo -- rm -f should work +ok 23 - Re-add foo and baz for HEAD tests +ok 24 - foo is different in index from HEAD -- rm should refuse +ok 25 - but with -f it should work. +ok 26 - refuse to remove cached empty file with modifications +ok 27 - remove intent-to-add file without --force +ok 28 - Recursive test setup +ok 29 - Recursive without -r fails +ok 30 - Recursive with -r but dirty +ok 31 - Recursive with -r -f +ok 32 - Remove nonexistent file returns nonzero exit status +ok 33 - Call "rm" from outside the work tree +ok 34 - refresh index before checking if it is up-to-date +ok 35 - choking "git rm" should not let it die with cruft +ok 36 - rm removes subdirectories recursively +# passed all 36 test(s) +1..36 +*** t3700-add.sh *** +ok 1 - Test of git add +ok 2 - Post-check that foo is in the index +ok 3 - Test that "git add -- -q" works +ok 4 - git add: Test that executable bit is not used if core.filemode=0 +ok 5 - git add: filemode=0 should not get confused by symlink +ok 6 - git update-index --add: Test that executable bit is not used... +ok 7 - git add: filemode=0 should not get confused by symlink +ok 8 - git update-index --add: Test that executable bit is not used... +ok 9 - .gitignore test setup +ok 10 - .gitignore is honored +ok 11 - error out when attempting to add ignored ones without -f +ok 12 - error out when attempting to add ignored ones without -f +ok 13 - add ignored ones with -f +ok 14 - add ignored ones with -f +ok 15 - add ignored ones with -f +ok 16 - .gitignore with subdirectory +ok 17 - check correct prefix detection +ok 18 - git add with filemode=0, symlinks=0, and unmerged entries +ok 19 - git add with filemode=0, symlinks=0 prefers stage 2 over stage 1 +ok 20 - git add --refresh +ok 21 - git add should fail atomically upon an unreadable file +ok 22 - git add --ignore-errors +ok 23 - git add (add.ignore-errors) +ok 24 - git add (add.ignore-errors = false) +ok 25 - --no-ignore-errors overrides config +ok 26 - git add 'fo\[ou\]bar' ignores foobar +ok 27 - git add to resolve conflicts on otherwise ignored path +ok 28 - "add non-existent" should fail +ok 29 - git add --dry-run of existing changed file +ok 30 - git add --dry-run of non-existing file +ok 31 - git add --dry-run of an existing file output +ok 32 - git add --dry-run --ignore-missing of non-existing file +ok 33 - git add --dry-run --ignore-missing of non-existing file output +# passed all 33 test(s) +1..33 +*** t3701-add-interactive.sh *** +ok 1 - setup (initial) +ok 2 - status works (initial) +ok 3 - setup expected +ok 4 - diff works (initial) +ok 5 - revert works (initial) +ok 6 - setup (commit) +ok 7 - status works (commit) +ok 8 - setup expected +ok 9 - diff works (commit) +ok 10 - revert works (commit) +ok 11 - setup expected +ok 12 - setup fake editor +ok 13 - dummy edit works +ok 14 - setup patch +ok 15 - setup fake editor +ok 16 - bad edit rejected +ok 17 - setup patch +ok 18 - garbage edit rejected +ok 19 - setup patch +ok 20 - setup expected +ok 21 - real edit works +ok 22 - skip files similarly as commit -a +ok 23 - patch does not affect mode +ok 24 - stage mode but not hunk +ok 25 - stage mode and hunk +ok 26 - setup again +ok 27 - setup patch +ok 28 - setup expected +ok 29 - add first line works +ok 30 - setup expected +ok 31 - deleting a non-empty file +ok 32 - setup expected +ok 33 - deleting an empty file +ok 34 - split hunk setup +ok 35 - split hunk "add -p (edit)" +# passed all 35 test(s) +1..35 +*** t3702-add-edit.sh *** +ok 1 - setup +ok 2 - add -e +# passed all 2 test(s) +1..2 +*** t3703-add-magic-pathspec.sh *** +ok 1 - setup +ok 2 - add :/ +ok 3 - add :/anothersub +ok 4 - add :/non-existent +ok 5 - a file with the same (long) magic name exists +ok 6 - a file with the same (short) magic name exists +# passed all 6 test(s) +1..6 +*** t3800-mktag.sh *** +ok 1 - setup +ok 2 - Tag object length check +ok 3 - "object" line label check +ok 4 - "object" line SHA1 check +ok 5 - "type" line label check +ok 6 - "type" line eol check +ok 7 - "tag" line label check #1 +ok 8 - "tag" line label check #2 +ok 9 - "type" line type-name length check +ok 10 - verify object (SHA1/type) check +ok 11 - verify tag-name check +ok 12 - "tagger" line label check #1 +ok 13 - "tagger" line label check #2 +ok 14 - disallow missing tag author name +ok 15 - disallow malformed tagger +ok 16 - allow empty tag email +ok 17 - disallow spaces in tag email +ok 18 - disallow missing tag timestamp +ok 19 - detect invalid tag timestamp1 +ok 20 - detect invalid tag timestamp2 +ok 21 - detect invalid tag timezone1 +ok 22 - detect invalid tag timezone2 +ok 23 - detect invalid tag timezone3 +ok 24 - detect invalid header entry +ok 25 - create valid tag +ok 26 - check mytag +# passed all 26 test(s) +1..26 +*** t3900-i18n-commit.sh *** +ok 1 - setup +ok 2 - no encoding header for base case +not ok 3 - UTF-16 refused because of NULs # TODO known breakage +ok 4 - ISO8859-1 setup +ok 5 - eucJP setup +ok 6 - ISO-2022-JP setup +ok 7 - check encoding header for ISO8859-1 +ok 8 - check encoding header for eucJP +ok 9 - check encoding header for ISO-2022-JP +ok 10 - config to remove customization +ok 11 - ISO8859-1 should be shown in UTF-8 now +ok 12 - eucJP should be shown in UTF-8 now +ok 13 - ISO-2022-JP should be shown in UTF-8 now +ok 14 - config to add customization +ok 15 - ISO8859-1 should be shown in itself now +ok 16 - eucJP should be shown in itself now +ok 17 - ISO-2022-JP should be shown in itself now +ok 18 - config to tweak customization +ok 19 - ISO8859-1 should be shown in UTF-8 now +ok 20 - eucJP should be shown in UTF-8 now +ok 21 - ISO-2022-JP should be shown in UTF-8 now +ok 22 - eucJP should be shown in eucJP now +ok 23 - ISO-2022-JP should be shown in eucJP now +ok 24 - eucJP should be shown in ISO-2022-JP now +ok 25 - ISO-2022-JP should be shown in ISO-2022-JP now +ok 26 - No conversion with ISO8859-1 +ok 27 - No conversion with eucJP +ok 28 - No conversion with ISO-2022-JP +ok 29 - commit --fixup with eucJP encoding +ok 30 - commit --squash with ISO-2022-JP encoding +# still have 1 known breakage(s) +# passed all remaining 29 test(s) +1..30 +*** t3901-i18n-patch.sh *** +ok 1 - setup +ok 2 - format-patch output (ISO-8859-1) +ok 3 - format-patch output (UTF-8) +ok 4 - rebase (U/U) +ok 5 - rebase (U/L) +ok 6 - rebase (L/L) +ok 7 - rebase (L/U) +ok 8 - cherry-pick(U/U) +ok 9 - cherry-pick(L/L) +ok 10 - cherry-pick(U/L) +ok 11 - cherry-pick(L/U) +ok 12 - rebase --merge (U/U) +ok 13 - rebase --merge (U/L) +ok 14 - rebase --merge (L/L) +ok 15 - rebase --merge (L/U) +# passed all 15 test(s) +1..15 +*** t3902-quoted.sh *** +ok 1 - setup +ok 2 - setup expected files +ok 3 - check fully quoted output from ls-files +ok 4 - check fully quoted output from diff-files +ok 5 - check fully quoted output from diff-index +ok 6 - check fully quoted output from diff-tree +ok 7 - check fully quoted output from ls-tree +ok 8 - setting core.quotepath +ok 9 - check fully quoted output from ls-files +ok 10 - check fully quoted output from diff-files +ok 11 - check fully quoted output from diff-index +ok 12 - check fully quoted output from diff-tree +ok 13 - check fully quoted output from ls-tree +# passed all 13 test(s) +1..13 +*** t3903-stash.sh *** +ok 1 - stash some dirty working directory +ok 2 - parents of stash +ok 3 - applying bogus stash does nothing +ok 4 - apply does not need clean working directory +ok 5 - apply does not clobber working directory changes +ok 6 - apply stashed changes +ok 7 - apply stashed changes (including index) +ok 8 - unstashing in a subdirectory +ok 9 - drop top stash +ok 10 - drop middle stash +ok 11 - stash pop +ok 12 - stash branch +ok 13 - apply -q is quiet +ok 14 - save -q is quiet +ok 15 - pop -q is quiet +ok 16 - pop -q --index works and is quiet +ok 17 - drop -q is quiet +ok 18 - stash -k +ok 19 - stash --no-keep-index +ok 20 - stash --invalid-option +ok 21 - stash an added file +ok 22 - stash rm then recreate +ok 23 - stash rm and ignore +ok 24 - stash rm and ignore (stage .gitignore) +ok 25 - stash file to symlink +ok 26 - stash file to symlink (stage rm) +ok 27 - stash file to symlink (full stage) +ok 28 - stash symlink to file +ok 29 - stash symlink to file (stage rm) +ok 30 - stash symlink to file (full stage) +not ok 31 - stash directory to file # TODO known breakage +not ok 32 - stash file to directory # TODO known breakage +ok 33 - stash branch - no stashes on stack, stash-like argument +ok 34 - stash branch - stashes on stack, stash-like argument +ok 35 - stash show - stashes on stack, stash-like argument +ok 36 - stash show -p - stashes on stack, stash-like argument +ok 37 - stash show - no stashes on stack, stash-like argument +ok 38 - stash show -p - no stashes on stack, stash-like argument +ok 39 - stash drop - fail early if specified stash is not a stash reference +ok 40 - stash pop - fail early if specified stash is not a stash reference +ok 41 - ref with non-existent reflog +ok 42 - invalid ref of the form 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 +ok 2 - diff unchanged symlink +ok 3 - diff removed symlink +ok 4 - diff identical, but newly created symlink +ok 5 - diff different symlink +ok 6 - diff symlinks with non-existing targets +ok 7 - setup symlinks with attributes +ok 8 - symlinks do not respect userdiff config by path +# passed all 8 test(s) +1..8 +*** t4012-diff-binary.sh *** +ok 1 - prepare repository +ok 2 - diff without --binary +ok 3 - diff with --binary +ok 4 - apply detecting corrupt patch correctly +ok 5 - apply detecting corrupt patch correctly +ok 6 - initial commit +ok 7 - diff-index with --binary +ok 8 - apply binary patch +ok 9 - diff --no-index with binary creation +# passed all 9 test(s) +1..9 +*** t4013-diff-various.sh *** +ok 1 - setup +ok 2 - git diff-tree initial +ok 3 - git diff-tree -r initial +ok 4 - git diff-tree -r --abbrev initial +ok 5 - git diff-tree -r --abbrev=4 initial +ok 6 - git diff-tree --root initial +ok 7 - git diff-tree --root --abbrev initial +ok 8 - git diff-tree --root -r initial +ok 9 - git diff-tree --root -r --abbrev initial +ok 10 - git diff-tree --root -r --abbrev=4 initial +ok 11 - git diff-tree -p initial +ok 12 - git diff-tree --root -p initial +ok 13 - git diff-tree --patch-with-stat initial +ok 14 - git diff-tree --root --patch-with-stat initial +ok 15 - git diff-tree --patch-with-raw initial +ok 16 - git diff-tree --root --patch-with-raw initial +ok 17 - git diff-tree --pretty initial +ok 18 - git diff-tree --pretty --root initial +ok 19 - git diff-tree --pretty -p initial +ok 20 - git diff-tree --pretty --stat initial +ok 21 - git diff-tree --pretty --summary initial +ok 22 - git diff-tree --pretty --stat --summary initial +ok 23 - git diff-tree --pretty --root -p initial +ok 24 - git diff-tree --pretty --root --stat initial +ok 25 - git diff-tree --pretty --root --summary initial +ok 26 - git diff-tree --pretty --root --summary -r initial +ok 27 - git diff-tree --pretty --root --stat --summary initial +ok 28 - git diff-tree --pretty --patch-with-stat initial +ok 29 - git diff-tree --pretty --root --patch-with-stat initial +ok 30 - git diff-tree --pretty --patch-with-raw initial +ok 31 - git diff-tree --pretty --root --patch-with-raw initial +ok 32 - git diff-tree --pretty=oneline initial +ok 33 - git diff-tree --pretty=oneline --root initial +ok 34 - git diff-tree --pretty=oneline -p initial +ok 35 - git diff-tree --pretty=oneline --root -p initial +ok 36 - git diff-tree --pretty=oneline --patch-with-stat initial +ok 37 - git diff-tree --pretty=oneline --root --patch-with-stat initial +ok 38 - git diff-tree --pretty=oneline --patch-with-raw initial +ok 39 - git diff-tree --pretty=oneline --root --patch-with-raw initial +ok 40 - git diff-tree --pretty side +ok 41 - git diff-tree --pretty -p side +ok 42 - git diff-tree --pretty --patch-with-stat side +ok 43 - git diff-tree master +ok 44 - git diff-tree -p master +ok 45 - git diff-tree -p -m master +ok 46 - git diff-tree -c master +ok 47 - git diff-tree -c --abbrev master +ok 48 - git diff-tree --cc master +ok 49 - git diff-tree -c --stat master +ok 50 - git diff-tree --cc --stat master +ok 51 - git diff-tree -c --stat --summary master +ok 52 - git diff-tree --cc --stat --summary master +ok 53 - git diff-tree -c --stat --summary side +ok 54 - git diff-tree --cc --stat --summary side +ok 55 - git diff-tree --cc --patch-with-stat master +ok 56 - git diff-tree --cc --patch-with-stat --summary master +ok 57 - git diff-tree --cc --patch-with-stat --summary side +ok 58 - git log master +ok 59 - git log -p master +ok 60 - git log --root master +ok 61 - git log --root -p master +ok 62 - git log --patch-with-stat master +ok 63 - git log --root --patch-with-stat master +ok 64 - git log --root --patch-with-stat --summary master +ok 65 - git log --root -c --patch-with-stat --summary master +ok 66 - git log --root --cc --patch-with-stat --summary master +ok 67 - git log -p --first-parent master +ok 68 - git log -m -p --first-parent master +ok 69 - git log -m -p master +ok 70 - git log -SF master +ok 71 - git log -S F master +ok 72 - git log -SF -p master +ok 73 - git log -SF master --max-count=0 +ok 74 - git log -SF master --max-count=1 +ok 75 - git log -SF master --max-count=2 +ok 76 - git log -GF master +ok 77 - git log -GF -p master +ok 78 - git log -GF -p --pickaxe-all master +ok 79 - git log --decorate --all +ok 80 - git log --decorate=full --all +ok 81 - git rev-list --parents HEAD +ok 82 - git rev-list --children HEAD +ok 83 - git whatchanged master +ok 84 - git whatchanged -p master +ok 85 - git whatchanged --root master +ok 86 - git whatchanged --root -p master +ok 87 - git whatchanged --patch-with-stat master +ok 88 - git whatchanged --root --patch-with-stat master +ok 89 - git whatchanged --root --patch-with-stat --summary master +ok 90 - git whatchanged --root -c --patch-with-stat --summary master +ok 91 - git whatchanged --root --cc --patch-with-stat --summary master +ok 92 - git whatchanged -SF master +ok 93 - git whatchanged -SF -p master +ok 94 - git log --patch-with-stat master -- dir/ +ok 95 - git whatchanged --patch-with-stat master -- dir/ +ok 96 - git log --patch-with-stat --summary master -- dir/ +ok 97 - git whatchanged --patch-with-stat --summary master -- dir/ +ok 98 - git show initial +ok 99 - git show --root initial +ok 100 - git show side +ok 101 - git show master +ok 102 - git show -c master +ok 103 - git show -m master +ok 104 - git show --first-parent master +ok 105 - git show --stat side +ok 106 - git show --stat --summary side +ok 107 - git show --patch-with-stat side +ok 108 - git show --patch-with-raw side +ok 109 - git show --patch-with-stat --summary side +ok 110 - git format-patch --stdout initial..side +ok 111 - git format-patch --stdout initial..master^ +ok 112 - git format-patch --stdout initial..master +ok 113 - git format-patch --stdout --no-numbered initial..master +ok 114 - git format-patch --stdout --numbered initial..master +ok 115 - git format-patch --attach --stdout initial..side +ok 116 - git format-patch --attach --stdout --suffix=.diff initial..side +ok 117 - git format-patch --attach --stdout initial..master^ +ok 118 - git format-patch --attach --stdout initial..master +ok 119 - git format-patch --inline --stdout initial..side +ok 120 - git format-patch --inline --stdout initial..master^ +ok 121 - git format-patch --inline --stdout --numbered-files initial..master +ok 122 - git format-patch --inline --stdout initial..master +ok 123 - git format-patch --inline --stdout --subject-prefix=TESTCASE initial..master +ok 124 - git config format.subjectprefix DIFFERENT_PREFIX +ok 125 - git format-patch --inline --stdout initial..master^^ +ok 126 - git format-patch --stdout --cover-letter -n initial..master^ +ok 127 - git diff --abbrev initial..side +ok 128 - git diff -r initial..side +ok 129 - git diff --stat initial..side +ok 130 - git diff -r --stat initial..side +ok 131 - git diff initial..side +ok 132 - git diff --patch-with-stat initial..side +ok 133 - git diff --patch-with-raw initial..side +ok 134 - git diff --patch-with-stat -r initial..side +ok 135 - git diff --patch-with-raw -r initial..side +ok 136 - git diff --name-status dir2 dir +ok 137 - git diff --no-index --name-status dir2 dir +ok 138 - git diff --no-index --name-status -- dir2 dir +ok 139 - git diff --no-index dir dir3 +ok 140 - git diff master master^ side +ok 141 - git diff --dirstat master~1 master~2 +ok 142 - git diff --dirstat initial rearrange +ok 143 - git diff --dirstat-by-file initial rearrange +ok 144 - log -S requires an argument +ok 145 - diff --cached on unborn branch +ok 146 - diff --cached -- file on unborn branch +# passed all 146 test(s) +1..146 +*** t4014-format-patch.sh *** +ok 1 - set up terminal for tests +ok 2 - setup +ok 3 - format-patch --ignore-if-in-upstream +ok 4 - format-patch --ignore-if-in-upstream +ok 5 - format-patch doesn't consider merge commits +ok 6 - format-patch result applies +ok 7 - format-patch --ignore-if-in-upstream result applies +ok 8 - commit did not screw up the log message +ok 9 - format-patch did not screw up the log message +ok 10 - replay did not screw up the log message +ok 11 - extra headers +ok 12 - extra headers without newlines +ok 13 - extra headers with multiple To:s +ok 14 - additional command line cc +ok 15 - command line headers +ok 16 - configuration headers and command line headers +ok 17 - command line To: header +ok 18 - configuration To: header +ok 19 - --no-to overrides config.to +ok 20 - --no-to and --to replaces config.to +ok 21 - --no-cc overrides config.cc +ok 22 - --no-add-header overrides config.headers +ok 23 - multiple files +ok 24 - no threading +ok 25 - thread +ok 26 - thread in-reply-to +ok 27 - thread cover-letter +ok 28 - thread cover-letter in-reply-to +ok 29 - thread explicit shallow +ok 30 - thread deep +ok 31 - thread deep in-reply-to +ok 32 - thread deep cover-letter +ok 33 - thread deep cover-letter in-reply-to +ok 34 - thread via config +ok 35 - thread deep via config +ok 36 - thread config + override +ok 37 - thread config + --no-thread +ok 38 - excessive subject +ok 39 - cover-letter inherits diff options +ok 40 - shortlog of cover-letter wraps overly-long onelines +ok 41 - format-patch respects -U +ok 42 - format-patch -p suppresses stat +ok 43 - format-patch from a subdirectory (1) +ok 44 - format-patch from a subdirectory (2) +ok 45 - format-patch from a subdirectory (3) +ok 46 - format-patch --in-reply-to +ok 47 - format-patch --signoff +ok 48 - options no longer allowed for format-patch +ok 49 - format-patch --numstat should produce a patch +ok 50 - format-patch -- +ok 51 - format-patch --ignore-if-in-upstream HEAD +ok 52 - format-patch --signature +ok 53 - format-patch with format.signature config +ok 54 - format-patch --signature overrides format.signature +ok 55 - format-patch --no-signature ignores format.signature +ok 56 - format-patch --signature --cover-letter +ok 57 - format.signature="" supresses signatures +ok 58 - format-patch --no-signature supresses signatures +ok 59 - format-patch --signature="" supresses signatures +ok 60 # skip format-patch --stdout paginates (missing TTY) +ok 61 # skip format-patch --stdout pagination can be disabled (missing TTY) +ok 62 - format-patch handles multi-line subjects +ok 63 - format-patch handles multi-line encoded subjects +ok 64 - format-patch wraps extremely long headers (ascii) +ok 65 - format-patch wraps extremely long headers (rfc2047) +ok 66 - format-patch wraps non-quotable headers +ok 67 - format-patch quotes dot in headers +ok 68 - format-patch quotes double-quote in headers +ok 69 - rfc2047-encoded headers also double-quote 822 specials +ok 70 - subject lines do not have 822 atom-quoting +ok 71 - subject prefixes have space prepended +ok 72 - empty subject prefix does not have extra space +ok 73 - format patch ignores color.ui +# passed all 73 test(s) +1..73 +*** t4015-diff-whitespace.sh *** +ok 1 - Ray's example without options +ok 2 - Ray's example with -w +ok 3 - Ray's example with -b +ok 4 - another test, without options +ok 5 - another test, with -w +ok 6 - another test, with -w -b +ok 7 - another test, with -w --ignore-space-at-eol +ok 8 - another test, with -w -b --ignore-space-at-eol +ok 9 - another test, with -b +ok 10 - another test, with -b --ignore-space-at-eol +ok 11 - another test, with --ignore-space-at-eol +ok 12 - check mixed spaces and tabs in indent +ok 13 - check mixed tabs and spaces in indent +ok 14 - check with no whitespace errors +ok 15 - check with trailing whitespace +ok 16 - check with space before tab in indent +ok 17 - --check and --exit-code are not exclusive +ok 18 - --check and --quiet are not exclusive +ok 19 - check staged with no whitespace errors +ok 20 - check staged with trailing whitespace +ok 21 - check staged with space before tab in indent +ok 22 - check with no whitespace errors (diff-index) +ok 23 - check with trailing whitespace (diff-index) +ok 24 - check with space before tab in indent (diff-index) +ok 25 - check staged with no whitespace errors (diff-index) +ok 26 - check staged with trailing whitespace (diff-index) +ok 27 - check staged with space before tab in indent (diff-index) +ok 28 - check with no whitespace errors (diff-tree) +ok 29 - check with trailing whitespace (diff-tree) +ok 30 - check with space before tab in indent (diff-tree) +ok 31 - check trailing whitespace (trailing-space: off) +ok 32 - check trailing whitespace (trailing-space: on) +ok 33 - check space before tab in indent (space-before-tab: off) +ok 34 - check space before tab in indent (space-before-tab: on) +ok 35 - check spaces as indentation (indent-with-non-tab: off) +ok 36 - check spaces as indentation (indent-with-non-tab: on) +ok 37 - ditto, but tabwidth=9 +ok 38 - check tabs and spaces as indentation (indent-with-non-tab: on) +ok 39 - ditto, but tabwidth=10 +ok 40 - ditto, but tabwidth=20 +ok 41 - check tabs as indentation (tab-in-indent: off) +ok 42 - check tabs as indentation (tab-in-indent: on) +ok 43 - check tabs and spaces as indentation (tab-in-indent: on) +ok 44 - ditto, but tabwidth=1 (must be irrelevant) +ok 45 - check tab-in-indent and indent-with-non-tab conflict +ok 46 - check tab-in-indent excluded from wildcard whitespace attribute +ok 47 - line numbers in --check output are correct +ok 48 - checkdiff detects new trailing blank lines (1) +ok 49 - checkdiff detects new trailing blank lines (2) +ok 50 - checkdiff allows new blank lines +ok 51 - whitespace-only changes not reported +ok 52 - whitespace-only changes reported across renames +ok 53 - rename empty +ok 54 - combined diff with autocrlf conversion +ok 55 - setup diff colors +ok 56 - diff that introduces a line with only tabs +# passed all 56 test(s) +1..56 +*** t4016-diff-quote.sh *** +ok 1 - setup +ok 2 - setup expected files +ok 3 - git diff --summary -M HEAD +ok 4 - setup expected files +ok 5 - git diff --stat -M HEAD +# passed all 5 test(s) +1..5 +*** t4017-diff-retval.sh *** +ok 1 - setup +ok 2 - git diff --quiet -w HEAD^^ HEAD^ +ok 3 - git diff --quiet HEAD^^ HEAD^ +ok 4 - git diff --quiet -w HEAD^ HEAD +ok 5 - git diff-tree HEAD^ HEAD +ok 6 - git diff-tree HEAD^ HEAD -- a +ok 7 - git diff-tree HEAD^ HEAD -- b +ok 8 - echo HEAD | git diff-tree --stdin +ok 9 - git diff-tree HEAD HEAD +ok 10 - git diff-files +ok 11 - git diff-index --cached HEAD +ok 12 - git diff-index --cached HEAD^ +ok 13 - git diff-index --cached HEAD^ +ok 14 - git diff-tree -Stext HEAD^ HEAD -- b +ok 15 - git diff-tree -Snot-found HEAD^ HEAD -- b +ok 16 - git diff-files +ok 17 - git diff-index --cached HEAD +ok 18 - --check --exit-code returns 0 for no difference +ok 19 - --check --exit-code returns 1 for a clean difference +ok 20 - --check --exit-code returns 3 for a dirty difference +ok 21 - --check with --no-pager returns 2 for dirty difference +ok 22 - check should test not just the last line +ok 23 - check detects leftover conflict markers +ok 24 - check honors conflict marker length +# passed all 24 test(s) +1..24 +*** t4018-diff-funcname.sh *** +ok 1 - builtin bibtex pattern compiles +ok 2 - builtin bibtex wordRegex pattern compiles +ok 3 - builtin cpp pattern compiles +ok 4 - builtin cpp wordRegex pattern compiles +ok 5 - builtin csharp pattern compiles +ok 6 - builtin csharp wordRegex pattern compiles +ok 7 - builtin fortran pattern compiles +ok 8 - builtin fortran wordRegex pattern compiles +ok 9 - builtin html pattern compiles +ok 10 - builtin html wordRegex pattern compiles +ok 11 - builtin java pattern compiles +ok 12 - builtin java wordRegex pattern compiles +ok 13 - builtin matlab pattern compiles +ok 14 - builtin matlab wordRegex pattern compiles +ok 15 - builtin objc pattern compiles +ok 16 - builtin objc wordRegex pattern compiles +ok 17 - builtin pascal pattern compiles +ok 18 - builtin pascal wordRegex pattern compiles +ok 19 - builtin perl pattern compiles +ok 20 - builtin perl wordRegex pattern compiles +ok 21 - builtin php pattern compiles +ok 22 - builtin php wordRegex pattern compiles +ok 23 - builtin python pattern compiles +ok 24 - builtin python wordRegex pattern compiles +ok 25 - builtin ruby pattern compiles +ok 26 - builtin ruby wordRegex pattern compiles +ok 27 - builtin tex pattern compiles +ok 28 - builtin tex wordRegex pattern compiles +ok 29 - default behaviour +ok 30 - set up .gitattributes declaring drivers to test +ok 31 - preset java pattern +ok 32 - preset perl pattern +ok 33 - perl pattern accepts K&R style brace placement, too +ok 34 - but is not distracted by end of <blob), --cached +ok 9 - typechanged submodule(submodule->blob) +ok 10 - typechanged submodule(submodule->blob) +ok 11 - nonexistent commit +ok 12 - typechanged submodule(blob->submodule) +ok 13 - submodule is up to date +ok 14 - submodule contains untracked content +ok 15 - submodule contains untracked content (untracked ignored) +ok 16 - submodule contains untracked content (dirty ignored) +ok 17 - submodule contains untracked content (all ignored) +ok 18 - submodule contains untracked and modifed content +ok 19 - submodule contains untracked and modifed content (untracked ignored) +ok 20 - submodule contains untracked and modifed content (dirty ignored) +ok 21 - submodule contains untracked and modifed content (all ignored) +ok 22 - submodule contains modifed content +ok 23 - submodule is modified +ok 24 - modified submodule contains untracked content +ok 25 - modified submodule contains untracked content (untracked ignored) +ok 26 - modified submodule contains untracked content (dirty ignored) +ok 27 - modified submodule contains untracked content (all ignored) +ok 28 - modified submodule contains untracked and modifed content +ok 29 - modified submodule contains untracked and modifed content (untracked ignored) +ok 30 - modified submodule contains untracked and modifed content (dirty ignored) +ok 31 - modified submodule contains untracked and modifed content (all ignored) +ok 32 - modified submodule contains modifed content +ok 33 - deleted submodule +ok 34 - multiple submodules +ok 35 - path filter +ok 36 - given commit +ok 37 - given commit --submodule +ok 38 - given commit --submodule=short +ok 39 - setup .git file for sm2 +ok 40 - diff --submodule with .git file +# passed all 40 test(s) +1..40 +*** t4042-diff-textconv-caching.sh *** +ok 1 - setup +ok 2 - first textconv works +ok 3 - cached textconv produces same output +ok 4 - cached textconv does not run helper +ok 5 - changing textconv invalidates cache +ok 6 - switching diff driver produces correct results +# passed all 6 test(s) +1..6 +*** t4043-diff-rename-binary.sh *** +ok 1 - prepare repository +ok 2 - move the files into a "sub" directory +ok 3 - git show -C -C report renames +# passed all 3 test(s) +1..3 +*** t4044-diff-index-unique-abbrev.sh *** +ok 1 - setup +ok 2 - diff does not produce ambiguous index line +# passed all 2 test(s) +1..2 +*** t4045-diff-relative.sh *** +ok 1 - setup +ok 2 - -p --relative=subdir/ +ok 3 - -p --relative=subdir +ok 4 - -p --relative=sub +ok 5 - --stat --relative=subdir/ +ok 6 - --stat --relative=subdir +ok 7 - --stat --relative=sub +ok 8 - --raw --relative=subdir/ +ok 9 - --raw --relative=subdir +ok 10 - --raw --relative=sub +# passed all 10 test(s) +1..10 +*** t4046-diff-unmerged.sh *** +ok 1 - setup +ok 2 - diff-files -0 +ok 3 - diff-files -1 +ok 4 - diff-files -2 +ok 5 - diff-files -3 +# passed all 5 test(s) +1..5 +*** t4047-diff-dirstat.sh *** +ok 1 - setup +ok 2 - sanity check setup (--stat) +ok 3 - various ways to misspell --dirstat +ok 4 - vanilla --dirstat +ok 5 - vanilla -X +ok 6 - explicit defaults: --dirstat=changes,noncumulative,3 +ok 7 - explicit defaults: -Xchanges,noncumulative,3 +ok 8 - later options override earlier options: +ok 9 - non-defaults in config overridden by explicit defaults on command line +ok 10 - --dirstat=0 +ok 11 - -X0 +ok 12 - diff.dirstat=0 +ok 13 - --dirstat=0 --cumulative +ok 14 - --dirstat=0,cumulative +ok 15 - -X0,cumulative +ok 16 - diff.dirstat=0,cumulative +ok 17 - diff.dirstat=0 & --dirstat=cumulative +ok 18 - --dirstat-by-file +ok 19 - --dirstat=files +ok 20 - diff.dirstat=files +ok 21 - --dirstat-by-file=10 +ok 22 - --dirstat=files,10 +ok 23 - diff.dirstat=10,files +ok 24 - --dirstat-by-file --cumulative +ok 25 - --dirstat=files,cumulative +ok 26 - diff.dirstat=cumulative,files +ok 27 - --dirstat=files,cumulative,10 +ok 28 - diff.dirstat=10,cumulative,files +ok 29 - --dirstat=files,cumulative,16.7 +ok 30 - diff.dirstat=16.7,cumulative,files +ok 31 - diff.dirstat=16.70,cumulative,files +ok 32 - --dirstat=files,cumulative,27.2 +ok 33 - --dirstat=files,cumulative,27.09 +ok 34 - --dirstat=lines +ok 35 - diff.dirstat=lines +ok 36 - --dirstat=lines,0 +ok 37 - diff.dirstat=0,lines +ok 38 - --dirstat=future_param,lines,0 should fail loudly +ok 39 - --dirstat=dummy1,cumulative,2dummy should report both unrecognized parameters +ok 40 - diff.dirstat=future_param,0,lines should warn, but still work +# passed all 40 test(s) +1..40 +*** t4048-diff-combined-binary.sh *** +ok 1 - setup binary merge conflict +ok 2 - diff -m indicates binary-ness +ok 3 - diff -c indicates binary-ness +ok 4 - diff --cc indicates binary-ness +ok 5 - setup non-binary with binary attribute +ok 6 - diff -m respects binary attribute +ok 7 - diff -c respects binary attribute +ok 8 - diff --cc respects binary attribute +ok 9 - setup textconv attribute +ok 10 - diff -m respects textconv attribute +ok 11 - diff -c respects textconv attribute +ok 12 - diff --cc respects textconv attribute +ok 13 - diff-tree plumbing does not respect textconv +ok 14 - diff --cc respects textconv on worktree file +# passed all 14 test(s) +1..14 +*** t4049-diff-stat-count.sh *** +ok 1 - setup +# passed all 1 test(s) +1..1 +*** t4050-diff-histogram.sh *** +ok 1 - histogram diff +ok 2 - histogram diff output is valid +ok 3 - completely different files +# passed all 3 test(s) +1..3 +*** t4051-diff-function-context.sh *** +ok 1 - setup +ok 2 - diff -U0 -W +ok 3 - diff -W +# passed all 3 test(s) +1..3 +*** t4100-apply-stat.sh *** +ok 1 - rename +ok 2 - rename with recount +ok 3 - copy +ok 4 - copy with recount +ok 5 - rewrite +ok 6 - rewrite with recount +ok 7 - mode +ok 8 - mode with recount +ok 9 - non git (1) +ok 10 - non git (1) with recount +ok 11 - non git (2) +ok 12 - non git (2) with recount +ok 13 - non git (3) +ok 14 - non git (3) with recount +ok 15 - incomplete (1) +ok 16 - incomplete (1) with recount +ok 17 - incomplete (2) +ok 18 - incomplete (2) with recount +# passed all 18 test(s) +1..18 +*** t4101-apply-nonl.sh *** +ok 1 - apply diff between 0 and 1 +ok 2 - apply diff between 0 and 2 +ok 3 - apply diff between 0 and 3 +ok 4 - apply diff between 1 and 0 +ok 5 - apply diff between 1 and 2 +ok 6 - apply diff between 1 and 3 +ok 7 - apply diff between 2 and 0 +ok 8 - apply diff between 2 and 1 +ok 9 - apply diff between 2 and 3 +ok 10 - apply diff between 3 and 0 +ok 11 - apply diff between 3 and 1 +ok 12 - apply diff between 3 and 2 +# passed all 12 test(s) +1..12 +*** t4102-apply-rename.sh *** +ok 1 - setup +ok 2 - apply +ok 3 - validate +ok 4 - apply reverse +ok 5 - apply copy +# passed all 5 test(s) +1..5 +*** t4103-apply-binary.sh *** +ok 1 - setup +ok 2 - stat binary diff -- should not fail. +ok 3 - stat binary diff (copy) -- should not fail. +ok 4 - check binary diff -- should fail. +ok 5 - check binary diff (copy) -- should fail. +ok 6 - check incomplete binary diff with replacement -- should fail. +ok 7 - check incomplete binary diff with replacement (copy) -- should fail. +ok 8 - check binary diff with replacement. +ok 9 - check binary diff with replacement (copy). +ok 10 - apply binary diff -- should fail. +ok 11 - apply binary diff -- should fail. +ok 12 - apply binary diff (copy) -- should fail. +ok 13 - apply binary diff (copy) -- should fail. +ok 14 - apply binary diff with full-index +ok 15 - apply binary diff with full-index (copy) +ok 16 - apply full-index binary diff in new repo +ok 17 - apply binary diff without replacement. +ok 18 - apply binary diff without replacement (copy). +ok 19 - apply binary diff. +ok 20 - apply binary diff (copy). +# passed all 20 test(s) +1..20 +*** t4104-apply-boundary.sh *** +ok 1 - setup +ok 2 - apply add-a-patch with context +ok 3 - apply add-z-patch with context +ok 4 - apply insert-a-patch with context +ok 5 - apply mod-a-patch with context +ok 6 - apply mod-z-patch with context +ok 7 - apply del-a-patch with context +ok 8 - apply del-z-patch with context +ok 9 - apply add-a-patch without context +ok 10 - apply add-z-patch without context +ok 11 - apply insert-a-patch without context +ok 12 - apply mod-a-patch without context +ok 13 - apply mod-z-patch without context +ok 14 - apply del-a-patch without context +ok 15 - apply del-z-patch without context +ok 16 - apply non-git add-a-patch without context +ok 17 - apply non-git add-z-patch without context +ok 18 - apply non-git insert-a-patch without context +ok 19 - apply non-git mod-a-patch without context +ok 20 - apply non-git mod-z-patch without context +ok 21 - apply non-git del-a-patch without context +ok 22 - apply non-git del-z-patch without context +ok 23 - two lines +ok 24 - apply patch with 3 context lines matching at end +# passed all 24 test(s) +1..24 +*** t4105-apply-fuzz.sh *** +ok 1 - setup +ok 2 - unmodified patch +ok 3 - minus offset +ok 4 - plus offset +ok 5 - big offset +ok 6 - fuzz with no offset +ok 7 - fuzz with minus offset +ok 8 - fuzz with plus offset +ok 9 - fuzz with big offset +# passed all 9 test(s) +1..9 +*** t4106-apply-stdin.sh *** +ok 1 - setup +ok 2 - git apply --numstat - < patch +ok 3 - git apply --numstat - < patch patch +# passed all 3 test(s) +1..3 +*** t4107-apply-ignore-whitespace.sh *** +ok 1 - file creation +ok 2 - patch2 fails (retab) +ok 3 - patch2 applies with --ignore-whitespace +ok 4 - patch2 reverse applies with --ignore-space-change +ok 5 - patch2 applies (apply.ignorewhitespace = change) +ok 6 - patch3 fails (missing string at EOL) +ok 7 - patch4 fails (missing EOL at EOF) +ok 8 - patch5 applies (leading whitespace) +ok 9 - patches do not mangle whitespace +ok 10 - re-create file (with --ignore-whitespace) +ok 11 - patch5 fails (--no-ignore-whitespace) +# passed all 11 test(s) +1..11 +*** t4109-apply-multifrag.sh *** +ok 1 - git apply (1) +ok 2 - git apply (2) +ok 3 - git apply (3) +# passed all 3 test(s) +1..3 +*** t4110-apply-scan.sh *** +ok 1 - git apply scan +# passed all 1 test(s) +1..1 +*** t4111-apply-subdir.sh *** +ok 1 - setup +ok 2 - setup: subdir +ok 3 - apply from subdir of toplevel +ok 4 - apply --cached from subdir of toplevel +ok 5 - apply --index from subdir of toplevel +ok 6 - apply from .git dir +ok 7 - apply from subdir of .git dir +ok 8 - apply --cached from .git dir +ok 9 - apply --cached from subdir of .git dir +# passed all 9 test(s) +1..9 +*** t4112-apply-renames.sh *** +ok 1 - check rename/copy patch +ok 2 - apply rename/copy patch +# passed all 2 test(s) +1..2 +*** t4113-apply-ending.sh *** +ok 1 - setup +ok 2 - apply at the end +ok 3 - apply at the beginning +# passed all 3 test(s) +1..3 +*** t4114-apply-typechange.sh *** +ok 1 - setup repository and commits +ok 2 - file renamed from foo to foo/baz +ok 3 - file renamed from foo/baz to foo +ok 4 - directory becomes file +ok 5 - file becomes directory +ok 6 - file becomes symlink +ok 7 - symlink becomes file +ok 8 - binary file becomes symlink +ok 9 - symlink becomes binary file +ok 10 - symlink becomes directory +ok 11 - directory becomes symlink +# passed all 11 test(s) +1..11 +*** t4115-apply-symlink.sh *** +ok 1 - setup +ok 2 - apply symlink patch +ok 3 - apply --index symlink patch +# passed all 3 test(s) +1..3 +*** t4116-apply-reverse.sh *** +ok 1 - setup +ok 2 - apply in forward +ok 3 - apply in reverse +ok 4 - setup separate repository lacking postimage +ok 5 - apply in forward without postimage +ok 6 - apply in reverse without postimage +ok 7 - reversing a whitespace introduction +# passed all 7 test(s) +1..7 +*** t4117-apply-reject.sh *** +ok 1 - setup +ok 2 - apply without --reject should fail +ok 3 - apply without --reject should fail +ok 4 - apply with --reject should fail but update the file +ok 5 - apply with --reject should fail but update the file +ok 6 - the same test with --verbose +ok 7 - apply cleanly with --verbose +# passed all 7 test(s) +1..7 +*** t4118-apply-empty-context.sh *** +ok 1 - setup +ok 2 - apply --numstat +ok 3 - apply --apply +# passed all 3 test(s) +1..3 +*** t4119-apply-config.sh *** +ok 1 - setup +ok 2 - apply --whitespace=strip +ok 3 - apply --whitespace=strip from config +ok 4 - apply --whitespace=strip in subdir +ok 5 - apply --whitespace=strip from config in subdir +ok 6 - same in subdir but with traditional patch input +ok 7 - same but with traditional patch input of depth 1 +ok 8 - same but with traditional patch input of depth 2 +ok 9 - same but with traditional patch input of depth 1 +ok 10 - same but with traditional patch input of depth 2 +# passed all 10 test(s) +1..10 +*** t4120-apply-popt.sh *** +ok 1 - setup +ok 2 - apply git diff with -p2 +ok 3 - apply with too large -p +ok 4 - apply (-p2) traditional diff with funny filenames +ok 5 - apply with too large -p and fancy filename +ok 6 - apply (-p2) diff, mode change only +ok 7 - file mode was changed +ok 8 - apply (-p2) diff, rename +# passed all 8 test(s) +1..8 +*** t4121-apply-diffs.sh *** +ok 1 - setup +ok 2 - check if contextually independent diffs for the same file apply +# passed all 2 test(s) +1..2 +*** t4122-apply-symlink-inside.sh *** +ok 1 - setup +ok 2 - apply +ok 3 - check result +# passed all 3 test(s) +1..3 +*** t4123-apply-shrink.sh *** +ok 1 - setup +ok 2 - apply should fail gracefully +# passed all 2 test(s) +1..2 +*** t4124-apply-ws-rule.sh *** +ok 1 - setup +ok 2 - whitespace=nowarn, default rule +ok 3 - whitespace=warn, default rule +ok 4 - whitespace=error-all, default rule +ok 5 - whitespace=error-all, no rule +ok 6 - whitespace=error-all, no rule (attribute) +ok 7 - spaces inserted by tab-in-indent +ok 8 - rule=-trailing,-space,-indent,-tab +ok 9 - rule=-trailing,-space,-indent,-tab,tabwidth=16 +ok 10 - rule=-trailing,-space,-indent,-tab (attributes) +ok 11 - rule=-trailing,-space,-indent,-tab,tabwidth=16 (attributes) +ok 12 - rule=-trailing,-space,-indent,tab +ok 13 - rule=-trailing,-space,-indent,tab,tabwidth=16 +ok 14 - rule=-trailing,-space,-indent,tab (attributes) +ok 15 - rule=-trailing,-space,-indent,tab,tabwidth=16 (attributes) +ok 16 - rule=-trailing,-space,indent,-tab +ok 17 - rule=-trailing,-space,indent,-tab,tabwidth=16 +ok 18 - rule=-trailing,-space,indent,-tab (attributes) +ok 19 - rule=-trailing,-space,indent,-tab,tabwidth=16 (attributes) +ok 20 - rule=-trailing,space,-indent,-tab +ok 21 - rule=-trailing,space,-indent,-tab,tabwidth=16 +ok 22 - rule=-trailing,space,-indent,-tab (attributes) +ok 23 - rule=-trailing,space,-indent,-tab,tabwidth=16 (attributes) +ok 24 - rule=-trailing,space,-indent,tab +ok 25 - rule=-trailing,space,-indent,tab,tabwidth=16 +ok 26 - rule=-trailing,space,-indent,tab (attributes) +ok 27 - rule=-trailing,space,-indent,tab,tabwidth=16 (attributes) +ok 28 - rule=-trailing,space,indent,-tab +ok 29 - rule=-trailing,space,indent,-tab,tabwidth=16 +ok 30 - rule=-trailing,space,indent,-tab (attributes) +ok 31 - rule=-trailing,space,indent,-tab,tabwidth=16 (attributes) +ok 32 - rule=trailing,-space,-indent,-tab +ok 33 - rule=trailing,-space,-indent,-tab,tabwidth=16 +ok 34 - rule=trailing,-space,-indent,-tab (attributes) +ok 35 - rule=trailing,-space,-indent,-tab,tabwidth=16 (attributes) +ok 36 - rule=trailing,-space,-indent,tab +ok 37 - rule=trailing,-space,-indent,tab,tabwidth=16 +ok 38 - rule=trailing,-space,-indent,tab (attributes) +ok 39 - rule=trailing,-space,-indent,tab,tabwidth=16 (attributes) +ok 40 - rule=trailing,-space,indent,-tab +ok 41 - rule=trailing,-space,indent,-tab,tabwidth=16 +ok 42 - rule=trailing,-space,indent,-tab (attributes) +ok 43 - rule=trailing,-space,indent,-tab,tabwidth=16 (attributes) +ok 44 - rule=trailing,space,-indent,-tab +ok 45 - rule=trailing,space,-indent,-tab,tabwidth=16 +ok 46 - rule=trailing,space,-indent,-tab (attributes) +ok 47 - rule=trailing,space,-indent,-tab,tabwidth=16 (attributes) +ok 48 - rule=trailing,space,-indent,tab +ok 49 - rule=trailing,space,-indent,tab,tabwidth=16 +ok 50 - rule=trailing,space,-indent,tab (attributes) +ok 51 - rule=trailing,space,-indent,tab,tabwidth=16 (attributes) +ok 52 - rule=trailing,space,indent,-tab +ok 53 - rule=trailing,space,indent,-tab,tabwidth=16 +ok 54 - rule=trailing,space,indent,-tab (attributes) +ok 55 - rule=trailing,space,indent,-tab,tabwidth=16 (attributes) +ok 56 - trailing whitespace & no newline at the end of file +ok 57 - blank at EOF with --whitespace=fix (1) +ok 58 - blank at EOF with --whitespace=fix (2) +ok 59 - blank at EOF with --whitespace=fix (3) +ok 60 - blank at end of hunk, not at EOF with --whitespace=fix +ok 61 - blank at EOF with --whitespace=warn +ok 62 - blank at EOF with --whitespace=error +ok 63 - blank but not empty at EOF +ok 64 - applying beyond EOF requires one non-blank context line +ok 65 - tons of blanks at EOF should not apply +ok 66 - missing blank line at end with --whitespace=fix +ok 67 - two missing blank lines at end with --whitespace=fix +ok 68 - missing blank line at end, insert before end, --whitespace=fix +ok 69 - shrink file with tons of missing blanks at end of file +ok 70 - missing blanks at EOF must only match blank lines +ok 71 - missing blank line should match context line with spaces +ok 72 - same, but with the --ignore-space-option +ok 73 - same, but with CR-LF line endings && cr-at-eol set +ok 74 - same, but with CR-LF line endings && cr-at-eol unset +# passed all 74 test(s) +1..74 +*** t4125-apply-ws-fuzz.sh *** +ok 1 - setup +ok 2 - nofix +ok 3 - withfix (forward) +ok 4 - withfix (backward) +# passed all 4 test(s) +1..4 +*** t4126-apply-empty.sh *** +ok 1 - setup +ok 2 - apply empty +ok 3 - apply --index empty +ok 4 - apply create +ok 5 - apply --index create +# passed all 5 test(s) +1..5 +*** t4127-apply-same-fn.sh *** +ok 1 - setup +ok 2 - apply same filename with independent changes +ok 3 - apply same filename with overlapping changes +ok 4 - apply same new filename after rename +ok 5 - apply same old filename after rename -- should fail. +ok 6 - apply A->B (rename), C->A (rename), A->A -- should pass. +# passed all 6 test(s) +1..6 +*** t4128-apply-root.sh *** +ok 1 - setup +ok 2 - apply --directory -p (1) +ok 3 - apply --directory -p (2) +ok 4 - apply --directory (new file) +ok 5 - apply --directory -p (new file) +ok 6 - apply --directory (delete file) +ok 7 - apply --directory (quoted filename) +# passed all 7 test(s) +1..7 +*** t4129-apply-samemode.sh *** +ok 1 - setup +ok 2 - same mode (no index) +ok 3 - same mode (with index) +ok 4 - same mode (index only) +ok 5 - mode update (no index) +ok 6 - mode update (with index) +ok 7 - mode update (index only) +# passed all 7 test(s) +1..7 +*** t4130-apply-criss-cross-rename.sh *** +ok 1 - setup +ok 2 - criss-cross rename +ok 3 - diff -M -B +ok 4 - apply +ok 5 - criss-cross rename +ok 6 - diff -M -B +ok 7 - apply +# passed all 7 test(s) +1..7 +*** t4131-apply-fake-ancestor.sh *** +ok 1 - setup +ok 2 - apply --build-fake-ancestor +ok 3 - apply --build-fake-ancestor in a subdirectory +# passed all 3 test(s) +1..3 +*** t4132-apply-removal.sh *** +ok 1 - setup +ok 2 - test addEast.patch +ok 3 - test addGMT.patch +ok 4 - test addWest.patch +ok 5 - test createEast.patch +ok 6 - test createGMT.patch +ok 7 - test createWest.patch +ok 8 - test emptyEast.patch +ok 9 - test emptyGMT.patch +ok 10 - test emptyWest.patch +ok 11 - test removeEast.patch +ok 12 - test removeGMT.patch +ok 13 - test removeWest.patch +ok 14 - test removeWest2.patch +# passed all 14 test(s) +1..14 +*** t4133-apply-filenames.sh *** +ok 1 - setup +ok 2 - apply diff with inconsistent filenames in headers +# passed all 2 test(s) +1..2 +*** t4134-apply-submodule.sh *** +ok 1 - setup +ok 2 - removing a submodule also removes all leading subdirectories +# passed all 2 test(s) +1..2 +*** t4135-apply-weird-filenames.sh *** +ok 1 - setup +ok 2 - plain, git-style file creation patch +ok 3 - plain, traditional patch +ok 4 - plain, traditional file creation patch +ok 5 - with spaces, git-style file creation patch +ok 6 - with spaces, traditional patch +ok 7 - with spaces, traditional file creation patch +ok 8 - with tab, git-style file creation patch +ok 9 - with tab, traditional patch +ok 10 - with tab, traditional file creation patch +ok 11 - with backslash, git-style file creation patch +ok 12 - with backslash, traditional patch +ok 13 - with backslash, traditional file creation patch +ok 14 - with quote, git-style file creation patch +not ok 15 - with quote, traditional patch # TODO known breakage +ok 16 - with quote, traditional file creation patch +ok 17 - whitespace-damaged traditional patch +ok 18 - traditional patch with colon in timezone +ok 19 - traditional, whitespace-damaged, colon in timezone +# still have 1 known breakage(s) +# passed all remaining 18 test(s) +1..19 +*** t4136-apply-check.sh *** +ok 1 - setup +ok 2 - apply --check exits non-zero with unrecognized input +# passed all 2 test(s) +1..2 +*** t4150-am.sh *** +ok 1 - setup: messages +ok 2 - setup +ok 3 - am applies patch correctly +ok 4 - am applies patch e-mail not in a mbox +ok 5 - am applies patch e-mail not in a mbox with CRLF +ok 6 - am applies patch e-mail with preceding whitespace +ok 7 - setup: new author and committer +ok 8 - am changes committer and keeps author +ok 9 - am --signoff adds Signed-off-by: line +ok 10 - am stays in branch +ok 11 - am --signoff does not add Signed-off-by: line if already there +ok 12 - am without --keep removes Re: and [PATCH] stuff +ok 13 - am --keep really keeps the subject +ok 14 - am -3 falls back to 3-way merge +ok 15 - am can rename a file +ok 16 - am -3 can rename a file +ok 17 - am -3 can rename a file after falling back to 3-way merge +ok 18 - am -3 -q is quiet +ok 19 - am pauses on conflict +ok 20 - am --skip works +ok 21 - am --resolved works +ok 22 - am takes patches from a Pine mailbox +ok 23 - am fails on mail without patch +ok 24 - am fails on empty patch +ok 25 - am works from stdin in subdirectory +ok 26 - am works from file (relative path given) in subdirectory +ok 27 - am works from file (absolute path given) in subdirectory +ok 28 - am --committer-date-is-author-date +ok 29 - am without --committer-date-is-author-date +ok 30 - am --ignore-date +ok 31 - am into an unborn branch +ok 32 - am newline in subject +ok 33 - am -q is quiet +# passed all 33 test(s) +1..33 +*** t4151-am-abort.sh *** +ok 1 - setup +ok 2 - am stops at a patch that does not apply +ok 3 - am --skip continue after failed am +ok 4 - am --abort goes back after failed am +ok 5 - am -3 stops at a patch that does not apply +ok 6 - am -3 --skip continue after failed am -3 +ok 7 - am --abort goes back after failed am -3 +ok 8 - am --abort will keep the local commits intact +# passed all 8 test(s) +1..8 +*** t4152-am-subjects.sh *** +ok 1 - setup baseline commit +ok 2 - create patches with short subject +ok 3 - create patches with long subject +ok 4 - create patches with multiline subject +ok 5 - short subject preserved (format-patch | am) +ok 6 - short subject preserved (format-patch -k | am) +ok 7 - short subject preserved (format-patch -k | am -k) +ok 8 - long subject preserved (format-patch | am) +ok 9 - long subject preserved (format-patch -k | am) +ok 10 - long subject preserved (format-patch -k | am -k) +ok 11 - multiline subject unwrapped (format-patch | am) +ok 12 - multiline subject unwrapped (format-patch -k | am) +ok 13 - multiline subject preserved (format-patch -k | am -k) +# passed all 13 test(s) +1..13 +*** t4200-rerere.sh *** +ok 1 - setup +ok 2 - nothing recorded without rerere +ok 3 - activate rerere, old style (conflicting merge) +ok 4 - rerere.enabled works, too +ok 5 - set up rr-cache +ok 6 - rr-cache looks sane +ok 7 - rerere diff +ok 8 - rerere status +ok 9 - first postimage wins +ok 10 - rerere updates postimage timestamp +ok 11 - rerere clear +ok 12 - set up for garbage collection tests +ok 13 - gc preserves young or recently used records +ok 14 - old records rest in peace +ok 15 - setup: file2 added differently in two branches +ok 16 - resolution was recorded properly +ok 17 - rerere.autoupdate +ok 18 - merge --rerere-autoupdate +ok 19 - merge --no-rerere-autoupdate +ok 20 - set up an unresolved merge +ok 21 - explicit rerere +ok 22 - explicit rerere with autoupdate +ok 23 - explicit rerere --rerere-autoupdate overrides +ok 24 - rerere --no-no-rerere-autoupdate +ok 25 - rerere -h +# passed all 25 test(s) +1..25 +*** t4201-shortlog.sh *** +ok 1 - setup +ok 2 - default output format +ok 3 - pretty format +ok 4 - --abbrev +ok 5 - output from user-defined format is re-wrapped +ok 6 - shortlog wrapping +ok 7 - shortlog from non-git directory +ok 8 - shortlog encoding +# passed all 8 test(s) +1..8 +*** t4202-log.sh *** +ok 1 - setup +ok 2 - pretty +ok 3 - pretty (tformat) +ok 4 - pretty (shortcut) +ok 5 - format +ok 6 - format %w(12,1,2) +ok 7 - format %w(,1,2) +ok 8 - oneline +ok 9 - diff-filter=A +ok 10 - diff-filter=M +ok 11 - diff-filter=D +ok 12 - diff-filter=R +ok 13 - diff-filter=C +ok 14 - git log --follow +ok 15 - git log --no-walk sorts by commit time +ok 16 - git show leaves list of commits as given +ok 17 - setup case sensitivity tests +ok 18 - log --grep +ok 19 - log --grep option parsing +ok 20 - log -i --grep +ok 21 - log --grep -i +ok 22 - simple log --graph +ok 23 - set up merge history +ok 24 - log --graph with merge +ok 25 - log --graph with full output +ok 26 - set up more tangled history +ok 27 - log --graph with merge +ok 28 - log.decorate configuration +ok 29 - reflog is expected format +ok 30 - whatchanged is expected format +ok 31 - log.abbrevCommit configuration +ok 32 - show added path under "--follow -M" +# passed all 32 test(s) +1..32 +*** t4203-mailmap.sh *** +ok 1 - setup +ok 2 - No mailmap +ok 3 - default .mailmap +ok 4 - mailmap.file set +ok 5 - mailmap.file override +ok 6 - mailmap.file non-existent +ok 7 - name entry after email entry +ok 8 - name entry after email entry, case-insensitive +ok 9 - No mailmap files, but configured +ok 10 - Shortlog output (complex mapping) +ok 11 - Log output (complex mapping) +ok 12 - Blame output (complex mapping) +# passed all 12 test(s) +1..12 +*** t4204-patch-id.sh *** +ok 1 - setup +ok 2 - patch-id output is well-formed +ok 3 - patch-id detects equality +ok 4 - patch-id detects inequality +ok 5 - patch-id supports git-format-patch output +ok 6 - whitespace is irrelevant in footer +ok 7 - patch-id supports git-format-patch MIME output +ok 8 - patch-id handles no-nl-at-eof markers +# passed all 8 test(s) +1..8 +*** t4205-log-pretty-formats.sh *** +ok 1 - set up basic repos +ok 2 - alias builtin format +ok 3 - alias masking builtin format +ok 4 - alias user-defined format +ok 5 - alias user-defined tformat +ok 6 - alias non-existent format +ok 7 - alias of an alias +ok 8 - alias masking an alias +ok 9 - alias loop +# passed all 9 test(s) +1..9 +*** t4206-log-follow-harder-copies.sh *** +ok 1 - add a file path0 and commit. +ok 2 - Change path0. +ok 3 - copy path0 to path1. +ok 4 - find the copy path0 -> path1 harder +ok 5 - validate the output. +# passed all 5 test(s) +1..5 +*** t4207-log-decoration-colors.sh *** +ok 1 - setup +ok 2 - Commit Decorations Colored Correctly +# passed all 2 test(s) +1..2 +*** t4208-log-magic-pathspec.sh *** +ok 1 - setup +ok 2 - "git log :/" should be ambiguous +ok 3 - "git log :" should be ambiguous +ok 4 - git log -- : +ok 5 - git log HEAD -- :/ +# passed all 5 test(s) +1..5 +*** t4252-am-options.sh *** +ok 1 - setup +ok 2 - interrupted am --whitespace=fix +ok 3 - interrupted am -C1 +ok 4 - interrupted am -p2 +ok 5 - interrupted am -C1 -p2 +ok 6 - interrupted am --directory="frotz nitfol" +ok 7 - apply to a funny path +ok 8 - am --reject +# passed all 8 test(s) +1..8 +*** t4253-am-keep-cr-dos.sh *** +ok 1 - setup repository with dos files +ok 2 - am with dos files without --keep-cr +ok 3 - am with dos files with --keep-cr +ok 4 - am with dos files config am.keepcr +ok 5 - am with dos files config am.keepcr overriden by --no-keep-cr +ok 6 - am with dos files with --keep-cr continue +ok 7 - am with unix files config am.keepcr overriden by --no-keep-cr +# passed all 7 test(s) +1..7 +*** t4254-am-corrupt.sh *** +ok 1 - setup +ok 2 - try to apply corrupted patch +ok 3 - compare diagnostic; ensure file is still here +# passed all 3 test(s) +1..3 +*** t4300-merge-tree.sh *** +ok 1 - setup +ok 2 - file add A, !B +ok 3 - file add !A, B +ok 4 - file add A, B (same) +ok 5 - file add A, B (different) +ok 6 - file change A, !B +ok 7 - file change !A, B +ok 8 - file change A, B (same) +ok 9 - file change A, B (different) +ok 10 - file change A, B (mixed) +ok 11 - file remove A, !B +ok 12 - file remove !A, B +ok 13 - file change A, remove B +ok 14 - file remove A, change B +# passed all 14 test(s) +1..14 +*** t5000-tar-tree.sh *** +ok 1 - populate workdir +ok 2 - add ignored file +ok 3 - add files to repository +ok 4 - create bare clone +ok 5 - remove ignored file +ok 6 - git archive +ok 7 - git tar-tree +ok 8 - git archive vs. git tar-tree +ok 9 - git archive in a bare repo +ok 10 - git archive vs. the same in a bare repo +ok 11 - git archive with --output +ok 12 - git archive --remote +ok 13 - validate file modification time +ok 14 - git get-tar-commit-id +ok 15 - extract tar archive +ok 16 - validate filenames +ok 17 - validate file contents +ok 18 - git tar-tree with prefix +ok 19 - extract tar archive with prefix +ok 20 - validate filenames with prefix +ok 21 - validate file contents with prefix +ok 22 - create archives with substfiles +ok 23 - extract substfiles +ok 24 - validate substfile contents +ok 25 - extract substfiles from archive with prefix +ok 26 - validate substfile contents from archive with prefix +ok 27 - git archive --format=zip +ok 28 - git archive --format=zip in a bare repo +ok 29 - git archive --format=zip vs. the same in a bare repo +ok 30 - git archive --format=zip with --output +ok 31 - git archive with --output, inferring format +ok 32 - git archive with --output, override inferred format +ok 33 - extract ZIP archive +ok 34 - validate filenames +ok 35 - validate file contents +ok 36 - git archive --format=zip with prefix +ok 37 - extract ZIP archive with prefix +ok 38 - validate filenames with prefix +ok 39 - validate file contents with prefix +ok 40 - git archive --list outside of a git repo +ok 41 - clients cannot access unreachable commits +ok 42 - git-archive --prefix=olde- +ok 43 - setup tar filters +ok 44 - archive --list mentions user filter +ok 45 - archive --list shows only enabled remote filters +ok 46 - invoke tar filter by format +ok 47 - invoke tar filter by extension +ok 48 - default output format remains tar +ok 49 - extension matching requires dot +ok 50 - only enabled filters are available remotely +ok 51 - git archive --format=tgz +ok 52 - git archive --format=tar.gz +ok 53 - infer tgz from .tgz filename +ok 54 - infer tgz from .tar.gz filename +ok 55 - extract tgz file +ok 56 - remote tar.gz is allowed by default +ok 57 - remote tar.gz can be disabled +# passed all 57 test(s) +1..57 +*** t5001-archive-attr.sh *** +ok 1 - setup +ok 2 - git archive +ok 3 - archive/ignored does not exist +ok 4 - archive/ignored-by-tree does not exist +ok 5 - archive/ignored-by-worktree exists +ok 6 - git archive with worktree attributes +ok 7 - worktree/ignored does not exist +ok 8 - worktree/ignored-by-tree exists +ok 9 - worktree/ignored-by-worktree does not exist +ok 10 - git archive --worktree-attributes option +ok 11 - worktree2/ignored does not exist +ok 12 - worktree2/ignored-by-tree exists +ok 13 - worktree2/ignored-by-worktree does not exist +ok 14 - git archive vs. bare +ok 15 - git archive with worktree attributes, bare +ok 16 - bare-worktree/ignored does not exist +ok 17 - bare-worktree/ignored-by-tree exists +ok 18 - bare-worktree/ignored-by-worktree exists +ok 19 - export-subst +ok 20 - git tar-tree vs. git archive with worktree attributes +ok 21 - git tar-tree vs. git archive with worktree attrs, bare +# passed all 21 test(s) +1..21 +*** t5100-mailinfo.sh *** +ok 1 - split sample box +ok 2 - mailinfo 0001 +ok 3 - mailinfo 0002 +ok 4 - mailinfo 0003 +ok 5 - mailinfo 0004 +ok 6 - mailinfo 0005 +ok 7 - mailinfo 0006 +ok 8 - mailinfo 0007 +ok 9 - mailinfo 0008 +ok 10 - mailinfo 0009 +ok 11 - mailinfo 0010 +ok 12 - mailinfo 0011 +ok 13 - mailinfo 0012 +ok 14 - mailinfo 0013 +ok 15 - mailinfo 0014 +ok 16 - mailinfo 0015 +ok 17 - mailinfo 0016 +ok 18 - split box with rfc2047 samples +ok 19 - mailinfo rfc2047/0001 +ok 20 - mailinfo rfc2047/0002 +ok 21 - mailinfo rfc2047/0003 +ok 22 - mailinfo rfc2047/0004 +ok 23 - mailinfo rfc2047/0005 +ok 24 - mailinfo rfc2047/0006 +ok 25 - mailinfo rfc2047/0007 +ok 26 - mailinfo rfc2047/0008 +ok 27 - mailinfo rfc2047/0009 +ok 28 - mailinfo rfc2047/0010 +ok 29 - mailinfo rfc2047/0011 +ok 30 - respect NULs +ok 31 - Preserve NULs out of MIME encoded message +ok 32 - mailinfo on from header without name works +# passed all 32 test(s) +1..32 +*** t5150-request-pull.sh *** +ok 1 - setup +ok 2 - setup: two scripts for reading pull requests +ok 3 - pull request when forgot to push +ok 4 - pull request after push +ok 5 - request names an appropriate branch +ok 6 - pull request format +ok 7 - request-pull ignores OPTIONS_KEEPDASHDASH poison +# passed all 7 test(s) +1..7 +*** t5300-pack-object.sh *** +ok 1 - setup +ok 2 - pack without delta +ok 3 - unpack without delta +ok 4 - check unpack without delta +ok 5 - pack with REF_DELTA +ok 6 - unpack with REF_DELTA +ok 7 - check unpack with REF_DELTA +ok 8 - pack with OFS_DELTA +ok 9 - unpack with OFS_DELTA +ok 10 - check unpack with OFS_DELTA +ok 11 - compare delta flavors +ok 12 - use packed objects +ok 13 - use packed deltified (REF_DELTA) objects +ok 14 - use packed deltified (OFS_DELTA) objects +ok 15 - survive missing objects/pack directory +ok 16 - verify pack +ok 17 - verify pack -v +ok 18 - verify-pack catches mismatched .idx and .pack files +ok 19 - verify-pack catches a corrupted pack signature +ok 20 - verify-pack catches a corrupted pack version +ok 21 - verify-pack catches a corrupted type/size of the 1st packed object data +ok 22 - verify-pack catches a corrupted sum of the index file itself +ok 23 - build pack index for an existing pack +ok 24 - unpacking with --strict +ok 25 - index-pack with --strict +ok 26 - honor pack.packSizeLimit +ok 27 - verify resulting packs +ok 28 - tolerate packsizelimit smaller than biggest object +ok 29 - verify resulting packs +ok 30 - fake a SHA1 hash collision +ok 31 - make sure index-pack detects the SHA1 collision +# passed all 31 test(s) +1..31 +*** t5301-sliding-window.sh *** +ok 1 - setup +ok 2 - verify-pack -v, defaults +ok 3 - verify-pack -v, packedGitWindowSize == 1 page +ok 4 - verify-pack -v, packedGit{WindowSize,Limit} == 1 page +ok 5 - repack -a -d, packedGit{WindowSize,Limit} == 1 page +ok 6 - verify-pack -v, defaults +# passed all 6 test(s) +1..6 +*** t5302-pack-index.sh *** +ok 1 - setup +ok 2 - pack-objects with index version 1 +ok 3 - pack-objects with index version 2 +ok 4 - both packs should be identical +ok 5 - index v1 and index v2 should be different +ok 6 - index-pack with index version 1 +ok 7 - index-pack with index version 2 +ok 8 - index-pack results should match pack-objects ones +ok 9 - index-pack --verify on index version 1 +ok 10 - index-pack --verify on index version 2 +ok 11 - index v2: force some 64-bit offsets with pack-objects +ok 12 - index v2: verify a pack with some 64-bit offsets +ok 13 - 64-bit offsets: should be different from previous index v2 results +ok 14 - index v2: force some 64-bit offsets with index-pack +ok 15 - 64-bit offsets: index-pack result should match pack-objects one +ok 16 - index-pack --verify on 64-bit offset v2 (cheat) +ok 17 - index-pack --verify on 64-bit offset v2 +ok 18 - [index v1] 1) stream pack to repository +ok 19 - [index v1] 2) create a stealth corruption in a delta base reference +ok 20 - [index v1] 3) corrupted delta happily returned wrong data +ok 21 - [index v1] 4) confirm that the pack is actually corrupted +ok 22 - [index v1] 5) pack-objects happily reuses corrupted data +ok 23 - [index v1] 6) newly created pack is BAD ! +ok 24 - [index v2] 1) stream pack to repository +ok 25 - [index v2] 2) create a stealth corruption in a delta base reference +ok 26 - [index v2] 3) corrupted delta happily returned wrong data +ok 27 - [index v2] 4) confirm that the pack is actually corrupted +ok 28 - [index v2] 5) pack-objects refuses to reuse corrupted data +ok 29 - [index v2] 6) verify-pack detects CRC mismatch +ok 30 - running index-pack in the object store +# passed all 30 test(s) +1..30 +*** t5303-pack-corruption-resilience.sh *** +ok 1 - initial setup validation +ok 2 - create corruption in header of first object +ok 3 - ... but having a loose copy allows for full recovery +ok 4 - ... and loose copy of first delta allows for partial recovery +ok 5 - create corruption in data of first object +ok 6 - ... but having a loose copy allows for full recovery +ok 7 - ... and loose copy of second object allows for partial recovery +ok 8 - create corruption in header of first delta +ok 9 - ... but having a loose copy allows for full recovery +ok 10 - ... and then a repack "clears" the corruption +ok 11 - create corruption in data of first delta +ok 12 - ... but having a loose copy allows for full recovery +ok 13 - ... and then a repack "clears" the corruption +ok 14 - corruption in delta base reference of first delta (OBJ_REF_DELTA) +ok 15 - ... but having a loose copy allows for full recovery +ok 16 - ... and then a repack "clears" the corruption +ok 17 - corruption #0 in delta base reference of first delta (OBJ_OFS_DELTA) +ok 18 - ... but having a loose copy allows for full recovery +ok 19 - ... and then a repack "clears" the corruption +ok 20 - corruption #1 in delta base reference of first delta (OBJ_OFS_DELTA) +ok 21 - ... but having a loose copy allows for full recovery +ok 22 - ... and then a repack "clears" the corruption +ok 23 - ... and a redundant pack allows for full recovery too +ok 24 - corrupting header to have too small output buffer fails unpack +# passed all 24 test(s) +1..24 +*** t5304-prune.sh *** +ok 1 - setup +ok 2 - prune stale packs +ok 3 - prune --expire +ok 4 - gc: implicit prune --expire +ok 5 - gc: refuse to start with invalid gc.pruneExpire +ok 6 - gc: start with ok gc.pruneExpire +ok 7 - prune: prune nonsense parameters +ok 8 - prune: prune unreachable heads +ok 9 - prune: do not prune heads listed as an argument +ok 10 - gc --no-prune +ok 11 - gc respects gc.pruneExpire +ok 12 - gc --prune= +ok 13 - gc --prune=never +ok 14 - gc respects gc.pruneExpire=never +ok 15 - prune --expire=never +ok 16 - gc: prune old objects after local clone +# passed all 16 test(s) +1..16 +*** t5305-include-tag.sh *** +ok 1 - setup +ok 2 - pack without --include-tag +ok 3 - unpack objects +ok 4 - check unpacked result (have commit, no tag) +ok 5 - pack with --include-tag +ok 6 - unpack objects +ok 7 - check unpacked result (have commit, have tag) +# passed all 7 test(s) +1..7 +*** t5306-pack-nobase.sh *** +ok 1 - setup base +ok 2 - setup patch_clone +ok 3 - indirectly clone patch_clone +ok 4 - clone of patch_clone is incomplete +# passed all 4 test(s) +1..4 +*** t5307-pack-missing-commit.sh *** +ok 1 - setup +ok 2 - check corruption +ok 3 - rev-list notices corruption (1) +ok 4 - rev-list notices corruption (2) +ok 5 - pack-objects notices corruption +# passed all 5 test(s) +1..5 +*** t5400-send-pack.sh *** +ok 1 - setup +ok 2 - pack the source repository +ok 3 - pack the destination repository +ok 4 - refuse pushing rewound head without --force +ok 5 - push can be used to delete a ref +ok 6 - refuse deleting push with denyDeletes +ok 7 - cannot override denyDeletes with git -c send-pack +ok 8 - override denyDeletes with git -c receive-pack +ok 9 - denyNonFastforwards trumps --force +ok 10 - push --all excludes remote-tracking hierarchy +ok 11 - pushing explicit refspecs respects forcing +ok 12 - pushing wildcard refspecs respects forcing +ok 13 - deny pushing to delete current branch +# passed all 13 test(s) +1..13 +*** t5401-update-hooks.sh *** +ok 1 - setup +ok 2 - push +ok 3 - updated as expected +ok 4 - hooks ran +ok 5 - pre-receive hook input +ok 6 - update hook arguments +ok 7 - post-receive hook input +ok 8 - post-update hook arguments +ok 9 - all hook stdin is /dev/null +ok 10 - all *-receive hook args are empty +ok 11 - send-pack produced no output +ok 12 - send-pack stderr contains hook messages +# passed all 12 test(s) +1..12 +*** t5402-post-merge-hook.sh *** +ok 1 - setup +ok 2 - post-merge does not run for up-to-date +ok 3 - post-merge runs as expected +ok 4 - post-merge from normal merge receives the right argument +ok 5 - post-merge from squash merge runs as expected +ok 6 - post-merge from squash merge receives the right argument +# passed all 6 test(s) +1..6 +*** t5403-post-checkout-hook.sh *** +ok 1 - setup +ok 2 - post-checkout runs as expected +ok 3 - post-checkout receives the right arguments with HEAD unchanged +ok 4 - post-checkout runs as expected +ok 5 - post-checkout args are correct with git checkout -b +ok 6 - post-checkout receives the right args with HEAD changed +ok 7 - post-checkout receives the right args when not switching branches +ok 8 - post-checkout hook is triggered by clone +# passed all 8 test(s) +1..8 +*** t5404-tracking-branches.sh *** +ok 1 - setup +ok 2 - prepare pushable branches +ok 3 - mixed-success push returns error +ok 4 - check tracking branches updated correctly after push +ok 5 - check tracking branches not updated for failed refs +ok 6 - deleted branches have their tracking branches removed +ok 7 - already deleted tracking branches ignored +# passed all 7 test(s) +1..7 +*** t5405-send-pack-rewind.sh *** +ok 1 - setup +ok 2 - non forced push should die not segfault +ok 3 - forced push should succeed +# passed all 3 test(s) +1..3 +*** t5406-remote-rejects.sh *** +ok 1 - setup +ok 2 - push reports error +ok 3 - individual ref reports error +# passed all 3 test(s) +1..3 +*** t5407-post-rewrite-hook.sh *** +ok 1 - setup +ok 2 - git commit --amend +ok 3 - git commit --amend --no-post-rewrite +ok 4 - git rebase +ok 5 - git rebase --skip +ok 6 - git rebase --skip the last one +ok 7 - git rebase -m +ok 8 - git rebase -m --skip +ok 9 - git rebase -i (unchanged) +ok 10 - git rebase -i (skip) +ok 11 - git rebase -i (squash) +ok 12 - git rebase -i (fixup without conflict) +ok 13 - git rebase -i (double edit) +# passed all 13 test(s) +1..13 +*** t5500-fetch-pack.sh *** +ok 1 - setup +ok 2 - 1st pull +ok 3 - post 1st pull setup +ok 4 - 2nd pull +ok 5 - 3rd pull +ok 6 - clone shallow +ok 7 - clone shallow object count +ok 8 - clone shallow object count (part 2) +ok 9 - fsck in shallow repo +ok 10 - simple fetch in shallow repo +ok 11 - no changes expected +ok 12 - fetch same depth in shallow repo +ok 13 - no changes expected +ok 14 - add two more +ok 15 - pull in shallow repo +ok 16 - clone shallow object count +ok 17 - add two more (part 2) +ok 18 - deepening pull in shallow repo +ok 19 - clone shallow object count +ok 20 - deepening fetch in shallow repo +ok 21 - clone shallow object count +ok 22 - pull in shallow repo with missing merge base +ok 23 - additional simple shallow deepenings +ok 24 - clone shallow object count +# passed all 24 test(s) +1..24 +*** t5501-fetch-push-alternates.sh *** +ok 1 - setup +ok 2 - pushing into a repository with the same alternate +ok 3 - fetching from a repository with the same alternate +# passed all 3 test(s) +1..3 +*** t5502-quickfetch.sh *** +ok 1 - setup +ok 2 - clone without alternate +ok 3 - further commits in the original +ok 4 - copy commit and tree but not blob by hand +ok 5 - quickfetch should not leave a corrupted repository +ok 6 - quickfetch should not copy from alternate +ok 7 - quickfetch should handle ~1000 refs (on Windows) +# passed all 7 test(s) +1..7 +*** t5503-tagfollow.sh *** +ok 1 - setup +ok 2 - setup expect +ok 3 - fetch A (new commit : 1 connection) +ok 4 - create tag T on A, create C on branch cat +ok 5 - setup expect +ok 6 - fetch C, T (new branch, tag : 1 connection) +ok 7 - create commits O, B, tag S on B +ok 8 - setup expect +ok 9 - fetch B, S (commit and tag : 1 connection) +ok 10 - setup expect +ok 11 - new clone fetch master and tags +# passed all 11 test(s) +1..11 +*** t5504-fetch-receive-strict.sh *** +ok 1 - setup +ok 2 - fetch without strict +ok 3 - fetch with !fetch.fsckobjects +ok 4 - fetch with fetch.fsckobjects +ok 5 - fetch with transfer.fsckobjects +ok 6 - push without strict +ok 7 - push with !receive.fsckobjects +ok 8 - push with receive.fsckobjects +ok 9 - push with transfer.fsckobjects +# passed all 9 test(s) +1..9 +*** t5505-remote.sh *** +ok 1 - setup +ok 2 - remote information for the origin +ok 3 - add another remote +ok 4 - remote forces tracking branches +ok 5 - remove remote +ok 6 - remove remote +ok 7 - remove remote protects local branches +ok 8 - show +ok 9 - show -n +ok 10 - prune +ok 11 - set-head --delete +ok 12 - set-head --auto +ok 13 - set-head --auto fails w/multiple HEADs +ok 14 - set-head explicit +ok 15 - prune --dry-run +ok 16 - add --mirror && prune +ok 17 - add --mirror=fetch +ok 18 - fetch mirrors act as mirrors during fetch +ok 19 - fetch mirrors can prune +ok 20 - fetch mirrors do not act as mirrors during push +ok 21 - add fetch mirror with specific branches +ok 22 - fetch mirror respects specific branches +ok 23 - add --mirror=push +ok 24 - push mirrors act as mirrors during push +ok 25 - push mirrors do not act as mirrors during fetch +ok 26 - push mirrors do not allow you to specify refs +ok 27 - add alt && prune +ok 28 - add with reachable tags (default) +ok 29 - add --tags +ok 30 - add --no-tags +ok 31 - reject --no-no-tags +ok 32 - update +ok 33 - update with arguments +ok 34 - update --prune +ok 35 - update default +ok 36 - update default (overridden, with funny whitespace) +ok 37 - update (with remotes.default defined) +ok 38 - "remote show" does not show symbolic refs +ok 39 - reject adding remote with an invalid name +ok 40 - rename a remote +ok 41 - rename does not update a non-default fetch refspec +ok 42 - rename a remote with name part of fetch spec +ok 43 - rename a remote with name prefix of other remote +ok 44 - migrate a remote from named file in $GIT_DIR/remotes +ok 45 - migrate a remote from named file in $GIT_DIR/branches +ok 46 - remote prune to cause a dangling symref +ok 47 - show empty remote +ok 48 - remote set-branches requires a remote +ok 49 - remote set-branches +ok 50 - remote set-branches with --mirror +ok 51 - new remote +ok 52 - remote set-url bar +ok 53 - remote set-url baz bar +ok 54 - remote set-url zot bar +ok 55 - remote set-url --push zot baz +ok 56 - remote set-url --push zot +ok 57 - remote set-url --push qux zot +ok 58 - remote set-url --push foo qu+x +ok 59 - remote set-url --push --add aaa +ok 60 - remote set-url --push bar aaa +ok 61 - remote set-url --push --delete bar +ok 62 - remote set-url --push --delete foo +ok 63 - remote set-url --add bbb +ok 64 - remote set-url --delete .* +ok 65 - remote set-url --delete bbb +ok 66 - remote set-url --delete baz +ok 67 - remote set-url --add ccc +ok 68 - remote set-url --delete baz +# passed all 68 test(s) +1..68 +*** t5506-remote-groups.sh *** +ok 1 - setup +ok 2 - no group updates all +ok 3 - nonexistent group produces error +ok 4 - updating group updates all members (remote update) +ok 5 - updating group updates all members (fetch) +ok 6 - updating group does not update non-members (remote update) +ok 7 - updating group does not update non-members (fetch) +ok 8 - updating remote name updates that remote +# passed all 8 test(s) +1..8 +*** t5509-fetch-push-namespaces.sh *** +ok 1 - setup +ok 2 - pushing into a repository using a ref namespace +ok 3 - pulling from a repository using a ref namespace +ok 4 - mirroring a repository using a ref namespace +# passed all 4 test(s) +1..4 +*** t5510-fetch.sh *** +ok 1 - setup +ok 2 - clone and setup child repos +ok 3 - fetch test +ok 4 - fetch test for-merge +ok 5 - fetch --prune on its own works as expected +ok 6 - fetch --prune with a branch name keeps branches +ok 7 - fetch --prune with a namespace keeps other namespaces +ok 8 - fetch --prune --tags does not delete the remote-tracking branches +ok 9 - fetch --prune --tags with branch does not delete other remote-tracking branches +ok 10 - fetch tags when there is no tags +ok 11 - fetch following tags +ok 12 - fetch must not resolve short tag name +ok 13 - fetch can now resolve short remote name +ok 14 - create bundle 1 +ok 15 - header of bundle looks right +ok 16 - create bundle 2 +ok 17 - unbundle 1 +ok 18 - bundle 1 has only 3 files +ok 19 - unbundle 2 +ok 20 - bundle does not prerequisite objects +ok 21 - bundle should be able to create a full history +ok 22 - fetch via rsync +ok 23 - push via rsync +ok 24 - push via rsync +ok 25 - fetch with a non-applying branch..merge +ok 26 - fetch from GIT URL with a non-applying branch..merge [1] +ok 27 - fetch from GIT URL with a non-applying branch..merge [2] +ok 28 - fetch from GIT URL with a non-applying branch..merge [3] +ok 29 - quoting of a strangely named repo +ok 30 - bundle should record HEAD correctly +ok 31 - explicit fetch should not update tracking +ok 32 - explicit pull should not update tracking +ok 33 - configured fetch updates tracking +ok 34 - pushing nonexistent branch by mistake should not segv +ok 35 - auto tag following fetches minimum +ok 36 - refuse to fetch into the current branch +ok 37 - fetch into the current branch with --update-head-ok +ok 38 - fetch --dry-run +ok 39 - should be able to fetch with duplicate refspecs +# passed all 39 test(s) +1..39 +*** t5511-refspec.sh *** +ok 1 - push (invalid) +ok 2 - push : +ok 3 - push :: (invalid) +ok 4 - push +: +ok 5 - fetch +ok 6 - fetch : +ok 7 - fetch :: (invalid) +ok 8 - push refs/heads/*:refs/remotes/frotz/* +ok 9 - push refs/heads/*:refs/remotes/frotz (invalid) +ok 10 - push refs/heads:refs/remotes/frotz/* (invalid) +ok 11 - push refs/heads/master:refs/remotes/frotz/xyzzy +ok 12 - fetch refs/heads/*:refs/remotes/frotz/* +ok 13 - fetch refs/heads/*:refs/remotes/frotz (invalid) +ok 14 - fetch refs/heads:refs/remotes/frotz/* (invalid) +ok 15 - fetch refs/heads/master:refs/remotes/frotz/xyzzy +ok 16 - fetch refs/heads/master::refs/remotes/frotz/xyzzy (invalid) +ok 17 - fetch refs/heads/maste :refs/remotes/frotz/xyzzy (invalid) +ok 18 - push master~1:refs/remotes/frotz/backup +ok 19 - fetch master~1:refs/remotes/frotz/backup (invalid) +ok 20 - push HEAD~4:refs/remotes/frotz/new +ok 21 - fetch HEAD~4:refs/remotes/frotz/new (invalid) +ok 22 - push HEAD +ok 23 - fetch HEAD +ok 24 - push refs/heads/ nitfol (invalid) +ok 25 - fetch refs/heads/ nitfol (invalid) +ok 26 - push HEAD: (invalid) +ok 27 - fetch HEAD: +ok 28 - push refs/heads/ nitfol: (invalid) +ok 29 - fetch refs/heads/ nitfol: (invalid) +ok 30 - push :refs/remotes/frotz/deleteme +ok 31 - fetch :refs/remotes/frotz/HEAD-to-me +ok 32 - push :refs/remotes/frotz/delete me (invalid) +ok 33 - fetch :refs/remotes/frotz/HEAD to me (invalid) +ok 34 - fetch refs/heads/*/for-linus:refs/remotes/mine/*-blah (invalid) +ok 35 - push refs/heads/*/for-linus:refs/remotes/mine/*-blah (invalid) +ok 36 - fetch refs/heads*/for-linus:refs/remotes/mine/* (invalid) +ok 37 - push refs/heads*/for-linus:refs/remotes/mine/* (invalid) +ok 38 - fetch refs/heads/*/*/for-linus:refs/remotes/mine/* (invalid) +ok 39 - push refs/heads/*/*/for-linus:refs/remotes/mine/* (invalid) +ok 40 - fetch refs/heads/*/for-linus:refs/remotes/mine/* +ok 41 - push refs/heads/*/for-linus:refs/remotes/mine/* +# passed all 41 test(s) +1..41 +*** t5512-ls-remote.sh *** +ok 1 - setup +ok 2 - ls-remote --tags .git +ok 3 - ls-remote .git +ok 4 - ls-remote --tags self +ok 5 - ls-remote self +ok 6 - dies when no remote specified and no default remotes found +ok 7 - use "origin" when no remote specified +ok 8 - suppress "From " with -q +ok 9 - use branch..remote if possible +ok 10 - confuses pattern as remote when no remote specified +ok 11 - die with non-2 for wrong repository even with --exit-code +ok 12 - Report success even when nothing matches +ok 13 - Report no-match with --exit-code +ok 14 - Report match with --exit-code +# passed all 14 test(s) +1..14 +*** t5513-fetch-track.sh *** +ok 1 - setup +ok 2 - fetch +# passed all 2 test(s) +1..2 +*** t5514-fetch-multiple.sh *** +ok 1 - setup +ok 2 - git fetch --all +ok 3 - git fetch --all should continue if a remote has errors +ok 4 - git fetch --all does not allow non-option arguments +ok 5 - git fetch --multiple (but only one remote) +ok 6 - git fetch --multiple (two remotes) +ok 7 - git fetch --multiple (bad remote names) +ok 8 - git fetch --all (skipFetchAll) +ok 9 - git fetch --multiple (ignoring skipFetchAll) +# passed all 9 test(s) +1..9 +*** t5515-fetch-merge-logic.sh *** +ok 1 - setup +ok 2 - br-config-explicit +ok 3 - br-config-explicit config-explicit +ok 4 - br-config-explicit-merge +ok 5 - br-config-explicit-merge config-explicit +ok 6 - br-config-explicit-octopus +ok 7 - br-config-explicit-octopus config-explicit +ok 8 - br-config-glob +ok 9 - br-config-glob config-glob +ok 10 - br-config-glob-merge +ok 11 - br-config-glob-merge config-glob +ok 12 - br-config-glob-octopus +ok 13 - br-config-glob-octopus config-glob +ok 14 - br-remote-explicit +ok 15 - br-remote-explicit remote-explicit +ok 16 - br-remote-explicit-merge +ok 17 - br-remote-explicit-merge remote-explicit +ok 18 - br-remote-explicit-octopus +ok 19 - br-remote-explicit-octopus remote-explicit +ok 20 - br-remote-glob +ok 21 - br-remote-glob remote-glob +ok 22 - br-remote-glob-merge +ok 23 - br-remote-glob-merge remote-glob +ok 24 - br-remote-glob-octopus +ok 25 - br-remote-glob-octopus remote-glob +ok 26 - br-branches-default +ok 27 - br-branches-default branches-default +ok 28 - br-branches-default-merge +ok 29 - br-branches-default-merge branches-default +ok 30 - br-branches-default-octopus +ok 31 - br-branches-default-octopus branches-default +ok 32 - br-branches-one +ok 33 - br-branches-one branches-one +ok 34 - br-branches-one-merge +ok 35 - br-branches-one-merge branches-one +ok 36 - br-branches-one-octopus +ok 37 - br-branches-one-octopus branches-one +ok 38 - master +ok 39 - master config-explicit +ok 40 - master config-glob +ok 41 - master remote-explicit +ok 42 - master remote-glob +ok 43 - master branches-default +ok 44 - master branches-one +ok 45 - br-unconfig +ok 46 - br-unconfig config-explicit +ok 47 - br-unconfig config-glob +ok 48 - br-unconfig remote-explicit +ok 49 - br-unconfig remote-glob +ok 50 - br-unconfig branches-default +ok 51 - br-unconfig branches-one +ok 52 - master ../.git +ok 53 - master ../.git one +ok 54 - master ../.git one two +ok 55 - master --tags ../.git +ok 56 - master ../.git tag tag-one tag tag-three +ok 57 - master ../.git tag tag-one-tree tag tag-three-file +ok 58 - master ../.git one tag tag-one tag tag-three-file +ok 59 - br-unconfig ../.git +ok 60 - br-unconfig ../.git one +ok 61 - br-unconfig ../.git one two +ok 62 - br-unconfig --tags ../.git +ok 63 - br-unconfig ../.git tag tag-one tag tag-three +ok 64 - br-unconfig ../.git tag tag-one-tree tag tag-three-file +ok 65 - br-unconfig ../.git one tag tag-one tag tag-three-file +# passed all 65 test(s) +1..65 +*** t5516-fetch-push.sh *** +ok 1 - setup +ok 2 - fetch without wildcard +ok 3 - fetch with wildcard +ok 4 - fetch with insteadOf +ok 5 - fetch with pushInsteadOf (should not rewrite) +ok 6 - push without wildcard +ok 7 - push with wildcard +ok 8 - push with insteadOf +ok 9 - push with pushInsteadOf +ok 10 - push with pushInsteadOf and explicit pushurl (pushInsteadOf should not rewrite) +ok 11 - push with matching heads +ok 12 - push with matching heads on the command line +ok 13 - failed (non-fast-forward) push with matching heads +ok 14 - push --force with matching heads +ok 15 - push with matching heads and forced update +ok 16 - push with no ambiguity (1) +ok 17 - push with no ambiguity (2) +ok 18 - push with colon-less refspec, no ambiguity +ok 19 - push with weak ambiguity (1) +ok 20 - push with weak ambiguity (2) +ok 21 - push with ambiguity +ok 22 - push with colon-less refspec (1) +ok 23 - push with colon-less refspec (2) +ok 24 - push with colon-less refspec (3) +ok 25 - push with colon-less refspec (4) +ok 26 - push head with non-existent, incomplete dest +ok 27 - push tag with non-existent, incomplete dest +ok 28 - push sha1 with non-existent, incomplete dest +ok 29 - push ref expression with non-existent, incomplete dest +ok 30 - push with HEAD +ok 31 - push with HEAD nonexisting at remote +ok 32 - push with +HEAD +ok 33 - push HEAD with non-existent, incomplete dest +ok 34 - push with config remote.*.push = HEAD +ok 35 - push with config remote.*.pushurl +ok 36 - push with dry-run +ok 37 - push updates local refs +ok 38 - push updates up-to-date local refs +ok 39 - push preserves up-to-date packed refs +ok 40 - push does not update local refs on failure +ok 41 - allow deleting an invalid remote ref +ok 42 - pushing valid refs triggers post-receive and post-update hooks +ok 43 - deleting dangling ref triggers hooks with correct args +ok 44 - deletion of a non-existent ref is not fed to post-receive and post-update hooks +ok 45 - deletion of a non-existent ref alone does trigger post-receive and post-update hooks +ok 46 - mixed ref updates, deletes, invalid deletes trigger hooks with correct input +ok 47 - allow deleting a ref using --delete +ok 48 - allow deleting a tag using --delete +ok 49 - push --delete without args aborts +ok 50 - push --delete refuses src:dest refspecs +ok 51 - warn on push to HEAD of non-bare repository +ok 52 - deny push to HEAD of non-bare repository +ok 53 - allow push to HEAD of bare repository (bare) +ok 54 - allow push to HEAD of non-bare repository (config) +ok 55 - fetch with branches +ok 56 - fetch with branches containing # +ok 57 - push with branches +ok 58 - push with branches containing # +ok 59 - push into aliased refs (consistent) +ok 60 - push into aliased refs (inconsistent) +ok 61 - push --porcelain +ok 62 - push --porcelain bad url +ok 63 - push --porcelain rejected +ok 64 - push --porcelain --dry-run rejected +# passed all 64 test(s) +1..64 +*** t5517-push-mirror.sh *** +ok 1 - push mirror creates new branches +ok 2 - push mirror updates existing branches +ok 3 - push mirror force updates existing branches +ok 4 - push mirror removes branches +ok 5 - push mirror adds, updates and removes branches together +ok 6 - push mirror creates new tags +ok 7 - push mirror updates existing tags +ok 8 - push mirror force updates existing tags +ok 9 - push mirror removes tags +ok 10 - push mirror adds, updates and removes tags together +ok 11 - remote.foo.mirror adds and removes branches +ok 12 - remote.foo.mirror=no has no effect +# passed all 12 test(s) +1..12 +*** t5518-fetch-exit-status.sh *** +ok 1 - setup +ok 2 - non-fast-forward fetch +ok 3 - forced update +# passed all 3 test(s) +1..3 +*** t5519-push-alternates.sh *** +ok 1 - setup +ok 2 - alice works and pushes +ok 3 - bob fetches from alice, works and pushes +ok 4 - clean-up in case the previous failed +ok 5 - alice works and pushes again +ok 6 - bob works and pushes +ok 7 - alice works and pushes yet again +ok 8 - bob works and pushes again +# passed all 8 test(s) +1..8 +*** t5520-pull.sh *** +ok 1 - setup +ok 2 - pulling into void +ok 3 - checking the results +ok 4 - pulling into void using master:master +ok 5 - pulling into void does not overwrite untracked files +ok 6 - test . as a remote +ok 7 - the default remote . should not break explicit pull +ok 8 - --rebase +ok 9 - pull.rebase +ok 10 - branch.to-rebase.rebase +ok 11 - branch.to-rebase.rebase should override pull.rebase +ok 12 - --rebase with rebased upstream +ok 13 - --rebase with rebased default upstream +ok 14 - rebased upstream + fetch + pull --rebase +ok 15 - pull --rebase dies early with dirty working directory +ok 16 - pull --rebase works on branch yet to be born +ok 17 - setup for detecting upstreamed changes +ok 18 - git pull --rebase detects upstreamed changes +ok 19 - setup for avoiding reapplying old patches +ok 20 - git pull --rebase does not reapply old patches +ok 21 - git pull --rebase against local branch +# passed all 21 test(s) +1..21 +*** t5521-pull-options.sh *** +ok 1 - setup +ok 2 - git pull -q +ok 3 - git pull +ok 4 - git pull -v +ok 5 - git pull -v -q +ok 6 - git pull -q -v +ok 7 - git pull --force +ok 8 - git pull --all +# passed all 8 test(s) +1..8 +*** t5522-pull-symlink.sh *** +ok 1 - setup +ok 2 - pulling from real subdir +ok 3 - pulling from symlinked subdir +ok 4 - pushing from symlinked subdir +# passed all 4 test(s) +1..4 +*** t5523-push-upstream.sh *** +ok 1 - set up terminal for tests +ok 2 - setup bare parent +ok 3 - setup local commit +ok 4 - push -u master:master +ok 5 - push -u master:other +ok 6 - push -u --dry-run master:otherX +ok 7 - push -u master2:master2 +ok 8 - push -u master2:other2 +ok 9 - push -u :master2 +ok 10 - push -u --all +ok 11 - push -u HEAD +ok 12 # skip progress messages go to tty (missing TTY) +ok 13 - progress messages do not go to non-tty +ok 14 - progress messages go to non-tty (forced) +ok 15 # skip push -q suppresses progress (missing TTY) +ok 16 # skip push --no-progress suppresses progress (missing TTY) +ok 17 # skip quiet push (missing TTY) +# passed all 17 test(s) +1..17 +*** t5524-pull-msg.sh *** +ok 1 - setup +ok 2 - pull +# passed all 2 test(s) +1..2 +*** t5525-fetch-tagopt.sh *** +ok 1 - setup +ok 2 - fetch with tagopt=--no-tags does not get tag +ok 3 - fetch --tags with tagopt=--no-tags gets tag +ok 4 - fetch --no-tags with tagopt=--tags does not get tag +ok 5 - fetch with tagopt=--tags gets tag +# passed all 5 test(s) +1..5 +*** t5526-fetch-submodules.sh *** +ok 1 - setup +ok 2 - fetch --recurse-submodules recurses into submodules +ok 3 - fetch alone only fetches superproject +ok 4 - fetch --no-recurse-submodules only fetches superproject +ok 5 - using fetchRecurseSubmodules=true in .gitmodules recurses into submodules +ok 6 - --no-recurse-submodules overrides .gitmodules config +ok 7 - using fetchRecurseSubmodules=false in .git/config overrides setting in .gitmodules +ok 8 - --recurse-submodules overrides fetchRecurseSubmodules setting from .git/config +ok 9 - --quiet propagates to submodules +ok 10 - --dry-run propagates to submodules +ok 11 - Without --dry-run propagates to submodules +ok 12 - recurseSubmodules=true propagates into submodules +ok 13 - --recurse-submodules overrides config in submodule +ok 14 - --no-recurse-submodules overrides config setting +ok 15 - Recursion doesn't happen when no new commits are fetched in the superproject +ok 16 - Recursion stops when no new submodule commits are fetched +ok 17 - Recursion doesn't happen when new superproject commits don't change any submodules +ok 18 - Recursion picks up config in submodule +ok 19 - Recursion picks up all submodules when necessary +ok 20 - '--recurse-submodules=on-demand' doesn't recurse when no new commits are fetched in the superproject (and ignores config) +ok 21 - '--recurse-submodules=on-demand' recurses as deep as necessary (and ignores config) +ok 22 - '--recurse-submodules=on-demand' stops when no new submodule commits are found in the superproject (and ignores config) +ok 23 - 'fetch.recurseSubmodules=on-demand' overrides global config +ok 24 - 'submodule..fetchRecurseSubmodules=on-demand' overrides fetch.recurseSubmodules +ok 25 - don't fetch submodule when newly recorded commits are already present +# passed all 25 test(s) +1..25 +*** t5527-fetch-odd-refs.sh *** +ok 1 - setup repo with odd suffix ref +ok 2 - suffix ref is ignored during fetch +# passed all 2 test(s) +1..2 +*** t5530-upload-pack-error.sh *** +ok 1 - setup and corrupt repository +ok 2 - fsck fails +ok 3 - upload-pack fails due to error in pack-objects packing +ok 4 - corrupt repo differently +ok 5 - fsck fails +ok 6 - upload-pack fails due to error in rev-list +ok 7 - upload-pack error message when bad ref requested +ok 8 - upload-pack fails due to error in pack-objects enumeration +ok 9 - create empty repository +ok 10 - fetch fails +# passed all 10 test(s) +1..10 +*** t5531-deep-submodule-push.sh *** +ok 1 - setup +ok 2 - push +ok 3 - push if submodule has no remote +ok 4 - push fails if submodule commit not on remote +ok 5 - push succeeds after commit was pushed to remote +ok 6 - push fails when commit on multiple branches if one branch has no remote +ok 7 - push succeeds if submodule has no remote and is on the first superproject commit +# passed all 7 test(s) +1..7 +*** t5532-fetch-proxy.sh *** +ok 1 - setup remote repo +ok 2 - setup local repo +ok 3 - fetch through proxy works +# passed all 3 test(s) +1..3 +*** t5540-http-push.sh *** +# passed all 0 test(s) +1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable) +*** t5541-http-push.sh *** +# passed all 0 test(s) +1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable) +*** t5550-http-fetch.sh *** +# passed all 0 test(s) +1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable) +*** t5551-http-fetch.sh *** +# passed all 0 test(s) +1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable) +*** t5560-http-backend-noserver.sh *** +ok 1 - setup repository +ok 2 - direct refs/heads/master not found +ok 3 - static file is ok +ok 4 - no export by default +ok 5 - export if git-daemon-export-ok +ok 6 - static file if http.getanyfile true is ok +ok 7 - static file if http.getanyfile false fails +ok 8 - http.uploadpack default enabled +ok 9 - http.uploadpack true +ok 10 - http.uploadpack false +ok 11 - http.receivepack default disabled +ok 12 - http.receivepack true +ok 13 - http.receivepack false +ok 14 - http-backend blocks bad PATH_INFO +# passed all 14 test(s) +1..14 +*** t5561-http-backend.sh *** +# passed all 0 test(s) +1..0 # SKIP Network testing disabled (define GIT_TEST_HTTPD to enable) +*** t5600-clone-fail-cleanup.sh *** +ok 1 - clone of non-existent source should fail +ok 2 - failed clone should not leave a directory +ok 3 - clone of non-existent (relative to $PWD) source should fail +ok 4 - clone should work now that source exists +ok 5 - successful clone must leave the directory +# passed all 5 test(s) +1..5 +*** t5601-clone.sh *** +ok 1 - setup +ok 2 - clone with excess parameters (1) +ok 3 - clone with excess parameters (2) +ok 4 - output from clone +ok 5 - clone does not keep pack +ok 6 - clone checks out files +ok 7 - clone respects GIT_WORK_TREE +ok 8 - clone creates intermediate directories +ok 9 - clone creates intermediate directories for bare repo +ok 10 - clone --mirror +ok 11 - clone --bare names the local repository .git +ok 12 - clone --mirror does not repeat tags +ok 13 - clone to destination with trailing / +ok 14 - clone to destination with extra trailing / +ok 15 - clone to an existing empty directory +ok 16 - clone to an existing non-empty directory +ok 17 - clone to an existing path +ok 18 - clone a void +ok 19 - clone respects global branch.autosetuprebase +ok 20 - respect url-encoding of file:// +ok 21 - do not query-string-decode + in URLs +ok 22 - do not respect url-encoding of non-url path +ok 23 - clone separate gitdir +ok 24 - clone separate gitdir: output +ok 25 - clone from .git file +ok 26 - fetch from .git gitfile +ok 27 - fetch from gitfile parent +ok 28 - clone separate gitdir where target already exists +ok 29 - clone --reference from original +ok 30 - clone with more than one --reference +ok 31 - clone from original with relative alternate +# passed all 31 test(s) +1..31 +*** t5602-clone-remote-exec.sh *** +ok 1 - setup +ok 2 - clone calls git upload-pack unqualified with no -u option +ok 3 - clone calls specified git upload-pack with -u option +# passed all 3 test(s) +1..3 +*** t5700-clone-reference.sh *** +ok 1 - preparing first repository +ok 2 - preparing second repository +ok 3 - cloning with reference (-l -s) +ok 4 - existence of info/alternates +ok 5 - pulling from reference +ok 6 - that reference gets used +ok 7 - cloning with reference (no -l -s) +ok 8 - fetched no objects +ok 9 - existence of info/alternates +ok 10 - pulling from reference +ok 11 - that reference gets used +ok 12 - updating origin +ok 13 - pulling changes from origin +ok 14 - that alternate to origin gets used +ok 15 - pulling changes from origin +ok 16 - check objects expected to exist locally +ok 17 - preparing alternate repository #1 +ok 18 - cloning alternate repo #2 and adding changes to repo #1 +ok 19 - cloning alternate repo #1, using #2 as reference +ok 20 - cloning with reference being subset of source (-l -s) +ok 21 - clone with reference from a tagged repository +# passed all 21 test(s) +1..21 +*** t5701-clone-local.sh *** +ok 1 - preparing origin repository +ok 2 - local clone without .git suffix +ok 3 - local clone with .git suffix +ok 4 - local clone from x +ok 5 - local clone from x.git that does not exist +ok 6 - With -no-hardlinks, local will make a copy +ok 7 - Even without -l, local will make a hardlink +ok 8 - local clone of repo with nonexistent ref in HEAD +ok 9 - bundle clone without .bundle suffix +ok 10 - bundle clone with .bundle suffix +ok 11 - bundle clone from b4 +ok 12 - bundle clone from b4.bundle that does not exist +ok 13 - bundle clone with nonexistent HEAD +ok 14 - clone empty repository +ok 15 - clone empty repository, and then push should not segfault. +ok 16 - cloning non-existent directory fails +ok 17 - cloning non-git directory fails +# passed all 17 test(s) +1..17 +*** t5702-clone-options.sh *** +ok 1 - setup +ok 2 - clone -o +ok 3 - redirected clone +ok 4 - redirected clone -v +# passed all 4 test(s) +1..4 +*** t5704-bundle.sh *** +ok 1 - setup +ok 2 - tags can be excluded by rev-list options +ok 3 - die if bundle file cannot be created +not ok 4 - bundle --stdin # TODO known breakage +not ok 5 - bundle --stdin # TODO known breakage +ok 6 - empty bundle file is rejected +# still have 2 known breakage(s) +# passed all remaining 4 test(s) +1..6 +*** t5705-clone-2gb.sh *** +Skipping expensive 2GB clone test; enable it with GIT_TEST_CLONE_2GB=t +ok 1 # skip setup (missing CLONE_2GB) +ok 2 # skip clone - bare (missing CLONE_2GB) +ok 3 # skip clone - with worktree, file:// protocol (missing CLONE_2GB) +# passed all 3 test(s) +1..3 +*** t5706-clone-branch.sh *** +ok 1 - setup +ok 2 - vanilla clone chooses HEAD +ok 3 - clone -b chooses specified branch +ok 4 - clone -b sets up tracking +ok 5 - clone -b does not munge remotes/origin/HEAD +ok 6 - clone -b with bogus branch chooses HEAD +# passed all 6 test(s) +1..6 +*** t5707-clone-detached.sh *** +ok 1 - setup +ok 2 - clone repo (detached HEAD points to branch) +ok 3 - cloned HEAD matches +not ok 4 - cloned HEAD is detached # TODO known breakage +ok 5 - clone repo (detached HEAD points to tag) +ok 6 - cloned HEAD matches +ok 7 - cloned HEAD is detached +ok 8 - clone repo (detached HEAD points to history) +ok 9 - cloned HEAD matches +ok 10 - cloned HEAD is detached +ok 11 - clone repo (orphan detached HEAD) +ok 12 - cloned HEAD matches +ok 13 - cloned HEAD is detached +# still have 1 known breakage(s) +# passed all remaining 12 test(s) +1..13 +*** t5708-clone-config.sh *** +ok 1 - clone -c sets config in cloned repo +ok 2 - clone -c can set multi-keys +ok 3 - clone -c without a value is boolean true +ok 4 - clone -c config is available during clone +# passed all 4 test(s) +1..4 +*** t5710-info-alternate.sh *** +ok 1 - preparing first repository +ok 2 - preparing second repository +ok 3 - preparing third repository +ok 4 - creating too deep nesting +ok 5 - invalidity of deepest repository +ok 6 - validity of third repository +ok 7 - validity of fourth repository +ok 8 - breaking of loops +ok 9 - that info/alternates is necessary +ok 10 - that relative alternate is possible for current dir +ok 11 - that relative alternate is only possible for current dir +# passed all 11 test(s) +1..11 +*** t5800-remote-helpers.sh *** +ok 1 - setup repository +ok 2 - cloning from local repo +ok 3 - cloning from remote repo +ok 4 - create new commit on remote +ok 5 - pulling from local repo +ok 6 - pulling from remote remote +ok 7 - pushing to local repo +ok 8 - synch with changes from localclone +ok 9 - pushing remote local repo +ok 10 - fetch new branch +ok 11 - fetch multiple branches +ok 12 - push when remote has extra refs +ok 13 - push new branch by name +not ok 14 - push new branch with old:new refspec # TODO known breakage +# still have 1 known breakage(s) +# passed all remaining 13 test(s) +1..14 +*** t5900-repo-selection.sh *** +ok 1 - find .git dir in worktree +ok 2 - automagically add .git suffix +ok 3 - automagically add .git suffix to worktree +ok 4 - prefer worktree foo over bare foo.git +ok 5 - prefer bare foo over bare foo.git +ok 6 - disambiguate with full foo.git +ok 7 - we are not fooled by non-git foo directory +ok 8 - prefer inner .git over outer bare +# passed all 8 test(s) +1..8 +*** t6000-rev-list-misc.sh *** +ok 1 - setup +ok 2 - rev-list --objects heeds pathspecs +ok 3 - rev-list --objects with pathspecs and deeper paths +ok 4 - rev-list --objects with pathspecs and copied files +# passed all 4 test(s) +1..4 +*** t6001-rev-list-graft.sh *** +ok 1 - setup +ok 2 - without grafts +ok 3 - with grafts +ok 4 - without grafts, with pathlimit +ok 5 - with grafts, with pathlimit +ok 6 - without grafts +ok 7 - with grafts +ok 8 - without grafts, with pathlimit +ok 9 - with grafts, with pathlimit +ok 10 - without grafts +ok 11 - with grafts +ok 12 - without grafts, with pathlimit +ok 13 - with grafts, with pathlimit +# passed all 13 test(s) +1..13 +*** t6002-rev-list-bisect.sh *** +ok 1 - bisection diff --bisect l0 ^root <= 0 +ok 2 - bisection diff --bisect l1 ^root <= 0 +ok 3 - bisection diff --bisect l2 ^root <= 0 +ok 4 - bisection diff --bisect a0 ^root <= 0 +ok 5 - bisection diff --bisect a1 ^root <= 0 +ok 6 - bisection diff --bisect a2 ^root <= 0 +ok 7 - bisection diff --bisect a3 ^root <= 0 +ok 8 - bisection diff --bisect b1 ^root <= 0 +ok 9 - bisection diff --bisect b2 ^root <= 0 +ok 10 - bisection diff --bisect b3 ^root <= 0 +ok 11 - bisection diff --bisect c1 ^root <= 0 +ok 12 - bisection diff --bisect c2 ^root <= 0 +ok 13 - bisection diff --bisect c3 ^root <= 0 +ok 14 - bisection diff --bisect E ^F <= 0 +ok 15 - bisection diff --bisect e1 ^F <= 0 +ok 16 - bisection diff --bisect e2 ^F <= 0 +ok 17 - bisection diff --bisect e3 ^F <= 0 +ok 18 - bisection diff --bisect e4 ^F <= 0 +ok 19 - bisection diff --bisect e5 ^F <= 0 +ok 20 - bisection diff --bisect e6 ^F <= 0 +ok 21 - bisection diff --bisect e7 ^F <= 0 +ok 22 - bisection diff --bisect f1 ^F <= 0 +ok 23 - bisection diff --bisect f2 ^F <= 0 +ok 24 - bisection diff --bisect f3 ^F <= 0 +ok 25 - bisection diff --bisect f4 ^F <= 0 +ok 26 - bisection diff --bisect E ^F <= 0 +ok 27 - bisection diff --bisect V ^U <= 1 +ok 28 - bisection diff --bisect V ^U ^u1 ^u2 ^u3 <= 0 +ok 29 - bisection diff --bisect u1 ^U <= 0 +ok 30 - bisection diff --bisect u2 ^U <= 0 +ok 31 - bisection diff --bisect u3 ^U <= 0 +ok 32 - bisection diff --bisect u4 ^U <= 0 +ok 33 - bisection diff --bisect u5 ^U <= 0 +ok 34 - --bisect l5 ^root +ok 35 - --bisect l5 ^root ^c3 +ok 36 - --bisect l5 ^root ^c3 ^b4 +ok 37 - --bisect l3 ^root ^c3 ^b4 +ok 38 - --bisect l5 ^b3 ^a3 ^b4 ^a4 +ok 39 - --bisect l4 ^a2 ^a3 ^b ^a4 +ok 40 - --bisect l3 ^a2 ^a3 ^b ^a4 +ok 41 - --bisect a4 ^a2 ^a3 ^b4 +ok 42 - --bisect a4 ^a2 ^a3 ^b4 ^c2 +ok 43 - --bisect a4 ^a2 ^a3 ^b4 ^c2 ^c3 +ok 44 - --bisect a4 ^a2 ^a3 ^b4 +ok 45 - --bisect c3 ^a2 ^a3 ^b4 ^c2 +# passed all 45 test(s) +1..45 +*** t6003-rev-list-topo-order.sh *** +ok 1 - rev-list has correct number of entries +ok 2 - simple topo order +ok 3 - two diamonds topo order (g6) +ok 4 - multiple heads +ok 5 - multiple heads, prune at a1 +ok 6 - multiple heads, prune at l1 +ok 7 - cross-epoch, head at l5, prune at l1 +ok 8 - duplicated head arguments +ok 9 - prune near topo +ok 10 - head has no parent +ok 11 - two nodes - one head, one base +ok 12 - three nodes one head, one internal, one base +ok 13 - linear prune l2 ^root +ok 14 - linear prune l2 ^l0 +ok 15 - linear prune l2 ^l1 +ok 16 - linear prune l5 ^a4 +ok 17 - linear prune l5 ^l3 +ok 18 - linear prune l5 ^l4 +ok 19 - max-count 10 - topo order +ok 20 - max-count 10 - non topo order +ok 21 - --max-age=c3, no --topo-order +ok 22 - one specified head reachable from another a4, c3, --topo-order +ok 23 - one specified head reachable from another c3, a4, --topo-order +ok 24 - one specified head reachable from another a4, c3, no --topo-order +ok 25 - one specified head reachable from another c3, a4, no --topo-order +ok 26 - graph with c3 and a4 parents of head +ok 27 - graph with a4 and c3 parents of head +ok 28 - head ^head --topo-order +ok 29 - head ^head no --topo-order +ok 30 - simple topo order (l5r1) +ok 31 - simple topo order (r1l5) +ok 32 - don't print things unreachable from one branch +ok 33 - --topo-order a4 l3 +# passed all 33 test(s) +1..33 +*** t6004-rev-list-path-optim.sh *** +ok 1 - setup +ok 2 - path-optimization +ok 3 - further setup +ok 4 - path optimization 2 +ok 5 - pathspec with leading path +ok 6 - pathspec with glob (1) +ok 7 - pathspec with glob (2) +# passed all 7 test(s) +1..7 +*** t6005-rev-list-count.sh *** +ok 1 - setup +ok 2 - no options +ok 3 - --max-count +ok 4 - --max-count all forms +ok 5 - --skip +ok 6 - --skip --max-count +# passed all 6 test(s) +1..6 +*** t6006-rev-list-format.sh *** +ok 1 - setup +ok 2 - format percent +ok 3 - format hash +ok 4 - format tree +ok 5 - format parents +ok 6 - format author +ok 7 - format committer +ok 8 - format encoding +ok 9 - format subject +ok 10 - format body +ok 11 - format raw-body +ok 12 - format colors +ok 13 - format advanced-colors +ok 14 - setup complex body +ok 15 - format complex-encoding +ok 16 - format complex-subject +ok 17 - format complex-body +ok 18 - %x00 shows NUL +ok 19 - %ad respects --date= +ok 20 - empty email +ok 21 - del LF before empty (1) +ok 22 - del LF before empty (2) +ok 23 - add LF before non-empty (1) +ok 24 - add LF before non-empty (2) +ok 25 - add SP before non-empty (1) +ok 26 - add SP before non-empty (2) +ok 27 - --abbrev +ok 28 - %H is not affected by --abbrev-commit +ok 29 - %h is not affected by --abbrev-commit +ok 30 - "%h %gD: %gs" is same as git-reflog +ok 31 - "%h %gD: %gs" is same as git-reflog (with date) +ok 32 - "%h %gD: %gs" is same as git-reflog (with --abbrev) +ok 33 - %gd shortens ref name +ok 34 - reflog identity +ok 35 - oneline with empty message +# passed all 35 test(s) +1..35 +*** t6007-rev-list-cherry-pick-file.sh *** +ok 1 - setup +ok 2 - --left-right +ok 3 - --count +ok 4 - --cherry-pick foo comes up empty +ok 5 - --cherry-pick bar does not come up empty +ok 6 - bar does not come up empty +ok 7 - --cherry-pick bar does not come up empty (II) +ok 8 - --cherry-mark +ok 9 - --cherry-mark --left-right +ok 10 - --cherry-pick --right-only +ok 11 - --cherry-pick --left-only +ok 12 - --cherry +ok 13 - --cherry --count +ok 14 - --cherry-mark --count +ok 15 - --cherry-mark --left-right --count +ok 16 - --cherry-pick with independent, but identical branches +ok 17 - --count --left-right +# passed all 17 test(s) +1..17 +*** t6008-rev-list-submodule.sh *** +ok 1 - setup +ok 2 - Ilari's test +# passed all 2 test(s) +1..2 +*** t6009-rev-list-parent.sh *** +ok 1 - setup +ok 2 - one is ancestor of others and should not be shown +ok 3 - setup roots, merges and octopuses +ok 4 - rev-list roots +ok 5 - rev-list no merges +ok 6 - rev-list no octopuses +ok 7 - rev-list no roots +ok 8 - rev-list merges +ok 9 - rev-list octopus +ok 10 - rev-list ordinary commits +ok 11 - rev-list --merges --no-merges yields empty set +ok 12 - rev-list override and infinities +ok 13 - dodecapus +# passed all 13 test(s) +1..13 +*** t6010-merge-base.sh *** +ok 1 - setup +ok 2 - set up G and H +ok 3 - merge-base G H +ok 4 - merge-base/show-branch --independent +ok 5 - unsynchronized clocks +ok 6 - --independent with unsynchronized clocks +ok 7 - merge-base for octopus-step (setup) +ok 8 - merge-base A B C +ok 9 - criss-cross merge-base for octopus-step +# passed all 9 test(s) +1..9 +*** t6011-rev-list-with-bad-commit.sh *** +ok 1 - setup +ok 2 - verify number of revisions +ok 3 - corrupt second commit object +ok 4 - rev-list should fail +ok 5 - git repack _MUST_ fail +ok 6 - first commit is still available +# passed all 6 test(s) +1..6 +*** t6012-rev-list-simplify.sh *** +ok 1 - setup +ok 2 - log --full-history +ok 3 - log --full-history -- file +ok 4 - log --full-history --topo-order -- file +ok 5 - log --full-history --date-order -- file +ok 6 - log --simplify-merges -- file +ok 7 - log -- file +ok 8 - log --topo-order -- file +ok 9 - log --first-parent -- another-file +# passed all 9 test(s) +1..9 +*** t6013-rev-list-reverse-parents.sh *** +ok 1 - set up --reverse example +ok 2 - --reverse --parents --full-history combines correctly +ok 3 - --boundary does too +# passed all 3 test(s) +1..3 +*** t6014-rev-list-all.sh *** +ok 1 - setup +ok 2 - rev-list --all lists detached HEAD +ok 3 - repack does not lose detached HEAD +# passed all 3 test(s) +1..3 +*** t6015-rev-list-show-all-parents.sh *** +ok 1 - set up --show-all --parents test +ok 2 - --parents rewrites TREESAME parents correctly +ok 3 - --parents --show-all does not rewrites TREESAME parents +# passed all 3 test(s) +1..3 +*** t6016-rev-list-graph-simplify-history.sh *** +ok 1 - set up rev-list --graph test +ok 2 - --graph --all +ok 3 - --graph --simplify-by-decoration +ok 4 - setup: get rid of decorations on B +ok 5 - --graph --simplify-by-decoration prune branch B +ok 6 - --graph --full-history -- bar.txt +ok 7 - --graph --full-history --simplify-merges -- bar.txt +ok 8 - --graph -- bar.txt +ok 9 - --graph --sparse -- bar.txt +ok 10 - --graph ^C4 +ok 11 - --graph ^C3 +ok 12 - --graph --boundary ^C3 +# passed all 12 test(s) +1..12 +*** t6017-rev-list-stdin.sh *** +ok 1 - setup +ok 2 - check rev-list master +ok 3 - check log --stat master +ok 4 - check rev-list side-1 ^side-4 +ok 5 - check log --stat side-1 ^side-4 +ok 6 - check rev-list side-1 ^side-7 -- +ok 7 - check log --stat side-1 ^side-7 -- +ok 8 - check rev-list side-1 ^side-7 -- file-1 +ok 9 - check log --stat side-1 ^side-7 -- file-1 +ok 10 - check rev-list side-1 ^side-7 -- file-2 +ok 11 - check log --stat side-1 ^side-7 -- file-2 +ok 12 - check rev-list side-3 ^side-4 -- file-3 +ok 13 - check log --stat side-3 ^side-4 -- file-3 +ok 14 - check rev-list side-3 ^side-2 +ok 15 - check log --stat side-3 ^side-2 +ok 16 - check rev-list side-3 ^side-2 -- file-1 +ok 17 - check log --stat side-3 ^side-2 -- file-1 +ok 18 - not only --stdin +# passed all 18 test(s) +1..18 +*** t6018-rev-list-glob.sh *** +ok 1 - setup +ok 2 - rev-parse --glob=refs/heads/subspace/* +ok 3 - rev-parse --glob=heads/subspace/* +ok 4 - rev-parse --glob=refs/heads/subspace/ +ok 5 - rev-parse --glob=heads/subspace/ +ok 6 - rev-parse --glob=heads/subspace +not ok 7 - rev-parse accepts --glob as detached option # TODO known breakage +not ok 8 - rev-parse is not confused by option-like glob # TODO known breakage +ok 9 - rev-parse --branches=subspace/* +ok 10 - rev-parse --branches=subspace/ +ok 11 - rev-parse --branches=subspace +ok 12 - rev-parse --glob=heads/subspace/* --glob=heads/other/* +ok 13 - rev-parse --glob=heads/someref/* master +ok 14 - rev-parse --glob=heads/* +ok 15 - rev-parse --tags=foo +ok 16 - rev-parse --remotes=foo +ok 17 - rev-list --glob=refs/heads/subspace/* +ok 18 - rev-list --glob refs/heads/subspace/* +ok 19 - rev-list not confused by option-like --glob arg +ok 20 - rev-list --glob=heads/subspace/* +ok 21 - rev-list --glob=refs/heads/subspace/ +ok 22 - rev-list --glob=heads/subspace/ +ok 23 - rev-list --glob=heads/subspace +ok 24 - rev-list --branches=subspace/* +ok 25 - rev-list --branches=subspace/ +ok 26 - rev-list --branches=subspace +ok 27 - rev-list --branches +ok 28 - rev-list --glob=heads/someref/* master +ok 29 - rev-list --glob=heads/subspace/* --glob=heads/other/* +ok 30 - rev-list --glob=heads/* +ok 31 - rev-list --tags=foo +ok 32 - rev-list --tags +ok 33 - rev-list --remotes=foo +ok 34 - shortlog accepts --glob/--tags/--remotes +not ok 35 - shortlog accepts --glob as detached option # TODO known breakage +not ok 36 - shortlog --glob is not confused by option-like argument # TODO known breakage +# still have 4 known breakage(s) +# passed all remaining 32 test(s) +1..36 +*** t6019-rev-list-ancestry-path.sh *** +ok 1 - setup +ok 2 - rev-list D..M +ok 3 - rev-list --ancestry-path D..M +ok 4 - rev-list D..M -- M.t +ok 5 - rev-list --ancestry-patch D..M -- M.t +ok 6 - setup criss-cross +ok 7 - criss-cross: rev-list --ancestry-path cb..bc +ok 8 - criss-cross: rev-list --ancestry-path --all ^cb +# passed all 8 test(s) +1..8 +*** t6020-merge-df.sh *** +ok 1 - prepare repository +ok 2 - Merge with d/f conflicts +ok 3 - F/D conflict +ok 4 - setup modify/delete + directory/file conflict +ok 5 - modify/delete + directory/file conflict +ok 6 - modify/delete + directory/file conflict; other way +# passed all 6 test(s) +1..6 +*** t6021-merge-criss-cross.sh *** +ok 1 - prepare repository +ok 2 - Criss-cross merge +ok 3 - Criss-cross merge result +ok 4 - Criss-cross merge fails (-s resolve) +# passed all 4 test(s) +1..4 +*** t6022-merge-rename.sh *** +ok 1 - setup +ok 2 - pull renaming branch into unrenaming one +ok 3 - pull renaming branch into another renaming one +ok 4 - pull unrenaming branch into renaming one +ok 5 - pull conflicting renames +ok 6 - interference with untracked working tree file +ok 7 - interference with untracked working tree file +ok 8 - interference with untracked working tree file +ok 9 - updated working tree file should prevent the merge +ok 10 - updated working tree file should prevent the merge +ok 11 - interference with untracked working tree file +ok 12 - merge of identical changes in a renamed file +ok 13 - setup for rename + d/f conflicts +ok 14 - Rename+D/F conflict; renamed file merges + dir not in way +ok 15 - Rename+D/F conflict; renamed file merges but dir in way +ok 16 - Same as previous, but merged other way +ok 17 - Rename+D/F conflict; renamed file cannot merge, dir not in way +ok 18 - Rename+D/F conflict; renamed file cannot merge and dir in the way +ok 19 - Same as previous, but merged other way +ok 20 - setup both rename source and destination involved in D/F conflict +ok 21 - both rename source and destination involved in D/F conflict +ok 22 - setup pair rename to parent of other (D/F conflicts) +ok 23 - pair rename to parent of other (D/F conflicts) w/ untracked dir +ok 24 - pair rename to parent of other (D/F conflicts) w/ clean start +ok 25 - setup rename of one file to two, with directories in the way +ok 26 - check handling of differently renamed file with D/F conflicts +ok 27 - setup rename one file to two; directories moving out of the way +ok 28 - check handling of differently renamed file with D/F conflicts +ok 29 - setup avoid unnecessary update, normal rename +ok 30 - avoid unnecessary update, normal rename +ok 31 - setup to test avoiding unnecessary update, with D/F conflict +ok 32 - avoid unnecessary update, with D/F conflict +ok 33 - setup avoid unnecessary update, dir->(file,nothing) +ok 34 - avoid unnecessary update, dir->(file,nothing) +ok 35 - setup avoid unnecessary update, modify/delete +ok 36 - avoid unnecessary update, modify/delete +ok 37 - setup avoid unnecessary update, rename/add-dest +ok 38 - avoid unnecessary update, rename/add-dest +ok 39 - setup merge of rename + small change +ok 40 - merge rename + small change +ok 41 - setup for use of extended merge markers +ok 42 - merge master into rename has correct extended markers +ok 43 - merge rename into master has correct extended markers +ok 44 - setup spurious "refusing to lose untracked" message +ok 45 - no spurious "refusing to lose untracked" message +# passed all 45 test(s) +1..45 +*** t6023-merge-file.sh *** +ok 1 - merge with no changes +ok 2 - merge without conflict +ok 3 - works in subdirectory +ok 4 - merge without conflict (--quiet) +ok 5 - merge without conflict (missing LF at EOF) +ok 6 - merge result added missing LF +ok 7 - merge with conflicts +ok 8 - expected conflict markers +ok 9 - merge with conflicts, using -L +ok 10 - expected conflict markers, with -L +ok 11 - conflict in removed tail +ok 12 - expected conflict markers +ok 13 - binary files cannot be merged +ok 14 - MERGE_ZEALOUS simplifies non-conflicts +ok 15 - ZEALOUS_ALNUM +ok 16 - "diff3 -m" style output (1) +ok 17 - "diff3 -m" style output (2) +ok 18 - marker size +# passed all 18 test(s) +1..18 +*** t6024-recursive-merge.sh *** +ok 1 - setup tests +ok 2 - combined merge conflicts +ok 3 - result contains a conflict +ok 4 - virtual trees were processed +ok 5 - refuse to merge binary files +ok 6 - mark rename/delete as unmerged +# passed all 6 test(s) +1..6 +*** t6025-merge-symlinks.sh *** +ok 1 - setup +ok 2 - merge master into b-symlink, which has a different symbolic link +ok 3 - the merge result must be a file +ok 4 - merge master into b-file, which has a file instead of a symbolic link +ok 5 - the merge result must be a file +ok 6 - merge b-file, which has a file instead of a symbolic link, into master +ok 7 - the merge result must be a file +# passed all 7 test(s) +1..7 +*** t6026-merge-attr.sh *** +ok 1 - setup +ok 2 - merge +ok 3 - check merge result in index +ok 4 - check merge result in working tree +ok 5 - retry the merge with longer context +ok 6 - custom merge backend +ok 7 - custom merge backend +ok 8 - up-to-date merge without common ancestor +# passed all 8 test(s) +1..8 +*** t6027-merge-binary.sh *** +ok 1 - setup +ok 2 - resolve +ok 3 - recursive +# passed all 3 test(s) +1..3 +*** t6028-merge-up-to-date.sh *** +ok 1 - setup +ok 2 - merge -s recursive up-to-date +ok 3 - merge -s recursive fast-forward +ok 4 - merge -s ours up-to-date +ok 5 - merge -s ours fast-forward +ok 6 - merge -s subtree up-to-date +# passed all 6 test(s) +1..6 +*** t6029-merge-subtree.sh *** +ok 1 - setup +ok 2 - subtree available and works like recursive +ok 3 - setup +ok 4 - initial merge +ok 5 - merge update +ok 6 - initial ambiguous subtree +ok 7 - merge using explicit +ok 8 - merge2 using explicit +# passed all 8 test(s) +1..8 +*** t6030-bisect-porcelain.sh *** +ok 1 - set up basic repo with 1 file (hello) and 4 commits +ok 2 - bisect starts with only one bad +ok 3 - bisect does not start with only one good +ok 4 - bisect start with one bad and good +ok 5 - bisect fails if given any junk instead of revs +ok 6 - bisect reset: back in the master branch +ok 7 - bisect reset: back in another branch +ok 8 - bisect reset when not bisecting +ok 9 - bisect reset removes packed refs +ok 10 - bisect reset removes bisect state after --no-checkout +ok 11 - bisect start: back in good branch +ok 12 - bisect start: no ".git/BISECT_START" created if junk rev +ok 13 - bisect start: existing ".git/BISECT_START" not modified if junk rev +ok 14 - bisect start: no ".git/BISECT_START" if mistaken rev +ok 15 - bisect start: no ".git/BISECT_START" if checkout error +ok 16 - bisect skip: successfull result +ok 17 - bisect skip: cannot tell between 3 commits +ok 18 - bisect skip: cannot tell between 2 commits +ok 19 - bisect skip: with commit both bad and skipped +ok 20 - "git bisect run" simple case +ok 21 - "git bisect run" with more complex "git bisect start" +ok 22 - bisect skip: add line and then a new test +ok 23 - bisect skip and bisect replay +ok 24 - bisect run & skip: cannot tell between 2 +ok 25 - bisect run & skip: find first bad +ok 26 - bisect skip only one range +ok 27 - bisect skip many ranges +ok 28 - bisect starting with a detached HEAD +ok 29 - bisect errors out if bad and good are mistaken +ok 30 - bisect does not create a "bisect" branch +ok 31 - side branch creation +ok 32 - good merge base when good and bad are siblings +ok 33 - skipped merge base when good and bad are siblings +ok 34 - bad merge base when good and bad are siblings +ok 35 - many merge bases creation +ok 36 - good merge bases when good and bad are siblings +ok 37 - optimized merge base checks +ok 38 - "parallel" side branch creation +ok 39 - restricting bisection on one dir +ok 40 - restricting bisection on one dir and a file +ok 41 - skipping away from skipped commit +ok 42 - erroring out when using bad path parameters +ok 43 - test bisection on bare repo - --no-checkout specified +ok 44 - test bisection on bare repo - --no-checkout defaulted +ok 45 - broken branch creation +ok 46 - bisect fails if tree is broken on start commit +ok 47 - bisect fails if tree is broken on trial commit +ok 48 - bisect: --no-checkout - start commit bad +ok 49 - bisect: --no-checkout - trial commit bad +ok 50 - bisect: --no-checkout - target before breakage +ok 51 - bisect: --no-checkout - target in breakage +ok 52 - bisect: --no-checkout - target after breakage +ok 53 - bisect: demonstrate identification of damage boundary +# passed all 53 test(s) +1..53 +*** t6031-merge-recursive.sh *** +ok 1 - mode change in one branch: keep changed version +ok 2 - verify executable bit on file +ok 3 - mode change in both branches: expect conflict +ok 4 - verify executable bit on file +ok 5 - merging with triple rename across D/F conflict +# passed all 5 test(s) +1..5 +*** t6032-merge-large-rename.sh *** +ok 1 - setup (initial) +ok 2 - rename (5, ok) +ok 3 - set diff.renamelimit to 4 +ok 4 - rename (4, ok) +ok 5 - rename (5, fail) +ok 6 - set merge.renamelimit to 5 +ok 7 - rename (5, ok) +ok 8 - rename (6, fail) +ok 9 - setup large simple rename +ok 10 - massive simple rename does not spam added files +# passed all 10 test(s) +1..10 +*** t6033-merge-crlf.sh *** +ok 1 - setup +ok 2 - Check "ours" is CRLF +ok 3 - Check that conflict file is CRLF +# passed all 3 test(s) +1..3 +*** t6034-merge-rename-nocruft.sh *** +ok 1 - setup +ok 2 - merge white into red (A->B,M->N) +ok 3 - merge blue into white (A->B, mod A, A untracked) +# passed all 3 test(s) +1..3 +*** t6035-merge-dir-to-symlink.sh *** +ok 1 - create a commit where dir a/b changed to symlink +ok 2 - checkout does not clobber untracked symlink +ok 3 - a/b-2/c/d is kept when clobbering symlink b +ok 4 - checkout should not have deleted a/b-2/c/d +ok 5 - setup for merge test +ok 6 - Handle D/F conflict, do not lose a/b-2/c/d in merge (resolve) +ok 7 - Handle D/F conflict, do not lose a/b-2/c/d in merge (recursive) +ok 8 - Handle F/D conflict, do not lose a/b-2/c/d in merge (resolve) +ok 9 - Handle F/D conflict, do not lose a/b-2/c/d in merge (recursive) +not ok 10 - do not lose untracked in merge (resolve) # TODO known breakage +ok 11 - do not lose untracked in merge (recursive) +ok 12 - do not lose modifications in merge (resolve) +ok 13 - do not lose modifications in merge (recursive) +ok 14 - setup a merge where dir a/b-2 changed to symlink +ok 15 - merge should not have D/F conflicts (resolve) +ok 16 - merge should not have D/F conflicts (recursive) +ok 17 - merge should not have F/D conflicts (recursive) +# still have 1 known breakage(s) +# passed all remaining 16 test(s) +1..17 +*** t6036-recursive-corner-cases.sh *** +ok 1 - setup basic criss-cross + rename with no modifications +ok 2 - merge simple rename+criss-cross with no modifications +ok 3 - setup criss-cross + rename merges with basic modification +ok 4 - merge criss-cross + rename merges with basic modification +ok 5 - setup differently handled merges of rename/add conflict +ok 6 - git detects differently handled merges conflict +ok 7 - setup criss-cross + modify/delete resolved differently +ok 8 - git detects conflict merging criss-cross+modify/delete +ok 9 - git detects conflict merging criss-cross+modify/delete, reverse direction +ok 10 - setup differently handled merges of content conflict +not ok 11 - git detects conflict w/ criss-cross+contrived resolution # TODO known breakage +ok 12 - setup differently handled merges of directory/file conflict +ok 13 - merge of D & E1 fails but has appropriate contents +ok 14 - merge of E1 & D fails but has appropriate contents +ok 15 - merge of D & E2 fails but has appropriate contents +ok 16 - merge of E2 & D fails but has appropriate contents +ok 17 - setup rename/rename(1to2)/modify followed by what looks like rename/rename(2to1)/modify +ok 18 - handle rename/rename(1to2)/modify followed by what looks like rename/rename(2to1)/modify +ok 19 - setup criss-cross + rename/rename/add + modify/modify +not ok 20 - detect rename/rename/add-source for virtual merge-base # TODO known breakage +ok 21 - setup criss-cross+rename/rename/add-dest + simple modify +ok 22 - virtual merge base handles rename/rename(1to2)/add-dest +# still have 2 known breakage(s) +# passed all remaining 20 test(s) +1..22 +*** t6037-merge-ours-theirs.sh *** +ok 1 - setup +ok 2 - plain recursive - should conflict +ok 3 - recursive favouring theirs +ok 4 - recursive favouring ours +ok 5 - pull with -X +# passed all 5 test(s) +1..5 +*** t6038-merge-text-auto.sh *** +ok 1 - setup +ok 2 - set up fuzz_conflict() helper +ok 3 - Merge after setting text=auto +ok 4 - Merge addition of text=auto +ok 5 - Detect CRLF/LF conflict after setting text=auto +ok 6 - Detect LF/CRLF conflict from addition of text=auto +not ok 7 - checkout -m after setting text=auto # TODO known breakage +not ok 8 - checkout -m addition of text=auto # TODO known breakage +not ok 9 - cherry-pick patch from after text=auto was added # TODO known breakage +ok 10 - Test delete/normalize conflict +# still have 3 known breakage(s) +# passed all remaining 7 test(s) +1..10 +*** t6040-tracking-info.sh *** +ok 1 - setup +ok 2 - branch -v +ok 3 - branch -vv +ok 4 - checkout +ok 5 - checkout with local tracked branch +ok 6 - status +ok 7 - fail to track lightweight tags +ok 8 - fail to track annotated tags +ok 9 - setup tracking with branch --set-upstream on existing branch +ok 10 - --set-upstream does not change branch +ok 11 - --set-upstream @{-1} +# passed all 11 test(s) +1..11 +*** t6042-merge-rename-corner-cases.sh *** +ok 1 - setup rename/delete + untracked file +ok 2 - Does git preserve Gollum's precious artifact? +ok 3 - setup rename/modify/add-source conflict +not ok 4 - rename/modify/add-source conflict resolvable # TODO known breakage +ok 5 - setup resolvable conflict missed if rename missed +not ok 6 - conflict caused if rename not detected # TODO known breakage +ok 7 - setup conflict resolved wrong if rename missed +not ok 8 - missed conflict if rename not detected # TODO known breakage +ok 9 - setup undetected rename/add-source causes data loss +not ok 10 - detect rename/add-source and preserve all data # TODO known breakage +not ok 11 - detect rename/add-source and preserve all data, merge other way # TODO known breakage +ok 12 - setup content merge + rename/directory conflict +ok 13 - rename/directory conflict + clean content merge +ok 14 - rename/directory conflict + content merge conflict +ok 15 - setup content merge + rename/directory conflict w/ disappearing dir +ok 16 - disappearing dir in rename/directory conflict handled +ok 17 - setup rename/rename (2to1) + modify/modify +ok 18 - handle rename/rename (2to1) conflict correctly +ok 19 - setup simple rename/rename (1to2) conflict +ok 20 - merge has correct working tree contents +ok 21 - setup rename/rename(1to2)/add-source conflict +not ok 22 - detect conflict with rename/rename(1to2)/add-source merge # TODO known breakage +ok 23 - setup rename/rename(1to2)/add-source resolvable conflict +not ok 24 - rename/rename/add-source still tracks new a file # TODO known breakage +ok 25 - setup rename/rename(1to2)/add-dest conflict +ok 26 - rename/rename/add-dest merge still knows about conflicting file versions +# still have 7 known breakage(s) +# passed all remaining 19 test(s) +1..26 +*** t6050-replace.sh *** +ok 1 - set up buggy branch +ok 2 - replace the author +ok 3 - test --no-replace-objects option +ok 4 - test GIT_NO_REPLACE_OBJECTS env variable +ok 5 - tag replaced commit +ok 6 - "git fsck" works +ok 7 - repack, clone and fetch work +ok 8 - "git replace" listing and deleting +ok 9 - "git replace" replacing +ok 10 - create parallel branch without the bug +ok 11 - push to cloned repo +ok 12 - push branch with replacement +ok 13 - fetch branch with replacement +ok 14 - bisect and replacements +ok 15 - index-pack and replacements +ok 16 - not just commits +# passed all 16 test(s) +1..16 +*** t6060-merge-index.sh *** +ok 1 - setup diverging branches +ok 2 - read-tree does not resolve content merge +ok 3 - git merge-index git-merge-one-file resolves +ok 4 - setup bare merge +ok 5 - merge-one-file fails without a work tree +ok 6 - merge-one-file respects GIT_WORK_TREE +ok 7 - merge-one-file respects core.worktree +# passed all 7 test(s) +1..7 +*** t6101-rev-parse-parents.sh *** +ok 1 - start is valid +ok 2 - start^0 +ok 3 - start^1 not valid +ok 4 - second^1 = second^ +ok 5 - final^1^1^1 +ok 6 - final^1^1^1 = final^^^ +ok 7 - final^1^2 +ok 8 - final^1^2 != final^1^1 +ok 9 - final^1^3 not valid +ok 10 - --verify start2^1 +ok 11 - --verify start2^0 +ok 12 - final^1^@ = final^1^1 final^1^2 +ok 13 - final^1^! = final^1 ^final^1^1 ^final^1^2 +ok 14 - repack for next test +ok 15 - short SHA-1 works +# passed all 15 test(s) +1..15 +*** t6110-rev-list-sparse.sh *** +ok 1 - setup +ok 2 - rev-list --first-parent --boundary +# passed all 2 test(s) +1..2 +*** t6120-describe.sh *** +ok 1 - setup +ok 2 - describe HEAD +ok 3 - describe HEAD^ +ok 4 - describe HEAD^^ +ok 5 - describe HEAD^^2 +ok 6 - describe HEAD^^2^ +ok 7 - describe HEAD^^^ +ok 8 - describe --tags HEAD +ok 9 - describe --tags HEAD^ +ok 10 - describe --tags HEAD^^ +ok 11 - describe --tags HEAD^^2 +ok 12 - describe --tags HEAD^^2^ +ok 13 - describe --tags HEAD^^^ +ok 14 - describe --all HEAD +ok 15 - describe --all HEAD^ +ok 16 - describe --all HEAD^^^ +ok 17 - describe --long HEAD^^2^ +ok 18 - describe --long HEAD^^2 +ok 19 - describe --all A^0 +ok 20 - no warning was displayed for A +ok 21 - rename tag A to Q locally +ok 22 - describe HEAD +ok 23 - warning was displayed for Q +ok 24 - rename tag Q back to A +ok 25 - pack tag refs +ok 26 - describe HEAD +ok 27 - describe --dirty +ok 28 - set-up dirty work tree +ok 29 - describe --dirty +ok 30 - describe --dirty=.mod +ok 31 - describe --dirty HEAD +ok 32 - set-up matching pattern tests +ok 33 - describe --match=test-* +ok 34 - describe --tags --match=test1-* +ok 35 - describe --tags --match=test2-* +ok 36 - describe --long --tags --match=test2-* HEAD^ +# passed all 36 test(s) +1..36 +*** t6200-fmt-merge-msg.sh *** +ok 1 - setup +ok 2 - message for merging local branch +ok 3 - message for merging external branch +ok 4 - [merge] summary/log configuration +ok 5 - setup: clear [merge] configuration +ok 6 - setup FETCH_HEAD +ok 7 - merge.log=3 limits shortlog length +ok 8 - merge.log=5 shows all 5 commits +ok 9 - merge.log=0 disables shortlog +ok 10 - --log=3 limits shortlog length +ok 11 - --log=5 shows all 5 commits +ok 12 - --no-log disables shortlog +ok 13 - --log=0 disables shortlog +ok 14 - fmt-merge-msg -m +ok 15 - setup: expected shortlog for two branches +ok 16 - shortlog for two branches +ok 17 - merge-msg -F +ok 18 - merge-msg -F in subdirectory +ok 19 - merge-msg with nothing to merge +ok 20 - merge-msg tag +ok 21 - merge-msg two tags +ok 22 - merge-msg tag and branch +ok 23 - merge-msg lots of commits +# passed all 23 test(s) +1..23 +*** t6300-for-each-ref.sh *** +You do not seem to have gpg installed +ok 1 - Create sample commit with known timestamp +ok 2 - Create upstream config +ok 3 - basic atom: head refname +ok 4 - basic atom: head upstream +ok 5 - basic atom: head objecttype +ok 6 - basic atom: head objectsize +ok 7 - basic atom: head objectname +ok 8 - basic atom: head tree +ok 9 - basic atom: head parent +ok 10 - basic atom: head numparent +ok 11 - basic atom: head object +ok 12 - basic atom: head type +ok 13 - basic atom: head author +ok 14 - basic atom: head authorname +ok 15 - basic atom: head authoremail +ok 16 - basic atom: head authordate +ok 17 - basic atom: head committer +ok 18 - basic atom: head committername +ok 19 - basic atom: head committeremail +ok 20 - basic atom: head committerdate +ok 21 - basic atom: head tag +ok 22 - basic atom: head tagger +ok 23 - basic atom: head taggername +ok 24 - basic atom: head taggeremail +ok 25 - basic atom: head taggerdate +ok 26 - basic atom: head creator +ok 27 - basic atom: head creatordate +ok 28 - basic atom: head subject +ok 29 - basic atom: head contents:subject +ok 30 - basic atom: head body +ok 31 - basic atom: head contents:body +ok 32 - basic atom: head contents:signature +ok 33 - basic atom: head contents +ok 34 - basic atom: tag refname +ok 35 - basic atom: tag upstream +ok 36 - basic atom: tag objecttype +ok 37 - basic atom: tag objectsize +ok 38 - basic atom: tag objectname +ok 39 - basic atom: tag tree +ok 40 - basic atom: tag parent +ok 41 - basic atom: tag numparent +ok 42 - basic atom: tag object +ok 43 - basic atom: tag type +ok 44 - basic atom: tag author +ok 45 - basic atom: tag authorname +ok 46 - basic atom: tag authoremail +ok 47 - basic atom: tag authordate +ok 48 - basic atom: tag committer +ok 49 - basic atom: tag committername +ok 50 - basic atom: tag committeremail +ok 51 - basic atom: tag committerdate +ok 52 - basic atom: tag tag +ok 53 - basic atom: tag tagger +ok 54 - basic atom: tag taggername +ok 55 - basic atom: tag taggeremail +ok 56 - basic atom: tag taggerdate +ok 57 - basic atom: tag creator +ok 58 - basic atom: tag creatordate +ok 59 - basic atom: tag subject +ok 60 - basic atom: tag contents:subject +ok 61 - basic atom: tag body +ok 62 - basic atom: tag contents:body +ok 63 - basic atom: tag contents:signature +ok 64 - basic atom: tag contents +ok 65 - Check invalid atoms names are errors +ok 66 - Check format specifiers are ignored in naming date atoms +ok 67 - Check valid format specifiers for date fields +ok 68 - Check invalid format specifiers are errors +ok 69 - Check unformatted date fields output +ok 70 - Check format "default" formatted date fields output +ok 71 - Check format "relative" date fields output +ok 72 - Check format "short" date fields output +ok 73 - Check format "local" date fields output +ok 74 - Check format "iso8601" date fields output +ok 75 - Check format "rfc2822" date fields output +ok 76 - Verify ascending sort +ok 77 - Verify descending sort +ok 78 - Quoting style: shell +ok 79 - Quoting style: perl +ok 80 - Quoting style: python +ok 81 - Quoting style: tcl +ok 82 - more than one quoting style: --perl --shell +ok 83 - more than one quoting style: -s --python +ok 84 - more than one quoting style: --python --tcl +ok 85 - more than one quoting style: --tcl --perl +ok 86 - Check short refname format +ok 87 - Check short upstream format +ok 88 - Check short objectname format +ok 89 - Check for invalid refname format +ok 90 - Check ambiguous head and tag refs (strict) +ok 91 - Check ambiguous head and tag refs (loose) +ok 92 - Check ambiguous head and tag refs II (loose) +ok 93 - an unusual tag with an incomplete line +ok 94 - create tag with subject and body content +ok 95 - basic atom: refs/tags/subject-body subject +ok 96 - basic atom: refs/tags/subject-body body +ok 97 - basic atom: refs/tags/subject-body contents +ok 98 - create tag with multiline subject +ok 99 - basic atom: refs/tags/multiline subject +ok 100 - basic atom: refs/tags/multiline contents:subject +ok 101 - basic atom: refs/tags/multiline body +ok 102 - basic atom: refs/tags/multiline contents:body +ok 103 - basic atom: refs/tags/multiline contents:signature +ok 104 - basic atom: refs/tags/multiline contents +ok 105 # skip create signed tags (missing GPG) +ok 106 # skip basic atom: refs/tags/signed-empty subject (missing GPG) +ok 107 # skip basic atom: refs/tags/signed-empty contents:subject (missing GPG) +ok 108 # skip basic atom: refs/tags/signed-empty body (missing GPG) +ok 109 # skip basic atom: refs/tags/signed-empty contents:body (missing GPG) +ok 110 # skip basic atom: refs/tags/signed-empty contents:signature (missing GPG) +ok 111 # skip basic atom: refs/tags/signed-empty contents (missing GPG) +ok 112 # skip basic atom: refs/tags/signed-short subject (missing GPG) +ok 113 # skip basic atom: refs/tags/signed-short contents:subject (missing GPG) +ok 114 # skip basic atom: refs/tags/signed-short body (missing GPG) +ok 115 # skip basic atom: refs/tags/signed-short contents:body (missing GPG) +ok 116 # skip basic atom: refs/tags/signed-short contents:signature (missing GPG) +ok 117 # skip basic atom: refs/tags/signed-short contents (missing GPG) +ok 118 # skip basic atom: refs/tags/signed-long subject (missing GPG) +ok 119 # skip basic atom: refs/tags/signed-long contents:subject (missing GPG) +ok 120 # skip basic atom: refs/tags/signed-long body (missing GPG) +ok 121 # skip basic atom: refs/tags/signed-long contents:body (missing GPG) +ok 122 # skip basic atom: refs/tags/signed-long contents:signature (missing GPG) +ok 123 # skip basic atom: refs/tags/signed-long contents (missing GPG) +# passed all 123 test(s) +1..123 +*** t6500-gc.sh *** +ok 1 - gc empty repository +ok 2 - gc --gobbledegook +ok 3 - gc -h with invalid configuration +# passed all 3 test(s) +1..3 +*** t7001-mv.sh *** +ok 1 - prepare reference tree +ok 2 - moving the file out of subdirectory +ok 3 - commiting the change +ok 4 - checking the commit +ok 5 - moving the file back into subdirectory +ok 6 - commiting the change +ok 7 - checking the commit +ok 8 - checking -k on non-existing file +ok 9 - checking -k on untracked file +ok 10 - checking -k on multiple untracked files +ok 11 - checking -f on untracked file with existing target +ok 12 - adding another file +ok 13 - moving whole subdirectory +ok 14 - commiting the change +ok 15 - checking the commit +ok 16 - succeed when source is a prefix of destination +ok 17 - moving whole subdirectory into subdirectory +ok 18 - commiting the change +ok 19 - checking the commit +ok 20 - do not move directory over existing directory +ok 21 - move into "." +ok 22 - Michael Cassar's test case +ok 23 - Sergey Vlasov's test case +ok 24 - absolute pathname +ok 25 - absolute pathname outside should fail +ok 26 - git mv to move multiple sources into a directory +ok 27 - git mv should not change sha1 of moved cache entry +ok 28 - git mv should overwrite symlink to a file +ok 29 - git mv should overwrite file with a symlink +# passed all 29 test(s) +1..29 +*** t7003-filter-branch.sh *** +ok 1 - setup +ok 2 - rewrite identically +ok 3 - result is really identical +ok 4 - rewrite bare repository identically +ok 5 - result is really identical +ok 6 - correct GIT_DIR while using -d +ok 7 - Fail if commit filter fails +ok 8 - rewrite, renaming a specific file +ok 9 - test that the file was renamed +ok 10 - rewrite, renaming a specific directory +ok 11 - test that the directory was renamed +ok 12 - rewrite one branch, keeping a side branch +ok 13 - common ancestor is still common (unchanged) +ok 14 - filter subdirectory only +ok 15 - subdirectory filter result looks okay +ok 16 - more setup +ok 17 - use index-filter to move into a subdirectory +ok 18 - stops when msg filter fails +ok 19 - author information is preserved +ok 20 - remove a certain author's commits +ok 21 - barf on invalid name +ok 22 - "map" works in commit filter +ok 23 - Name needing quotes +ok 24 - Subdirectory filter with disappearing trees +ok 25 - Tag name filtering retains tag message +ok 26 - Tag name filtering strips gpg signature +ok 27 - Tag name filtering allows slashes in tag names +ok 28 - Prune empty commits +ok 29 - --remap-to-ancestor with filename filters +ok 30 - automatic remapping to ancestor with filename filters +ok 31 - setup submodule +ok 32 - rewrite submodule with another content +ok 33 - replace submodule revision +# passed all 33 test(s) +1..33 +*** t7004-tag.sh *** +You do not seem to have gpg installed +ok 1 - listing all tags in an empty tree should succeed +ok 2 - listing all tags in an empty tree should output nothing +ok 3 - looking for a tag in an empty tree should fail +ok 4 - creating a tag in an empty tree should fail +ok 5 - creating a tag for HEAD in an empty tree should fail +ok 6 - creating a tag for an unknown revision should fail +ok 7 - creating a tag using default HEAD should succeed +ok 8 - listing all tags if one exists should succeed +ok 9 - listing all tags if one exists should output that tag +ok 10 - listing a tag using a matching pattern should succeed +ok 11 - listing a tag using a matching pattern should output that tag +ok 12 - listing tags using a non-matching pattern should suceed +ok 13 - listing tags using a non-matching pattern should output nothing +ok 14 - trying to create a tag with the name of one existing should fail +ok 15 - trying to create a tag with a non-valid name should fail +ok 16 - creating a tag using HEAD directly should succeed +ok 17 - trying to delete an unknown tag should fail +ok 18 - trying to delete tags without params should succeed and do nothing +ok 19 - deleting two existing tags in one command should succeed +ok 20 - creating a tag with the name of another deleted one should succeed +ok 21 - trying to delete two tags, existing and not, should fail in the 2nd +ok 22 - trying to delete an already deleted tag should fail +ok 23 - listing all tags should print them ordered +ok 24 - listing tags with substring as pattern must print those matching +ok 25 - listing tags with a suffix as pattern must print those matching +ok 26 - listing tags with a prefix as pattern must print those matching +ok 27 - listing tags using a name as pattern must print that one matching +ok 28 - listing tags using a name as pattern must print that one matching +ok 29 - listing tags with ? in the pattern should print those matching +ok 30 - listing tags using v.* should print nothing because none have v. +ok 31 - listing tags using v* should print only those having v +ok 32 - tag -l can accept multiple patterns +ok 33 - a non-annotated tag created without parameters should point to HEAD +ok 34 - trying to verify an unknown tag should fail +ok 35 - trying to verify a non-annotated and non-signed tag should fail +ok 36 - trying to verify many non-annotated or unknown tags, should fail +ok 37 - creating an annotated tag with -m message should succeed +ok 38 - creating an annotated tag with -F messagefile should succeed +ok 39 - creating an annotated tag with -F - should succeed +ok 40 - trying to create a tag with a non-existing -F file should fail +ok 41 - trying to create tags giving both -m or -F options should fail +ok 42 - creating a tag with an empty -m message should succeed +ok 43 - creating a tag with an empty -F messagefile should succeed +ok 44 - extra blanks in the message for an annotated tag should be removed +ok 45 - creating a tag with blank -m message with spaces should succeed +ok 46 - creating a tag with blank -F messagefile with spaces should succeed +ok 47 - creating a tag with -F file of spaces and no newline should succeed +ok 48 - creating a tag using a -F messagefile with #comments should succeed +ok 49 - creating a tag with a #comment in the -m message should succeed +ok 50 - creating a tag with #comments in the -F messagefile should succeed +ok 51 - creating a tag with a file of #comment and no newline should succeed +ok 52 - listing the one-line message of a non-signed tag should succeed +ok 53 - listing the zero-lines message of a non-signed tag should succeed +ok 54 - listing many message lines of a non-signed tag should succeed +ok 55 - annotations for blobs are empty +ok 56 # skip trying to verify an annotated non-signed tag should fail (missing GPG) +ok 57 # skip trying to verify a file-annotated non-signed tag should fail (missing GPG) +ok 58 # skip trying to verify two annotated non-signed tags should fail (missing GPG) +ok 59 # skip creating a signed tag with -m message should succeed (missing GPG) +ok 60 # skip sign with a given key id (missing GPG) +ok 61 # skip sign with an unknown id (1) (missing GPG) +ok 62 # skip sign with an unknown id (2) (missing GPG) +ok 63 # skip -u implies signed tag (missing GPG) +ok 64 # skip creating a signed tag with -F messagefile should succeed (missing GPG) +ok 65 # skip creating a signed tag with -F - should succeed (missing GPG) +ok 66 # skip -s implies annotated tag (missing GPG) +ok 67 # skip trying to create a signed tag with non-existing -F file should fail (missing GPG) +ok 68 # skip verifying a signed tag should succeed (missing GPG) +ok 69 # skip verifying two signed tags in one command should succeed (missing GPG) +ok 70 # skip verifying many signed and non-signed tags should fail (missing GPG) +ok 71 # skip verifying a forged tag should fail (missing GPG) +ok 72 # skip creating a signed tag with an empty -m message should succeed (missing GPG) +ok 73 # skip creating a signed tag with an empty -F messagefile should succeed (missing GPG) +ok 74 # skip extra blanks in the message for a signed tag should be removed (missing GPG) +ok 75 # skip creating a signed tag with a blank -m message should succeed (missing GPG) +ok 76 # skip creating a signed tag with blank -F file with spaces should succeed (missing GPG) +ok 77 # skip creating a signed tag with spaces and no newline should succeed (missing GPG) +ok 78 # skip creating a signed tag with a -F file with #comments should succeed (missing GPG) +ok 79 # skip creating a signed tag with #commented -m message should succeed (missing GPG) +ok 80 # skip creating a signed tag with #commented -F messagefile should succeed (missing GPG) +ok 81 # skip creating a signed tag with a #comment and no newline should succeed (missing GPG) +ok 82 # skip listing the one-line message of a signed tag should succeed (missing GPG) +ok 83 # skip listing the zero-lines message of a signed tag should succeed (missing GPG) +ok 84 # skip listing many message lines of a signed tag should succeed (missing GPG) +ok 85 # skip creating a signed tag pointing to a tree should succeed (missing GPG) +ok 86 # skip creating a signed tag pointing to a blob should succeed (missing GPG) +ok 87 # skip creating a signed tag pointing to another tag should succeed (missing GPG) +t7004-tag.sh: line 1025: gpghome/gpg.conf: No such file or directory +ok 88 # skip creating a signed tag with rfc1991 (missing GPG) +ok 89 # skip reediting a signed tag body omits signature (missing GPG) +ok 90 # skip verifying rfc1991 signature (missing GPG) +ok 91 # skip list tag with rfc1991 signature (missing GPG) +ok 92 # skip verifying rfc1991 signature without --rfc1991 (missing GPG) +ok 93 # skip list tag with rfc1991 signature without --rfc1991 (missing GPG) +ok 94 # skip reediting a signed tag body omits signature (missing GPG) +ok 95 # skip git tag -s fails if gpg is misconfigured (missing GPG) +ok 96 # skip verify signed tag fails when public key is not present (missing GPG) +ok 97 - git tag -a fails if tag annotation is empty +ok 98 - message in editor has initial comment +ok 99 - message in editor has initial comment: first line +ok 100 - message in editor has initial comment: remainder +ok 101 - overwriting an annoted tag should use its previous body +ok 102 - filename for the message is relative to cwd +ok 103 - filename for the message is relative to cwd +ok 104 - creating second commit and tag +ok 105 - creating third commit without tag +ok 106 - checking that first commit is in all tags (hash) +ok 107 - checking that first commit is in all tags (tag) +ok 108 - checking that first commit is in all tags (relative) +ok 109 - checking that second commit only has one tag +ok 110 - checking that third commit has no tags +ok 111 - creating simple branch +ok 112 - checking that branch head only has one tag +ok 113 - merging original branch into this branch +ok 114 - checking that original branch head has one tag now +ok 115 - checking that initial commit is in all tags +ok 116 - mixing incompatibles modes and options is forbidden +# passed all 116 test(s) +1..116 +*** t7005-editor.sh *** +ok 1 - determine default editor +ok 2 - setup +ok 3 - dumb should error out when falling back on vi +ok 4 - dumb should prefer EDITOR to VISUAL +ok 5 - Using vi +ok 6 - Using EDITOR +ok 7 - Using VISUAL +ok 8 - Using core_editor +ok 9 - Using GIT_EDITOR +ok 10 - Using vi (override) +ok 11 - Using EDITOR (override) +ok 12 - Using VISUAL (override) +ok 13 - Using core_editor (override) +ok 14 - Using GIT_EDITOR (override) +ok 15 - editor with a space +ok 16 - core.editor with a space +# passed all 16 test(s) +1..16 +*** t7006-pager.sh *** +ok 1 - determine default pager +ok 2 - set up terminal for tests +ok 3 - setup +ok 4 # skip some commands use a pager (missing TTY) +ok 5 # skip pager runs from subdir (missing TTY) +ok 6 # skip some commands do not use a pager (missing TTY) +ok 7 - no pager when stdout is a pipe +ok 8 - no pager when stdout is a regular file +ok 9 # skip git --paginate rev-list uses a pager (missing TTY) +ok 10 - no pager even with --paginate when stdout is a pipe +ok 11 # skip no pager with --no-pager (missing TTY) +ok 12 # skip configuration can disable pager (missing TTY) +ok 13 # skip git config uses a pager if configured to (missing TTY) +ok 14 # skip configuration can enable pager (from subdir) (missing TTY) +ok 15 - tests can detect color +ok 16 - no color when stdout is a regular file +ok 17 # skip color when writing to a pager (missing TTY) +ok 18 # skip colors are suppressed by color.pager (missing TTY) +ok 19 - color when writing to a file intended for a pager +ok 20 # skip colors are sent to pager for external commands (missing TTY) +ok 21 - setup: some aliases +ok 22 # skip git log - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 23 # skip git log - PAGER overrides default pager (missing TTY) +ok 24 # skip git log - repository-local core.pager setting overrides PAGER (missing TTY) +ok 25 # skip git log - core.pager overrides PAGER from subdirectory (missing TTY) +ok 26 # skip git log - GIT_PAGER overrides core.pager (missing TTY) +ok 27 # skip git -p log - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 28 # skip git -p log - PAGER overrides default pager (missing TTY) +ok 29 # skip git -p log - repository-local core.pager setting overrides PAGER (missing TTY) +ok 30 # skip git -p log - core.pager overrides PAGER from subdirectory (missing TTY) +ok 31 # skip git -p log - GIT_PAGER overrides core.pager (missing TTY) +ok 32 # skip git aliasedlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 33 # skip git aliasedlog - PAGER overrides default pager (missing TTY) +ok 34 # skip git aliasedlog - repository-local core.pager setting overrides PAGER (missing TTY) +ok 35 # skip git aliasedlog - core.pager overrides PAGER from subdirectory (missing TTY) +ok 36 # skip git aliasedlog - GIT_PAGER overrides core.pager (missing TTY) +ok 37 # skip git -p aliasedlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 38 # skip git -p aliasedlog - PAGER overrides default pager (missing TTY) +ok 39 # skip git -p aliasedlog - repository-local core.pager setting overrides PAGER (missing TTY) +ok 40 # skip git -p aliasedlog - core.pager overrides PAGER from subdirectory (missing TTY) +ok 41 # skip git -p aliasedlog - GIT_PAGER overrides core.pager (missing TTY) +ok 42 # skip git -p true - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 43 # skip git -p true - PAGER overrides default pager (missing TTY) +ok 44 # skip git -p true - repository-local core.pager setting overrides PAGER (missing TTY) +ok 45 # skip git -p true - core.pager overrides PAGER from subdirectory (missing TTY) +ok 46 # skip git -p true - GIT_PAGER overrides core.pager (missing TTY) +ok 47 # skip git -p request-pull - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 48 # skip git -p request-pull - PAGER overrides default pager (missing TTY) +ok 49 # skip git -p request-pull - repository-local core.pager setting overrides PAGER (missing TTY) +ok 50 # skip git -p request-pull - core.pager overrides PAGER from subdirectory (missing TTY) +ok 51 # skip git -p request-pull - GIT_PAGER overrides core.pager (missing TTY) +ok 52 # skip git -p - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 53 # skip git -p - PAGER overrides default pager (missing TTY) +ok 54 # skip git -p - repository-local core.pager setting is not used (missing TTY) +ok 55 # skip git -p - core.pager is not used from subdirectory (missing TTY) +ok 56 # skip git -p - GIT_PAGER overrides core.pager (missing TTY) +ok 57 # skip no pager for 'git -p nonsense' (missing TTY) +ok 58 # skip git shortlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 59 # skip git shortlog - PAGER overrides default pager (missing TTY) +ok 60 # skip git shortlog - repository-local core.pager setting overrides PAGER (missing TTY) +ok 61 # skip git shortlog - core.pager overrides PAGER from subdirectory (missing TTY) +ok 62 # skip git shortlog - GIT_PAGER overrides core.pager (missing TTY) +ok 63 - setup: configure shortlog not to paginate +ok 64 # skip no pager for 'git shortlog' (missing TTY) +ok 65 # skip git shortlog - core.pager is not used from subdirectory (missing TTY) +ok 66 # skip git -p shortlog - default pager is used by default (missing TTY of SIMPLEPAGER,TTY) +ok 67 # skip git -p shortlog - core.pager overrides PAGER from subdirectory (missing TTY) +ok 68 # skip git -p apply f a +ok 14 - git grep -F yx a +ok 15 - git grep -Fi Yf a +ok 16 - git grep -Fi Yx a +ok 17 - git grep yf a +ok 18 - git grep yx 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 +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 +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 +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 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 +# passed all 44 test(s) +1..44 +*** t7401-submodule-summary.sh *** +ok 1 - added submodule +ok 2 - modified submodule(forward) +ok 3 - modified submodule(forward), --files +ok 4 - modified submodule(backward) +ok 5 - modified submodule(backward and forward) +ok 6 - --summary-limit +ok 7 - typechanged submodule(submodule->blob), --cached +ok 8 - typechanged submodule(submodule->blob), --files +ok 9 - typechanged submodule(submodule->blob) +ok 10 - nonexistent commit +ok 11 - typechanged submodule(blob->submodule) +ok 12 - deleted submodule +ok 13 - multiple submodules +ok 14 - path filter +ok 15 - given commit +ok 16 - --for-status +ok 17 - fail when using --files together with --cached +ok 18 - should not fail in an empty repo +# passed all 18 test(s) +1..18 +*** t7402-submodule-rebase.sh *** +ok 1 - setup +ok 2 - rebase with a dirty submodule +ok 3 - interactive rebase with a dirty submodule +ok 4 - rebase with dirty file and submodule fails +ok 5 - stash with a dirty submodule +# passed all 5 test(s) +1..5 +*** t7403-submodule-sync.sh *** +ok 1 - setup +ok 2 - change submodule +ok 3 - change submodule url +ok 4 - "git submodule sync" should update submodule URLs +ok 5 - "git submodule sync" should update known submodule URLs +ok 6 - "git submodule sync" should not vivify uninteresting submodule +# passed all 6 test(s) +1..6 +*** t7405-submodule-merge.sh *** +ok 1 - setup +ok 2 - setup for merge search +ok 3 - merge with one side as a fast-forward of the other +ok 4 - merging should conflict for non fast-forward +ok 5 - merging should fail for ambiguous common parent +ok 6 - merging should fail for changes that are backwards +ok 7 - git submodule status should display the merge conflict properly with merge base +ok 8 - git submodule status should display the merge conflict properly without merge-base +ok 9 - merging with a modify/modify conflict between merge bases +ok 10 - setup for recursive merge with submodule +ok 11 - recursive merge with submodule +# passed all 11 test(s) +1..11 +*** t7406-submodule-update.sh *** +ok 1 - setup a submodule tree +ok 2 - submodule update detaching the HEAD +ok 3 - submodule update does not fetch already present commits +ok 4 - submodule update should fail due to local changes +ok 5 - submodule update should throw away changes with --force +ok 6 - submodule update --rebase staying on master +ok 7 - submodule update --merge staying on master +ok 8 - submodule update - rebase in .git/config +ok 9 - submodule update - checkout in .git/config but --rebase given +ok 10 - submodule update - merge in .git/config +ok 11 - submodule update - checkout in .git/config but --merge given +ok 12 - submodule update - checkout in .git/config +ok 13 - submodule init picks up rebase +ok 14 - submodule init picks up merge +ok 15 - submodule update --merge - ignores --merge for new submodules +ok 16 - submodule update --rebase - ignores --rebase for new submodules +ok 17 - submodule update ignores update=merge config for new submodules +ok 18 - submodule update ignores update=rebase config for new submodules +ok 19 - submodule init picks up update=none +ok 20 - submodule update - update=none in .git/config +ok 21 - submodule update - update=none in .git/config but --checkout given +ok 22 - submodule update --init skips submodule with update=none +ok 23 - submodule update continues after checkout error +ok 24 - submodule update continues after recursive checkout error +ok 25 - submodule update exit immediately in case of merge conflict +ok 26 - submodule update exit immediately after recursive rebase error +ok 27 - add different submodules to the same path +ok 28 - submodule add places git-dir in superprojects git-dir +ok 29 - submodule update places git-dir in superprojects git-dir +ok 30 - submodule add places git-dir in superprojects git-dir recursive +ok 31 - submodule update places git-dir in superprojects git-dir recursive +not ok - 32 submodule add properly re-creates deeper level submodules +# +# (cd super && +# git reset --hard master && +# rm -rf deeper/ && +# git submodule add ../submodule deeper/submodule +# ) +# +# failed 1 among 32 test(s) +1..32 +make[3]: [t7406-submodule-update.sh] Error 1 (ignored) +*** t7407-submodule-foreach.sh *** +ok 1 - setup a submodule tree +ok 2 - test basic "submodule foreach" usage +ok 3 - setup nested submodules +ok 4 - use "submodule foreach" to checkout 2nd level submodule +ok 5 - use "foreach --recursive" to checkout all submodules +ok 6 - test messages from "foreach --recursive" +ok 7 - test "foreach --quiet --recursive" +ok 8 - use "update --recursive" to checkout all submodules +ok 9 - test "status --recursive" +ok 10 - ensure "status --cached --recursive" preserves the --cached flag +ok 11 - use "git clone --recursive" to checkout all submodules +ok 12 - test "update --recursive" with a flag with spaces +ok 13 - use "update --recursive nested1" to checkout all submodules rooted in nested1 +ok 14 - command passed to foreach retains notion of stdin +ok 15 - command passed to foreach --recursive retains notion of stdin +# passed all 15 test(s) +1..15 +*** t7408-submodule-reference.sh *** +ok 1 - preparing first repository +ok 2 - preparing second repository +ok 3 - preparing supermodule +ok 4 - submodule add --reference +ok 5 - after add: existence of info/alternates +ok 6 - that reference gets used with add +ok 7 - cloning supermodule +ok 8 - update with reference +ok 9 - after update: existence of info/alternates +ok 10 - that reference gets used with update +# passed all 10 test(s) +1..10 +*** t7500-commit.sh *** +ok 1 - a basic commit in an empty tree should succeed +ok 2 - nonexistent template file should return error +ok 3 - nonexistent template file in config should return error +ok 4 - unedited template should not commit +ok 5 - unedited template with comments should not commit +ok 6 - a Signed-off-by line by itself should not commit +ok 7 - adding comments to a template should not commit +ok 8 - adding real content to a template should commit +ok 9 - -t option should be short for --template +ok 10 - config-specified template should commit +ok 11 - explicit commit message should override template +ok 12 - commit message from file should override template +ok 13 - commit message from template with whitespace issue +ok 14 - using alternate GIT_INDEX_FILE (1) +ok 15 - using alternate GIT_INDEX_FILE (2) +ok 16 - --signoff +ok 17 - commit message from file (1) +ok 18 - commit message from file (2) +ok 19 - commit message from stdin +ok 20 - commit -F overrides -t +ok 21 - Commit without message is allowed with --allow-empty-message +ok 22 - Commit without message is no-no without --allow-empty-message +ok 23 - Commit a message with --allow-empty-message +ok 24 - commit --fixup provides correct one-line commit message +ok 25 - commit --squash works with -F +ok 26 - commit --squash works with -m +ok 27 - commit --squash works with -C +ok 28 - commit --squash works with -c +ok 29 - commit --squash works with -C for same commit +ok 30 - commit --squash works with -c for same commit +ok 31 - commit --squash works with editor +ok 32 - invalid message options when using --fixup +# passed all 32 test(s) +1..32 +*** t7501-commit.sh *** +ok 1 - initial status +ok 2 - fail initial amend +ok 3 - setup: initial commit +ok 4 - -m and -F do not mix +ok 5 - -m and -C do not mix +ok 6 - paths and -a do not mix +ok 7 - can use paths with --interactive +ok 8 - using invalid commit with -C +ok 9 - nothing to commit +ok 10 - setup: non-initial commit +ok 11 - commit message from non-existing file +ok 12 - empty commit message +ok 13 - setup: commit message from file +ok 14 - amend commit +ok 15 - set up editor +ok 16 - amend without launching editor +ok 17 - --amend --edit +ok 18 - -m --edit +ok 19 - -m and -F do not mix +ok 20 - using message from other commit +ok 21 - editing message from other commit +ok 22 - message from stdin +ok 23 - overriding author from command line +ok 24 - interactive add +ok 25 - commit --interactive doesn't change index if editor aborts +ok 26 - editor not invoked if -F is given +ok 27 - partial commit that involves removal (1) +ok 28 - partial commit that involves removal (2) +ok 29 - partial commit that involves removal (3) +ok 30 - amend commit to fix author +ok 31 - amend commit to fix date +ok 32 - commit complains about bogus date +ok 33 - sign off (1) +ok 34 - sign off (2) +ok 35 - signoff gap +ok 36 - signoff gap 2 +ok 37 - multiple -m +ok 38 - amend commit to fix author +ok 39 - git commit with dirty index +ok 40 - same tree (single parent) +ok 41 - same tree (single parent) --allow-empty +ok 42 - same tree (merge and amend merge) +ok 43 - amend using the message from another commit +ok 44 - amend using the message from a commit named with tag +ok 45 - amend can copy notes +# passed all 45 test(s) +1..45 +*** t7502-commit.sh *** +ok 1 - output summary format +ok 2 - output summary format: root-commit +ok 3 - output summary format for commit with an empty diff +ok 4 - output summary format for merges +ok 5 - the basics +ok 6 - partial +ok 7 - partial modification in a subdirectory +ok 8 - partial removal +ok 9 - sign off +ok 10 - multiple -m +ok 11 - verbose +ok 12 - verbose respects diff config +ok 13 - cleanup commit messages (verbatim,-t) +ok 14 - cleanup commit messages (verbatim,-F) +ok 15 - cleanup commit messages (verbatim,-m) +ok 16 - cleanup commit messages (whitespace,-F) +ok 17 - cleanup commit messages (strip,-F) +ok 18 - cleanup commit messages (strip,-F,-e) +ok 19 - cleanup commit messages (strip,-F,-e): output +ok 20 - author different from committer +ok 21 - committer is automatic +ok 22 - do not fire editor in the presence of conflicts +ok 23 - a SIGTERM should break locks +ok 24 - Hand committing of a redundant merge removes dups +ok 25 - A single-liner subject with a token plus colon is not a footer +ok 26 - commit +ok 27 - commit +ok 28 - commit --status +ok 29 - commit --no-status +ok 30 - commit with commit.status = yes +ok 31 - commit with commit.status = no +ok 32 - commit --status with commit.status = yes +ok 33 - commit --no-status with commit.status = yes +ok 34 - commit --status with commit.status = no +ok 35 - commit --no-status with commit.status = no +ok 36 - commit +ok 37 - commit +ok 38 - commit --status +ok 39 - commit --no-status +ok 40 - commit with commit.status = yes +ok 41 - commit with commit.status = no +ok 42 - commit --status with commit.status = yes +ok 43 - commit --no-status with commit.status = yes +ok 44 - commit --status with commit.status = no +ok 45 - commit --no-status with commit.status = no +# passed all 45 test(s) +1..45 +*** t7503-pre-commit-hook.sh *** +ok 1 - with no hook +ok 2 - --no-verify with no hook +ok 3 - with succeeding hook +ok 4 - --no-verify with succeeding hook +ok 5 - with failing hook +ok 6 - --no-verify with failing hook +ok 7 - with non-executable hook +ok 8 - --no-verify with non-executable hook +ok 9 - with hook requiring GIT_PREFIX +ok 10 - with failing hook requiring GIT_PREFIX +# passed all 10 test(s) +1..10 +*** t7504-commit-msg-hook.sh *** +ok 1 - with no hook +ok 2 - with no hook (editor) +ok 3 - --no-verify with no hook +ok 4 - --no-verify with no hook (editor) +ok 5 - with succeeding hook +ok 6 - with succeeding hook (editor) +ok 7 - --no-verify with succeeding hook +ok 8 - --no-verify with succeeding hook (editor) +ok 9 - with failing hook +ok 10 - with failing hook (editor) +ok 11 - --no-verify with failing hook +ok 12 - --no-verify with failing hook (editor) +ok 13 - with non-executable hook +ok 14 - with non-executable hook (editor) +ok 15 - --no-verify with non-executable hook +ok 16 - --no-verify with non-executable hook (editor) +ok 17 - hook edits commit message +ok 18 - hook edits commit message (editor) +ok 19 - hook doesn't edit commit message +ok 20 - hook doesn't edit commit message (editor) +# passed all 20 test(s) +1..20 +*** t7505-prepare-commit-msg-hook.sh *** +ok 1 - with no hook +ok 2 - with hook (-m) +ok 3 - with hook (-m editor) +ok 4 - with hook (-t) +ok 5 - with hook (-F) +ok 6 - with hook (-F editor) +ok 7 - with hook (-C) +ok 8 - with hook (editor) +ok 9 - with hook (--amend) +ok 10 - with hook (-c) +ok 11 - with hook (merge) +ok 12 - with failing hook +ok 13 - with failing hook (--no-verify) +# passed all 13 test(s) +1..13 +*** t7506-status-submodule.sh *** +ok 1 - setup +ok 2 - status clean +ok 3 - commit --dry-run -a clean +ok 4 - status with modified file in submodule +ok 5 - status with modified file in submodule (porcelain) +ok 6 - status with added file in submodule +ok 7 - status with added file in submodule (porcelain) +ok 8 - status with untracked file in submodule +ok 9 - status -uno with untracked file in submodule +ok 10 - status with untracked file in submodule (porcelain) +ok 11 - status with added and untracked file in submodule +ok 12 - status with added and untracked file in submodule (porcelain) +ok 13 - status with modified file in modified submodule +ok 14 - status with modified file in modified submodule (porcelain) +ok 15 - status with added file in modified submodule +ok 16 - status with added file in modified submodule (porcelain) +ok 17 - status with untracked file in modified submodule +ok 18 - status with untracked file in modified submodule (porcelain) +ok 19 - status with added and untracked file in modified submodule +ok 20 - status with added and untracked file in modified submodule (porcelain) +ok 21 - setup .git file for sub +ok 22 - status with added file in modified submodule with .git file +ok 23 - rm submodule contents +ok 24 - status clean (empty submodule dir) +ok 25 - status -a clean (empty submodule dir) +ok 26 - status with merge conflict in .gitmodules +ok 27 - diff with merge conflict in .gitmodules +ok 28 - diff --submodule with merge conflict in .gitmodules +# passed all 28 test(s) +1..28 +*** t7507-commit-verbose.sh *** +ok 1 - setup +ok 2 - initial commit shows verbose diff +ok 3 - second commit +ok 4 - verbose diff is stripped out +ok 5 - verbose diff is stripped out (mnemonicprefix) +ok 6 - diff in message is retained without -v +not ok 7 - diff in message is retained with -v # TODO known breakage +# still have 1 known breakage(s) +# passed all remaining 6 test(s) +1..7 +*** t7508-status.sh *** +ok 1 - status -h in broken repository +ok 2 - commit -h in broken repository +ok 3 - setup +ok 4 - status (1) +ok 5 - status (2) +ok 6 - status (advice.statusHints false) +ok 7 - status -s +ok 8 - status with gitignore +ok 9 - status with gitignore (nothing untracked) +ok 10 - status -s -b +ok 11 - setup dir3 +ok 12 - status -uno +ok 13 - status (status.showUntrackedFiles no) +ok 14 - status -uno (advice.statusHints false) +ok 15 - status -s -uno +ok 16 - status -s (status.showUntrackedFiles no) +ok 17 - status -unormal +ok 18 - status (status.showUntrackedFiles normal) +ok 19 - status -s -unormal +ok 20 - status -s (status.showUntrackedFiles normal) +ok 21 - status -uall +ok 22 - status (status.showUntrackedFiles all) +ok 23 - teardown dir3 +ok 24 - status -s -uall +ok 25 - status -s (status.showUntrackedFiles all) +ok 26 - status with relative paths +ok 27 - status -s with relative paths +ok 28 - status --porcelain ignores relative paths setting +ok 29 - setup unique colors +ok 30 - status with color.ui +ok 31 - status with color.status +ok 32 - status -s with color.ui +ok 33 - status -s with color.status +ok 34 - status -s -b with color.status +ok 35 - status --porcelain ignores color.ui +ok 36 - status --porcelain ignores color.status +ok 37 - status --porcelain ignores -b +ok 38 - status without relative paths +ok 39 - status -s without relative paths +ok 40 - dry-run of partial commit excluding new file in index +ok 41 - status refreshes the index +ok 42 - setup status submodule summary +ok 43 - status submodule summary is disabled by default +ok 44 - status --untracked-files=all does not show submodule +ok 45 - status -s submodule summary is disabled by default +ok 46 - status -s --untracked-files=all does not show submodule +ok 47 - status submodule summary +ok 48 - status -s submodule summary +ok 49 - status submodule summary (clean submodule): commit +ok 50 - status -s submodule summary (clean submodule) +ok 51 - status -z implies porcelain +ok 52 - commit --dry-run submodule summary (--amend) +ok 53 - status succeeds in a read-only repository +ok 54 - --ignore-submodules=untracked suppresses submodules with untracked content +ok 55 - .gitmodules ignore=untracked suppresses submodules with untracked content +ok 56 - .git/config ignore=untracked suppresses submodules with untracked content +ok 57 - --ignore-submodules=dirty suppresses submodules with untracked content +ok 58 - .gitmodules ignore=dirty suppresses submodules with untracked content +ok 59 - .git/config ignore=dirty suppresses submodules with untracked content +ok 60 - --ignore-submodules=dirty suppresses submodules with modified content +ok 61 - .gitmodules ignore=dirty suppresses submodules with modified content +ok 62 - .git/config ignore=dirty suppresses submodules with modified content +ok 63 - --ignore-submodules=untracked doesn't suppress submodules with modified content +ok 64 - .gitmodules ignore=untracked doesn't suppress submodules with modified content +ok 65 - .git/config ignore=untracked doesn't suppress submodules with modified content +ok 66 - --ignore-submodules=untracked doesn't suppress submodule summary +ok 67 - .gitmodules ignore=untracked doesn't suppress submodule summary +ok 68 - .git/config ignore=untracked doesn't suppress submodule summary +ok 69 - --ignore-submodules=dirty doesn't suppress submodule summary +ok 70 - .gitmodules ignore=dirty doesn't suppress submodule summary +ok 71 - .git/config ignore=dirty doesn't suppress submodule summary +ok 72 - --ignore-submodules=all suppresses submodule summary +not ok 73 - .gitmodules ignore=all suppresses submodule summary # TODO known breakage +not ok 74 - .git/config ignore=all suppresses submodule summary # TODO known breakage +# still have 2 known breakage(s) +# passed all remaining 72 test(s) +1..74 +*** t7509-commit.sh *** +ok 1 - -C option copies authorship and message +ok 2 - -C option copies only the message with --reset-author +ok 3 - -c option copies authorship and message +ok 4 - -c option copies only the message with --reset-author +ok 5 - --amend option copies authorship +ok 6 - --amend option with empty author +ok 7 - --amend option with missing author +ok 8 - --reset-author makes the commit ours even with --amend option +ok 9 - --reset-author and --author are mutually exclusive +ok 10 - --reset-author should be rejected without -c/-C/--amend +ok 11 - commit respects CHERRY_PICK_HEAD and MERGE_MSG +ok 12 - --reset-author with CHERRY_PICK_HEAD +# passed all 12 test(s) +1..12 +*** t7510-signed-commit.sh *** +You do not seem to have gpg installed +ok 1 # skip create signed commits (missing GPG) +ok 2 # skip show signatures (missing GPG) +ok 3 # skip detect fudged signature (missing GPG) +ok 4 # skip detect fudged signature with NUL (missing GPG) +ok 5 # skip amending already signed commit (missing GPG) +# passed all 5 test(s) +1..5 +*** t7511-status-index.sh *** +ok 1 - status, filename length 1 +ok 2 - status, filename length 2 +ok 3 - status, filename length 3 +ok 4 - status, filename length 4 +ok 5 - status, filename length 5 +ok 6 - status, filename length 6 +ok 7 - status, filename length 7 +ok 8 - status, filename length 8 +ok 9 - status, filename length 9 +ok 10 - status, filename length 10 +ok 11 - status, filename length 11 +ok 12 - status, filename length 12 +ok 13 - status, filename length 13 +ok 14 - status, filename length 14 +ok 15 - status, filename length 15 +ok 16 - status, filename length 16 +ok 17 - status, filename length 17 +ok 18 - status, filename length 18 +ok 19 - status, filename length 19 +ok 20 - status, filename length 20 +ok 21 - status, filename length 21 +ok 22 - status, filename length 22 +ok 23 - status, filename length 23 +ok 24 - status, filename length 24 +# passed all 24 test(s) +1..24 +*** t7600-merge.sh *** +You do not seem to have gpg installed +ok 1 - setup +ok 2 - test option parsing +ok 3 - merge -h with invalid index +ok 4 - reject non-strategy with a git-merge-foo name +ok 5 - merge c0 with c1 +ok 6 - merge c0 with c1 with --ff-only +ok 7 - merge from unborn branch +ok 8 - merge c1 with c2 +ok 9 - merge c1 with c2 and c3 +ok 10 - merges with --ff-only +ok 11 - merges with merge.ff=only +ok 12 - merge c0 with c1 (no-commit) +ok 13 - merge c1 with c2 (no-commit) +ok 14 - merge c1 with c2 and c3 (no-commit) +ok 15 - merge c0 with c1 (squash) +ok 16 - merge c0 with c1 (squash, ff-only) +ok 17 - merge c1 with c2 (squash) +ok 18 - unsuccesful merge of c1 with c2 (squash, ff-only) +ok 19 - merge c1 with c2 and c3 (squash) +ok 20 - merge c1 with c2 (no-commit in config) +ok 21 - merge c1 with c2 (log in config) +ok 22 - merge c1 with c2 (log in config gets overridden) +ok 23 - merge c1 with c2 (squash in config) +ok 24 - override config option -n with --summary +ok 25 - override config option -n with --stat +ok 26 - override config option --stat +ok 27 - merge c1 with c2 (override --no-commit) +ok 28 - merge c1 with c2 (override --squash) +ok 29 - merge c0 with c1 (no-ff) +ok 30 - merge c0 with c1 (merge.ff=false) +ok 31 - combine branch.master.mergeoptions with merge.ff +ok 32 - tolerate unknown values for merge.ff +ok 33 - combining --squash and --no-ff is refused +ok 34 - combining --ff-only and --no-ff is refused +ok 35 - merge c0 with c1 (ff overrides no-ff) +ok 36 - merge log message +ok 37 - merge c1 with c0, c2, c0, and c1 +ok 38 - merge c1 with c0, c2, c0, and c1 +ok 39 - merge c1 with c1 and c2 +ok 40 - merge fast-forward in a dirty tree +ok 41 - in-index merge +ok 42 - refresh the index before merging +ok 43 - merge early part of c2 +ok 44 - merge --no-ff --no-commit && commit +ok 45 - amending no-ff merge commit +ok 46 - merge --no-ff --edit +ok 47 # skip merge --ff-only tag (missing GPG) +ok 48 # skip merge --no-edit tag should skip editor (missing GPG) +# passed all 48 test(s) +1..48 +*** t7601-merge-pull-config.sh *** +ok 1 - setup +ok 2 - merge c1 with c2 +ok 3 - merge c1 with c2 (ours in pull.twohead) +ok 4 - merge c1 with c2 and c3 (recursive in pull.octopus) +ok 5 - merge c1 with c2 and c3 (recursive and octopus in pull.octopus) +ok 6 - setup conflicted merge +ok 7 - merge picks up the best result +ok 8 - merge picks up the best result (from config) +ok 9 - merge errors out on invalid strategy +ok 10 - merge errors out on invalid strategy +# passed all 10 test(s) +1..10 +*** t7602-merge-octopus-many.sh *** +ok 1 - setup +ok 2 - merge c1 with c2, c3, c4, ... c29 +ok 3 - merge output uses pretty names +ok 4 - merge up-to-date output uses pretty names +ok 5 - merge fast-forward output uses pretty names +# passed all 5 test(s) +1..5 +*** t7603-merge-reduce-heads.sh *** +ok 1 - setup +ok 2 - merge c1 with c2, c3, c4, c5 +ok 3 - setup +ok 4 - merge E and I +ok 5 - verify merge result +ok 6 - add conflicts +ok 7 - merge E2 and I2, causing a conflict and resolve it +ok 8 - verify merge result +# passed all 8 test(s) +1..8 +*** t7604-merge-custom-message.sh *** +ok 1 - setup +ok 2 - merge c2 with a custom message +ok 3 - merge --log appends to custom message +# passed all 3 test(s) +1..3 +*** t7605-merge-resolve.sh *** +ok 1 - setup +ok 2 - merge c1 to c2 +ok 3 - merge c2 to c3 (fails) +# passed all 3 test(s) +1..3 +*** t7606-merge-custom.sh *** +ok 1 - set up custom strategy +ok 2 - setup +ok 3 - merge c2 with a custom strategy +ok 4 - trivial merge with custom strategy +# passed all 4 test(s) +1..4 +*** t7607-merge-overwrite.sh *** +ok 1 - setup +ok 2 - will not overwrite untracked file +ok 3 - will overwrite tracked file +ok 4 - will not overwrite new file +ok 5 - will not overwrite staged changes +ok 6 - will not overwrite removed file +ok 7 - will not overwrite re-added file +ok 8 - will not overwrite removed file with staged changes +ok 9 - will not overwrite untracked subtree +ok 10 - will not overwrite untracked file in leading path +ok 11 - will not overwrite untracked symlink in leading path +ok 12 - will not be confused by symlink in leading path +ok 13 - will not overwrite untracked file on unborn branch +ok 14 - will not overwrite untracked file on unborn branch .git/MERGE_HEAD sanity etc. +ok 15 - failed merge leaves unborn branch in the womb +ok 16 - set up unborn branch and content +ok 17 - will not clobber WT/index when merging into unborn +# passed all 17 test(s) +1..17 +*** t7608-merge-messages.sh *** +ok 1 - merge local branch +ok 2 - merge octopus branches +ok 3 - merge tag +ok 4 - ambiguous tag +ok 5 - remote-tracking branch +# passed all 5 test(s) +1..5 +*** t7609-merge-co-error-msgs.sh *** +ok 1 - setup +ok 2 - untracked files overwritten by merge (fast and non-fast forward) +ok 3 - untracked files or local changes ovewritten by merge +ok 4 - cannot switch branches because of local changes +ok 5 - not uptodate file porcelain checkout error +ok 6 - not_uptodate_dir porcelain checkout error +# passed all 6 test(s) +1..6 +*** t7610-mergetool.sh *** +ok 1 - setup +ok 2 - custom mergetool +ok 3 - mergetool crlf +ok 4 - mergetool in subdir +ok 5 - mergetool on file in parent dir +ok 6 - mergetool skips autoresolved +ok 7 - mergetool merges all from subdir +ok 8 - mergetool skips resolved paths when rerere is active +ok 9 - mergetool takes partial path +ok 10 - deleted vs modified submodule +ok 11 - file vs modified submodule +ok 12 - submodule in subdirectory +ok 13 - directory vs modified submodule +ok 14 - file with no base +# passed all 14 test(s) +1..14 +*** t7611-merge-abort.sh *** +ok 1 - setup +ok 2 - fails without MERGE_HEAD (unstarted merge) +ok 3 - fails without MERGE_HEAD (unstarted merge): .git/MERGE_HEAD sanity +ok 4 - fails without MERGE_HEAD (completed merge) +ok 5 - fails without MERGE_HEAD (completed merge): .git/MERGE_HEAD sanity +ok 6 - Forget previous merge +ok 7 - Abort after --no-commit +ok 8 - Abort after conflicts +ok 9 - Clean merge with dirty index fails +ok 10 - Conflicting merge with dirty index fails +ok 11 - Reset index (but preserve worktree changes) +ok 12 - Abort clean merge with non-conflicting dirty worktree +ok 13 - Abort conflicting merge with non-conflicting dirty worktree +ok 14 - Reset worktree changes +ok 15 - Fail clean merge with conflicting dirty worktree +ok 16 - Fail conflicting merge with conflicting dirty worktree +ok 17 - Reset worktree changes +ok 18 - Fail clean merge with matching dirty worktree +ok 19 - Abort clean merge with matching dirty index +ok 20 - Reset worktree changes +ok 21 - Fail conflicting merge with matching dirty worktree +ok 22 - Abort conflicting merge with matching dirty index +ok 23 - Reset worktree changes +ok 24 - Abort merge with pre- and post-merge worktree changes +ok 25 - Reset worktree changes +ok 26 - Abort merge with pre- and post-merge index changes +# passed all 26 test(s) +1..26 +*** t7700-repack.sh *** +ok 1 - objects in packs marked .keep are not repacked +ok 2 - loose objects in alternate ODB are not repacked +ok 3 - packed obs in alt ODB are repacked even when local repo is packless +ok 4 - packed obs in alt ODB are repacked when local repo has packs +ok 5 - packed obs in alternate ODB kept pack are repacked +ok 6 - packed unreachable obs in alternate ODB are not loosened +ok 7 - local packed unreachable obs that exist in alternate ODB are not loosened +ok 8 - objects made unreachable by grafts only are kept +# passed all 8 test(s) +1..8 +*** t7701-repack-unpack-unreachable.sh *** +ok 1 - -A with -d option leaves unreachable objects unpacked +ok 2 - -A without -d option leaves unreachable objects packed +ok 3 - unpacked objects receive timestamp of pack file +# passed all 3 test(s) +1..3 +*** t7800-difftool.sh *** +ok 1 - setup +ok 2 - custom commands +ok 3 - difftool ignores bad --tool values +ok 4 - difftool honors --gui +ok 5 - difftool --gui works without configured diff.guitool +ok 6 - GIT_DIFF_TOOL variable +ok 7 - GIT_DIFF_TOOL overrides +ok 8 - GIT_DIFFTOOL_NO_PROMPT variable +ok 9 - GIT_DIFFTOOL_PROMPT variable +ok 10 - difftool.prompt config variable is false +ok 11 - difftool merge.prompt = false +ok 12 - difftool.prompt can overridden with -y +ok 13 - difftool.prompt can overridden with --prompt +ok 14 - difftool last flag wins +ok 15 - difftool + mergetool config variables +ok 16 - difftool..path +ok 17 - difftool --extcmd=cat +ok 18 - difftool --extcmd cat +ok 19 - difftool -x cat +ok 20 - difftool --extcmd echo arg1 +ok 21 - difftool --extcmd cat arg1 +ok 22 - difftool --extcmd cat arg2 +ok 23 - setup with 2 files different +ok 24 - say no to the first file +ok 25 - say no to the second file +# passed all 25 test(s) +1..25 +*** t7810-grep.sh *** +ok 1 - setup +ok 2 - grep should not segfault with a bad input +ok 3 - grep -w HEAD +ok 4 - grep -w HEAD +ok 5 - grep -w HEAD +ok 6 - grep -w HEAD (w) +ok 7 - grep -w HEAD (x) +ok 8 - grep -w HEAD (y-1) +ok 9 - grep -w HEAD (y-2) +ok 10 - grep -w HEAD (z) +ok 11 - grep HEAD (t-1) +ok 12 - grep HEAD (t-2) +ok 13 - grep HEAD (t-3) +ok 14 - grep -c HEAD (no /dev/null) +ok 15 - grep --max-depth -1 HEAD +ok 16 - grep --max-depth 0 HEAD +ok 17 - grep --max-depth 0 -- '*' HEAD +ok 18 - grep --max-depth 1 HEAD +ok 19 - grep --max-depth 0 -- t HEAD +ok 20 - grep --max-depth 0 -- . t HEAD +ok 21 - grep --max-depth 0 -- t . HEAD +ok 22 - grep HEAD with grep.extendedRegexp=false +ok 23 - grep HEAD with grep.extendedRegexp=true +ok 24 - grep -w in working tree +ok 25 - grep -w in working tree +ok 26 - grep -w in working tree +ok 27 - grep -w in working tree (w) +ok 28 - grep -w in working tree (x) +ok 29 - grep -w in working tree (y-1) +ok 30 - grep -w in working tree (y-2) +ok 31 - grep -w in working tree (z) +ok 32 - grep in working tree (t-1) +ok 33 - grep in working tree (t-2) +ok 34 - grep in working tree (t-3) +ok 35 - grep -c in working tree (no /dev/null) +ok 36 - grep --max-depth -1 in working tree +ok 37 - grep --max-depth 0 in working tree +ok 38 - grep --max-depth 0 -- '*' in working tree +ok 39 - grep --max-depth 1 in working tree +ok 40 - grep --max-depth 0 -- t in working tree +ok 41 - grep --max-depth 0 -- . t in working tree +ok 42 - grep --max-depth 0 -- t . in working tree +ok 43 - grep in working tree with grep.extendedRegexp=false +ok 44 - grep in working tree with grep.extendedRegexp=true +ok 45 - grep -l -C +ok 46 - grep -l -C +ok 47 - grep -L -C +ok 48 - grep -e A --and -e B +ok 49 - grep ( -e A --or -e B ) --and -e B +ok 50 - grep -e A --and --not -e B +ok 51 - grep should ignore GREP_OPTIONS +ok 52 - grep -f, non-existent file +ok 53 - grep -f, one pattern +ok 54 - grep -f, multiple patterns +ok 55 - grep -f, ignore empty lines +ok 56 - grep -f, ignore empty lines, read patterns from stdin +ok 57 - grep -q, silently report matches +ok 58 - grep -C1, hunk mark between files +ok 59 - grep -C1 hunk mark between files +ok 60 - log grep setup +ok 61 - log grep (1) +ok 62 - log grep (2) +ok 63 - log grep (3) +ok 64 - log grep (4) +ok 65 - log grep (5) +ok 66 - log grep (6) +ok 67 - log --grep --author implicitly uses all-match +ok 68 - log with multiple --author uses union +ok 69 - log with --grep and multiple --author uses all-match +ok 70 - log with --grep and multiple --author uses all-match +ok 71 - grep with CE_VALID file +ok 72 - grep -p with userdiff +ok 73 - grep -p +ok 74 - grep -p -B5 +ok 75 - grep -W +ok 76 - grep -W with userdiff +ok 77 - grep from a subdirectory to search wider area (1) +ok 78 - grep from a subdirectory to search wider area (2) +ok 79 - grep -Fi +ok 80 - outside of git repository +ok 81 - inside git repository but with --no-index +ok 82 - setup double-dash tests +ok 83 - grep -- pattern +ok 84 - grep -- pattern -- pathspec +ok 85 - grep -e pattern -- path +ok 86 - grep -e -- -- path +ok 87 # skip grep --perl-regexp pattern (missing LIBPCRE) +ok 88 # skip grep -P pattern (missing LIBPCRE) +ok 89 - grep pattern with grep.extendedRegexp=true +ok 90 # skip grep -P pattern with grep.extendedRegexp=true (missing LIBPCRE) +ok 91 # skip grep -P -v pattern (missing LIBPCRE) +ok 92 # skip grep -P -i pattern (missing LIBPCRE) +ok 93 # skip grep -P -w pattern (missing LIBPCRE) +ok 94 - grep -G invalidpattern properly dies +ok 95 - grep -E invalidpattern properly dies +ok 96 # skip grep -P invalidpattern properly dies (missing LIBPCRE) +ok 97 - grep -G -E -F pattern +ok 98 - grep -E -F -G pattern +ok 99 - grep -F -G -E pattern +ok 100 - grep -G -F -P -E pattern +ok 101 # skip grep -G -F -E -P pattern (missing LIBPCRE) +ok 102 - grep --color, separator +ok 103 - grep --break +ok 104 - grep --break with context +ok 105 - grep --heading +ok 106 - mimic ack-grep --group +# passed all 106 test(s) +1..106 +*** t7811-grep-open.sh *** +ok 1 - determine default pager +ok 2 - setup +ok 3 - git grep -O +ok 4 - git grep -O --cached +ok 5 - git grep -O --no-index +ok 6 - setup: fake "less" +ok 7 - git grep -O jumps to line in less +ok 8 - modified file +ok 9 - copes with color settings +ok 10 - run from subdir +# passed all 10 test(s) +1..10 +*** t8001-annotate.sh *** +ok 1 - prepare reference tree +ok 2 - check all lines blamed on A +ok 3 - Setup new lines blamed on B +ok 4 - Two lines blamed on A, two on B +ok 5 - merge-setup part 1 +ok 6 - Two lines blamed on A, two on B, two on B1 +ok 7 - merge-setup part 2 +ok 8 - Two lines blamed on A, one on B, one on B2 +ok 9 - merge-setup part 3 +ok 10 - Two lines blamed on A, one on B, two on B1, one on B2 +ok 11 - Annotating an old revision works +ok 12 - Annotating an old revision works +ok 13 - merge-setup part 4 +ok 14 - Two lines blamed on A, one on B, two on B1, one on B2, one on A U Thor +ok 15 - an incomplete line added +ok 16 - With incomplete lines. +ok 17 - some edit +ok 18 - some edit +ok 19 - an obfuscated email added +ok 20 - obfuscated email parsed +ok 21 - Annotating an old revision works +# passed all 21 test(s) +1..21 +*** t8002-blame.sh *** +ok 1 - prepare reference tree +ok 2 - check all lines blamed on A +ok 3 - Setup new lines blamed on B +ok 4 - Two lines blamed on A, two on B +ok 5 - merge-setup part 1 +ok 6 - Two lines blamed on A, two on B, two on B1 +ok 7 - merge-setup part 2 +ok 8 - Two lines blamed on A, one on B, one on B2 +ok 9 - merge-setup part 3 +ok 10 - Two lines blamed on A, one on B, two on B1, one on B2 +ok 11 - Annotating an old revision works +ok 12 - Annotating an old revision works +ok 13 - merge-setup part 4 +ok 14 - Two lines blamed on A, one on B, two on B1, one on B2, one on A U Thor +ok 15 - an incomplete line added +ok 16 - With incomplete lines. +ok 17 - some edit +ok 18 - some edit +ok 19 - an obfuscated email added +ok 20 - obfuscated email parsed +ok 21 - Blame --show-email works +# passed all 21 test(s) +1..21 +*** t8003-blame-corner-cases.sh *** +ok 1 - setup +ok 2 - straight copy without -C +ok 3 - straight move without -C +ok 4 - straight copy with -C +ok 5 - straight move with -C +ok 6 - straight copy with -C -C +ok 7 - straight move with -C -C +ok 8 - append without -C +ok 9 - append with -C +ok 10 - append with -C -C +ok 11 - append with -C -C -C +ok 12 - blame wholesale copy +ok 13 - blame wholesale copy and more +ok 14 - blame path that used to be a directory +ok 15 - blame to a commit with no author name +ok 16 - blame -L with invalid start +ok 17 - blame -L with invalid end +ok 18 - indent of line numbers, nine lines +ok 19 - indent of line numbers, ten lines +# passed all 19 test(s) +1..19 +*** t8004-blame-with-conflicts.sh *** +ok 1 - setup first case +ok 2 - blame runs on unconflicted file while other file has conflicts +ok 3 - blame runs on conflicted file in stages 1,3 +# passed all 3 test(s) +1..3 +*** t8005-blame-i18n.sh *** +ok 1 - setup the repository +ok 2 - blame respects i18n.commitencoding +ok 3 - blame respects i18n.logoutputencoding +ok 4 - blame respects --encoding=UTF-8 +ok 5 - blame respects --encoding=none +# passed all 5 test(s) +1..5 +*** t8006-blame-textconv.sh *** +ok 1 - setup +ok 2 - no filter specified +ok 3 - setup textconv filters +ok 4 - blame with --no-textconv +ok 5 - basic blame on last commit +ok 6 - blame --textconv going through revisions +ok 7 - blame --textconv with local changes +ok 8 - setup +cachetextconv +ok 9 - blame --textconv works with textconvcache +ok 10 - setup -cachetextconv +ok 11 - make a new commit +ok 12 - blame from previous revision +ok 13 - blame with --no-textconv (on symlink) +ok 14 - blame --textconv (on symlink) +ok 15 - make another new commit +ok 16 - blame on last commit (-C -C, symlink) +# passed all 16 test(s) +1..16 +*** t8007-cat-file-textconv.sh *** +ok 1 - setup +ok 2 - no filter specified +ok 3 - setup textconv filters +ok 4 - cat-file without --textconv +ok 5 - cat-file without --textconv on previous commit +ok 6 - cat-file --textconv on last commit +ok 7 - cat-file --textconv on previous commit +ok 8 - cat-file without --textconv (symlink) +ok 9 - cat-file --textconv on index (symlink) +ok 10 - cat-file --textconv on HEAD (symlink) +# passed all 10 test(s) +1..10 +*** t8008-blame-formats.sh *** +ok 1 - setup +ok 2 - normal blame output +ok 3 - blame --porcelain output +ok 4 - blame --line-porcelain output +# passed all 4 test(s) +1..4 +*** t9001-send-email.sh *** +ok 1 - prepare reference tree +ok 2 - Setup helper tool +ok 3 - Extract patches +ok 4 - No confirm with --suppress-cc +ok 5 - No confirm with --confirm=never +ok 6 - No confirm with sendemail.confirm=never +ok 7 - Send patches +ok 8 - setup expect +ok 9 - Verify commandline +ok 10 - Send patches with --envelope-sender +ok 11 - setup expect +ok 12 - Verify commandline +ok 13 - Send patches with --envelope-sender=auto +ok 14 - setup expect +ok 15 - Verify commandline +ok 16 - setup expect +ok 17 - Show all headers +ok 18 - Prompting works +ok 19 - tocmd works +ok 20 - cccmd works +ok 21 - reject long lines +ok 22 - no patch was sent +ok 23 - Author From: in message body +ok 24 - Author From: not in message body +ok 25 - allow long lines with --no-validate +ok 26 - Invalid In-Reply-To +ok 27 - Valid In-Reply-To when prompting +ok 28 - In-Reply-To without --chain-reply-to +ok 29 - In-Reply-To with --chain-reply-to +ok 30 - setup fake editor +ok 31 - --compose works +ok 32 - first message is compose text +ok 33 - second message is patch +ok 34 - setup expect +ok 35 - sendemail.cc set +ok 36 - setup expect +ok 37 - sendemail.cc unset +ok 38 - setup expect +ok 39 - sendemail.cccmd +ok 40 - setup expect +ok 41 - --suppress-cc=all +ok 42 - setup expect +ok 43 - --suppress-cc=body +ok 44 - setup expect +ok 45 - --suppress-cc=body --suppress-cc=cccmd +ok 46 - setup expect +ok 47 - --suppress-cc=sob +ok 48 - setup expect +ok 49 - --suppress-cc=bodycc +ok 50 - setup expect +ok 51 - --suppress-cc=cc +ok 52 - --confirm=always +ok 53 - --confirm=auto +ok 54 - --confirm=cc +ok 55 - --confirm=compose +ok 56 - confirm by default (due to cc) +ok 57 - confirm by default (due to --compose) +ok 58 - confirm detects EOF (inform assumes y) +ok 59 - confirm detects EOF (auto causes failure) +ok 60 - confirm doesnt loop forever +ok 61 - utf8 Cc is rfc2047 encoded +ok 62 - --compose adds MIME for utf8 body +ok 63 - --compose respects user mime type +ok 64 - --compose adds MIME for utf8 subject +ok 65 - detects ambiguous reference/file conflict +ok 66 - feed two files +ok 67 - in-reply-to but no threading +ok 68 - no in-reply-to and no threading +ok 69 - threading but no chain-reply-to +ok 70 - warning with an implicit --chain-reply-to +ok 71 - no warning with an explicit --chain-reply-to +ok 72 - no warning with an explicit --no-chain-reply-to +ok 73 - no warning with sendemail.chainreplyto = false +ok 74 - no warning with sendemail.chainreplyto = true +ok 75 - sendemail.to works +ok 76 - --no-to overrides sendemail.to +ok 77 - sendemail.cc works +ok 78 - --no-cc overrides sendemail.cc +ok 79 - sendemail.bcc works +ok 80 - --no-bcc overrides sendemail.bcc +ok 81 - patches To headers are used by default +ok 82 - patches To headers are appended to +ok 83 - To headers from files reset each patch +ok 84 - setup expect +ok 85 - setup expect +ok 86 - asks about and fixes 8bit encodings +ok 87 - sendemail.8bitEncoding works +ok 88 - --8bit-encoding overrides sendemail.8bitEncoding +ok 89 - setup expect +ok 90 - setup expect +ok 91 - --8bit-encoding also treats subject +ok 92 - refusing to send cover letter template +ok 93 - --force sends cover letter template anyway +ok 94 - sendemail.aliasfiletype=mailrc +ok 95 - sendemail.aliasfile=~/.mailrc +# passed all 95 test(s) +1..95 +*** t9010-svn-fe.sh *** +ok 1 - empty dump +ok 2 - v4 dumps not supported +not ok 3 - empty revision # TODO known breakage +ok 4 - empty properties +ok 5 - author name and commit message +ok 6 - unsupported properties are ignored +not ok 7 - timestamp and empty file # TODO known breakage +ok 8 - directory with files +ok 9 - node without action +ok 10 - action: add node without text +not ok 11 - change file mode but keep old content # TODO known breakage +ok 12 - NUL in property value +ok 13 - NUL in log message, file content, and property name +ok 14 - change file mode and reiterate content +ok 15 - deltas not supported +ok 16 - property deltas supported +ok 17 - properties on / +ok 18 - deltas for typechange +ok 19 - set up svn repo +ok 20 - t9135/svn.dump +# still have 3 known breakage(s) +# passed all remaining 17 test(s) +1..20 +*** t9100-git-svn-basic.sh *** +define NO_SVN_TESTS to skip git svn tests +# UTF-8 locale not set, some tests skipped (C) +ok 1 - initialize git svn +not ok - 2 import an SVN revision into git +# git svn fetch +ok 3 - checkout from svn +not ok - 4 try a deep --rmdir with a commit +# +# git checkout -f -b mybranch ${remotes_git_svn} && +# mv dir/a/b/c/d/e/file dir/file && +# cp dir/file file && +# git update-index --add --remove dir/a/b/c/d/e/file dir/file file && +# git commit -m "$name" && +# git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch && +# svn_cmd up "$SVN_TREE" && +# test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a +not ok - 5 detect node change from file to directory #1 +# +# mkdir dir/new_file && +# mv dir/file dir/new_file/file && +# mv dir/new_file dir/file && +# git update-index --remove dir/file && +# git update-index --add dir/file/file && +# git commit -m 'detect node change from file to directory #1' && +# test_must_fail git svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch +not ok - 6 detect node change from directory to file #1 +# +# rm -rf dir "$GIT_DIR"/index && +# git checkout -f -b mybranch2 ${remotes_git_svn} && +# mv bar/zzz zzz && +# rm -rf bar && +# mv zzz bar && +# git update-index --remove -- bar/zzz && +# git update-index --add -- bar && +# git commit -m "$name" && +# test_must_fail git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch2 +not ok - 7 detect node change from file to directory #2 +# +# rm -f "$GIT_DIR"/index && +# git checkout -f -b mybranch3 ${remotes_git_svn} && +# rm bar/zzz && +# git update-index --remove bar/zzz && +# mkdir bar/zzz && +# echo yyy > bar/zzz/yyy && +# git update-index --add bar/zzz/yyy && +# git commit -m "$name" && +# test_must_fail git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch3 +not ok - 8 detect node change from directory to file #2 +# +# rm -f "$GIT_DIR"/index && +# git checkout -f -b mybranch4 ${remotes_git_svn} && +# rm -rf dir && +# git update-index --remove -- dir/file && +# touch dir && +# echo asdf > dir && +# git update-index --add -- dir && +# git commit -m "$name" && +# test_must_fail git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch4 +not ok - 9 remove executable bit from a file +# +# rm -f "$GIT_DIR"/index && +# git checkout -f -b mybranch5 ${remotes_git_svn} && +# chmod -x exec.sh && +# git update-index exec.sh && +# git commit -m "$name" && +# git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch5 && +# svn_cmd up "$SVN_TREE" && +# test ! -x "$SVN_TREE"/exec.sh +not ok - 10 add executable bit back file +# +# chmod +x exec.sh && +# git update-index exec.sh && +# git commit -m "$name" && +# git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch5 && +# svn_cmd up "$SVN_TREE" && +# test -x "$SVN_TREE"/exec.sh +not ok - 11 executable file becomes a symlink to bar/zzz (file) +# +# rm exec.sh && +# ln -s bar/zzz exec.sh && +# git update-index exec.sh && +# git commit -m "$name" && +# git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch5 && +# svn_cmd up "$SVN_TREE" && +# test -h "$SVN_TREE"/exec.sh +not ok - 12 new symlink is added to a file that was also just made executable +# +# chmod +x bar/zzz && +# ln -s bar/zzz exec-2.sh && +# git update-index --add bar/zzz exec-2.sh && +# git commit -m "$name" && +# git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch5 && +# svn_cmd up "$SVN_TREE" && +# test -x "$SVN_TREE"/bar/zzz && +# test -h "$SVN_TREE"/exec-2.sh +not ok - 13 modify a symlink to become a file +# +# echo git help > help || true && +# rm exec-2.sh && +# cp help exec-2.sh && +# git update-index exec-2.sh && +# git commit -m "$name" && +# git svn set-tree --find-copies-harder --rmdir \ +# ${remotes_git_svn}..mybranch5 && +# svn_cmd up "$SVN_TREE" && +# test -f "$SVN_TREE"/exec-2.sh && +# test ! -h "$SVN_TREE"/exec-2.sh && +# test_cmp help "$SVN_TREE"/exec-2.sh +ok 14 # skip commit with UTF-8 message: locale: C (missing UTF8) +not ok - 15 test fetch functionality (svn => git) with alternate GIT_SVN_ID +# git svn init "$svnrepo" && git svn fetch && +# git rev-list --pretty=raw ${remotes_git_svn} | grep ^tree | uniq > a && +# git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b && +# test_cmp a b +not ok - 16 check imported tree checksums expected tree checksums +# test_cmp a expected +ok 17 - exit if remote refs are ambigious +ok 18 - exit if init-ing a would clobber a URL +not ok - 19 init allows us to connect to another directory in the same repo +# +# git svn init --minimize-url -i bar "$svnrepo/bar" && +# git config --get svn-remote.svn.fetch \ +# "^bar:refs/remotes/bar$" && +# git config --get svn-remote.svn.fetch \ +# "^:refs/${remotes_git_svn}$" +# +not ok - 20 dcommit $rev does not clobber current branch +# +# git svn fetch -i bar && +# git checkout -b my-bar refs/remotes/bar && +# echo 1 > foo && +# git add foo && +# git commit -m "change 1" && +# echo 2 > foo && +# git add foo && +# git commit -m "change 2" && +# old_head=$(git rev-parse HEAD) && +# git svn dcommit -i bar HEAD^ && +# test $old_head = $(git rev-parse HEAD) && +# test refs/heads/my-bar = $(git symbolic-ref HEAD) && +# git log refs/remotes/bar | grep "change 1" && +# ! git log refs/remotes/bar | grep "change 2" && +# git checkout master && +# git branch -D my-bar +# +not ok - 21 able to dcommit to a subdirectory +# +# git svn fetch -i bar && +# git checkout -b my-bar refs/remotes/bar && +# echo abc > d && +# git update-index --add d && +# git commit -m '/bar/d should be in the log' && +# git svn dcommit -i bar && +# test -z "`git diff refs/heads/my-bar refs/remotes/bar`" && +# mkdir newdir && +# echo new > newdir/dir && +# git update-index --add newdir/dir && +# git commit -m 'add a new directory' && +# git svn dcommit -i bar && +# test -z "`git diff refs/heads/my-bar refs/remotes/bar`" && +# echo foo >> newdir/dir && +# git update-index newdir/dir && +# git commit -m 'modify a file in new directory' && +# git svn dcommit -i bar && +# test -z "`git diff refs/heads/my-bar refs/remotes/bar`" +# +not ok - 22 dcommit should not fail with a touched file +# +# test_commit "commit-new-file-foo2" foo2 && +# test-chmtime =-60 foo && +# git svn dcommit +# +not ok - 23 rebase should not fail with a touched file +# +# test-chmtime =-60 foo && +# git svn rebase +# +not ok - 24 able to set-tree to a subdirectory +# +# echo cba > d && +# git update-index d && +# git commit -m 'update /bar/d' && +# git svn set-tree -i bar HEAD && +# test -z "`git diff refs/heads/my-bar refs/remotes/bar`" +# +not ok - 25 git-svn works in a bare repository +# +# mkdir bare-repo && +# ( cd bare-repo && +# git init --bare && +# GIT_DIR=. git svn init "$svnrepo" && +# git svn fetch ) && +# rm -rf bare-repo +# +# failed 20 among 25 test(s) +1..25 +make[3]: [t9100-git-svn-basic.sh] Error 1 (ignored) +*** t9101-git-svn-props.sh *** +ok 1 - checkout working copy from svn +ok 2 - setup some commits to svn +ok 3 - initialize git svn +not ok - 4 fetch revisions from svn +# git svn fetch +not ok - 5 test svn:keywords ignoring +# git checkout -b mybranch ${remotes_git_svn} && +# echo Hi again >> kw.c && +# git commit -a -m "test keywords ignoring" && +# git svn set-tree ${remotes_git_svn}..mybranch && +# git pull . ${remotes_git_svn} +sed: Cannot open file kw.c. +not ok - 6 raw $Id$ found in kw.c +# test '/* $Id$ */' = '' +ok 7 - propset CR on crlf files +not ok - 8 fetch and pull latest from svn and checkout a new wc +# git svn fetch && +# git pull . ${remotes_git_svn} && +# svn_cmd co "$svnrepo" new_wc +not ok - 9 Comparing crlf +# cmp crlf new_wc/crlf +not ok - 10 Comparing ne_crlf +# cmp ne_crlf new_wc/ne_crlf +not ok - 11 Comparing lf +# cmp lf new_wc/lf +not ok - 12 Comparing ne_lf +# cmp ne_lf new_wc/ne_lf +not ok - 13 Comparing cr +# cmp cr new_wc/cr +not ok - 14 Comparing ne_cr +# cmp ne_cr new_wc/ne_cr +not ok - 15 Comparing empty_cr +# cmp empty_cr new_wc/empty_cr +not ok - 16 Comparing empty_lf +# cmp empty_lf new_wc/empty_lf +not ok - 17 Comparing empty +# cmp empty new_wc/empty +not ok - 18 Comparing empty_crlf +# cmp empty_crlf new_wc/empty_crlf +ok 19 - Set CRLF on cr files +not ok - 20 fetch and pull latest from svn +# git svn fetch && git pull . ${remotes_git_svn} +fatal: Cannot open 'cr': No such file or directory +fatal: Cannot open 'ne_cr': No such file or directory +not ok - 21 CRLF + $Id$ +# test 'f39bd49beefa1dff130e47c7a24777dfc3657ba2' = '' +not ok - 22 CRLF + $Id$ (no newline) +# test '41c5e77993f143876592cd19b5e9a6f6d2e4ff8a' = '' +not ok - 23 test show-ignore +# +# ( +# cd test_wc && +# mkdir -p deeply/nested/directory && +# touch deeply/nested/directory/.keep && +# svn_cmd add deeply && +# svn_cmd up && +# svn_cmd propset -R svn:ignore ' +# no-such-file* +# ' . +# svn_cmd commit -m 'propset svn:ignore' +# ) && +# git svn show-ignore > show-ignore.got && +# cmp show-ignore.expect show-ignore.got +# +not ok - 24 test create-ignore +# +# git svn fetch && git pull . remotes/git-svn && +# git svn create-ignore && +# cmp ./.gitignore create-ignore.expect && +# cmp ./deeply/.gitignore create-ignore.expect && +# cmp ./deeply/nested/.gitignore create-ignore.expect && +# cmp ./deeply/nested/directory/.gitignore create-ignore.expect && +# git ls-files -s | grep gitignore | cmp - create-ignore-index.expect +# +not ok - 25 test propget +# +# git svn propget svn:ignore . | cmp - prop.expect && +# cd deeply && +# git svn propget svn:ignore . | cmp - ../prop.expect && +# git svn propget svn:entry:committed-rev nested/directory/.keep | cmp - ../prop2.expect && +# git svn propget svn:ignore .. | cmp - ../prop.expect && +# git svn propget svn:ignore nested/ | cmp - ../prop.expect && +# git svn propget svn:ignore ./nested | cmp - ../prop.expect && +# git svn propget svn:ignore .././deeply/nested | cmp - ../prop.expect +# +not ok - 26 test proplist +# +# git svn proplist . | cmp - prop.expect && +# git svn proplist nested/directory/.keep | cmp - prop2.expect +# +# failed 21 among 26 test(s) +1..26 +make[3]: [t9101-git-svn-props.sh] Error 1 (ignored) +*** t9102-git-svn-deep-rmdir.sh *** +ok 1 - initialize repo +not ok - 2 mirror via git svn +# +# git svn init "$svnrepo" && +# git svn fetch && +# git checkout -f -b test-rmdir ${remotes_git_svn} +# +not ok - 3 Try a commit on rmdir +# +# git rm -f deeply/nested/directory/number/2/another && +# git commit -a -m "remove another" && +# git svn set-tree --rmdir HEAD && +# svn_cmd ls -R "$svnrepo" | grep ^deeply/nested/directory/number/1 +# +# failed 2 among 3 test(s) +1..3 +make[3]: [t9102-git-svn-deep-rmdir.sh] Error 1 (ignored) +*** t9103-git-svn-tracked-directory-removed.sh *** +ok 1 - make history for tracking +not ok - 2 clone repo with git +# +# git svn clone -s "$svnrepo" x && +# test -f x/FOLLOWME && +# test ! -f x/README +# +not ok - 3 make sure r2 still has old file +# +# cd x && +# test -n "$(git svn find-rev r1)" && +# git reset --hard $(git svn find-rev r1) && +# test -f README && +# test ! -f FOLLOWME && +# test x$(git svn find-rev r2) = x +# +# failed 2 among 3 test(s) +1..3 +make[3]: [t9103-git-svn-tracked-directory-removed.sh] Error 1 (ignored) +*** t9104-git-svn-follow-parent.sh *** +ok 1 - initialize repo +not ok - 2 init and fetch a moved directory +# +# git svn init --minimize-url -i thunk "$svnrepo"/thunk && +# git svn fetch -i thunk && +# test "`git rev-parse --verify refs/remotes/thunk@2`" \ +# = "`git rev-parse --verify refs/remotes/thunk~1`" && +# test "`git cat-file blob refs/remotes/thunk:readme |\ +# sed -n -e "3p"`" = goodbye && +# test -z "`git config --get svn-remote.svn.fetch \ +# "^trunk:refs/remotes/thunk@2$"`" +# +not ok - 3 init and fetch from one svn-remote +# +# git config svn-remote.svn.url "$svnrepo" && +# git config --add svn-remote.svn.fetch \ +# trunk:refs/remotes/svn/trunk && +# git config --add svn-remote.svn.fetch \ +# thunk:refs/remotes/svn/thunk && +# git svn fetch -i svn/thunk && +# test "`git rev-parse --verify refs/remotes/svn/trunk`" \ +# = "`git rev-parse --verify refs/remotes/svn/thunk~1`" && +# test "`git cat-file blob refs/remotes/svn/thunk:readme |\ +# sed -n -e "3p"`" = goodbye +# +not ok - 4 follow deleted parent +# +# (svn_cmd cp -m "resurrecting trunk as junk" \ +# "$svnrepo"/trunk@2 "$svnrepo"/junk || +# svn cp -m "resurrecting trunk as junk" \ +# -r2 "$svnrepo"/trunk "$svnrepo"/junk) && +# git config --add svn-remote.svn.fetch \ +# junk:refs/remotes/svn/junk && +# git svn fetch -i svn/thunk && +# git svn fetch -i svn/junk && +# test -z "`git diff svn/junk svn/trunk`" && +# test "`git merge-base svn/junk svn/trunk`" \ +# = "`git rev-parse svn/trunk`" +# +ok 5 - follow larger parent +not ok - 6 follow higher-level parent +# +# svn mkdir -m "follow higher-level parent" "$svnrepo"/blob && +# svn co "$svnrepo"/blob blob && +# ( +# cd blob && +# echo hi > hi && +# svn add hi && +# svn commit -m "hihi" +# ) && +# svn mkdir -m "new glob at top level" "$svnrepo"/glob && +# svn mv -m "move blob down a level" "$svnrepo"/blob "$svnrepo"/glob/blob && +# git svn init --minimize-url -i blob "$svnrepo"/glob/blob && +# git svn fetch -i blob +# +not ok - 7 follow deleted directory +# +# svn_cmd mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye && +# svn_cmd rm -m "remove glob" "$svnrepo"/glob && +# git svn init --minimize-url -i glob "$svnrepo"/glob && +# git svn fetch -i glob && +# test "`git cat-file blob refs/remotes/glob:blob/bye`" = hi && +# test "`git ls-tree refs/remotes/glob | wc -l `" -eq 1 +# +not ok - 8 follow-parent avoids deleting relevant info +# +# mkdir -p import/trunk/subversion/bindings/swig/perl/t && +# for i in a b c ; do \ +# echo $i > import/trunk/subversion/bindings/swig/perl/$i.pm && +# echo _$i > import/trunk/subversion/bindings/swig/perl/t/$i.t; \ +# done && +# echo "bad delete test" > \ +# import/trunk/subversion/bindings/swig/perl/t/larger-parent && +# echo "bad delete test 2" > \ +# import/trunk/subversion/bindings/swig/perl/another-larger && +# ( +# cd import && +# svn import -m "r9270 test" . "$svnrepo"/r9270 +# ) && +# svn_cmd co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 && +# ( +# cd r9270 && +# svn mkdir native && +# svn mv t native/t && +# for i in a b c +# do +# svn mv $i.pm native/$i.pm +# done && +# echo z >>native/t/c.t && +# poke native/t/c.t && +# svn commit -m "reorg test" +# ) && +# git svn init --minimize-url -i r9270-t \ +# "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t && +# git svn fetch -i r9270-t && +# test `git rev-list r9270-t | wc -l` -eq 2 && +# test "`git ls-tree --name-only r9270-t~1`" = \ +# "`git ls-tree --name-only r9270-t`" +# +not ok - 9 track initial change if it was only made to parent +# +# svn_cmd cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk && +# git svn init --minimize-url -i r9270-d \ +# "$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t && +# git svn fetch -i r9270-d && +# test `git rev-list r9270-d | wc -l` -eq 3 && +# test "`git ls-tree --name-only r9270-t`" = \ +# "`git ls-tree --name-only r9270-d`" && +# test "`git rev-parse r9270-t`" = \ +# "`git rev-parse r9270-d~1`" +# +not ok - 10 follow-parent is atomic +# +# ( +# cd wc && +# svn_cmd up && +# svn_cmd mkdir stunk && +# echo "trunk stunk" > stunk/readme && +# svn_cmd add stunk/readme && +# svn_cmd ci -m "trunk stunk" && +# echo "stunk like junk" >> stunk/readme && +# svn_cmd ci -m "really stunk" && +# echo "stink stank stunk" >> stunk/readme && +# svn_cmd ci -m "even the grinch agrees" +# ) && +# svn_cmd copy -m "stunk flunked" "$svnrepo"/stunk "$svnrepo"/flunk && +# { svn cp -m "early stunk flunked too" \ +# "$svnrepo"/stunk@17 "$svnrepo"/flunked || +# svn_cmd cp -m "early stunk flunked too" \ +# -r17 "$svnrepo"/stunk "$svnrepo"/flunked; } && +# git svn init --minimize-url -i stunk "$svnrepo"/stunk && +# git svn fetch -i stunk && +# git update-ref refs/remotes/flunk@18 refs/remotes/stunk~2 && +# git update-ref -d refs/remotes/stunk && +# git config --unset svn-remote.svn.fetch stunk && +# mkdir -p "$GIT_DIR"/svn/refs/remotes/flunk@18 && +# rev_map=$(cd "$GIT_DIR"/svn/refs/remotes/stunk && ls .rev_map*) && +# dd if="$GIT_DIR"/svn/refs/remotes/stunk/$rev_map \ +# of="$GIT_DIR"/svn/refs/remotes/flunk@18/$rev_map bs=24 count=1 && +# rm -rf "$GIT_DIR"/svn/refs/remotes/stunk && +# git svn init --minimize-url -i flunk "$svnrepo"/flunk && +# git svn fetch -i flunk && +# git svn init --minimize-url -i stunk "$svnrepo"/stunk && +# git svn fetch -i stunk && +# git svn init --minimize-url -i flunked "$svnrepo"/flunked && +# git svn fetch -i flunked && +# test "`git rev-parse --verify refs/remotes/flunk@18`" \ +# = "`git rev-parse --verify refs/remotes/stunk`" && +# test "`git rev-parse --verify refs/remotes/flunk~1`" \ +# = "`git rev-parse --verify refs/remotes/stunk`" && +# test "`git rev-parse --verify refs/remotes/flunked~1`" \ +# = "`git rev-parse --verify refs/remotes/stunk~1`" +# +not ok - 11 track multi-parent paths +# +# svn_cmd cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob && +# git svn multi-fetch && +# test `git cat-file commit refs/remotes/glob | \ +# grep "^parent " | wc -l` -eq 2 +# +not ok - 12 multi-fetch continues to work +# +# git svn multi-fetch +# +not ok - 13 multi-fetch works off a 'clean' repository +# +# rm -r "$GIT_DIR/svn" "$GIT_DIR/refs/remotes" "$GIT_DIR/logs" && +# mkdir "$GIT_DIR/svn" && +# git svn multi-fetch +# +# failed 11 among 13 test(s) +1..13 +make[3]: [t9104-git-svn-follow-parent.sh] Error 1 (ignored) +*** t9105-git-svn-commit-diff.sh *** +ok 1 - initialize repo +not ok - 2 test the commit-diff command +# +# test -n "$prev" && test -n "$head" && +# git svn commit-diff -r1 "$prev" "$head" "$svnrepo" && +# svn_cmd co "$svnrepo" wc && +# cmp readme wc/readme +# +not ok - 3 commit-diff to a sub-directory (with git svn config) +# +# svn_cmd import -m "sub-directory" import "$svnrepo"/subdir && +# git svn init --minimize-url "$svnrepo"/subdir && +# git svn fetch && +# git svn commit-diff -r3 "$prev" "$head" && +# svn_cmd cat "$svnrepo"/subdir/readme > readme.2 && +# cmp readme readme.2 +# +# failed 2 among 3 test(s) +1..3 +make[3]: [t9105-git-svn-commit-diff.sh] Error 1 (ignored) +*** t9106-git-svn-commit-diff-clobber.sh *** +ok 1 - initialize repo +ok 2 - commit change from svn side +not ok - 3 commit conflicting change from git +# +# echo second line from git >> file && +# git commit -a -m "second line from git" && +# test_must_fail git svn commit-diff -r1 HEAD~1 HEAD "$svnrepo" +# +not ok - 4 commit complementing change from git +# +# git reset --hard HEAD~1 && +# echo second line from svn >> file && +# git commit -a -m "second line from svn" && +# echo third line from git >> file && +# git commit -a -m "third line from git" && +# git svn commit-diff -r2 HEAD~1 HEAD "$svnrepo" +# +not ok - 5 dcommit fails to commit because of conflict +# +# git svn init "$svnrepo" && +# git svn fetch && +# git reset --hard refs/${remotes_git_svn} && +# svn_cmd co "$svnrepo" t.svn && +# ( +# cd t.svn && +# echo fourth line from svn >>file && +# poke file && +# svn_cmd commit -m "fourth line from svn" +# ) && +# rm -rf t.svn && +# echo "fourth line from git" >> file && +# git commit -a -m "fourth line from git" && +# test_must_fail git svn dcommit +# +not ok - 6 dcommit does the svn equivalent of an index merge +# +# git reset --hard refs/remotes/git-svn && +# echo 'index merge' > file2 && +# git update-index --add file2 && +# git commit -a -m 'index merge' && +# echo 'more changes' >> file2 && +# git update-index file2 && +# git commit -a -m 'more changes' && +# git svn dcommit +# +ok 7 - commit another change from svn side +not ok - 8 multiple dcommit from git svn will not clobber svn +# +# git reset --hard refs/remotes/git-svn && +# echo new file >> new-file && +# git update-index --add new-file && +# git commit -a -m 'new file' && +# echo clobber > file && +# git commit -a -m 'clobber' && +# test_must_fail git svn dcommit +# +not ok - 9 check that rebase really failed +# +# test -d .git/rebase-apply +# +not ok - 10 resolve, continue the rebase and dcommit +# +# echo clobber and I really mean it > file && +# git update-index file && +# git rebase --continue && +# git svn dcommit +# +# failed 7 among 10 test(s) +1..10 +make[3]: [t9106-git-svn-commit-diff-clobber.sh] Error 1 (ignored) +*** t9107-git-svn-migrate.sh *** +not ok - 1 setup old-looking metadata +# +# cp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn && +# mkdir import && +# ( +# cd import && +# for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 +# do +# mkdir -p $i && +# echo hello >>$i/README || +# exit 1 +# done && +# svn_cmd import -m test . "$svnrepo" +# ) && +# git svn init "$svnrepo" && +# git svn fetch && +# rm -rf "$GIT_DIR"/svn && +# git update-ref refs/heads/git-svn-HEAD refs/${remotes_git_svn} && +# git update-ref refs/heads/svn-HEAD refs/${remotes_git_svn} && +# git update-ref -d refs/${remotes_git_svn} refs/${remotes_git_svn} +# +fatal: Needed a single revision +not ok - 2 git-svn-HEAD is a real HEAD +# test -n '' +not ok - 3 initialize old-style (v0) git svn layout +# +# mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info && +# echo "$svnrepo" > "$GIT_DIR"/git-svn/info/url && +# echo "$svnrepo" > "$GIT_DIR"/svn/info/url && +# git svn migrate && +# ! test -d "$GIT_DIR"/git svn && +# git rev-parse --verify refs/${remotes_git_svn}^0 && +# git rev-parse --verify refs/remotes/svn^0 && +# test "$(git config --get svn-remote.svn.url)" = "$svnrepo" && +# test `git config --get svn-remote.svn.fetch` = \ +# ":refs/${remotes_git_svn}" +# +not ok - 4 initialize a multi-repository repo +# +# git svn init "$svnrepo" -T trunk -t tags -b branches && +# git config --get-all svn-remote.svn.fetch > fetch.out && +# grep "^trunk:refs/remotes/trunk$" fetch.out && +# test -n "`git config --get svn-remote.svn.branches \ +# "^branches/\*:refs/remotes/\*$"`" && +# test -n "`git config --get svn-remote.svn.tags \ +# "^tags/\*:refs/remotes/tags/\*$"`" && +# git config --unset svn-remote.svn.branches \ +# "^branches/\*:refs/remotes/\*$" && +# git config --unset svn-remote.svn.tags \ +# "^tags/\*:refs/remotes/tags/\*$" && +# git config --add svn-remote.svn.fetch "branches/a:refs/remotes/a" && +# git config --add svn-remote.svn.fetch "branches/b:refs/remotes/b" && +# for i in tags/0.1 tags/0.2 tags/0.3; do +# git config --add svn-remote.svn.fetch \ +# $i:refs/remotes/$i || exit 1; done && +# git config --get-all svn-remote.svn.fetch > fetch.out && +# grep "^trunk:refs/remotes/trunk$" fetch.out && +# grep "^branches/a:refs/remotes/a$" fetch.out && +# grep "^branches/b:refs/remotes/b$" fetch.out && +# grep "^tags/0\.1:refs/remotes/tags/0\.1$" fetch.out && +# grep "^tags/0\.2:refs/remotes/tags/0\.2$" fetch.out && +# grep "^tags/0\.3:refs/remotes/tags/0\.3$" fetch.out && +# grep "^:refs/${remotes_git_svn}" fetch.out +# +not ok - 5 multi-fetch works on partial urls + paths +# +# git svn multi-fetch && +# for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do +# git rev-parse --verify refs/remotes/$i^0 >> refs.out || exit 1; +# done && +# test -z "`sort < refs.out | uniq -d`" && +# for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do +# for j in trunk a b tags/0.1 tags/0.2 tags/0.3; do +# if test $j != $i; then continue; fi +# test -z "`git diff refs/remotes/$i refs/remotes/$j`" ||exit 1; done; done +# +not ok - 6 migrate --minimize on old inited layout +# +# git config --unset-all svn-remote.svn.fetch && +# git config --unset-all svn-remote.svn.url && +# rm -rf "$GIT_DIR"/svn && +# for i in `cat fetch.out`; do +# path=`expr $i : "\([^:]*\):.*$"` +# ref=`expr $i : "[^:]*:\(refs/remotes/.*\)$"` +# if test -z "$ref"; then continue; fi +# if test -n "$path"; then path="/$path"; fi +# ( mkdir -p "$GIT_DIR"/svn/$ref/info/ && +# echo "$svnrepo"$path > "$GIT_DIR"/svn/$ref/info/url ) || exit 1; +# done && +# git svn migrate --minimize && +# test -z "`git config -l | grep "^svn-remote\.git-svn\."`" && +# git config --get-all svn-remote.svn.fetch > fetch.out && +# grep "^trunk:refs/remotes/trunk$" fetch.out && +# grep "^branches/a:refs/remotes/a$" fetch.out && +# grep "^branches/b:refs/remotes/b$" fetch.out && +# grep "^tags/0\.1:refs/remotes/tags/0\.1$" fetch.out && +# grep "^tags/0\.2:refs/remotes/tags/0\.2$" fetch.out && +# grep "^tags/0\.3:refs/remotes/tags/0\.3$" fetch.out && +# grep "^:refs/${remotes_git_svn}" fetch.out +# +not ok - 7 .rev_db auto-converted to .rev_map.UUID +# +# git svn fetch -i trunk && +# test -z "$(ls "$GIT_DIR"/svn/refs/remotes/trunk/.rev_db.* 2>/dev/null)" && +# expect="$(ls "$GIT_DIR"/svn/refs/remotes/trunk/.rev_map.*)" && +# test -n "$expect" && +# rev_db="$(echo $expect | sed -e "s,_map,_db,")" && +# convert_to_rev_db "$expect" "$rev_db" && +# rm -f "$expect" && +# test -f "$rev_db" && +# git svn fetch -i trunk && +# test -z "$(ls "$GIT_DIR"/svn/refs/remotes/trunk/.rev_db.* 2>/dev/null)" && +# test ! -e "$GIT_DIR"/svn/refs/remotes/trunk/.rev_db && +# test -f "$expect" +# +# failed 7 among 7 test(s) +1..7 +make[3]: [t9107-git-svn-migrate.sh] Error 1 (ignored) +*** t9108-git-svn-glob.sh *** +not ok - 1 test refspec globbing +# +# mkdir -p trunk/src/a trunk/src/b trunk/doc && +# echo "hello world" > trunk/src/a/readme && +# echo "goodbye world" > trunk/src/b/readme && +# svn_cmd import -m "initial" trunk "$svnrepo"/trunk && +# svn_cmd co "$svnrepo" tmp && +# ( +# cd tmp && +# mkdir branches tags && +# svn_cmd add branches tags && +# svn_cmd cp trunk branches/start && +# svn_cmd commit -m "start a new branch" && +# svn_cmd up && +# echo "hi" >> branches/start/src/b/readme && +# poke branches/start/src/b/readme && +# echo "hey" >> branches/start/src/a/readme && +# poke branches/start/src/a/readme && +# svn_cmd commit -m "hi" && +# svn_cmd up && +# svn_cmd cp branches/start tags/end && +# echo "bye" >> tags/end/src/b/readme && +# poke tags/end/src/b/readme && +# echo "aye" >> tags/end/src/a/readme && +# poke tags/end/src/a/readme && +# svn_cmd commit -m "the end" && +# echo "byebye" >> tags/end/src/b/readme && +# poke tags/end/src/b/readme && +# svn_cmd commit -m "nothing to see here" +# ) && +# git config --add svn-remote.svn.url "$svnrepo" && +# git config --add svn-remote.svn.fetch \ +# "trunk/src/a:refs/remotes/trunk" && +# git config --add svn-remote.svn.branches \ +# "branches/*/src/a:refs/remotes/branches/*" && +# git config --add svn-remote.svn.tags\ +# "tags/*/src/a:refs/remotes/tags/*" && +# git svn multi-fetch && +# git log --pretty=oneline refs/remotes/tags/end | \ +# sed -e "s/^.\{41\}//" > output.end && +# test_cmp expect.end output.end && +# test "`git rev-parse refs/remotes/tags/end~1`" = \ +# "`git rev-parse refs/remotes/branches/start`" && +# test "`git rev-parse refs/remotes/branches/start~2`" = \ +# "`git rev-parse refs/remotes/trunk`" && +# test_must_fail git rev-parse refs/remotes/tags/end@3 +# +not ok - 2 test left-hand-side only globbing +# +# git config --add svn-remote.two.url "$svnrepo" && +# git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk && +# git config --add svn-remote.two.branches \ +# "branches/*:refs/remotes/two/branches/*" && +# git config --add svn-remote.two.tags \ +# "tags/*:refs/remotes/two/tags/*" && +# ( +# cd tmp && +# echo "try try" >> tags/end/src/b/readme && +# poke tags/end/src/b/readme && +# svn_cmd commit -m "try to try" +# ) && +# git svn fetch two && +# test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 && +# test `git rev-list refs/remotes/two/branches/start | wc -l` -eq 3 && +# test `git rev-parse refs/remotes/two/branches/start~2` = \ +# `git rev-parse refs/remotes/two/trunk` && +# test `git rev-parse refs/remotes/two/tags/end~3` = \ +# `git rev-parse refs/remotes/two/branches/start` && +# git log --pretty=oneline refs/remotes/two/tags/end | \ +# sed -e "s/^.\{41\}//" > output.two && +# test_cmp expect.two output.two +# +ok 3 - test disallow multi-globs +# failed 2 among 3 test(s) +1..3 +make[3]: [t9108-git-svn-glob.sh] Error 1 (ignored) +*** t9109-git-svn-multi-glob.sh *** +not ok - 1 test refspec globbing +# +# mkdir -p trunk/src/a trunk/src/b trunk/doc && +# echo "hello world" > trunk/src/a/readme && +# echo "goodbye world" > trunk/src/b/readme && +# svn_cmd import -m "initial" trunk "$svnrepo"/trunk && +# svn_cmd co "$svnrepo" tmp && +# ( +# cd tmp && +# mkdir branches branches/v1 tags && +# svn_cmd add branches tags && +# svn_cmd cp trunk branches/v1/start && +# svn_cmd commit -m "start a new branch" && +# svn_cmd up && +# echo "hi" >> branches/v1/start/src/b/readme && +# poke branches/v1/start/src/b/readme && +# echo "hey" >> branches/v1/start/src/a/readme && +# poke branches/v1/start/src/a/readme && +# svn_cmd commit -m "hi" && +# svn_cmd up && +# svn_cmd cp branches/v1/start tags/end && +# echo "bye" >> tags/end/src/b/readme && +# poke tags/end/src/b/readme && +# echo "aye" >> tags/end/src/a/readme && +# poke tags/end/src/a/readme && +# svn_cmd commit -m "the end" && +# echo "byebye" >> tags/end/src/b/readme && +# poke tags/end/src/b/readme && +# svn_cmd commit -m "nothing to see here" +# ) && +# git config --add svn-remote.svn.url "$svnrepo" && +# git config --add svn-remote.svn.fetch \ +# "trunk/src/a:refs/remotes/trunk" && +# git config --add svn-remote.svn.branches \ +# "branches/*/*/src/a:refs/remotes/branches/*/*" && +# git config --add svn-remote.svn.tags\ +# "tags/*/src/a:refs/remotes/tags/*" && +# git svn multi-fetch && +# git log --pretty=oneline refs/remotes/tags/end | \ +# sed -e "s/^.\{41\}//" > output.end && +# test_cmp expect.end output.end && +# test "`git rev-parse refs/remotes/tags/end~1`" = \ +# "`git rev-parse refs/remotes/branches/v1/start`" && +# test "`git rev-parse refs/remotes/branches/v1/start~2`" = \ +# "`git rev-parse refs/remotes/trunk`" && +# test_must_fail git rev-parse refs/remotes/tags/end@3 +# +not ok - 2 test left-hand-side only globbing +# +# git config --add svn-remote.two.url "$svnrepo" && +# git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk && +# git config --add svn-remote.two.branches \ +# "branches/*/*:refs/remotes/two/branches/*/*" && +# git config --add svn-remote.two.tags \ +# "tags/*:refs/remotes/two/tags/*" && +# ( +# cd tmp && +# echo "try try" >> tags/end/src/b/readme && +# poke tags/end/src/b/readme && +# svn_cmd commit -m "try to try" +# ) && +# git svn fetch two && +# test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 && +# test `git rev-list refs/remotes/two/branches/v1/start | wc -l` -eq 3 && +# test `git rev-parse refs/remotes/two/branches/v1/start~2` = \ +# `git rev-parse refs/remotes/two/trunk` && +# test `git rev-parse refs/remotes/two/tags/end~3` = \ +# `git rev-parse refs/remotes/two/branches/v1/start` && +# git log --pretty=oneline refs/remotes/two/tags/end | \ +# sed -e "s/^.\{41\}//" > output.two && +# test_cmp expect.two output.two +# +not ok - 3 test another branch +# +# ( +# cd tmp && +# mkdir branches/v2 && +# svn_cmd add branches/v2 && +# svn_cmd cp trunk branches/v2/start && +# svn_cmd commit -m "Another versioned branch" && +# svn_cmd up && +# echo "hello" >> branches/v2/start/src/b/readme && +# poke branches/v2/start/src/b/readme && +# echo "howdy" >> branches/v2/start/src/a/readme && +# poke branches/v2/start/src/a/readme && +# svn_cmd commit -m "Changed 2 in v2/start" && +# svn_cmd up && +# svn_cmd cp branches/v2/start tags/next && +# echo "bye" >> tags/next/src/b/readme && +# poke tags/next/src/b/readme && +# echo "aye" >> tags/next/src/a/readme && +# poke tags/next/src/a/readme && +# svn_cmd commit -m "adding more" && +# echo "byebye" >> tags/next/src/b/readme && +# poke tags/next/src/b/readme && +# svn_cmd commit -m "adios" +# ) && +# git config --add svn-remote.four.url "$svnrepo" && +# git config --add svn-remote.four.fetch trunk:refs/remotes/four/trunk && +# git config --add svn-remote.four.branches \ +# "branches/*/*:refs/remotes/four/branches/*/*" && +# git config --add svn-remote.four.tags \ +# "tags/*:refs/remotes/four/tags/*" && +# git svn fetch four && +# test `git rev-list refs/remotes/four/tags/next | wc -l` -eq 5 && +# test `git rev-list refs/remotes/four/branches/v2/start | wc -l` -eq 3 && +# test `git rev-parse refs/remotes/four/branches/v2/start~2` = \ +# `git rev-parse refs/remotes/four/trunk` && +# test `git rev-parse refs/remotes/four/tags/next~2` = \ +# `git rev-parse refs/remotes/four/branches/v2/start` && +# git log --pretty=oneline refs/remotes/four/tags/next | \ +# sed -e "s/^.\{41\}//" > output.four && +# test_cmp expect.four output.four +# +ok 4 - test disallow multiple globs +# failed 3 among 4 test(s) +1..4 +make[3]: [t9109-git-svn-multi-glob.sh] Error 1 (ignored) +*** t9110-git-svn-use-svm-props.sh *** +not ok - 1 load svm repo +# +# svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9110/svm.dump && +# git svn init --minimize-url -R arr -i bar "$svnrepo"/mirror/arr && +# git svn init --minimize-url -R argh -i dir "$svnrepo"/mirror/argh && +# git svn init --minimize-url -R argh -i e \ +# "$svnrepo"/mirror/argh/a/b/c/d/e && +# git config svn.useSvmProps true && +# git svn fetch --all +# +not ok - 2 verify metadata for /bar +# +# git cat-file commit refs/remotes/bar | grep '^git-svn-id: http://mayonaise/svnrepo/bar@12 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~1 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@11 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~2 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@10 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~3 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@9 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~4 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@6 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~5 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@1 161ce429-a9dd-4828-af4a-52023f968c89$' +# +not ok - 3 verify metadata for /dir/a/b/c/d/e +# +# git cat-file commit refs/remotes/e | grep '^git-svn-id: http://mayonaise/svnrepo/dir/a/b/c/d/e@1 161ce429-a9dd-4828-af4a-52023f968c89$' +# +not ok - 4 verify metadata for /dir +# +# git cat-file commit refs/remotes/dir | grep '^git-svn-id: http://mayonaise/svnrepo/dir@2 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/dir~1 | grep '^git-svn-id: http://mayonaise/svnrepo/dir@1 161ce429-a9dd-4828-af4a-52023f968c89$' +# +fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions +not ok - 5 find commit based on SVN revision number +# +# git svn find-rev r12 | +# grep HEAD +# +not ok - 6 empty rebase +# +# git svn rebase +# +# failed 6 among 6 test(s) +1..6 +make[3]: [t9110-git-svn-use-svm-props.sh] Error 1 (ignored) +*** t9111-git-svn-use-svnsync-props.sh *** +not ok - 1 load svnsync repo +# +# svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9111/svnsync.dump && +# git svn init --minimize-url -R arr -i bar "$svnrepo"/bar && +# git svn init --minimize-url -R argh -i dir "$svnrepo"/dir && +# git svn init --minimize-url -R argh -i e "$svnrepo"/dir/a/b/c/d/e && +# git config svn.useSvnsyncProps true && +# git svn fetch --all +# +not ok - 2 verify metadata for /bar +# +# git cat-file commit refs/remotes/bar | grep '^git-svn-id: http://mayonaise/svnrepo/bar@12 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~1 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@11 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~2 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@10 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~3 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@9 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~4 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@6 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/bar~5 | grep '^git-svn-id: http://mayonaise/svnrepo/bar@1 161ce429-a9dd-4828-af4a-52023f968c89$' +# +not ok - 3 verify metadata for /dir/a/b/c/d/e +# +# git cat-file commit refs/remotes/e | grep '^git-svn-id: http://mayonaise/svnrepo/dir/a/b/c/d/e@1 161ce429-a9dd-4828-af4a-52023f968c89$' +# +not ok - 4 verify metadata for /dir +# +# git cat-file commit refs/remotes/dir | grep '^git-svn-id: http://mayonaise/svnrepo/dir@2 161ce429-a9dd-4828-af4a-52023f968c89$' && +# git cat-file commit refs/remotes/dir~1 | grep '^git-svn-id: http://mayonaise/svnrepo/dir@1 161ce429-a9dd-4828-af4a-52023f968c89$' +# +# failed 4 among 4 test(s) +1..4 +make[3]: [t9111-git-svn-use-svnsync-props.sh] Error 1 (ignored) +*** t9112-git-svn-md5less-file.sh *** +ok 1 - load svn dumpfile +ok 2 - initialize git svn +not ok - 3 fetch revisions from svn +# git svn fetch +# failed 1 among 3 test(s) +1..3 +make[3]: [t9112-git-svn-md5less-file.sh] Error 1 (ignored) +*** t9113-git-svn-dcommit-new-file.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping svnserve test. (set $SVNSERVE_PORT to enable) +*** t9114-git-svn-dcommit-merge.sh *** +ok 1 - setup svn repository +not ok - 2 setup git mirror and merge +# +# git svn init "$svnrepo" -t tags -T trunk -b branches && +# git svn fetch && +# git checkout --track -b svn remotes/trunk && +# git checkout -b merge && +# echo new file > new_file && +# git add new_file && +# git commit -a -m "New file" && +# echo hello >> README && +# git commit -a -m "hello" && +# echo add some stuff >> new_file && +# git commit -a -m "add some stuff" && +# git checkout svn && +# mv -f README tmp && +# echo friend > README && +# cat tmp >> README && +# git commit -a -m "friend" && +# git pull . merge +# +not ok - 3 verify pre-merge ancestry +# +# test x`git rev-parse --verify refs/heads/svn^2` = x`git rev-parse --verify refs/heads/merge` && +# git cat-file commit refs/heads/svn^ | grep '^friend$' +# +not ok - 4 git svn dcommit merges +# +# git svn dcommit +# +not ok - 5 verify post-merge ancestry +# +# test x`git rev-parse --verify refs/heads/svn` = x`git rev-parse --verify refs/remotes/trunk ` && +# test x`git rev-parse --verify refs/heads/svn^2` = x`git rev-parse --verify refs/heads/merge` && +# git cat-file commit refs/heads/svn^ | grep '^friend$' +# +not ok - 6 verify merge commit message +# +# git rev-list --pretty=raw -1 refs/heads/svn | grep " Merge branch 'merge' into svn" +# +# failed 5 among 6 test(s) +1..6 +make[3]: [t9114-git-svn-dcommit-merge.sh] Error 1 (ignored) +*** t9115-git-svn-dcommit-funky-renames.sh *** +ok 1 - load repository with strange names +not ok - 2 init and fetch repository +# +# git svn init "$svnrepo" && +# git svn fetch && +# git reset --hard git-svn +# +not ok - 3 create file in existing ugly and empty dir +# +# mkdir -p "#{bad_directory_name}" && +# echo hi > "#{bad_directory_name}/ foo" && +# git update-index --add "#{bad_directory_name}/ foo" && +# git commit -m "new file in ugly parent" && +# git svn dcommit +# +not ok - 4 rename ugly file +# +# git mv "#{bad_directory_name}/ foo" "file name with feces" && +# git commit -m "rename ugly file" && +# git svn dcommit +# +not ok - 5 rename pretty file +# +# echo :x > pretty && +# git update-index --add pretty && +# git commit -m "pretty :x" && +# git svn dcommit && +# mkdir -p regular_dir_name && +# git mv pretty regular_dir_name/pretty && +# git commit -m "moved pretty file" && +# git svn dcommit +# +not ok - 6 rename pretty file into ugly one +# +# git mv regular_dir_name/pretty "#{bad_directory_name}/ booboo" && +# git commit -m booboo && +# git svn dcommit +# +not ok - 7 add a file with plus signs +# +# echo .. > +_+ && +# git update-index --add +_+ && +# git commit -m plus && +# mkdir gtk+ && +# git mv +_+ gtk+/_+_ && +# git commit -m plus_dir && +# git svn dcommit +# +not ok - 8 clone the repository to test rebase +# +# git svn clone "$svnrepo" test-rebase && +# ( +# cd test-rebase && +# echo test-rebase >test-rebase && +# git add test-rebase && +# git commit -m test-rebase +# ) +# +not ok - 9 make a commit to test rebase +# +# echo test-rebase-main > test-rebase-main && +# git add test-rebase-main && +# git commit -m test-rebase-main && +# git svn dcommit +# +not ok - 10 git svn rebase works inside a fresh-cloned repository +# +# cd test-rebase && +# git svn rebase && +# test -e test-rebase-main && +# test -e test-rebase +# +# failed 9 among 10 test(s) +1..10 +make[3]: [t9115-git-svn-dcommit-funky-renames.sh] Error 1 (ignored) +*** t9116-git-svn-log.sh *** +not ok - 1 setup repository and import +# +# mkdir import && +# ( +# cd import && +# for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 +# do +# mkdir -p $i && +# echo hello >>$i/README || +# exit 1 +# done && +# svn_cmd import -m test . "$svnrepo" +# ) && +# git svn init "$svnrepo" -T trunk -b branches -t tags && +# git svn fetch && +# git reset --hard trunk && +# echo bye >> README && +# git commit -a -m bye && +# git svn dcommit && +# git reset --hard a && +# echo why >> FEEDME && +# git update-index --add FEEDME && +# git commit -m feedme && +# git svn dcommit && +# git reset --hard trunk && +# echo aye >> README && +# git commit -a -m aye && +# git svn dcommit && +# git reset --hard b && +# echo spy >> README && +# git commit -a -m spy && +# echo try >> README && +# git commit -a -m try && +# git svn dcommit +# +not ok - 2 run log +# +# git reset --hard a && +# git svn log -r2 trunk | grep ^r2 && +# git svn log -r4 trunk | grep ^r4 && +# git svn log -r3 | grep ^r3 +# +not ok - 3 run log against a from trunk +# +# git reset --hard trunk && +# git svn log -r3 a | grep ^r3 +# +not ok - 4 test ascending revision range +# +# git reset --hard trunk && +# git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 - +# +not ok - 5 test ascending revision range with --show-commit +# +# git reset --hard trunk && +# git svn log --show-commit -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 - +# +not ok - 6 test ascending revision range with --show-commit (sha1) +# +# git svn find-rev r1 >expected-range-r1-r2-r4-sha1 && +# git svn find-rev r2 >>expected-range-r1-r2-r4-sha1 && +# git svn find-rev r4 >>expected-range-r1-r2-r4-sha1 && +# git reset --hard trunk && +# git svn log --show-commit -r 1:4 | grep '^r[0-9]' | cut -d'|' -f2 >out && +# git rev-parse $(cat out) >actual && +# test_cmp expected-range-r1-r2-r4-sha1 actual +# +not ok - 7 test descending revision range +# +# git reset --hard trunk && +# git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4-r2-r1 - +# +not ok - 8 test ascending revision range with unreachable revision +# +# git reset --hard trunk && +# git svn log -r 1:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2 - +# +not ok - 9 test descending revision range with unreachable revision +# +# git reset --hard trunk && +# git svn log -r 3:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2-r1 - +# +not ok - 10 test ascending revision range with unreachable upper boundary revision and 1 commit +# +# git reset --hard trunk && +# git svn log -r 2:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 - +# +not ok - 11 test descending revision range with unreachable upper boundary revision and 1 commit +# +# git reset --hard trunk && +# git svn log -r 3:2 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 - +# +not ok - 12 test ascending revision range with unreachable lower boundary revision and 1 commit +# +# git reset --hard trunk && +# git svn log -r 3:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - +# +not ok - 13 test descending revision range with unreachable lower boundary revision and 1 commit +# +# git reset --hard trunk && +# git svn log -r 4:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - +# +not ok - 14 test ascending revision range with unreachable boundary revisions and no commits +# +# git reset --hard trunk && +# git svn log -r 5:6 | test_cmp expected-separator - +# +not ok - 15 test descending revision range with unreachable boundary revisions and no commits +# +# git reset --hard trunk && +# git svn log -r 6:5 | test_cmp expected-separator - +# +not ok - 16 test ascending revision range with unreachable boundary revisions and 1 commit +# +# git reset --hard trunk && +# git svn log -r 3:5 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - +# +not ok - 17 test descending revision range with unreachable boundary revisions and 1 commit +# +# git reset --hard trunk && +# git svn log -r 5:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - +# +# failed 17 among 17 test(s) +1..17 +make[3]: [t9116-git-svn-log.sh] Error 1 (ignored) +*** t9117-git-svn-init-clone.sh *** +ok 1 - setup svnrepo +not ok - 2 basic clone +# +# test ! -d trunk && +# git svn clone "$svnrepo"/project/trunk && +# test -d trunk/.git/svn && +# test -e trunk/foo && +# rm -rf trunk +# +not ok - 3 clone to target directory +# +# test ! -d target && +# git svn clone "$svnrepo"/project/trunk target && +# test -d target/.git/svn && +# test -e target/foo && +# rm -rf target +# +not ok - 4 clone with --stdlayout +# +# test ! -d project && +# git svn clone -s "$svnrepo"/project && +# test -d project/.git/svn && +# test -e project/foo && +# rm -rf project +# +not ok - 5 clone to target directory with --stdlayout +# +# test ! -d target && +# git svn clone -s "$svnrepo"/project target && +# test -d target/.git/svn && +# test -e target/foo && +# rm -rf target +# +# failed 4 among 5 test(s) +1..5 +make[3]: [t9117-git-svn-init-clone.sh] Error 1 (ignored) +*** t9118-git-svn-funky-branch-names.sh *** +ok 1 - setup svnrepo +not ok - 2 test clone with funky branch names +# +# git svn clone -s "$svnrepo/pr ject" project && +# ( +# cd project && +# git rev-parse "refs/remotes/fun%20plugin" && +# git rev-parse "refs/remotes/more%20fun%20plugin!" && +# git rev-parse "refs/remotes/$scary_ref" && +# git rev-parse "refs/remotes/%2Eleading_dot" && +# git rev-parse "refs/remotes/trailing_dot%2E" && +# git rev-parse "refs/remotes/trailing_dotlock%2Elock" && +# git rev-parse "refs/remotes/not-a%40{0}reflog" +# ) +# +not ok - 3 test dcommit to funky branch +# +# ( +# cd project && +# git reset --hard 'refs/remotes/more%20fun%20plugin!' && +# echo hello >> foo && +# git commit -m 'hello' -- foo && +# git svn dcommit +# ) +# +not ok - 4 test dcommit to scary branch +# +# ( +# cd project && +# git reset --hard "refs/remotes/$scary_ref" && +# echo urls are scary >> foo && +# git commit -m "eep" -- foo && +# git svn dcommit +# ) +# +not ok - 5 test dcommit to trailing_dotlock branch +# +# ( +# cd project && +# git reset --hard "refs/remotes/trailing_dotlock%2Elock" && +# echo who names branches like this anyway? >> foo && +# git commit -m "bar" -- foo && +# git svn dcommit +# ) +# +# failed 4 among 5 test(s) +1..5 +make[3]: [t9118-git-svn-funky-branch-names.sh] Error 1 (ignored) +*** t9119-git-svn-info.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping svn-info test (SVN version: 1.7.19 not supported) +*** t9120-git-svn-clone-with-percent-escapes.sh *** +ok 1 - setup svnrepo +not ok - 2 test clone with percent escapes +# +# git svn clone "$svnrepo/pr%20ject" clone && +# ( +# cd clone && +# git rev-parse refs/${remotes_git_svn} +# ) +# +ok 3 - svn checkout with percent escapes +ok 4 - svn checkout with space +not ok - 5 test clone trunk with percent escapes and minimize-url +# +# git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize && +# ( +# cd minimize && +# git rev-parse refs/${remotes_git_svn} +# ) +# +not ok - 6 test clone trunk with percent escapes +# +# git svn clone "$svnrepo/pr%20ject/trunk" trunk && +# ( +# cd trunk && +# git rev-parse refs/${remotes_git_svn} +# ) +# +not ok - 7 test clone --stdlayout with percent escapes +# +# git svn clone --stdlayout "$svnrepo/pr%20ject" percent && +# ( +# cd percent && +# git rev-parse refs/remotes/trunk^0 && +# git rev-parse refs/remotes/b^0 && +# git rev-parse refs/remotes/tags/v1^0 +# ) +# +not ok - 8 test clone -s with unescaped space +# +# git svn clone -s "$svnrepo/pr ject" space && +# ( +# cd space && +# git rev-parse refs/remotes/trunk^0 && +# git rev-parse refs/remotes/b^0 && +# git rev-parse refs/remotes/tags/v1^0 +# ) +# +# failed 5 among 8 test(s) +1..8 +make[3]: [t9120-git-svn-clone-with-percent-escapes.sh] Error 1 (ignored) +*** t9121-git-svn-fetch-renamed-dir.sh *** +ok 1 - load repository with renamed directory +not ok - 2 init and fetch repository +# +# git svn init "$svnrepo/newname" && +# git svn fetch +# +# failed 1 among 2 test(s) +1..2 +make[3]: [t9121-git-svn-fetch-renamed-dir.sh] Error 1 (ignored) +*** t9122-git-svn-author.sh *** +ok 1 - setup svn repository +not ok - 2 interact with it via git svn +# +# mkdir work.git && +# ( +# cd work.git && +# git svn init "$svnrepo" +# git svn fetch && +# +# echo modification >file && +# test_tick && +# git commit -a -m second && +# +# test_tick && +# git svn dcommit && +# +# echo "further modification" >file && +# test_tick && +# git commit -a -m third && +# +# test_tick && +# git svn --add-author-from dcommit && +# +# echo "yet further modification" >file && +# test_tick && +# git commit -a -m fourth && +# +# test_tick && +# git svn --add-author-from --use-log-author dcommit && +# +# git log && +# +# git show -s HEAD^^ >../actual.2 && +# git show -s HEAD^ >../actual.3 && +# git show -s HEAD >../actual.4 +# +# ) && +# +# # Make sure that --add-author-from without --use-log-author +# # did not affect the authorship information +# myself=$(grep "^Author: " actual.2) && +# unaffected=$(grep "^Author: " actual.3) && +# test "z$myself" = "z$unaffected" && +# +# # Make sure lack of --add-author-from did not add cruft +# ! grep "^ From: A U Thor " actual.2 && +# +# # Make sure --add-author-from added cruft +# grep "^ From: A U Thor " actual.3 && +# grep "^ From: A U Thor " actual.4 && +# +# # Make sure --add-author-from with --use-log-author affected +# # the authorship information +# grep "^Author: A U Thor " actual.4 && +# +# # Make sure there are no commit messages with excess blank lines +# test $(grep "^ " actual.2 | wc -l) = 3 && +# test $(grep "^ " actual.3 | wc -l) = 5 && +# test $(grep "^ " actual.4 | wc -l) = 5 && +# +# # Make sure there are no svn commit messages with excess blank lines +# ( +# cd work.svn && +# svn_cmd up && +# +# test $(svn_cmd log -r2:2 | wc -l) = 5 && +# test $(svn_cmd log -r4:4 | wc -l) = 7 +# ) +# +# failed 1 among 2 test(s) +1..2 +make[3]: [t9122-git-svn-author.sh] Error 1 (ignored) +*** t9123-git-svn-rebuild-with-rewriteroot.sh *** +not ok - 1 init, fetch and checkout repository +# +# git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" && +# git svn fetch && +# git checkout -b mybranch ${remotes_git_svn} +# +not ok - 2 remove rev_map +# +# rm "$GIT_SVN_DIR"/.rev_map.* +# +not ok - 3 rebuild rev_map +# +# git svn rebase >/dev/null +# +# failed 3 among 3 test(s) +1..3 +make[3]: [t9123-git-svn-rebuild-with-rewriteroot.sh] Error 1 (ignored) +*** t9124-git-svn-dcommit-auto-props.sh *** +not ok - 1 initialize git svn +# +# mkdir import && +# ( +# cd import && +# echo foo >foo && +# svn_cmd import -m "import for git svn" . "$svnrepo" +# ) && +# rm -rf import && +# git svn init "$svnrepo" && +# git svn fetch +# +ok 2 - enable auto-props config +not ok - 3 add files matching auto-props +# +# echo "#!$SHELL_PATH" >exec1.sh && +# chmod +x exec1.sh && +# echo "hello" >hello.txt && +# echo bar >bar && +# git add exec1.sh hello.txt bar && +# git commit -m "files for enabled auto-props" && +# git svn dcommit --config-dir=user +# +ok 4 - disable auto-props config +not ok - 5 add files matching disabled auto-props +# +# echo "#$SHELL_PATH" >exec2.sh && +# chmod +x exec2.sh && +# echo "world" >world.txt && +# echo zot >zot && +# git add exec2.sh world.txt zot && +# git commit -m "files for disabled auto-props" && +# git svn dcommit --config-dir=user +# +not ok - 6 check resulting svn repository +# +# ( +# mkdir work && +# cd work && +# svn_cmd co "$svnrepo" && +# cd svnrepo && +# +# # Check properties from first commit. +# test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" && +# test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \ +# "xapplication/x-shellscript" && +# test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" && +# test "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" && +# test "x$(svn_cmd propget svn:mime-type bar)" = "x" && +# +# # Check properties from second commit. +# test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" && +# test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" && +# test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" && +# test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" && +# test "x$(svn_cmd propget svn:mime-type zot)" = "x" +# ) +# +not ok - 7 check renamed file +# +# test -d user && +# generate_auto_props yes > user/config && +# git mv foo foo.sh && +# git commit -m "foo => foo.sh" && +# git svn dcommit --config-dir=user && +# ( +# cd work/svnrepo && +# svn_cmd up && +# test ! -e foo && +# test -e foo.sh && +# test "x$(svn_cmd propget svn:mime-type foo.sh)" = \ +# "xapplication/x-shellscript" && +# test "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF" +# ) +# +# failed 5 among 7 test(s) +1..7 +make[3]: [t9124-git-svn-dcommit-auto-props.sh] Error 1 (ignored) +*** t9125-git-svn-multi-glob-branch-names.sh *** +ok 1 - setup svnrepo +not ok - 2 test clone with multi-glob in branch names +# +# git svn clone -T trunk -b branches/*/* -t tags \ +# "$svnrepo/project" project && +# (cd project && +# git rev-parse "refs/remotes/v14.1/beta" && +# git rev-parse "refs/remotes/v14.1/gold" +# ) +# +not ok - 3 test dcommit to multi-globbed branch +# +# (cd project && +# git reset --hard 'refs/remotes/v14.1/gold' && +# echo hello >> foo && +# git commit -m 'hello' -- foo && +# git svn dcommit +# ) +# +# failed 2 among 3 test(s) +1..3 +make[3]: [t9125-git-svn-multi-glob-branch-names.sh] Error 1 (ignored) +*** t9126-git-svn-follow-deleted-readded-directory.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping svnserve test. (set $SVNSERVE_PORT to enable) +*** t9127-git-svn-partial-rebuild.sh *** +not ok - 1 initialize svnrepo +# +# mkdir import && +# ( +# (cd import && +# mkdir trunk branches tags && +# (cd trunk && +# echo foo > foo +# ) && +# svn_cmd import -m "import for git-svn" . "$svnrepo" >/dev/null && +# svn_cmd copy "$svnrepo"/trunk "$svnrepo"/branches/a \ +# -m "created branch a" +# ) && +# rm -rf import && +# svn_cmd co "$svnrepo"/trunk trunk && +# (cd trunk && +# echo bar >> foo && +# svn_cmd ci -m "updated trunk" +# ) && +# svn_cmd co "$svnrepo"/branches/a a && +# (cd a && +# echo baz >> a && +# svn_cmd add a && +# svn_cmd ci -m "updated a" +# ) && +# git svn init --stdlayout "$svnrepo" +# ) +# +not ok - 2 import an early SVN revision into git +# +# git svn fetch -r1:2 +# +not ok - 3 make full git mirror of SVN +# +# mkdir mirror && +# ( +# (cd mirror && +# git init && +# git svn init --stdlayout "$svnrepo" && +# git svn fetch +# ) +# ) +# +not ok - 4 fetch from git mirror and partial-rebuild +# +# git config --add remote.origin.url "file://$PWD/mirror/.git" && +# git config --add remote.origin.fetch refs/remotes/*:refs/remotes/* && +# git fetch origin && +# git svn fetch +# +# failed 4 among 4 test(s) +1..4 +make[3]: [t9127-git-svn-partial-rebuild.sh] Error 1 (ignored) +*** t9128-git-svn-cmd-branch.sh *** +ok 1 - initialize svnrepo +not ok - 2 import into git +# +# git svn init --stdlayout "$svnrepo" && +# git svn fetch && +# git checkout remotes/trunk +# +not ok - 3 git svn branch tests +# +# git svn branch a && +# base=$(git rev-parse HEAD:) && +# test $base = $(git rev-parse remotes/a:) && +# git svn branch -m "created branch b blah" b && +# test $base = $(git rev-parse remotes/b:) && +# test_must_fail git branch -m "no branchname" && +# git svn branch -n c && +# test_must_fail git rev-parse remotes/c && +# test_must_fail git svn branch a && +# git svn branch -t tag1 && +# test $base = $(git rev-parse remotes/tags/tag1:) && +# git svn branch --tag tag2 && +# test $base = $(git rev-parse remotes/tags/tag2:) && +# git svn tag tag3 && +# test $base = $(git rev-parse remotes/tags/tag3:) && +# git svn tag -m "created tag4 foo" tag4 && +# test $base = $(git rev-parse remotes/tags/tag4:) && +# test_must_fail git svn tag -m "no tagname" && +# git svn tag -n tag5 && +# test_must_fail git rev-parse remotes/tags/tag5 && +# test_must_fail git svn tag tag1 +# +not ok - 4 branch uses correct svn-remote +# +# (svn_cmd co "$svnrepo" svn && +# cd svn && +# mkdir mirror && +# svn_cmd add mirror && +# svn_cmd copy trunk mirror/ && +# svn_cmd copy tags mirror/ && +# svn_cmd copy branches mirror/ && +# svn_cmd ci -m "made mirror" ) && +# rm -rf svn && +# git svn init -s -R mirror --prefix=mirror/ "$svnrepo"/mirror && +# git svn fetch -R mirror && +# git checkout mirror/trunk && +# base=$(git rev-parse HEAD:) && +# git svn branch -m "branch in mirror" d && +# test $base = $(git rev-parse remotes/mirror/d:) && +# test_must_fail git rev-parse remotes/d +# +# failed 3 among 4 test(s) +1..4 +make[3]: [t9128-git-svn-cmd-branch.sh] Error 1 (ignored) +*** t9129-git-svn-i18n-commitencoding.sh *** +not ok - 1 ISO8859-1 setup +# +# mkdir $H && +# svn_cmd import -m "$H test" $H "$svnrepo"/$H && +# git svn clone "$svnrepo"/$H $H +# +not ok - 2 eucJP setup +# +# mkdir $H && +# svn_cmd import -m "$H test" $H "$svnrepo"/$H && +# git svn clone "$svnrepo"/$H $H +# +not ok - 3 ISO-2022-JP setup +# +# mkdir $H && +# svn_cmd import -m "$H test" $H "$svnrepo"/$H && +# git svn clone "$svnrepo"/$H $H +# +not ok - 4 ISO8859-1 commit on git side +# +# ( +# cd $H && +# git config i18n.commitencoding $H && +# git checkout -b t refs/remotes/git-svn && +# echo $H >F && +# git add F && +# git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" +# compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt +# ) +# +not ok - 5 eucJP commit on git side +# +# ( +# cd $H && +# git config i18n.commitencoding $H && +# git checkout -b t refs/remotes/git-svn && +# echo $H >F && +# git add F && +# git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" +# compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt +# ) +# +not ok - 6 ISO-2022-JP commit on git side +# +# ( +# cd $H && +# git config i18n.commitencoding $H && +# git checkout -b t refs/remotes/git-svn && +# echo $H >F && +# git add F && +# git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" +# compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt +# ) +# +not ok - 7 ISO8859-1 dcommit to svn +# +# ( +# cd $H && +# git svn dcommit && +# git cat-file commit HEAD | grep git-svn-id: && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" && +# compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt +# ) +# +not ok - 8 eucJP dcommit to svn +# +# ( +# cd $H && +# git svn dcommit && +# git cat-file commit HEAD | grep git-svn-id: && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" && +# compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt +# ) +# +not ok - 9 ISO-2022-JP dcommit to svn +# +# ( +# cd $H && +# git svn dcommit && +# git cat-file commit HEAD | grep git-svn-id: && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" && +# compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt +# ) +# +not ok - 10 ISO-8859-1 should match UTF-8 in svn +# +# ( +# cd ISO8859-1 && +# compare_svn_head_with "$TEST_DIRECTORY"/t3900/1-UTF-8.txt +# ) +# +not ok - 11 eucJP should match UTF-8 in svn +# +# ( +# cd $H && +# compare_svn_head_with "$TEST_DIRECTORY"/t3900/2-UTF-8.txt +# ) +# +not ok - 12 ISO-2022-JP should match UTF-8 in svn +# +# ( +# cd $H && +# compare_svn_head_with "$TEST_DIRECTORY"/t3900/2-UTF-8.txt +# ) +# +# failed 12 among 12 test(s) +1..12 +make[3]: [t9129-git-svn-i18n-commitencoding.sh] Error 1 (ignored) +*** t9130-git-svn-authors-file.sh *** +ok 1 - setup svnrepo +not ok - 2 start import with incomplete authors file +# +# test_must_fail git svn clone --authors-file=svn-authors "$svnrepo" x +# +not ok - 3 imported 2 revisions successfully +# +# ( +# cd x +# test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 2 && +# git rev-list -1 --pretty=raw refs/remotes/git-svn | \ +# grep "^author BBBBBBB BBBBBBB " && +# git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \ +# grep "^author AAAAAAA AAAAAAA " +# ) +# +not ok - 4 continues to import once authors have been added +# +# ( +# cd x +# git svn fetch --authors-file=../svn-authors && +# test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 4 && +# git rev-list -1 --pretty=raw refs/remotes/git-svn | \ +# grep "^author DDDDDDD DDDDDDD " && +# git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \ +# grep "^author CCCCCCC CCCCCCC " +# ) +# +not ok - 5 authors-file against globs +# +# svn_cmd mkdir -m globs --username aa \ +# "$svnrepo"/aa/trunk "$svnrepo"/aa/branches "$svnrepo"/aa/tags && +# git svn clone --authors-file=svn-authors -s "$svnrepo"/aa aa-work && +# for i in bb ee cc +# do +# branch="aa/branches/$i" +# svn_cmd mkdir -m "$branch" --username $i "$svnrepo/$branch" +# done +# +ok 6 - fetch fails on ee +not ok - 7 failure happened without negative side effects +# +# ( +# cd aa-work && +# test 6 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" && +# test 6 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`" +# ) +# +not ok - 8 fetch continues after authors-file is fixed +# +# ( +# cd aa-work && +# git svn fetch --authors-file=../svn-authors && +# test 8 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" && +# test 8 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`" +# ) +# +not ok - 9 fresh clone with svn.authors-file in config +# +# ( +# rm -r "$GIT_DIR" && +# test x = x"$(git config svn.authorsfile)" && +# test_config="$HOME"/.gitconfig && +# sane_unset GIT_DIR && +# sane_unset GIT_CONFIG && +# git config --global \ +# svn.authorsfile "$HOME"/svn-authors && +# test x"$HOME"/svn-authors = x"$(git config svn.authorsfile)" && +# git svn clone "$svnrepo" gitconfig.clone && +# cd gitconfig.clone && +# nr_ex=$(git log | grep "^Author:.*example.com" | wc -l) && +# nr_rev=$(git rev-list HEAD | wc -l) && +# test $nr_rev -eq $nr_ex +# ) +# +# failed 7 among 9 test(s) +1..9 +make[3]: [t9130-git-svn-authors-file.sh] Error 1 (ignored) +*** t9131-git-svn-empty-symlink.sh *** +ok 1 - load svn dumpfile +not ok - 2 clone using git svn +# git svn clone -r1 "$svnrepo" x +ok 3 - enable broken symlink workaround +not ok - 4 "bar" is an empty file +# test -f x/bar && ! test -s x/bar +not ok - 5 get "bar" => symlink fix from svn +# (cd x && git svn rebase) +not ok - 6 "bar" becomes a symlink +# test -h x/bar +not ok - 7 clone using git svn +# git svn clone -r1 "$svnrepo" y +ok 8 - disable broken symlink workaround +not ok - 9 "bar" is an empty file +# test -f y/bar && ! test -s y/bar +not ok - 10 get "bar" => symlink fix from svn +# (cd y && git svn rebase) +ok 11 - "bar" does not become a symlink +not ok - 12 clone using git svn +# git svn clone -r1 "$svnrepo" z +not ok - 13 "bar" is an empty file +# test -f z/bar && ! test -s z/bar +not ok - 14 get "bar" => symlink fix from svn +# (cd z && git svn rebase) +ok 15 - "bar" does not become a symlink +# failed 10 among 15 test(s) +1..15 +make[3]: [t9131-git-svn-empty-symlink.sh] Error 1 (ignored) +*** t9132-git-svn-broken-symlink.sh *** +ok 1 - load svn dumpfile +not ok - 2 clone using git svn +# git svn clone -r1 "$svnrepo" x +not ok - 3 "bar" is a symlink that points to "asdf" +# +# test -L x/bar && +# (cd x && test xasdf = x"`git cat-file blob HEAD:bar`") +# +not ok - 4 get "bar" => symlink fix from svn +# +# (cd x && git svn rebase) +# +not ok - 5 "bar" remains a proper symlink +# +# test -L x/bar && +# (cd x && test xdoink = x"`git cat-file blob HEAD:bar`") +# +# failed 4 among 5 test(s) +1..5 +make[3]: [t9132-git-svn-broken-symlink.sh] Error 1 (ignored) +*** t9133-git-svn-nested-git-repo.sh *** +ok 1 - setup repo with a git repo inside it +not ok - 2 clone an SVN repo containing a git repo +# +# git svn clone "$svnrepo" g && +# echo a > expect && +# test_cmp expect g/a +# +ok 3 - SVN-side change outside of .git +not ok - 4 update git svn-cloned repo +# +# ( +# cd g && +# git svn rebase && +# echo a > expect && +# echo b >> expect && +# test_cmp a expect && +# rm expect +# ) +# +ok 5 - SVN-side change inside of .git +not ok - 6 update git svn-cloned repo +# +# ( +# cd g && +# git svn rebase && +# echo a > expect && +# echo b >> expect && +# test_cmp a expect && +# rm expect +# ) +# +ok 7 - SVN-side change in and out of .git +not ok - 8 update git svn-cloned repo again +# +# ( +# cd g && +# git svn rebase && +# echo a > expect && +# echo b >> expect && +# echo c >> expect && +# test_cmp a expect && +# rm expect +# ) +# +# failed 4 among 8 test(s) +1..8 +make[3]: [t9133-git-svn-nested-git-repo.sh] Error 1 (ignored) +*** t9134-git-svn-ignore-paths.sh *** +ok 1 - setup test repository +not ok - 2 clone an SVN repository with ignored www directory +# +# git svn clone --ignore-paths="^www" "$svnrepo" g && +# echo test_qqq > expect && +# for i in g/*/*.txt; do cat $i >> expect2; done && +# test_cmp expect expect2 +# +not ok - 3 init+fetch an SVN repository with ignored www directory +# +# git svn init "$svnrepo" c && +# ( cd c && git svn fetch --ignore-paths="^www" ) && +# rm expect2 && +# echo test_qqq > expect && +# for i in c/*/*.txt; do cat $i >> expect2; done && +# test_cmp expect expect2 +# +ok 4 - verify ignore-paths config saved by clone +ok 5 - SVN-side change outside of www +not ok - 6 update git svn-cloned repo (config ignore) +# +# ( +# cd g && +# git svn rebase && +# printf "test_qqq +# b +# " > expect && +# for i in */*.txt; do cat $i >> expect2; done && +# test_cmp expect2 expect && +# rm expect expect2 +# ) +# +not ok - 7 update git svn-cloned repo (option ignore) +# +# ( +# cd c && +# git svn rebase --ignore-paths="^www" && +# printf "test_qqq +# b +# " > expect && +# for i in */*.txt; do cat $i >> expect2; done && +# test_cmp expect2 expect && +# rm expect expect2 +# ) +# +ok 8 - SVN-side change inside of ignored www +not ok - 9 update git svn-cloned repo (config ignore) +# +# ( +# cd g && +# git svn rebase && +# printf "test_qqq +# b +# " > expect && +# for i in */*.txt; do cat $i >> expect2; done && +# test_cmp expect2 expect && +# rm expect expect2 +# ) +# +not ok - 10 update git svn-cloned repo (option ignore) +# +# ( +# cd c && +# git svn rebase --ignore-paths="^www" && +# printf "test_qqq +# b +# " > expect && +# for i in */*.txt; do cat $i >> expect2; done && +# test_cmp expect2 expect && +# rm expect expect2 +# ) +# +ok 11 - SVN-side change in and out of ignored www +not ok - 12 update git svn-cloned repo again (config ignore) +# +# ( +# cd g && +# git svn rebase && +# printf "test_qqq +# b +# ygg +# " > expect && +# for i in */*.txt; do cat $i >> expect2; done && +# test_cmp expect2 expect && +# rm expect expect2 +# ) +# +not ok - 13 update git svn-cloned repo again (option ignore) +# +# ( +# cd c && +# git svn rebase --ignore-paths="^www" && +# printf "test_qqq +# b +# ygg +# " > expect && +# for i in */*.txt; do cat $i >> expect2; done && +# test_cmp expect2 expect && +# rm expect expect2 +# ) +# +# failed 8 among 13 test(s) +1..13 +make[3]: [t9134-git-svn-ignore-paths.sh] Error 1 (ignored) +*** t9135-git-svn-moved-branch-empty-file.sh *** +ok 1 - load svn dumpfile +not ok - 2 clone using git svn +# git svn clone -s "$svnrepo" x +not ok - 3 test that b1 exists and is empty +# +# ( +# cd x && +# git reset --hard branch-c && +# test -f b1 && +# ! test -s b1 +# ) +# +# failed 2 among 3 test(s) +1..3 +make[3]: [t9135-git-svn-moved-branch-empty-file.sh] Error 1 (ignored) +*** t9136-git-svn-recreated-branch-empty-file.sh *** +ok 1 - load svn dumpfile +not ok - 2 clone using git svn +# git svn clone -s "$svnrepo" x +# failed 1 among 2 test(s) +1..2 +make[3]: [t9136-git-svn-recreated-branch-empty-file.sh] Error 1 (ignored) +*** t9137-git-svn-dcommit-clobber-series.sh *** +not ok - 1 initialize repo +# +# mkdir import && +# (cd import && +# awk "BEGIN { for (i = 1; i < 64; i++) { print i } }" > file +# svn_cmd import -m "initial" . "$svnrepo" +# ) && +# git svn init "$svnrepo" && +# git svn fetch && +# test -e file +# +not ok - 2 (supposedly) non-conflicting change from SVN +# +# test x"`sed -n -e 58p < file`" = x58 && +# test x"`sed -n -e 61p < file`" = x61 && +# svn_cmd co "$svnrepo" tmp && +# (cd tmp && +# perl -i.bak -p -e "s/^58$/5588/" file && +# perl -i.bak -p -e "s/^61$/6611/" file && +# poke file && +# test x"`sed -n -e 58p < file`" = x5588 && +# test x"`sed -n -e 61p < file`" = x6611 && +# svn_cmd commit -m "58 => 5588, 61 => 6611" +# ) +# +ok 3 - some unrelated changes to git +not ok - 4 change file but in unrelated area +# +# test x"`sed -n -e 4p < file`" = x4 && +# test x"`sed -n -e 7p < file`" = x7 && +# perl -i.bak -p -e 's/^4$/4444/' file && +# perl -i.bak -p -e 's/^7$/7777/' file && +# test x"`sed -n -e 4p < file`" = x4444 && +# test x"`sed -n -e 7p < file`" = x7777 && +# git commit -m '4 => 4444, 7 => 7777' file && +# git svn dcommit && +# svn_cmd up tmp && +# cd tmp && +# test x"`sed -n -e 4p < file`" = x4444 && +# test x"`sed -n -e 7p < file`" = x7777 && +# test x"`sed -n -e 58p < file`" = x5588 && +# test x"`sed -n -e 61p < file`" = x6611 +# +ok 5 - attempt to dcommit with a dirty index +# failed 3 among 5 test(s) +1..5 +make[3]: [t9137-git-svn-dcommit-clobber-series.sh] Error 1 (ignored) +*** t9138-git-svn-authors-prog.sh *** +ok 1 - setup svnrepo +not ok - 2 import authors with prog and file +# +# git svn clone --authors-prog=./svn-authors-prog \ +# --authors-file=svn-authors "$svnrepo" x +# +not ok - 3 imported 6 revisions successfully +# +# ( +# cd x +# test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 6 +# ) +# +not ok - 4 authors-prog ran correctly +# +# ( +# cd x +# git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \ +# grep "^author ee-foo " && +# git rev-list -1 --pretty=raw refs/remotes/git-svn~2 | \ +# grep "^author dd " && +# git rev-list -1 --pretty=raw refs/remotes/git-svn~3 | \ +# grep "^author cc " && +# git rev-list -1 --pretty=raw refs/remotes/git-svn~4 | \ +# grep "^author bb " && +# git rev-list -1 --pretty=raw refs/remotes/git-svn~5 | \ +# grep "^author aa " +# ) +# +not ok - 5 authors-file overrode authors-prog +# +# ( +# cd x +# git rev-list -1 --pretty=raw refs/remotes/git-svn | \ +# grep "^author FFFFFFF FFFFFFF " +# ) +# +not ok - 6 authors-prog handled special characters in username +# +# svn mkdir -m bad --username "xyz; touch evil" "$svnrepo"/bad && +# ( +# cd x && +# git svn --authors-prog=../svn-authors-prog fetch && +# git rev-list -1 --pretty=raw refs/remotes/git-svn | +# grep "^author xyz; touch evil " && +# ! test -f evil +# ) +# +# failed 5 among 6 test(s) +1..6 +make[3]: [t9138-git-svn-authors-prog.sh] Error 1 (ignored) +*** t9139-git-svn-non-utf8-commitencoding.sh *** +not ok - 1 ISO8859-1 setup +# +# mkdir $H && +# svn_cmd import -m "$H test" $H "$svnrepo"/$H && +# git svn clone "$svnrepo"/$H $H +# +not ok - 2 eucJP setup +# +# mkdir $H && +# svn_cmd import -m "$H test" $H "$svnrepo"/$H && +# git svn clone "$svnrepo"/$H $H +# +not ok - 3 ISO8859-1 commit on git side +# +# ( +# cd $H && +# git config i18n.commitencoding $H && +# git checkout -b t refs/remotes/git-svn && +# echo $H >F && +# git add F && +# git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" +# ) +# +not ok - 4 eucJP commit on git side +# +# ( +# cd $H && +# git config i18n.commitencoding $H && +# git checkout -b t refs/remotes/git-svn && +# echo $H >F && +# git add F && +# git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt && +# E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") && +# test "z$E" = "z$H" +# ) +# +ok 5 - ISO8859-1 dcommit to svn +ok 6 - eucJP dcommit to svn +# failed 4 among 6 test(s) +1..6 +make[3]: [t9139-git-svn-non-utf8-commitencoding.sh] Error 1 (ignored) +*** t9140-git-svn-reset.sh *** +ok 1 - setup test repository +not ok - 2 clone SVN repository with hidden directory +# +# git svn init "$svnrepo" g && +# ( cd g && git svn fetch --ignore-paths="^hid" ) +# +ok 3 - modify hidden file in SVN repo +not ok - 4 fetch fails on modified hidden file +# +# ( cd g && +# git svn find-rev refs/remotes/git-svn > ../expect && +# test_must_fail git svn fetch 2> ../errors && +# git svn find-rev refs/remotes/git-svn > ../expect2 ) && +# fgrep "not found in commit" errors && +# test_cmp expect expect2 +# +not ok - 5 reset unwinds back to r1 +# +# ( cd g && +# git svn reset -r1 && +# git svn find-rev refs/remotes/git-svn > ../expect2 ) && +# echo 1 >expect && +# test_cmp expect expect2 +# +not ok - 6 refetch succeeds not ignoring any files +# +# ( cd g && +# git svn fetch && +# git svn rebase && +# fgrep "mod hidden" hid/hid.txt +# ) +# +# failed 4 among 6 test(s) +1..6 +make[3]: [t9140-git-svn-reset.sh] Error 1 (ignored) +*** t9141-git-svn-multiple-branches.sh *** +ok 1 - setup svnrepo +not ok - 2 clone multiple branch and tag paths +# +# git svn clone -T trunk \ +# -b b_one/* --branches b_two/* \ +# -t tags_A/* --tags tags_B \ +# "$svnrepo/project" git_project && +# ( cd git_project && +# git rev-parse refs/remotes/first && +# git rev-parse refs/remotes/second && +# git rev-parse refs/remotes/1 && +# git rev-parse refs/remotes/2 && +# git rev-parse refs/remotes/tags/1.0 && +# git rev-parse refs/remotes/tags/2.0 && +# git rev-parse refs/remotes/tags/3.0 && +# git rev-parse refs/remotes/tags/4.0 && +# git rev-parse refs/remotes/tags/v5 && +# git rev-parse refs/remotes/tags/v6 && +# git rev-parse refs/remotes/tags/v7 && +# git rev-parse refs/remotes/tags/v8 +# ) +# +ok 3 - Multiple branch or tag paths require -d +not ok - 4 create new branches and tags +# +# ( cd git_project && +# git svn branch -m "New branch 1" -d b_one New1 ) && +# ( cd svn_project && +# svn_cmd up && test -e b_one/New1/a.file ) && +# +# ( cd git_project && +# git svn branch -m "New branch 2" -d b_two New2 ) && +# ( cd svn_project && +# svn_cmd up && test -e b_two/New2/a.file ) && +# +# ( cd git_project && +# git svn branch -t -m "New tag 1" -d tags_A Tag1 ) && +# ( cd svn_project && +# svn_cmd up && test -e tags_A/Tag1/a.file ) && +# +# ( cd git_project && +# git svn tag -m "New tag 2" -d tags_B Tag2 ) && +# ( cd svn_project && +# svn_cmd up && test -e tags_B/Tag2/a.file ) +# +# failed 2 among 4 test(s) +1..4 +make[3]: [t9141-git-svn-multiple-branches.sh] Error 1 (ignored) +*** t9142-git-svn-shallow-clone.sh *** +ok 1 - setup test repository +not ok - 2 clone trunk with "-r HEAD" +# +# git svn clone -r HEAD "$svnrepo/trunk" g && +# ( cd g && git rev-parse --symbolic --verify HEAD ) +# +# failed 1 among 2 test(s) +1..2 +make[3]: [t9142-git-svn-shallow-clone.sh] Error 1 (ignored) +*** t9143-git-svn-gc.sh *** +ok 1 - setup directories and test repo +ok 2 - checkout working copy from svn +ok 3 - set some properties to create an unhandled.log file +ok 4 - Setup repo +not ok - 5 Fetch repo +# git svn fetch +not ok - 6 make backup copy of unhandled.log +# +# cp .git/svn/refs/remotes/git-svn/unhandled.log tmp +# +ok 7 - create leftover index +ok 8 - git svn gc runs +ok 9 - git svn index removed +not ok - 10 git svn gc does not change unhandled.log files +# +# test_cmp .git/svn/refs/remotes/git-svn/unhandled.log tmp/unhandled.log +# +# failed 3 among 10 test(s) +1..10 +make[3]: [t9143-git-svn-gc.sh] Error 1 (ignored) +*** t9144-git-svn-old-rev_map.sh *** +not ok - 1 setup test repository with old layout +# +# mkdir i && +# (cd i && > a) && +# svn_cmd import -m- i "$svnrepo" && +# git svn init "$svnrepo" && +# git svn fetch && +# test -d .git/svn/refs/remotes/git-svn/ && +# ! test -e .git/svn/git-svn/ && +# mv .git/svn/refs/remotes/git-svn .git/svn/ && +# rm -r .git/svn/refs +# +not ok - 2 old layout continues to work +# +# svn_cmd import -m- i "$svnrepo/b" && +# git svn rebase && +# echo a >> b/a && +# git add b/a && +# git commit -m- -a && +# git svn dcommit && +# ! test -d .git/svn/refs/ && +# test -e .git/svn/git-svn/ +# +# failed 2 among 2 test(s) +1..2 +make[3]: [t9144-git-svn-old-rev_map.sh] Error 1 (ignored) +*** t9145-git-svn-master-branch.sh *** +ok 1 - setup test repository +not ok - 2 git svn clone --stdlayout sets up trunk as master +# +# git svn clone -s "$svnrepo" g && +# ( +# cd g && +# test x`git rev-parse --verify refs/remotes/trunk^0` = \ +# x`git rev-parse --verify refs/heads/master^0` +# ) +# +# failed 1 among 2 test(s) +1..2 +make[3]: [t9145-git-svn-master-branch.sh] Error 1 (ignored) +*** t9146-git-svn-empty-dirs.sh *** +ok 1 - initialize repo +not ok - 2 clone +# git svn clone "$svnrepo" cloned +not ok - 3 empty directories exist +# +# ( +# cd cloned && +# for i in a b c d d/e d/e/f "weird file name" +# do +# if ! test -d "$i" +# then +# echo >&2 "$i does not exist" +# exit 1 +# fi +# done +# ) +# +not ok - 4 option automkdirs set to false +# +# ( +# git svn init "$svnrepo" cloned-no-mkdirs && +# cd cloned-no-mkdirs && +# git config svn-remote.svn.automkdirs false && +# git svn fetch && +# for i in a b c d d/e d/e/f "weird file name" +# do +# if test -d "$i" +# then +# echo >&2 "$i exists" +# exit 1 +# fi +# done +# ) +# +ok 5 - more emptiness +not ok - 6 git svn rebase creates empty directory +# +# ( cd cloned && git svn rebase ) && +# test -d cloned/"! !" +# +not ok - 7 git svn mkdirs recreates empty directories +# +# ( +# cd cloned && +# rm -r * && +# git svn mkdirs && +# for i in a b c d d/e d/e/f "weird file name" "! !" +# do +# if ! test -d "$i" +# then +# echo >&2 "$i does not exist" +# exit 1 +# fi +# done +# ) +# +not ok - 8 git svn mkdirs -r works +# +# ( +# cd cloned && +# rm -r * && +# git svn mkdirs -r7 && +# for i in a b c d d/e d/e/f "weird file name" +# do +# if ! test -d "$i" +# then +# echo >&2 "$i does not exist" +# exit 1 +# fi +# done +# +# if test -d "! !" +# then +# echo >&2 "$i should not exist" +# exit 1 +# fi +# +# git svn mkdirs -r8 && +# if ! test -d "! !" +# then +# echo >&2 "$i not exist" +# exit 1 +# fi +# ) +# +ok 9 - initialize trunk +not ok - 10 clone trunk +# git svn clone -s "$svnrepo" trunk +not ok - 11 empty directories in trunk exist +# +# ( +# cd trunk && +# for i in a "weird file name" +# do +# if ! test -d "$i" +# then +# echo >&2 "$i does not exist" +# exit 1 +# fi +# done +# ) +# +ok 12 - remove a top-level directory from svn +not ok - 13 removed top-level directory does not exist +# +# git svn clone "$svnrepo" removed && +# test ! -e removed/d +# +# +ok 14 - git svn gc-ed files work +# failed 9 among 14 test(s) +1..14 +make[3]: [t9146-git-svn-empty-dirs.sh] Error 1 (ignored) +*** t9150-svk-mergetickets.sh *** +not ok - 1 load svk depot +# +# svnadmin load -q '$(@D)/t/trash directory.t9150-svk-mergetickets/svnrepo' < '$(@D)/t/t9150/svk-merge.dump' && +# git svn init --minimize-url -R svkmerge --rewrite-root=http://svn.example.org -T trunk -b branches 'file://$(@D)/t/trash directory.t9150-svk-mergetickets/svnrepo' && +# git svn fetch --all +# +fatal: Not a valid object name HEAD +not ok - 2 svk merges were represented coming in +# +# [ 0 -eq 2 ] +# +# failed 2 among 2 test(s) +1..2 +make[3]: [t9150-svk-mergetickets.sh] Error 1 (ignored) +*** t9151-svn-mergeinfo.sh *** +not ok - 1 load svn dump +# +# svnadmin load -q '$(@D)/t/trash directory.t9151-svn-mergeinfo/svnrepo' < '$(@D)/t/t9151/svn-mergeinfo.dump' && +# git svn init --minimize-url -R svnmerge --rewrite-root=http://svn.example.org -T trunk -b branches 'file://$(@D)/t/trash directory.t9151-svn-mergeinfo/svnrepo' && +# git svn fetch --all +# +ok 2 - all svn merges became git merge commits +ok 3 - cherry picks did not become git merge commits +ok 4 - svn non-merge merge commits did not become git merge commits +not ok - 5 commit made to merged branch is reachable from the merge +# +# before_commit=$(git rev-list --all --grep="trunk commit before merging trunk to b2") && +# merge_commit=$(git rev-list --all --grep="Merge trunk to b2") && +# not_reachable=$(git rev-list -1 $before_commit --not $merge_commit) && +# [ -z "$not_reachable" ] +# +not ok - 6 merging two branches in one commit is detected correctly +# +# f1_commit=$(git rev-list --all --grep="make f1 branch from trunk") && +# f2_commit=$(git rev-list --all --grep="make f2 branch from trunk") && +# merge_commit=$(git rev-list --all --grep="Merge f1 and f2 to trunk") && +# not_reachable=$(git rev-list -1 $f1_commit $f2_commit --not $merge_commit) && +# [ -z "$not_reachable" ] +# +not ok 7 - everything got merged in the end # TODO known breakage +# still have 1 known breakage(s) +# failed 3 among remaining 6 test(s) +1..7 +make[3]: [t9151-svn-mergeinfo.sh] Error 1 (ignored) +*** t9152-svn-empty-dirs-after-gc.sh *** +ok 1 - initialize repo +not ok - 2 clone +# git svn clone "$svnrepo" cloned +ok 3 - git svn gc runs +not ok - 4 git svn mkdirs recreates empty directories after git svn gc +# +# ( +# cd cloned && +# rm -r * && +# git svn mkdirs && +# for i in a b c d d/e d/e/f "weird file name" +# do +# if ! test -d "$i" +# then +# echo >&2 "$i does not exist" +# exit 1 +# fi +# done +# ) +# +# failed 2 among 4 test(s) +1..4 +make[3]: [t9152-svn-empty-dirs-after-gc.sh] Error 1 (ignored) +*** t9153-git-svn-rewrite-uuid.sh *** +not ok - 1 load svn repo +# +# svnadmin load -q '$(@D)/t/trash directory.t9153-git-svn-rewrite-uuid/svnrepo' < '$(@D)/t/t9153/svn.dump' && +# git svn init --minimize-url --rewrite-uuid='6cc8ada4-5932-4b4a-8242-3534ed8a3232' 'file://$(@D)/t/trash directory.t9153-git-svn-rewrite-uuid/svnrepo' && +# git svn fetch +# +not ok - 2 verify uuid +# +# git cat-file commit refs/remotes/git-svn~0 | grep '^git-svn-id: .*@2 6cc8ada4-5932-4b4a-8242-3534ed8a3232$' && +# git cat-file commit refs/remotes/git-svn~1 | grep '^git-svn-id: .*@1 6cc8ada4-5932-4b4a-8242-3534ed8a3232$' +# +# failed 2 among 2 test(s) +1..2 +make[3]: [t9153-git-svn-rewrite-uuid.sh] Error 1 (ignored) +*** t9154-git-svn-fancy-glob.sh *** +not ok - 1 load svn repo +# +# svnadmin load -q '$(@D)/t/trash directory.t9154-git-svn-fancy-glob/svnrepo' < '$(@D)/t/t9154/svn.dump' && +# git svn init --minimize-url -T trunk 'file://$(@D)/t/trash directory.t9154-git-svn-fancy-glob/svnrepo' && +# git svn fetch +# +not ok - 2 add red branch +# +# git config svn-remote.svn.branches 'branches/{red}:refs/remotes/*' && +# git svn fetch && +# git rev-parse refs/remotes/red && +# test_must_fail git rev-parse refs/remotes/green && +# test_must_fail git rev-parse refs/remotes/blue +# +not ok - 3 add green branch +# +# GIT_CONFIG=.git/svn/.metadata git config --unset svn-remote.svn.branches-maxRev && +# git config svn-remote.svn.branches 'branches/{red,green}:refs/remotes/*' && +# git svn fetch && +# git rev-parse refs/remotes/red && +# git rev-parse refs/remotes/green && +# test_must_fail git rev-parse refs/remotes/blue +# +not ok - 4 add all branches +# +# GIT_CONFIG=.git/svn/.metadata git config --unset svn-remote.svn.branches-maxRev && +# git config svn-remote.svn.branches 'branches/*:refs/remotes/*' && +# git svn fetch && +# git rev-parse refs/remotes/red && +# git rev-parse refs/remotes/green && +# git rev-parse refs/remotes/blue +# +# failed 4 among 4 test(s) +1..4 +make[3]: [t9154-git-svn-fancy-glob.sh] Error 1 (ignored) +*** t9155-git-svn-fetch-deleted-tag.sh *** +ok 1 - setup svn repo +not ok - 2 fetch deleted tags from same revision with checksum error +# +# git svn init --stdlayout "$svnrepo" git_project && +# cd git_project && +# git svn fetch && +# +# git diff --exit-code mybranch:trunk/subdir/file tags/mytag:file && +# git diff --exit-code master:subdir/file tags/mytag^:file +# +# failed 1 among 2 test(s) +1..2 +make[3]: [t9155-git-svn-fetch-deleted-tag.sh] Error 1 (ignored) +*** t9156-git-svn-fetch-deleted-tag-2.sh *** +ok 1 - setup svn repo +not ok - 2 fetch deleted tags from same revision with no checksum error +# +# git svn init --stdlayout "$svnrepo" git_project && +# cd git_project && +# git svn fetch && +# +# git diff --exit-code master:subdir3/file tags/mytag:file && +# git diff --exit-code master:subdir2/file tags/mytag^:file && +# git diff --exit-code master:subdir1/file tags/mytag^^:file +# +# failed 1 among 2 test(s) +1..2 +make[3]: [t9156-git-svn-fetch-deleted-tag-2.sh] Error 1 (ignored) +*** t9157-git-svn-fetch-merge.sh *** +ok 1 - initialize source svn repo +not ok - 2 clone svn repo +# +# git svn init -s "$svnrepo" && +# git svn fetch +# +not ok - 3 verify merge commit +# git rev-parse HEAD^2 +# failed 2 among 3 test(s) +1..3 +make[3]: [t9157-git-svn-fetch-merge.sh] Error 1 (ignored) +*** t9158-git-svn-mergeinfo.sh *** +define NO_SVN_TESTS to skip git svn tests +ok 1 - initialize source svn repo +not ok - 2 clone svn repo +# +# git svn init "$svnrepo"/trunk && +# git svn fetch +# +not ok - 3 change svn:mergeinfo +# +# touch bar && +# git add bar && +# git commit -m "bar" && +# git svn dcommit --mergeinfo="/branches/foo:1-10" +# +not ok - 4 verify svn:mergeinfo +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/trunk) +# test "$mergeinfo" = "/branches/foo:1-10" +# +not ok - 5 change svn:mergeinfo multiline +# +# touch baz && +# git add baz && +# git commit -m "baz" && +# git svn dcommit --mergeinfo="/branches/bar:1-10 /branches/other:3-5,8,10-11" +# +not ok - 6 verify svn:mergeinfo multiline +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/trunk) +# test "$mergeinfo" = "/branches/bar:1-10 +# /branches/other:3-5,8,10-11" +# +# failed 5 among 6 test(s) +1..6 +make[3]: [t9158-git-svn-mergeinfo.sh] Error 1 (ignored) +*** t9159-git-svn-no-parent-mergeinfo.sh *** +not ok - 1 test handling of root commits in merge ranges +# +# mkdir -p init/trunk init/branches init/tags && +# echo "r1" > init/trunk/file.txt && +# svn_cmd import -m "initial import" init "$svnrepo" && +# svn_cmd co "$svnrepo" tmp && +# ( +# cd tmp && +# echo "r2" > trunk/file.txt && +# svn_cmd commit -m "Modify file.txt on trunk" && +# svn_cmd cp trunk@1 branches/a && +# svn_cmd commit -m "Create branch a from trunk r1" && +# svn_cmd propset svn:mergeinfo /trunk:1-2 branches/a && +# svn_cmd commit -m "Fake merge of trunk r2 into branch a" && +# mkdir branches/b && +# echo "r5" > branches/b/file2.txt && +# svn_cmd add branches/b && +# svn_cmd commit -m "Create branch b from thin air" && +# echo "r6" > branches/b/file2.txt && +# svn_cmd commit -m "Modify file2.txt on branch b" && +# svn_cmd cp branches/b@5 branches/c && +# svn_cmd commit -m "Create branch c from branch b r5" && +# svn_cmd propset svn:mergeinfo /branches/b:5-6 branches/c && +# svn_cmd commit -m "Fake merge of branch b r6 into branch c" +# ) && +# git svn init -s "$svnrepo" && +# git svn fetch +# +# failed 1 among 1 test(s) +1..1 +make[3]: [t9159-git-svn-no-parent-mergeinfo.sh] Error 1 (ignored) +*** t9160-git-svn-preserve-empty-dirs.sh *** +define NO_SVN_TESTS to skip git svn tests +ok 1 - initialize source svn repo containing empty dirs +not ok - 2 clone svn repo with --preserve-empty-dirs +# +# git svn clone "$svnrepo"/trunk --preserve-empty-dirs "$GIT_REPO" +# +not ok - 3 directory empty from inception +# +# test -f "$GIT_REPO"/1/.gitignore && +# test $(find "$GIT_REPO"/1 -type f | wc -l) = "1" +# +not ok - 4 directory empty from subsequent svn commit +# +# test -f "$GIT_REPO"/2/.gitignore && +# test $(find "$GIT_REPO"/2 -type f | wc -l) = "1" && +# test -f "$GIT_REPO"/3/.gitignore && +# test $(find "$GIT_REPO"/3 -type f | wc -l) = "1" +# +not ok - 5 add entry to previously empty directory +# +# test $(find "$GIT_REPO"/4 -type f | wc -l) = "1" && +# test -f "$GIT_REPO"/4/a/b/c/foo +# +not ok - 6 remove non-last entry from directory +# +# ( +# cd "$GIT_REPO" && +# git checkout HEAD~2 +# ) && +# test_must_fail test -f "$GIT_REPO"/2/.gitignore && +# test_must_fail test -f "$GIT_REPO"/3/.gitignore +# +not ok - 7 clone svn repo with --placeholder-file specified +# +# rm -rf "$GIT_REPO" && +# git svn clone "$svnrepo"/trunk --preserve-empty-dirs \ +# --placeholder-file=.placeholder "$GIT_REPO" && +# find "$GIT_REPO" -type f -name ".placeholder" && +# test $(find "$GIT_REPO" -type f -name ".placeholder" | wc -l) = "5" +# +not ok - 8 placeholder namespace conflict with file +# +# test -s "$GIT_REPO"/5/.placeholder +# +not ok - 9 placeholder namespace conflict with directory +# +# test -d "$GIT_REPO"/6/.placeholder && +# test -f "$GIT_REPO"/6/.placeholder/.placeholder && +# test $(find "$GIT_REPO"/6 -type f | wc -l) = "1" +# +not ok - 10 second set of svn commits and rebase +# +# svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && +# ( +# cd "$SVN_TREE" && +# mkdir -p 7 && +# echo "This should remove placeholder" > 1/file1.txt && +# echo "This should not remove placeholder" > 5/file1.txt && +# svn_cmd add 7 1/file1.txt 5/file1.txt && +# svn_cmd commit -m "subsequent svn commit for persistence tests" +# ) && +# rm -rf "$SVN_TREE" && +# ( +# cd "$GIT_REPO" && +# git svn rebase +# ) +# +not ok - 11 flag persistence during subsqeuent rebase +# +# test -f "$GIT_REPO"/7/.placeholder && +# test $(find "$GIT_REPO"/7 -type f | wc -l) = "1" +# +not ok - 12 placeholder list persistence during subsqeuent rebase +# +# test -f "$GIT_REPO"/1/file1.txt && +# test $(find "$GIT_REPO"/1 -type f | wc -l) = "1" && +# +# test -f "$GIT_REPO"/5/file1.txt && +# test -f "$GIT_REPO"/5/.placeholder && +# test $(find "$GIT_REPO"/5 -type f | wc -l) = "2" +# +# failed 11 among 12 test(s) +1..12 +make[3]: [t9160-git-svn-preserve-empty-dirs.sh] Error 1 (ignored) +*** t9161-git-svn-mergeinfo-push.sh *** +not ok - 1 load svn dump +# +# svnadmin load -q '$(@D)/t/trash directory.t9161-git-svn-mergeinfo-push/svnrepo' < '$(@D)/t/t9161/branches.dump' && +# git svn init --minimize-url -R svnmerge -T trunk -b branches 'file://$(@D)/t/trash directory.t9161-git-svn-mergeinfo-push/svnrepo' && +# git svn fetch --all +# +not ok - 2 propagate merge information +# +# git config svn.pushmergeinfo yes && +# git checkout svnb1 && +# git merge --no-ff svnb2 && +# git svn dcommit +# +not ok - 3 check svn:mergeinfo +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/branches/svnb1) +# test "$mergeinfo" = "/branches/svnb2:3,8" +# +not ok - 4 merge another branch +# +# git merge --no-ff svnb3 && +# git svn dcommit +# +not ok - 5 check primary parent mergeinfo respected +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/branches/svnb1) +# test "$mergeinfo" = "/branches/svnb2:3,8 +# /branches/svnb3:4,9" +# +not ok - 6 merge existing merge +# +# git merge --no-ff svnb4 && +# git svn dcommit +# +not ok - 7 check both parents' mergeinfo respected +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/branches/svnb1) +# test "$mergeinfo" = "/branches/svnb2:3,8 +# /branches/svnb3:4,9 +# /branches/svnb4:5-6,10-12 +# /branches/svnb5:6,11" +# +not ok - 8 make further commits to branch +# +# git checkout svnb2 && +# touch newb2file && +# git add newb2file && +# git commit -m "later b2 commit" && +# touch newb2file-2 && +# git add newb2file-2 && +# git commit -m "later b2 commit 2" && +# git svn dcommit +# +not ok - 9 second forward merge +# +# git checkout svnb1 && +# git merge --no-ff svnb2 && +# git svn dcommit +# +not ok - 10 check new mergeinfo added +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/branches/svnb1) +# test "$mergeinfo" = "/branches/svnb2:3,8,16-17 +# /branches/svnb3:4,9 +# /branches/svnb4:5-6,10-12 +# /branches/svnb5:6,11" +# +not ok - 11 reintegration merge +# +# git checkout svnb4 && +# git merge --no-ff svnb1 && +# git svn dcommit +# +not ok - 12 check reintegration mergeinfo +# +# mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/branches/svnb4) +# test "$mergeinfo" = "/branches/svnb1:2-4,7-9,13-18 +# /branches/svnb2:3,8,16-17 +# /branches/svnb3:4,9 +# /branches/svnb4:5-6,10-12 +# /branches/svnb5:6,11" +# +not ok - 13 dcommit a merge at the top of a stack +# +# git checkout svnb1 && +# touch anotherfile && +# git add anotherfile && +# git commit -m "a commit" && +# git merge svnb4 && +# git svn dcommit +# +# failed 13 among 13 test(s) +1..13 +make[3]: [t9161-git-svn-mergeinfo-push.sh] Error 1 (ignored) +*** t9162-git-svn-dcommit-interactive.sh *** +not ok - 1 initialize repo +# +# svn_cmd mkdir -m"mkdir test-interactive" "$svnrepo/test-interactive" && +# git svn clone "$svnrepo/test-interactive" test-interactive && +# cd test-interactive && +# touch foo && git add foo && git commit -m"foo: first commit" && +# git svn dcommit +# +not ok - 2 answers: y [ +] yes +# +# ( +# echo "change #1" >> foo && git commit -a -m"change #1" && +# echo "change #2" >> foo && git commit -a -m"change #2" && +# echo "change #3" >> foo && git commit -a -m"change #3" && +# ( echo "y +# +# y" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) && +# test $(git rev-parse HEAD) = $(git rev-parse remotes/git-svn) +# ) +# +not ok - 3 answers: yes yes no +# +# ( +# echo "change #1" >> foo && git commit -a -m"change #1" && +# echo "change #2" >> foo && git commit -a -m"change #2" && +# echo "change #3" >> foo && git commit -a -m"change #3" && +# ( echo "yes +# yes +# no" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) && +# test $(git rev-parse HEAD^^^) = $(git rev-parse remotes/git-svn) && +# git reset --hard remotes/git-svn +# ) +# +not ok - 4 answers: yes quit +# +# ( +# echo "change #1" >> foo && git commit -a -m"change #1" && +# echo "change #2" >> foo && git commit -a -m"change #2" && +# echo "change #3" >> foo && git commit -a -m"change #3" && +# ( echo "yes +# quit" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) && +# test $(git rev-parse HEAD^^^) = $(git rev-parse remotes/git-svn) && +# git reset --hard remotes/git-svn +# ) +# +not ok - 5 answers: all +# +# ( +# echo "change #1" >> foo && git commit -a -m"change #1" && +# echo "change #2" >> foo && git commit -a -m"change #2" && +# echo "change #3" >> foo && git commit -a -m"change #3" && +# ( echo "all" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) && +# test $(git rev-parse HEAD) = $(git rev-parse remotes/git-svn) && +# git reset --hard remotes/git-svn +# ) +# +# failed 5 among 5 test(s) +1..5 +make[3]: [t9162-git-svn-dcommit-interactive.sh] Error 1 (ignored) +*** t9200-git-cvsexportcommit.sh *** +ok 1 - New file +ok 2 - Remove two files, add two and update two +ok 3 - Fail to change binary more than one generation old +ok 4 - Remove only binary files +ok 5 - Remove only a text file +ok 6 - New file with spaces in file name +ok 7 - Update file with spaces in file name +ok 8 - File with non-ascii file name +ok 9 - Mismatching patch should fail +ok 10 - Retain execute bit +ok 11 - -w option should work with relative GIT_DIR +ok 12 - check files before directories +ok 13 - re-commit a removed filename which remains in CVS attic +ok 14 - commit a file with leading spaces in the name +ok 15 - use the same checkout for Git and CVS +# passed all 15 test(s) +1..15 +*** t9300-fast-import.sh *** +ok 1 - setup: have pipes? +ok 2 - empty stream succeeds +ok 3 - A: create pack from stdin +ok 4 - A: verify pack +ok 5 - A: verify commit +ok 6 - A: verify tree +ok 7 - A: verify file2 +ok 8 - A: verify file3 +ok 9 - A: verify file4 +ok 10 - A: verify tag/series-A +ok 11 - A: verify tag/series-A-blob +ok 12 - A: verify marks output +ok 13 - A: verify marks import +ok 14 - A: tag blob by sha1 +ok 15 - A: verify marks import does not crash +ok 16 - A: verify pack +ok 17 - A: verify diff +ok 18 - A: export marks with large values +ok 19 - B: fail on invalid blob sha1 +ok 20 - B: fail on invalid branch name ".badbranchname" +ok 21 - B: fail on invalid branch name "bad[branch]name" +ok 22 - B: accept branch name "TEMP_TAG" +ok 23 - B: accept empty committer +ok 24 - B: accept and fixup committer with no name +ok 25 - B: fail on invalid committer (1) +ok 26 - B: fail on invalid committer (2) +ok 27 - B: fail on invalid committer (3) +ok 28 - B: fail on invalid committer (4) +ok 29 - B: fail on invalid committer (5) +ok 30 - C: incremental import create pack from stdin +ok 31 - C: verify pack +ok 32 - C: validate reuse existing blob +ok 33 - C: verify commit +ok 34 - C: validate rename result +ok 35 - D: inline data in commit +ok 36 - D: verify pack +ok 37 - D: validate new files added +ok 38 - D: verify file5 +ok 39 - D: verify file6 +ok 40 - E: rfc2822 date, --date-format=raw +ok 41 - E: rfc2822 date, --date-format=rfc2822 +ok 42 - E: verify pack +ok 43 - E: verify commit +ok 44 - F: non-fast-forward update skips +ok 45 - F: verify pack +ok 46 - F: verify other commit +ok 47 - G: non-fast-forward update forced +ok 48 - G: verify pack +ok 49 - G: branch changed, but logged +ok 50 - H: deletall, add 1 +ok 51 - H: verify pack +ok 52 - H: validate old files removed, new files added +ok 53 - H: verify file +ok 54 - I: export-pack-edges +ok 55 - I: verify edge list +ok 56 - J: reset existing branch creates empty commit +ok 57 - J: branch has 1 commit, empty tree +ok 58 - J: tag must fail on empty branch +ok 59 - K: reinit branch with from +ok 60 - K: verify K^1 = branch^1 +ok 61 - L: verify internal tree sorting +ok 62 - L: nested tree copy does not corrupt deltas +ok 63 - M: rename file in same subdirectory +ok 64 - M: rename file to new subdirectory +ok 65 - M: rename subdirectory to new subdirectory +ok 66 - N: copy file in same subdirectory +ok 67 - N: copy then modify subdirectory +ok 68 - N: copy dirty subdirectory +ok 69 - N: copy directory by id +ok 70 - N: read and copy directory +ok 71 - N: empty directory reads as missing +ok 72 - N: copy root directory by tree hash +ok 73 - N: delete directory by copying +ok 74 - N: modify copied tree +ok 75 - N: reject foo/ syntax +ok 76 - N: copy to root by id and modify +ok 77 - N: extract subtree +ok 78 - N: modify subtree, extract it, and modify again +ok 79 - O: comments are all skipped +ok 80 - O: blank lines not necessary after data commands +ok 81 - O: repack before next test +ok 82 - O: blank lines not necessary after other commands +ok 83 - O: progress outputs as requested by input +ok 84 - P: supermodule & submodule mix +ok 85 - P: verbatim SHA gitlinks +ok 86 - P: fail on inline gitlink +ok 87 - P: fail on blob mark in gitlink +ok 88 - Q: commit notes +ok 89 - Q: verify pack +ok 90 - Q: verify first commit +ok 91 - Q: verify second commit +ok 92 - Q: verify third commit +ok 93 - Q: verify first notes commit +ok 94 - Q: verify first notes tree +ok 95 - Q: verify first note for first commit +ok 96 - Q: verify first note for second commit +ok 97 - Q: verify first note for third commit +ok 98 - Q: verify second notes commit +ok 99 - Q: verify second notes tree +ok 100 - Q: verify second note for first commit +ok 101 - Q: verify first note for second commit +ok 102 - Q: verify first note for third commit +ok 103 - Q: verify third notes commit +ok 104 - Q: verify third notes tree +ok 105 - Q: verify third note for first commit +ok 106 - Q: verify fourth notes commit +ok 107 - Q: verify fourth notes tree +ok 108 - Q: verify second note for second commit +ok 109 - Q: deny note on empty branch +ok 110 - R: abort on unsupported feature +ok 111 - R: supported feature is accepted +ok 112 - R: abort on receiving feature after data command +ok 113 - R: only one import-marks feature allowed per stream +ok 114 - R: export-marks feature results in a marks file being created +ok 115 - R: export-marks options can be overriden by commandline options +ok 116 - R: catch typo in marks file name +ok 117 - R: import and output marks can be the same file +ok 118 - R: --import-marks=foo --output-marks=foo to create foo fails +ok 119 - R: --import-marks-if-exists +ok 120 - R: feature import-marks-if-exists +ok 121 - R: import to output marks works without any content +ok 122 - R: import marks prefers commandline marks file over the stream +ok 123 - R: multiple --import-marks= should be honoured +ok 124 - R: feature relative-marks should be honoured +ok 125 - R: feature no-relative-marks should be honoured +ok 126 - R: feature ls supported +ok 127 - R: feature cat-blob supported +ok 128 - R: cat-blob-fd must be a nonnegative integer +ok 129 - R: print old blob +ok 130 - R: in-stream cat-blob-fd not respected +ok 131 - R: print new blob +ok 132 - R: print new blob by sha1 +ok 133 - setup: big file +ok 134 - R: print two blobs to stdout +ok 135 - R: copy using cat-file +ok 136 - R: print blob mid-commit +ok 137 - R: print staged blob within commit +ok 138 - R: quiet option results in no stats being output +ok 139 - R: feature done means terminating "done" is mandatory +ok 140 - R: terminating "done" with trailing gibberish is ok +ok 141 - R: terminating "done" within commit +ok 142 - R: die on unknown option +ok 143 - R: unknown commandline options are rejected +ok 144 - R: die on invalid option argument +ok 145 - R: ignore non-git options +ok 146 - R: blob bigger than threshold +ok 147 - R: verify created pack +ok 148 - R: verify written objects +ok 149 - R: blob appears only once +# passed all 149 test(s) +1..149 +*** t9301-fast-import-notes.sh *** +ok 1 - set up master branch +ok 2 - add notes with simple M command +ok 3 - add notes with simple N command +ok 4 - update existing notes with N command +ok 5 - add concatentation notes with M command +ok 6 - verify that deleteall also removes notes +ok 7 - verify that later N commands override earlier M commands +ok 8 - add lots of commits and notes +ok 9 - verify that lots of notes trigger a fanout scheme +ok 10 - verify that non-notes are untouched by a fanout change +ok 11 - change a few existing notes +ok 12 - verify that changing notes respect existing fanout +ok 13 - remove lots of notes +ok 14 - verify that removing notes trigger fanout consolidation +ok 15 - verify that non-notes are untouched by a fanout change +ok 16 - add notes to 16 commits in each of 10 refs +# passed all 16 test(s) +1..16 +*** t9350-fast-export.sh *** +ok 1 - setup +ok 2 - fast-export | fast-import +ok 3 - fast-export master~2..master +ok 4 - iso-8859-1 +ok 5 - import/export-marks +ok 6 - set up faked signed tag +ok 7 - signed-tags=abort +ok 8 - signed-tags=verbatim +ok 9 - signed-tags=strip +ok 10 - setup submodule +ok 11 - submodule fast-export | fast-import +ok 12 - setup copies +ok 13 - fast-export -C -C | fast-import +ok 14 - fast-export | fast-import when master is tagged +ok 15 - cope with tagger-less tags +ok 16 - setup for limiting exports by PATH +ok 17 - dropping tag of filtered out object +ok 18 - rewriting tag of filtered out object +not ok 19 - no exact-ref revisions included # TODO known breakage +ok 20 - path limiting with import-marks does not lose unmodified files +ok 21 - full-tree re-shows unmodified files +ok 22 - set-up a few more tags for tag export tests +ok 23 - tree_tag +ok 24 - tree_tag-obj +ok 25 - tag-obj_tag +ok 26 - tag-obj_tag-obj +ok 27 - directory becomes symlink +ok 28 - fast-export quotes pathnames +# still have 1 known breakage(s) +# passed all remaining 27 test(s) +1..28 +*** t9400-git-cvsserver-server.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-cvsserver tests, Perl SQLite interface unavailable +*** t9401-git-cvsserver-crlf.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-cvsserver tests, Perl SQLite interface unavailable +*** t9500-gitweb-standalone-no-errors.sh *** +ok 1 - no commits: projects_list (implicit) +ok 2 - no commits: projects_index +ok 3 - no commits: .git summary (implicit) +ok 4 - no commits: .git commit (implicit HEAD) +ok 5 - no commits: .git commitdiff (implicit HEAD) +ok 6 - no commits: .git tree (implicit HEAD) +ok 7 - no commits: .git heads +ok 8 - no commits: .git tags +ok 9 - Make initial commit +ok 10 - projects_list (implicit) +ok 11 - projects_index +ok 12 - .git summary (implicit) +ok 13 - .git commit (implicit HEAD) +ok 14 - .git commitdiff (implicit HEAD, root commit) +ok 15 - .git commitdiff_plain (implicit HEAD, root commit) +ok 16 - .git commit (HEAD) +ok 17 - .git tree (implicit HEAD) +ok 18 - .git blob (file) +ok 19 - .git blob_plain (file) +ok 20 - .git commit (non-existent) +ok 21 - .git commitdiff (non-existent) +ok 22 - .git commitdiff (non-existent vs HEAD) +ok 23 - .git tree (0000000000000000000000000000000000000000) +ok 24 - .git tag (0000000000000000000000000000000000000000) +ok 25 - .git blob (non-existent) +ok 26 - .git blob_plain (non-existent) +ok 27 - commitdiff(0): root +ok 28 - commitdiff(0): file added +ok 29 - commitdiff(0): mode change +ok 30 - commitdiff(0): file renamed +ok 31 - commitdiff(0): file to symlink +ok 32 - commitdiff(0): file deleted +ok 33 - commitdiff(0): file copied / new file +ok 34 - commitdiff(0): mode change and modified +ok 35 - commitdiff(0): renamed and modified +ok 36 - commitdiff(0): renamed, mode change and modified +ok 37 - setup typechange commits +ok 38 - commitdiff(2): file renamed from foo to foo/baz +ok 39 - commitdiff(2): file renamed from foo/baz to foo +ok 40 - commitdiff(2): directory becomes file +ok 41 - commitdiff(2): file becomes directory +ok 42 - commitdiff(2): file becomes symlink +ok 43 - commitdiff(2): symlink becomes file +ok 44 - commitdiff(2): symlink becomes directory +ok 45 - commitdiff(2): directory becomes symlink +ok 46 - setup incomplete lines +ok 47 - commitdiff(1): addition of incomplete line +ok 48 - commitdiff(1): incomplete line as context line +ok 49 - commitdiff(1): change incomplete line +ok 50 - commitdiff(1): removal of incomplete line +ok 51 - Create a merge +ok 52 - commit(0): merge commit +ok 53 - commitdiff(0): merge commit +ok 54 - Prepare large commit +ok 55 - commit(1): large commit +ok 56 - commitdiff(1): large commit +ok 57 - side-by-side: addition of incomplete line +ok 58 - side-by-side: incomplete line as context line +ok 59 - side-by-side: changed incomplete line +ok 60 - side-by-side: removal of incomplete line +ok 61 - side-by-side: merge commit +ok 62 - tags: list of different types of tags +ok 63 - tag: Tag to commit object +ok 64 - tag: on lightweight tag (invalid) +ok 65 - logs: log (implicit HEAD) +ok 66 - logs: shortlog (implicit HEAD) +ok 67 - logs: history (implicit HEAD, file) +ok 68 - logs: history (implicit HEAD, non-existent file) +ok 69 - logs: history (implicit HEAD, deleted file) +ok 70 - path_info: project +ok 71 - path_info: project/branch +ok 72 - path_info: project/branch:file +ok 73 - path_info: project/branch:dir/ +ok 74 - path_info: project/branch:file (non-existent) +ok 75 - path_info: project/branch:dir/ (non-existent) +ok 76 - path_info: project/branch:/file +ok 77 - path_info: project/:/file (implicit HEAD) +ok 78 - path_info: project/:/ (implicit HEAD, top tree) +ok 79 - feeds: OPML +ok 80 - feed: RSS +ok 81 - feed: Atom +ok 82 - encode(commit): utf8 +ok 83 - encode(commit): iso-8859-1 +ok 84 - encode(log): utf-8 and iso-8859-1 +ok 85 - opt: log --no-merges +ok 86 - opt: atom --no-merges +ok 87 - opt: "file" history --no-merges +ok 88 - opt: log --no-such-option (invalid option) +ok 89 - opt: tree --no-merges (invalid option for action) +ok 90 - URL: no project URLs, no base URL +ok 91 - URL: project URLs via gitweb.url +ok 92 - URL: project URLs via cloneurl file +ok 93 - config override: projects list (implicit) +ok 94 - config override: tree view, features not overridden in repo config +ok 95 - config override: tree view, features disabled in repo config +ok 96 - config override: tree view, features enabled in repo config (1) +ok 97 - config override: tree view, features enabled in repo config (2) +ok 98 - search: preparation +ok 99 - search: commit author +ok 100 - search: commit message +ok 101 - search: grep +ok 102 - search: pickaxe +ok 103 - search: projects +ok 104 - README.html with non-ASCII characters (utf-8) +Skipping syntax highlighting test, because 'highlight' was not found +ok 105 # skip syntax highlighting (no highlight, unknown syntax) (missing HIGHLIGHT) +ok 106 # skip syntax highlighting (highlighted, shell script) (missing HIGHLIGHT) +ok 107 - forks: prepare +ok 108 - forks: projects list +ok 109 - forks: forks action +ok 110 - ctags: tag cloud in projects list +ok 111 - ctags: search projects by existing tag +ok 112 - ctags: search projects by non existent tag +ok 113 - ctags: malformed tag weights +ok 114 - categories: projects list, only default category +# passed all 114 test(s) +1..114 +*** t9501-gitweb-standalone-http-status.sh *** +ok 1 - setup +ok 2 - snapshots: tgz only default format enabled +ok 3 - snapshots: all enabled in default, use default disabled value +ok 4 - snapshots: zip explicitly disabled +ok 5 - snapshots: tgz explicitly enabled +ok 6 - snapshots: good tree-ish id +ok 7 - snapshots: bad tree-ish id +ok 8 - snapshots: bad tree-ish id (tagged object) +ok 9 - snapshots: good object id +ok 10 - snapshots: bad object id +ok 11 - load checking: load too high (default action) +# passed all 11 test(s) +1..11 +*** t9502-gitweb-standalone-parse-output.sh *** +ok 1 - setup +ok 2 - snapshot: full sha1 +ok 3 - snapshot: shortened sha1 +ok 4 - snapshot: almost full sha1 +ok 5 - snapshot: HEAD +ok 6 - snapshot: short branch name (master) +ok 7 - snapshot: short tag name (first) +ok 8 - snapshot: full branch name (refs/heads/master) +ok 9 - snapshot: full tag name (refs/tags/first) +ok 10 - snapshot: hierarchical branch name (xx/test) +ok 11 - forks: setup +ok 12 - forks: not skipped unless "forks" feature enabled +ok 13 - forks: forks skipped if "forks" feature enabled +ok 14 - forks: "forks" action for forked repository +ok 15 - forks: can access forked repository +ok 16 - forks: project_index lists all projects (incl. forks) +# passed all 16 test(s) +1..16 +*** t9600-cvsimport.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping cvsimport tests, cvsps not found +*** t9601-cvsimport-vendor-branch.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping cvsimport tests, cvsps not found +*** t9602-cvsimport-branches-tags.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping cvsimport tests, cvsps not found +*** t9603-cvsimport-patchsets.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping cvsimport tests, cvsps not found +*** t9700-perl-git.sh *** +ok 1 - set up test repository +# run 2: Perl API ($(PERL) $(@D)/t/t9700/test.pl) +ok 2 - use Git; +ok 3 - open repository +ok 4 - config scalar: string +ok 5 - config array: string +ok 6 - config scalar: nonexistent +ok 7 - config array: nonexistent +ok 8 - config_int: integer +ok 9 - config_int: nonexistent +ok 10 - config_bool: true +ok 11 - config_bool: false +ok 12 - config_path: ~/foo expansion +ok 13 - config_path: multiple values +ok 14 - get_color +ok 15 - config: duplicate entry in scalar context fails +ok 16 - config_bool: non-boolean values fail +ok 17 - ident scalar: author (type) +ok 18 - ident scalar: committer (type) +ok 19 - ident scalar: invalid ident string (no parsing) +ok 20 - ident array: author +ok 21 - ident array: author +ok 22 - ident array: ident string +ok 23 - ident array: invalid ident string +ok 24 - ident_person: author (type) +ok 25 - ident_person: ident string +ok 26 - ident_person: array +ok 27 - (get file hash) +ok 28 - cat_blob: size +ok 29 - cat_blob: data +ok 30 - hash_object: roundtrip +ok 31 - hash_and_insert_object: returns hash +ok 32 - cat_blob: roundtrip size +ok 33 - cat_blob: roundtrip data +ok 34 - repo_path +ok 35 - wc_path +ok 36 - wc_subdir initial +ok 37 - wc_subdir after wc_chdir +ok 38 - config after wc_chdir +ok 39 - repo_path (2) +ok 40 - wc_path (2) +ok 41 - wc_subdir initial (2) +ok 42 - rev-parse returned hash +ok 43 - log . does not show last commit +ok 44 - cat_blob(outside): size +1..44 +# test_external test Perl API was ok +# test_external_without_stderr test no stderr: Perl API was ok +*** t9800-git-p4-basic.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9801-git-p4-branch.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9802-git-p4-filetype.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9803-git-p4-shell-metachars.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9805-git-p4-skip-submit-edit.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9806-git-p4-options.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9807-git-p4-submit.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9808-git-p4-chdir.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9809-git-p4-client-view.sh *** +# passed all 0 test(s) +1..0 # SKIP skipping git-p4 tests; no p4 or p4d +*** t9901-git-web--browse.sh *** +ok 1 - URL with an ampersand in it +ok 2 - URL with a semi-colon in it +ok 3 - URL with a hash in it +ok 4 - browser paths are properly quoted +ok 5 - browser command allows arbitrary shell code +# passed all 5 test(s) +1..5 +/usr/gnu/bin/make aggregate-results +make[4]: Entering directory `$(@D)/t' +for f in test-results/t*-*.counts; do \ + echo "$f"; \ +done | '/bin/bash' ./aggregate-results.sh + +failed test(s): t0202 t0204 t7406 t9100 t9101 t9102 t9103 t9104 t9105 t9106 t9107 t9108 t9109 t9110 t9111 t9112 t9114 t9115 t9116 t9117 t9118 t9120 t9121 t9122 t9123 t9124 t9125 t9127 t9128 t9129 t9130 t9131 t9132 t9133 t9134 t9135 t9136 t9137 t9138 t9139 t9140 t9141 t9142 t9143 t9144 t9145 t9146 t9150 t9151 t9152 t9153 t9154 t9155 t9156 t9157 t9158 t9159 t9160 t9161 t9162 + +fixed 0 +success 7760 +failed 290 +broken 46 +total 8274 +make[4]: Leaving directory `$(@D)/t' +/usr/gnu/bin/make clean +make[4]: Entering directory `$(@D)/t' +rm -f -r 'trash directory'.* test-results +rm -f -r valgrind/bin +rm -f .prove +make[4]: Leaving directory `$(@D)/t' +make[3]: Leaving directory `$(@D)/t' +make[2]: Leaving directory `$(@D)/t' +make[1]: Leaving directory `$(@D)'