swh:1:snp:bb8853bfef8fcf2b1d37fd6404912c7606c98e48

sort by:
Revision Author Date Message Commit Date
f7d958d Git 1.7.7.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 October 2011, 04:48:06 UTC
7fe74f5 RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting The change was actually about "git init -s" which sets the setgid bit on SysV-style systems to allow shared access to a repository, and can provoke errors on BSD-style systems, depending on how permissive the filesystem in use wants to be. More to the point, the patch was just taking a fix that arrived for FreeBSD in v1.5.5 days and making it also apply to machines using an (obscure) GNU userland/FreeBSD kernel mixture. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 October 2011, 04:16:31 UTC
8742218 Almost ready for 1.7.7.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 October 2011, 18:01:07 UTC
d25a265 Merge branch 'nd/maint-autofix-tag-in-head' into maint * nd/maint-autofix-tag-in-head: Accept tags in HEAD or MERGE_HEAD merge: remove global variable head[] merge: use return value of resolve_ref() to determine if HEAD is invalid merge: keep stash[] a local variable Conflicts: builtin/merge.c 21 October 2011, 17:49:26 UTC
e63f87a Merge branch 'jc/apply-blank-at-eof-fix' into maint * jc/apply-blank-at-eof-fix: apply --whitespace=error: correctly report new blank lines at end 21 October 2011, 17:49:26 UTC
6e89b37 Merge branch 'jn/no-g-plus-s-on-bsd' into maint * jn/no-g-plus-s-on-bsd: Makefile: do not set setgid bit on directories on GNU/kFreeBSD 21 October 2011, 17:49:25 UTC
713b85c Merge branch 'rs/diff-cleanup-records-fix' into maint * rs/diff-cleanup-records-fix: diff: resurrect XDF_NEED_MINIMAL with --minimal Revert removal of multi-match discard heuristic in 27af01 21 October 2011, 17:49:25 UTC
689b047 Merge branch 'il/archive-err-signal' into maint * il/archive-err-signal: Support ERR in remote archive like in fetch/push 21 October 2011, 17:49:25 UTC
c510259 Merge branch 'js/maint-merge-one-file-osx-expr' into maint * js/maint-merge-one-file-osx-expr: merge-one-file: fix "expr: non-numeric argument" 21 October 2011, 17:49:25 UTC
cec3e18 Merge branch 'jm/maint-apply-detects-corrupt-patch-header' into maint * jm/maint-apply-detects-corrupt-patch-header: fix "git apply --index ..." not to deref NULL 21 October 2011, 17:49:24 UTC
df68408 Merge branch 'jc/checkout-from-tree-keep-local-changes' into maint * jc/checkout-from-tree-keep-local-changes: checkout $tree $path: do not clobber local changes in $path not in $tree 21 October 2011, 17:49:24 UTC
634b29d Merge branch 'mm/maint-config-explicit-bool-display' into maint * mm/maint-config-explicit-bool-display: config: display key_delim for config --bool --get-regexp 21 October 2011, 17:49:24 UTC
1844f8d strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline() This use of strbuf_grow() is a historical artifact that was once used to ensure that strbuf.buf was allocated and properly nul-terminated. This was added before the introduction of the slopbuf in b315c5c0, which guarantees that strbuf.buf always points to a usable nul-terminated string. So let's remove it. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 October 2011, 20:28:17 UTC
16b3b2d Prepare for 1.7.7.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 October 2011, 03:55:12 UTC
f5fcb59 Merge branch 'ms/patch-id-with-overlong-line' into maint * ms/patch-id-with-overlong-line: patch-id.c: use strbuf instead of a fixed buffer 16 October 2011, 03:46:39 UTC
6323a14 Merge branch 'jc/maint-bundle-too-quiet' into maint * jc/maint-bundle-too-quiet: Teach progress eye-candy to fetch_refs_from_bundle() 16 October 2011, 03:46:39 UTC
3197bd8 Merge branch 'jk/filter-branch-require-clean-work-tree' into maint * jk/filter-branch-require-clean-work-tree: filter-branch: use require_clean_work_tree 16 October 2011, 03:46:38 UTC
d7b7dd3 Merge branch 'jc/maint-fsck-fwrite-size-check' into maint * jc/maint-fsck-fwrite-size-check: fsck: do not abort upon finding an empty blob 16 October 2011, 03:46:38 UTC
a151c28 Merge branch 'bk/ancestry-path' into maint * bk/ancestry-path: t6019: avoid refname collision on case-insensitive systems revision: do not include sibling history in --ancestry-path output revision: keep track of the end-user input from the command line rev-list: Demonstrate breakage with --ancestry-path --all 16 October 2011, 03:46:38 UTC
e2d0a2e Merge branch 'jk/maint-fetch-submodule-check-fix' into maint * jk/maint-fetch-submodule-check-fix: fetch: avoid quadratic loop checking for updated submodules 16 October 2011, 03:46:38 UTC
8f85829 Merge branch 'tr/mergetool-valgrind' into maint * tr/mergetool-valgrind: Symlink mergetools scriptlets into valgrind wrappers 16 October 2011, 03:46:37 UTC
7c4f050 Merge branch 'nm/grep-object-sha1-lock' into maint * nm/grep-object-sha1-lock: grep: Fix race condition in delta_base_cache Conflicts: builtin/grep.c 16 October 2011, 03:46:37 UTC
fc26f57 Merge branch 'jc/diff-index-unpack' into maint * jc/diff-index-unpack: diff-index: pass pathspec down to unpack-trees machinery unpack-trees: allow pruning with pathspec traverse_trees(): allow pruning with pathspec 16 October 2011, 03:46:36 UTC
57ded05 Merge branch 'mm/rebase-i-exec-edit' into maint * mm/rebase-i-exec-edit: rebase -i: notice and warn if "exec $cmd" modifies the index or the working tree rebase -i: clean error message for --continue after failed exec 16 October 2011, 03:46:36 UTC
ac2604c t1304: fall back to $USER if $LOGNAME is not defined For some reason $LOGNAME is not set anymore for me after an upgrade from Ubuntu 11.04 to 11.10. Use $USER in such a case. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 October 2011, 18:41:28 UTC
2c93286 fix "git apply --index ..." not to deref NULL I noticed this when "git am CORRUPTED" unexpectedly failed with an odd diagnostic, and even removed one of the files it was supposed to have patched. Reproduce with any valid old/new patch from which you have removed the "+++ b/FILE" line. You'll see a diagnostic like this fatal: unable to write file '(null)' mode 100644: Bad address and you'll find that FILE has been removed. The above is on glibc-based systems. On other systems, rather than getting "null", you may provoke a segfault as git tries to dereference the NULL file name. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 October 2011, 19:08:11 UTC
008e3cc config: display key_delim for config --bool --get-regexp The previous logic in show_config was to print the delimiter when the value was set, but Boolean variables have an implicit value "true" when they appear with no value in the config file. As a result, we got: git_Config --get-regexp '.*\.Boolean' #1. Ok: example.boolean git_Config --bool --get-regexp '.*\.Boolean' #2. NO: example.booleantrue Fix this by defering the display of the separator until after the value to display has been computed. Reported-by: Brian Foster <brian.foster@maxim-ic.com> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 October 2011, 19:34:44 UTC
d30db56 merge-one-file: fix "expr: non-numeric argument" When invoking expr to compare two numbers, don't quote the variables which are the output of 'wc -c'. On OS X, this output includes spaces, which expr balks at: $ sz0=`wc -c </etc/passwd` $ sz1=`wc -c </etc/passwd` $ echo "'$sz0'" ' 3667' $ expr "$sz0" \< "$sz1" \* 2 expr: non-numeric argument $ expr $sz0 \< $sz1 \* 2 1 Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 October 2011, 20:24:59 UTC
908aace Support ERR in remote archive like in fetch/push Make ERR as first packet of remote snapshot reply work like it does in fetch/push. Lets servers decline remote snapshot with message the same way as declining fetch/push with a message. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com> 05 October 2011, 16:27:29 UTC
0b20dd8 Makefile: do not set setgid bit on directories on GNU/kFreeBSD The g+s bit on directories to make group ownership inherited is a SysVism --- BSD and most of its descendants do not need it since they do the sane thing by default without g+s. In fact, on some filesystems (but not all --- tmpfs works this way but UFS does not), the kernel of FreeBSD does not even allow non-root users to set setgid bit on directories and produces errors when one tries: $ git init --shared dir fatal: Could not make /tmp/dir/.git/refs writable by group Since the setgid bit would only mean "do what you were going to do already", it's better to avoid setting it. Accordingly, ever since v1.5.5-rc0~59^2 (Do not use GUID on dir in git init --share=all on FreeBSD, 2008-03-05), git on true FreeBSD has done exactly that. Set DIR_HAS_BSD_GROUP_SEMANTICS in the makefile for GNU/kFreeBSD, too, so machines that use glibc with the kernel of FreeBSD get the same fix. This fixes t0001-init.sh and t1301-shared-repo.sh on GNU/kFreeBSD when running tests with --root pointing to a directory that uses tmpfs. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 October 2011, 21:53:00 UTC
81b568c diff: resurrect XDF_NEED_MINIMAL with --minimal Earlier, 582aa00 (git diff too slow for a file, 2010-05-02) unconditionally dropped XDF_NEED_MINIMAL option from the internal xdiff invocation to help performance on pathological cases, while hinting that a follow-up patch could reintroduce it with "--minimal" option from the command line. Make it so. Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 October 2011, 18:58:18 UTC
703f05a Git 1.7.7 Signed-off-by: Junio C Hamano <gitster@pobox.com> 30 September 2011, 21:20:57 UTC
0a1283b checkout $tree $path: do not clobber local changes in $path not in $tree Checking paths out of a tree is (currently) defined to do: - Grab the paths from the named tree that match the given pathspec, and add them to the index; - Check out the contents from the index for paths that match the pathspec to the working tree; and while at it - If the given pathspec did not match anything, suspect a typo from the command line and error out without updating the index nor the working tree. Suppose that the branch you are working on has dir/myfile, and the "other" branch has dir/other but not dir/myfile. Further imagine that you have either modified or removed dir/myfile in your working tree, but you have not run "git add dir/myfile" or "git rm dir/myfile" to tell Git about your local change. Running $ git checkout other dir would add dir/other to the index with the contents taken out of the "other" branch, and check out the paths from the index that match the pathspec "dir", namely, "dir/other" and "dir/myfile", overwriting your local changes to "dir/myfile", even though "other" branch does not even know about that file. Fix it by updating the working tree only with the index entries that was read from the "other" tree. Signed-off-by: Junio C Hamano <gitster@pobox.com> 30 September 2011, 17:33:15 UTC
8d714b1 templates/hooks--*: remove sample hooks without any functionality Remove the sample post-commit and post-receive hooks. The sample post-commit doesn't contain any sample functionality and the comments do not provide more information than already found in the documentation. The sample post-receive hooks doesn't provide any sample functionality either and refers in the comments to a contrib hook that might be installed in different locations on different systems, which isn't that helpful. Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 September 2011, 17:00:35 UTC
f6f1788 contrib/hooks: adapt comment about Debian install location for contrib hooks Placing the contrib hooks into /usr/share/doc/ wasn't a good idea in the first place. According to the Debian policy they should be located in /usr/share/git-core/, so let's put them there. Thanks to Bill Allombert for reporting this through http://bugs.debian.org/640949 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 September 2011, 23:39:34 UTC
8557263 apply --whitespace=error: correctly report new blank lines at end Earlier, 77b15bb (apply --whitespace=warn/error: diagnose blank at EOF, 2009-09-03) cheated by reporting the line number of the hunk that contains the offending line that adds new blank lines at the end of the file. All other types of whitespace errors are reported with the line number in the patch file that has the actual offending text. Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 September 2011, 21:07:55 UTC
c5aa906 Revert removal of multi-match discard heuristic in 27af01 27af01d (xdiff/xprepare: improve O(n*m) performance in xdl_cleanup_records(), 2011-08-17) was supposed to be a performance boost only. However, it unexpectedly changed the behaviour of diff. Revert a part of 27af01d that removes logic that mark lines as "multi-match" (ie. dis[i] == 2). This was preventing the multi-match discard heuristic (performed in xdl_cleanup_records() and xdl_clean_mmatch()) from executing. Reported-by: Alexander Pepper <pepper@inf.fu-berlin.de> Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 September 2011, 18:38:14 UTC
614583f Merge branch 'jc/namespace-doc-with-old-asciidoc' * jc/namespace-doc-with-old-asciidoc: Documentation/gitnamespaces.txt: cater to older asciidoc 26 September 2011, 17:50:08 UTC
85e9c7e Git 1.7.7-rc3 Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 September 2011, 22:35:57 UTC
b761900 Merge 1.7.6.4 in Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 September 2011, 22:31:08 UTC
d45b7f4 merge-recursive: Do not look at working tree during a virtual ancestor merge Fix another instance of a recursive merge incorrectly paying attention to the working tree file during a virtual ancestor merge, that resulted in spurious and useless "addinfo_cache failed" error message. Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 September 2011, 22:21:01 UTC
6320526 Git 1.7.6.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 September 2011, 21:43:05 UTC
a0b1cb6 Merge branch 'cb/maint-ls-files-error-report' into maint * cb/maint-ls-files-error-report: t3005: do not assume a particular order of stdout and stderr of git-ls-files ls-files: fix pathspec display on error 23 September 2011, 21:30:49 UTC
85b3c75 describe: Refresh the index when run with --dirty When running git describe --dirty the index should be refreshed. Previously the cached index would cause describe to think that the index was dirty when, in reality, it was just stale. The issue was exposed by python setuptools which hardlinks files into another directory when building a distribution. Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 September 2011, 21:28:17 UTC
84b0514 Merge branch 'jc/maint-clone-alternates' into maint * jc/maint-clone-alternates: clone: clone from a repository with relative alternates clone: allow more than one --reference 23 September 2011, 21:27:33 UTC
406c1c4 Merge branch 'nd/maint-clone-gitdir' into maint * nd/maint-clone-gitdir: clone: allow to clone from .git file read_gitfile_gently(): rename misnamed function to read_gitfile() 23 September 2011, 21:21:39 UTC
be5acb3 Merge branch 'mh/check-ref-format-print-normalize' into maint * mh/check-ref-format-print-normalize: Forbid DEL characters in reference names check-ref-format --print: Normalize refnames that start with slashes 23 September 2011, 21:20:51 UTC
503359f Merge branch 'mg/branch-set-upstream-previous' into maint * mg/branch-set-upstream-previous: branch.c: use the parsed branch name 23 September 2011, 21:16:22 UTC
40ffc49 Merge branch 'gb/maint-am-patch-format-error-message' into maint * gb/maint-am-patch-format-error-message: am: format is in $patch_format, not parse_patch 23 September 2011, 21:11:18 UTC
b9ab810 patch-id.c: use strbuf instead of a fixed buffer get_one_patchid() uses a rather dumb heuristic to determine if the passed buffer is part of the next commit. Whenever the first 40 bytes are a valid hexadecimal sha1 representation, get_one_patchid() returns next_sha1. Once the current line is longer than the fixed buffer, this will break (provided the additional bytes make a valid hexadecimal sha1). As a result patch-id returns incorrect results. Instead, use strbuf and read one line at a time. Helped-by: Jeff King <peff@peff.net> Signed-off-by: Michael Schubert <mschub@elegosoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 September 2011, 16:35:07 UTC
5ec8217 Merge branch 'maint' * maint: git-mergetool: check return value from read 20 September 2011, 03:46:48 UTC
e622f41 git-mergetool: check return value from read Mostly fixed already by 6b44577 (mergetool: check return value from read, 2011-07-01). Catch two uses it missed. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 September 2011, 00:41:49 UTC
9b502a3 Merge branch 'ph/format-patch-no-color' * ph/format-patch-no-color: t4014: clean up format.thread config after each test 19 September 2011, 20:15:41 UTC
e810715 t4014: clean up format.thread config after each test The threading tests turn on format.thread, but never clean up after themselves, meaning that later tests will also have format.thread set. This is more annoying than most leftover config, too, because not only does it impact the results of other tests, but it does so non-deterministically. Threading requires the generation of message-ids, which incorporate the current time, meaning a slow-running test script may generate different results from run to run. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 September 2011, 20:14:32 UTC
be042af Teach progress eye-candy to fetch_refs_from_bundle() With the usual "git" transport, a large-ish transfer with "git fetch" and "git pull" give progress eye-candy to avoid boring users. However, not when they are reading from a bundle. I.e. $ git pull ../git-bundle.bndl master This teaches bundle.c:unbundle() to give "-v" option to index-pack and tell it to give progress bar when transport decides it is necessary. The operation in the other direction, "git bundle create", could also learn to honor --quiet but that is a separate issue. Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 September 2011, 18:07:21 UTC
167a580 Git 1.7.7-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 September 2011, 22:41:34 UTC
baf18fc Accept tags in HEAD or MERGE_HEAD HEAD and MERGE_HEAD (among other branch tips) should never hold a tag. That can only be caused by broken tools and is cumbersome to fix by an end user with: $ git update-ref HEAD $(git rev-parse HEAD^{commit}) which may look like a magic to a new person. Be easy, warn users (so broken tools can be fixed if they bother to report) and move on. Be robust, if the given SHA-1 cannot be resolved to a commit object, die (therefore return value is always valid). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 September 2011, 21:11:40 UTC
894642f merge: remove global variable head[] Also kill head_invalid in favor of "head_commit == NULL". Local variable "head" in cmd_merge() is renamed to "head_sha1" to make sure I don't miss any access because this variable should not be used after head_commit is set (use head_commit->object.sha1 instead). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 September 2011, 20:56:58 UTC
10b98fa merge: use return value of resolve_ref() to determine if HEAD is invalid resolve_ref() only updates "head" when it returns non NULL value (it may update "head" even when returning NULL, but not in all cases). Because "head" is not initialized before the call, is_null_sha1() is not enough. Check also resolve_ref() return value. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 September 2011, 20:55:56 UTC
c103e95 Merge branch 'ci/forbid-unwanted-current-branch-update' * ci/forbid-unwanted-current-branch-update: branch --set-upstream: regression fix 17 September 2011, 04:48:10 UTC
fa79937 branch --set-upstream: regression fix The "git branch" command, while not in listing mode, calls create_branch() even when the target branch already exists, and it does so even when it is not interested in updating the value of the branch (i.e. the name of the commit object that sits at the tip of the existing branch). This happens when the command is run with "--set-upstream" option. The earlier safety-measure to prevent "git branch -f $branch $commit" from updating the currently checked out branch did not take it into account, and we no longer can update the tracking information of the current branch. Minimally fix this regression by telling the validation code if it is called to really update the value of a potentially existing branch, or if the caller merely is interested in updating auxiliary aspects of a branch. Reported-and-Tested-by: Jay Soffian Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 September 2011, 04:47:47 UTC
26e4266 Disambiguate duplicate t9160* tests 1e5814f created t9160-git-svn-mergeinfo-push.sh on 11/9/7 40a1530 created t9160-git-svn-preserve-empty-dirs.sh on 11/7/20 The former test script is renumbered to t9161. Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 September 2011, 21:06:19 UTC
4c1be38 Documentation/gitnamespaces.txt: cater to older asciidoc Older asciidoc (e.g. 8.2.5 on Centos 5.5) is unhappy if a manpage does not have a SYNOPSIS section. Show a sample (and a possibly bogus) command line of running two commands that pay attention to this environment variable with a customized value. Signed-off-by: Junio C Hamano <gitster@pobox.com> Reviewed-by: Jamey Sharp <jamey@minilop.net> 16 September 2011, 16:20:23 UTC
5347a50 filter-branch: use require_clean_work_tree Filter-branch already requires that we have a clean work tree before starting. However, it failed to refresh the index before checking, which means it could be wrong in the case of stat-dirtiness. Instead of simply adding a call to refresh the index, let's switch to using the require_clean_work_tree function provided by git-sh-setup. It does exactly what we want, and with fewer lines of code and more specific output messages. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 September 2011, 23:58:55 UTC
c05b988 t6019: avoid refname collision on case-insensitive systems The criss-cross tests kept failing for me because of collisions of 'a' with 'A' etc. Prefix the lowercase refnames with an extra letter to disambiguate. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Acked-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 September 2011, 15:53:11 UTC
559357b Merge branch 'ph/format-patch-no-color' * ph/format-patch-no-color: format-patch: ignore ui.color 15 September 2011, 04:43:57 UTC
1e5814f git-svn: teach git-svn to populate svn:mergeinfo Allow git-svn to populate the svn:mergeinfo property automatically in a narrow range of circumstances. Specifically, when dcommitting a revision with multiple parents, all but (potentially) the first of which have been committed to SVN in the same repository as the target of the dcommit. In this case, the merge info is the union of that given by each of the parents, plus all changes introduced to the first parent by the other parents. In all other cases where a revision to be committed has multiple parents, cause "git svn dcommit" to raise an error rather than completing the commit and potentially losing history information in the upstream SVN repository. This behavior is disabled by default, and can be enabled by setting the svn.pushmergeinfo config option. [ew: minor style changes and manpage merge fix] Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Bryan Jacobs <bjacobs@woti.com> 13 September 2011, 08:12:13 UTC
6859de4 fetch: avoid quadratic loop checking for updated submodules Recent versions of git can be slow to fetch repositories with a large number of refs (or when they already have a large number of refs). For example, GitHub makes pull-requests available as refs, which can lead to a large number of available refs. This slowness goes away when submodule recursion is turned off: $ git ls-remote git://github.com/rails/rails.git | wc -l 3034 [this takes ~10 seconds of CPU time to complete] git fetch --recurse-submodules=no \ git://github.com/rails/rails.git "refs/*:refs/*" [this still isn't done after 10 _minutes_ of pegging the CPU] git fetch \ git://github.com/rails/rails.git "refs/*:refs/*" You can produce a quicker and simpler test case like this: doit() { head=`git rev-parse HEAD` for i in `seq 1 $1`; do echo $head refs/heads/ref$i done >.git/packed-refs echo "==> $1" rm -rf dest git init -q --bare dest && (cd dest && time git.compile fetch -q .. refs/*:refs/*) } rm -rf repo git init -q repo && cd repo && >file && git add file && git commit -q -m one doit 100 doit 200 doit 400 doit 800 doit 1600 doit 3200 Which yields timings like: # refs seconds of CPU 100 0.06 200 0.24 400 0.95 800 3.39 1600 13.66 3200 54.09 Notice that although the number of refs doubles in each trial, the CPU time spent quadruples. The problem is that the submodule recursion code works something like: - for each ref we fetch - for each commit in git rev-list $new_sha1 --not --all - add modified submodules to list - fetch any newly referenced submodules But that means if we fetch N refs, we start N revision walks. Worse, because we use "--all", the number of refs we must process that constitute "--all" keeps growing, too. And you end up doing O(N^2) ref resolutions. Instead, this patch structures the code like this: - for each sha1 we already have - add $old_sha1 to list $old - for each ref we fetch - add $new_sha1 to list $new - for each commit in git rev-list $new --not $old - add modified submodules to list - fetch any newly referenced submodules This yields timings like: # refs seconds of CPU 100 0.00 200 0.04 400 0.04 800 0.10 1600 0.21 3200 0.39 Note that the amount of effort doubles as the number of refs doubles. Similarly, the fetch of rails.git takes about as much time as it does with --recurse-submodules=no. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 21:16:41 UTC
787570c format-patch: ignore ui.color commit c9bfb953 (want_color: automatically fallback to color.ui, 2011-08-17) introduced a regression where format-patch produces colorized patches when color.ui is set to "always". In f3aafa4 (Disable color detection during format-patch, 2006-07-09), git_format_config was taught to intercept diff.color to avoid passing it down to git_log_config and later, git_diff_ui_config. Teach git_format_config to intercept color.ui in the same way. Helped-by: Jeff King <peff@peff.net> Signed-off-by: Pang Yan Han <pangyanhan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 18:43:58 UTC
5738c9c Git 1.7.7-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 17:44:32 UTC
81a5bdd Sync with 1.7.6.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 17:43:17 UTC
e494503 Merge branch 'jn/remote-helpers-doc' * jn/remote-helpers-doc: (short) documentation for the testgit remote helper Documentation/git-remote-helpers: explain how import works with multiple refs Documentation/remote-helpers: explain capabilities first 12 September 2011, 17:38:11 UTC
740a8fc Git 1.7.6.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 17:33:40 UTC
8702fee Merge branch 'jl/maint-fetch-submodule-check-fix' into maint * jl/maint-fetch-submodule-check-fix: fetch: skip on-demand checking when no submodules are configured 12 September 2011, 17:19:57 UTC
2f9e2e7 Merge branch 'maint' * maint: Prepare for 1.7.6.3 maintenance release SubmittingPathces: remove Cogito reference Conflicts: RelNotes 12 September 2011, 05:35:11 UTC
c2d5358 Prepare for 1.7.6.3 maintenance release Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 05:33:27 UTC
e1fd529 Merge branch 'ms/reflog-show-is-default' into maint * ms/reflog-show-is-default: reflog: actually default to subcommand 'show' 12 September 2011, 05:33:24 UTC
2f19a52 Merge branch 'jk/reset-reflog-message-fix' into maint * jk/reset-reflog-message-fix: reset: give better reflog messages 12 September 2011, 05:33:20 UTC
5d4fcd9 Merge branch 'vi/make-test-vector-less-specific' into maint * vi/make-test-vector-less-specific: tests: cleanup binary test vector files 12 September 2011, 05:33:16 UTC
fcfc2d5 Merge branch 'jk/tag-contains-ab' (early part) into maint * 'jk/tag-contains-ab' (early part): tag: speed up --contains calculation 12 September 2011, 04:54:32 UTC
908bb1a Merge branch 'dz/connect-error-report' into maint * dz/connect-error-report: Do not log unless all connect() attempts fail 12 September 2011, 04:53:47 UTC
b3038a5 Merge branch 'jc/maint-mergetool-read-fix' into maint * jc/maint-mergetool-read-fix: mergetool: check return value from read 12 September 2011, 04:53:39 UTC
eff7c32 Merge branch 'jk/maint-config-param' into maint * jk/maint-config-param: config: use strbuf_split_str instead of a temporary strbuf strbuf: allow strbuf_split to work on non-strbufs config: avoid segfault when parsing command-line config config: die on error in command-line config fix "git -c" parsing of values with equals signs strbuf_split: add a max parameter 12 September 2011, 04:53:13 UTC
7baf32a Merge branch 'jn/doc-dashdash' into maint * jn/doc-dashdash: Documentation/i18n: quote double-dash for AsciiDoc Documentation: quote double-dash for AsciiDoc Conflicts: Documentation/git-mergetool--lib.txt 12 September 2011, 04:52:18 UTC
3fc44a1 Merge branch 'jk/maint-1.7.2-status-ignored' into maint * jk/maint-1.7.2-status-ignored: git status --ignored: tests and docs status: fix bug with missing --ignore files Conflicts: Documentation/git-status.txt t/t7508-status.sh 12 September 2011, 04:51:10 UTC
30962fb SubmittingPathces: remove Cogito reference Removing Cogito leaves just git and StGit, which is a rather incomplete list of git diff tools available. Sidestep the problem of deciding what tools to mention by not mentioning any. Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 03:53:00 UTC
eb726f2 fsck: do not abort upon finding an empty blob Asking fwrite() to write one item of size bytes results in fwrite() reporting "I wrote zero item", when size is zero. Instead, we could ask it to write "size" items of 1 byte and expect it to report that "I wrote size items" when it succeeds, with any value of size, including zero. Noticed and reported by BJ Hargrave. Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 September 2011, 01:03:38 UTC
18322ba fetch: skip on-demand checking when no submodules are configured It makes no sense to do the - possibly very expensive - call to "rev-list <new-ref-sha1> --not --all" in check_for_new_submodule_commits() when there aren't any submodules configured. Leave check_for_new_submodule_commits() early when no name <-> path mappings for submodules are found in the configuration. To make that work reading the configuration had to be moved further up in cmd_fetch(), as doing that after the actual fetch of the superproject was too late. Reported-by: Martin Fick <mfick@codeaurora.org> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 September 2011, 20:59:20 UTC
3793ac5 RelNotes/1.7.7: minor fixes Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 September 2011, 23:29:18 UTC
d4e5896 Minor update to how-to maintain git A few more parts of this document is stale that needs updating to reflect the reality, but I do not regularly rebase topics that are only in "pu" anymore, which may be noteworthy for a commit. Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 September 2011, 18:18:18 UTC
50963ba Update draft release notes to 1.7.7 Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 September 2011, 18:48:21 UTC
b648557 Merge branch 'rc/histogram-diff' * rc/histogram-diff: xdiff/xprepare: initialise xdlclassifier_t cf in xdl_prepare_env() 06 September 2011, 18:42:58 UTC
5127a07 Merge branch 'cb/maint-ls-files-error-report' * cb/maint-ls-files-error-report: t3005: do not assume a particular order of stdout and stderr of git-ls-files 06 September 2011, 18:42:55 UTC
4b1108e Merge branch 'mh/check-ref-format-print-normalize' * mh/check-ref-format-print-normalize: Forbid DEL characters in reference names check-ref-format --print: Normalize refnames that start with slashes 06 September 2011, 18:42:52 UTC
48f36dc Sync with 1.7.6.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 September 2011, 18:42:12 UTC
509d597 Git 1.7.6.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 September 2011, 18:41:02 UTC
5a277f3 Revert "Merge branch 'cb/maint-quiet-push' into maint" This reverts commit ffa69e61d3c5730bd4b65a465efc130b0ef3c7df, reversing changes made to 4a13c4d14841343d7caad6ed41a152fee550261d. Adding a new command line option to receive-pack and feed it from send-pack is not an acceptable way to add features, as there is no guarantee that your updated send-pack will be talking to updated receive-pack. New features need to be added via the capability mechanism negotiated over the protocol. Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 September 2011, 18:10:41 UTC
b321287 Update draft release notes to 1.7.7 Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 September 2011, 20:26:02 UTC
a536a9d Merge branch 'js/i18n-scripts-2' * js/i18n-scripts-2: bisect: take advantage of gettextln, eval_gettextln. 02 September 2011, 20:18:42 UTC
57c0810 Merge branch 'tr/maint-t3903-misquoted-command' * tr/maint-t3903-misquoted-command: t3903: fix misquoted rev-parse invocation 02 September 2011, 20:18:39 UTC
back to top