summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-04-08Merge branch 'jk/pack-bitmap'Libravatar Junio C Hamano6-6/+56
* jk/pack-bitmap: pack-objects: do not reuse packfiles without --delta-base-offset add `ignore_missing_links` mode to revwalk
2014-04-08Merge branch 'jl/nor-or-nand-and'Libravatar Junio C Hamano57-90/+88
Eradicate mistaken use of "nor" (that is, essentially "nor" used not in "neither A nor B" ;-)) from in-code comments, command output strings, and documentations. * jl/nor-or-nand-and: code and test: fix misuses of "nor" comments: fix misuses of "nor" contrib: fix misuses of "nor" Documentation: fix misuses of "nor"
2014-04-08Merge branch 'mh/update-ref-batch-create-fix'Libravatar Junio C Hamano2-0/+12
* mh/update-ref-batch-create-fix: update-ref: fail create operation over stdin if ref already exists
2014-04-08Merge branch 'mr/opt-set-ptr'Libravatar Junio C Hamano5-19/+4
OPT_SET_PTR() implementation was broken on IL32P64 platforms; it turns out that the macro is not used by any real user. * mr/opt-set-ptr: parse-options: remove unused OPT_SET_PTR parse-options: add cast to correct pointer type to OPT_SET_PTR MSVC: fix t0040-parse-options crash
2014-04-08Merge branch 'ib/rev-parse-parseopt-argh'Libravatar Junio C Hamano1-1/+1
Finishing touch to a new topic scheduled for 2.0. * ib/rev-parse-parseopt-argh: rev-parse: fix typo in example on manpage
2014-04-08Merge branch 'mr/msvc-link-with-invalidcontinue'Libravatar Junio C Hamano1-1/+1
* mr/msvc-link-with-invalidcontinue: MSVC: link in invalidcontinue.obj for better POSIX compatibility
2014-04-08Merge branch 'jc/rev-parse-argh-dashed-multi-words'Libravatar Junio C Hamano17-29/+77
Make sure that the help text given to describe the "<param>" part of the "git cmd --option=<param>" does not contain SP or _, e.g. "--gpg-sign=<key-id>" option for "git commit" is not spelled as "--gpg-sign=<key id>". * jc/rev-parse-argh-dashed-multi-words: parse-options: make sure argh string does not have SP or _ update-index: teach --cacheinfo a new syntax "mode,sha1,path" parse-options: multi-word argh should use dash to separate words
2014-04-08Merge branch 'jk/commit-dates-parsing-fix'Libravatar Junio C Hamano5-4/+47
Finishing touches for portability. * jk/commit-dates-parsing-fix: t4212: loosen far-in-future test for AIX date: recognize bogus FreeBSD gmtime output
2014-04-07git-p4: explicitly specify that HEAD is a revisionLibravatar Vlad Dogaru1-1/+1
'git p4 rebase' fails with the following message if there is a file named HEAD in the current directory: fatal: ambiguous argument 'HEAD': both revision and filename Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' Take the suggestion above and explicitly state that HEAD should be treated as a revision. Signed-off-by: Vlad Dogaru <vdogaru@ixiacom.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-04pack-objects: do not reuse packfiles without --delta-base-offsetLibravatar Jeff King1-1/+12
When we are sending a packfile to a remote, we currently try to reuse a whole chunk of packfile without bothering to look at the individual objects. This can make things like initial clones much lighter on the server, as we can just dump the packfile bytes. However, it's possible that the other side cannot read our packfile verbatim. For example, we may have objects stored as OFS_DELTA, but the client is an antique version of git that only understands REF_DELTA. We negotiate this capability over the fetch protocol. A normal pack-objects run will convert OFS_DELTA into REF_DELTA on the fly, but the "reuse pack" code path never even looks at the objects. This patch disables packfile reuse if the other side is missing any capabilities that we might have used in the on-disk pack. Right now the only one is OFS_DELTA, but we may need to expand in the future (e.g., if packv4 introduces new object types). We could be more thorough and only disable reuse in this case when we actually have an OFS_DELTA to send, but: 1. We almost always will have one, since we prefer OFS_DELTA to REF_DELTA when possible. So this case would almost never come up. 2. Looking through the objects defeats the purpose of the optimization, which is to do as little work as possible to get the bytes to the remote. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-04add `ignore_missing_links` mode to revwalkLibravatar Vicent Marti5-5/+44
When pack-objects is computing the reachability bitmap to serve a fetch request, it can erroneously die() if some of the UNINTERESTING objects are not present. Upload-pack throws away HAVE lines from the client for objects we do not have, but we may have a tip object without all of its ancestors (e.g., if the tip is no longer reachable and was new enough to survive a `git prune`, but some of its reachable objects did get pruned). In the non-bitmap case, we do a revision walk with the HAVE objects marked as UNINTERESTING. The revision walker explicitly ignores errors in accessing UNINTERESTING commits to handle this case (and we do not bother looking at UNINTERESTING trees or blobs at all). When we have bitmaps, however, the process is quite different. The bitmap index for a pack-objects run is calculated in two separate steps: First, we perform an extensive walk from all the HAVEs to find the full set of objects reachable from them. This walk is usually optimized away because we are expected to hit an object with a bitmap during the traversal, which allows us to terminate early. Secondly, we perform an extensive walk from all the WANTs, which usually also terminates early because we hit a commit with an existing bitmap. Once we have the resulting bitmaps from the two walks, we AND-NOT them together to obtain the resulting set of objects we need to pack. When we are walking the HAVE objects, the revision walker does not know that we are walking it only to mark the results as uninteresting. We strip out the UNINTERESTING flag, because those objects _are_ interesting to us during the first walk. We want to keep going to get a complete set of reachable objects if we can. We need some way to tell the revision walker that it's OK to silently truncate the HAVE walk, just like it does for the UNINTERESTING case. This patch introduces a new `ignore_missing_links` flag to the `rev_info` struct, which we set only for the HAVE walk. It also adds tests to cover UNINTERESTING objects missing from several positions: a missing blob, a missing tree, and a missing parent commit. The missing blob already worked (as we do not care about its contents at all), but the other two cases caused us to die(). Note that there are a few cases we do not need to test: 1. We do not need to test a missing tree, with the blob still present. Without the tree that refers to it, we would not know that the blob is relevant to our walk. 2. We do not need to test a tip commit that is missing. Upload-pack omits these for us (and in fact, we complain even in the non-bitmap case if it fails to do so). Reported-by: Siddharth Agarwal <sid0@fb.com> Signed-off-by: Vicent Marti <tanoku@gmail.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-04MSVC: allow using ExtUtils::MakeMakerLibravatar Marat Radchenko1-1/+0
Drop NO_PERL_MAKEMAKER from config.mak.uname for the MSVC platform. MakeMaker is available on Windows Perl implementations and installs modules to correct location, unlike NO_PERL_MAKEMAKER Makefile. Signed-off-by: Marat Radchenko <marat@slonopotamus.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-03Update draft release notes to 2.0Libravatar Junio C Hamano1-0/+25
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-03Merge branch 'maint'Libravatar Junio C Hamano1-0/+38
* maint: Start preparing for 1.9.1
2014-04-03Start preparing for 1.9.1Libravatar Junio C Hamano2-1/+39
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-03Merge branch 'jk/mv-submodules-fix' into maintLibravatar Junio C Hamano2-1/+21
* jk/mv-submodules-fix: mv: prevent mismatched data when ignoring errors. builtin/mv: fix out of bounds write Conflicts: t/t7001-mv.sh
2014-04-03Merge branch 'mh/remove-subtree-long-pathname-fix' into maintLibravatar Junio C Hamano1-32/+32
* mh/remove-subtree-long-pathname-fix: entry.c: fix possible buffer overflow in remove_subtree() checkout_entry(): use the strbuf throughout the function
2014-04-03Merge branch 'jk/lib-terminal-lazy' into maintLibravatar Junio C Hamano1-18/+19
* jk/lib-terminal-lazy: t/lib-terminal: make TTY a lazy prerequisite
2014-04-03Merge branch 'nd/index-pack-error-message' into maintLibravatar Junio C Hamano1-2/+2
* nd/index-pack-error-message: index-pack: report error using the correct variable
2014-04-03Merge branch 'us/printf-not-echo' into maintLibravatar Junio C Hamano2-3/+3
* us/printf-not-echo: test-lib.sh: do not "echo" caller-supplied strings rebase -i: do not "echo" random user-supplied strings
2014-04-03Merge branch 'rr/doc-merge-strategies' into maintLibravatar Junio C Hamano1-2/+2
* rr/doc-merge-strategies: Documentation/merge-strategies: avoid hyphenated commands
2014-04-03Merge branch 'jk/shallow-update-fix' into maintLibravatar Junio C Hamano5-56/+49
* jk/shallow-update-fix: shallow: verify shallow file after taking lock shallow: automatically clean up shallow tempfiles shallow: use stat_validity to check for up-to-date file
2014-04-03Merge branch 'jc/stash-pop-not-popped' into maintLibravatar Junio C Hamano1-2/+8
* jc/stash-pop-not-popped: stash pop: mention we did not drop the stash upon failing to apply
2014-04-03Merge branch 'jn/wt-status' into maintLibravatar Junio C Hamano3-55/+88
* jn/wt-status: wt-status: lift the artificual "at least 20 columns" floor wt-status: i18n of section labels wt-status: extract the code to compute width for labels wt-status: make full label string to be subject to l10n
2014-04-03Merge branch 'nd/gc-aggressive'Libravatar Junio C Hamano5-3/+17
Allow tweaking the maximum length of the delta-chain produced by "gc --aggressive". * nd/gc-aggressive: environment.c: fix constness for odb_pack_keep() gc --aggressive: make --depth configurable
2014-04-03Merge branch 'jc/fix-diff-no-index-diff-opt-parse'Libravatar Junio C Hamano1-1/+1
"diff --no-index -Mq a b" fell into an infinite loop. * jc/fix-diff-no-index-diff-opt-parse: diff-no-index: correctly diagnose error return from diff_opt_parse()
2014-04-03Merge branch 'cb/aix'Libravatar Junio C Hamano3-7/+5
* cb/aix: tests: don't rely on strerror text when testing rmdir failure dir.c: make git_fnmatch() not inline
2014-04-03Merge branch 'cn/fetch-prune-overlapping-destination'Libravatar Junio C Hamano2-6/+64
Protect refs in a hierarchy that can come from more than one remote hierarcies from incorrect removal by "git fetch --prune". * cn/fetch-prune-overlapping-destination: fetch: handle overlaping refspecs on --prune fetch: add a failing test for prunning with overlapping refspecs
2014-04-03Merge branch 'nd/log-show-linear-break'Libravatar Junio C Hamano14-11/+89
Attempts to show where a single-strand-of-pearls break in "git log" output. * nd/log-show-linear-break: log: add --show-linear-break to help see non-linear history object.h: centralize object flag allocation
2014-04-03Merge branch 'ep/shell-command-substitution'Libravatar Junio C Hamano2-17/+17
* ep/shell-command-substitution: git-am.sh: use the $(...) construct for command substitution check-builtins.sh: use the $(...) construct for command substitution
2014-04-02Merge branch 'ap/remote-hg-skip-null-bookmarks'Libravatar Junio C Hamano2-1/+77
* ap/remote-hg-skip-null-bookmarks: remote-hg: do not fail on invalid bookmarks
2014-04-02Merge branch 'rs/pickaxe-i'Libravatar Junio C Hamano2-188/+116
Allow the options -i/--regexp-ignore-case, --pickaxe-regex, and -S to be used together and work as expected to perform a pickaxe search using case-insensitive regular expression matching. * rs/pickaxe-i: pickaxe: simplify kwset loop in contains() pickaxe: call strlen only when necessary in diffcore_pickaxe_count() pickaxe: move pickaxe() after pickaxe_match() pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe() pickaxe: honor -i when used with -S and --pickaxe-regex t4209: use helper functions to test --author t4209: use helper functions to test --grep t4209: factor out helper function test_log_icase() t4209: factor out helper function test_log() t4209: set up expectations up front
2014-04-02Revert part of 384364b (Start preparing for Git 2.0, 2014-03-07)Libravatar Junio C Hamano1-5/+0
As we are not shipping with the submodule change, remove the entry for it.
2014-04-02Revert "submodule: explicit local branch creation in module_clone"Libravatar Junio C Hamano4-109/+26
This reverts commit 23d25e48f5ead73c9ce233986f90791abec9f1e8, as it is broken for users who haven't opted into the new feature of checking out submodule.*.branch with update mode set to checkout.
2014-04-02update-ref: fail create operation over stdin if ref already existsLibravatar Aman Gupta2-0/+12
Signed-off-by: Aman Gupta <aman@tmm1.net> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Acked-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-01t4212: loosen far-in-future test for AIXLibravatar Jeff King1-4/+2
One of the tests in t4212 checks our behavior when we feed gmtime a date so far in the future that it gives up and returns NULL. Some implementations, like AIX, may actually just provide us a bogus result instead. It's not worth it for us to come up with heuristics that guess whether the return value is sensible or not. On good platforms where gmtime reports the problem to us with NULL, we will print the epoch value. On bad platforms, we will print garbage. But our test should be written for the lowest common denominator so that it passes everywhere. Reported-by: Charles Bailey <cbailey32@bloomberg.net> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-01date: recognize bogus FreeBSD gmtime outputLibravatar Jeff King4-0/+45
Most gmtime implementations return a NULL value when they encounter an error (and this behavior is specified by ANSI C and POSIX). FreeBSD's implementation, however, will simply leave the "struct tm" untouched. Let's also recognize this and convert it to a NULL (with this patch, t4212 should pass on FreeBSD). Reported-by: René Scharfe <l.s.r@web.de> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-01rev-parse: fix typo in example on manpageLibravatar René Scharfe1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-04-01Revert "Merge branch 'wt/doc-submodule-name-path-confusion-2'"Libravatar Junio C Hamano1-1/+1
This reverts commit 00d4ff1a69883e24b095f45251d99143b5bc0320, reversing changes made to d3badc6eb0961382788c2670129d5ee133d079fd.
2014-03-31Update draft release notes to 2.0Libravatar Junio C Hamano1-0/+13
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-03-31Merge branch 'mm/status-porcelain-format-i18n-fix'Libravatar Junio C Hamano2-5/+9
* mm/status-porcelain-format-i18n-fix: status: disable translation when --porcelain is used
2014-03-31Merge branch 'an/branch-config-message'Libravatar Junio C Hamano1-23/+23
* an/branch-config-message: branch.c: install_branch_config: simplify if chain
2014-03-31Merge branch 'jk/tests-cleanup'Libravatar Junio C Hamano10-180/+87
* jk/tests-cleanup: t0001: drop subshells just for "cd" t0001: drop useless subshells t0001: use test_must_fail t0001: use test_config_global t0001: use test_path_is_* t0001: make symlink reinit test more careful t: prefer "git config --file" to GIT_CONFIG t: prefer "git config --file" to GIT_CONFIG with test_must_fail t: stop using GIT_CONFIG to cross repo boundaries t: drop useless sane_unset GIT_* calls t/test-lib: drop redundant unset of GIT_CONFIG t/Makefile: stop setting GIT_CONFIG
2014-03-31Merge branch 'wt/doc-submodule-name-path-confusion-2'Libravatar Junio C Hamano1-1/+1
* wt/doc-submodule-name-path-confusion-2: doc: submodule.*.branch config is keyed by name
2014-03-31Merge branch 'wt/doc-submodule-name-path-confusion-1'Libravatar Junio C Hamano1-1/+1
* wt/doc-submodule-name-path-confusion-1: doc: submodule.* config are keyed by submodule names
2014-03-31Merge branch 'mr/msvc-link-with-lcurl'Libravatar Junio C Hamano2-1/+2
* mr/msvc-link-with-lcurl: MSVC: allow linking with the cURL library
2014-03-31Merge branch 'ib/rev-parse-parseopt-argh'Libravatar Junio C Hamano3-39/+100
Teaches the "rev-parse --parseopt" mechanism used by scripted Porcelains to parse command line options and give help text how to supply argv-help (the placeholder string for an option parameter, e.g. "key-id" in "--gpg-sign=<key-id>"). * ib/rev-parse-parseopt-argh: t1502: protect runs of SPs used in the indentation rev-parse --parseopt: option argument name hints
2014-03-31Merge branch 'dp/makefile-charset-lib-doc'Libravatar Junio C Hamano1-2/+2
* dp/makefile-charset-lib-doc: Makefile: describe CHARSET_LIB better
2014-03-31Merge branch 'js/userdiff-cc'Libravatar Junio C Hamano33-160/+303
Improves the pattern to match the hunk-header for C/C++. * js/userdiff-cc: userdiff: have 'cpp' hunk header pattern catch more C++ anchor points t4018: test cases showing that the cpp pattern misses many anchor points t4018: test cases for the built-in cpp pattern t4018: reduce test files for pattern compilation tests t4018: convert custom pattern test to the new infrastructure t4018: convert java pattern test to the new infrastructure t4018: convert perl pattern tests to the new infrastructure t4018: an infrastructure to test hunk headers userdiff: support unsigned and long long suffixes of integer constants userdiff: support C++ ->* and .* operators in the word regexp
2014-03-31Merge branch 'dw/doc-status-no-longer-shows-pound-prefix'Libravatar Junio C Hamano1-1/+1
* dw/doc-status-no-longer-shows-pound-prefix: doc: status, remove leftover statement about '#' prefix