summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-10-18strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()Libravatar Brandon Casey1-1/+0
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>
2011-10-15Prepare for 1.7.7.1Libravatar Junio C Hamano2-1/+40
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-15Merge branch 'ms/patch-id-with-overlong-line' into maintLibravatar Junio C Hamano1-4/+6
* ms/patch-id-with-overlong-line: patch-id.c: use strbuf instead of a fixed buffer
2011-10-15Merge branch 'jc/maint-bundle-too-quiet' into maintLibravatar Junio C Hamano4-5/+10
* jc/maint-bundle-too-quiet: Teach progress eye-candy to fetch_refs_from_bundle()
2011-10-15Merge branch 'jk/filter-branch-require-clean-work-tree' into maintLibravatar Junio C Hamano1-3/+1
* jk/filter-branch-require-clean-work-tree: filter-branch: use require_clean_work_tree
2011-10-15Merge branch 'jc/maint-fsck-fwrite-size-check' into maintLibravatar Junio C Hamano1-6/+3
* jc/maint-fsck-fwrite-size-check: fsck: do not abort upon finding an empty blob
2011-10-15Merge branch 'bk/ancestry-path' into maintLibravatar Junio C Hamano3-10/+101
* 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
2011-10-15Merge branch 'jk/maint-fetch-submodule-check-fix' into maintLibravatar Junio C Hamano1-5/+72
* jk/maint-fetch-submodule-check-fix: fetch: avoid quadratic loop checking for updated submodules
2011-10-15Merge branch 'tr/mergetool-valgrind' into maintLibravatar Junio C Hamano1-0/+2
* tr/mergetool-valgrind: Symlink mergetools scriptlets into valgrind wrappers
2011-10-15Merge branch 'nm/grep-object-sha1-lock' into maintLibravatar Junio C Hamano1-0/+3
* nm/grep-object-sha1-lock: grep: Fix race condition in delta_base_cache Conflicts: builtin/grep.c
2011-10-15Merge branch 'jc/diff-index-unpack' into maintLibravatar Junio C Hamano5-6/+38
* 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
2011-10-15Merge branch 'mm/rebase-i-exec-edit' into maintLibravatar Junio C Hamano2-4/+40
* 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
2011-10-14t1304: fall back to $USER if $LOGNAME is not definedLibravatar René Scharfe1-0/+5
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>
2011-09-30Git 1.7.7Libravatar Junio C Hamano3-10/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-27templates/hooks--*: remove sample hooks without any functionalityLibravatar Gerrit Pape2-23/+0
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>
2011-09-26contrib/hooks: adapt comment about Debian install location for contrib hooksLibravatar Gerrit Pape1-2/+2
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>
2011-09-26Merge branch 'jc/namespace-doc-with-old-asciidoc'Libravatar Junio C Hamano1-0/+7
* jc/namespace-doc-with-old-asciidoc: Documentation/gitnamespaces.txt: cater to older asciidoc
2011-09-23Git 1.7.7-rc3Libravatar Junio C Hamano2-31/+2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-23Merge 1.7.6.4 inLibravatar Junio C Hamano2-1/+34
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-23merge-recursive: Do not look at working tree during a virtual ancestor mergeLibravatar Junio C Hamano1-1/+1
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>
2011-09-23Git 1.7.6.4Libravatar Junio C Hamano4-3/+36
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-23Merge branch 'cb/maint-ls-files-error-report' into maintLibravatar Junio C Hamano6-10/+90
* 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
2011-09-23describe: Refresh the index when run with --dirtyLibravatar Allan Caffee1-2/+15
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>
2011-09-23Merge branch 'jc/maint-clone-alternates' into maintLibravatar Junio C Hamano3-30/+114
* jc/maint-clone-alternates: clone: clone from a repository with relative alternates clone: allow more than one --reference
2011-09-23Merge branch 'nd/maint-clone-gitdir' into maintLibravatar Junio C Hamano9-12/+33
* nd/maint-clone-gitdir: clone: allow to clone from .git file read_gitfile_gently(): rename misnamed function to read_gitfile()
2011-09-23Merge branch 'mh/check-ref-format-print-normalize' into maintLibravatar Junio C Hamano3-4/+13
* mh/check-ref-format-print-normalize: Forbid DEL characters in reference names check-ref-format --print: Normalize refnames that start with slashes
2011-09-23Merge branch 'mg/branch-set-upstream-previous' into maintLibravatar Junio C Hamano2-1/+15
* mg/branch-set-upstream-previous: branch.c: use the parsed branch name
2011-09-23Merge branch 'gb/maint-am-patch-format-error-message' into maintLibravatar Junio C Hamano1-1/+2
* gb/maint-am-patch-format-error-message: am: format is in $patch_format, not parse_patch
2011-09-22patch-id.c: use strbuf instead of a fixed bufferLibravatar Michael Schubert1-4/+6
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>
2011-09-19Merge branch 'maint'Libravatar Junio C Hamano2-2/+2
* maint: git-mergetool: check return value from read
2011-09-19git-mergetool: check return value from readLibravatar Jay Soffian2-2/+2
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>
2011-09-19Merge branch 'ph/format-patch-no-color'Libravatar Junio C Hamano1-4/+4
* ph/format-patch-no-color: t4014: clean up format.thread config after each test
2011-09-19t4014: clean up format.thread config after each testLibravatar Jeff King1-4/+4
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>
2011-09-19Teach progress eye-candy to fetch_refs_from_bundle()Libravatar Junio C Hamano4-5/+10
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>
2011-09-18Git 1.7.7-rc2Libravatar Junio C Hamano2-2/+2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-16Merge branch 'ci/forbid-unwanted-current-branch-update'Libravatar Junio C Hamano5-12/+39
* ci/forbid-unwanted-current-branch-update: branch --set-upstream: regression fix
2011-09-16branch --set-upstream: regression fixLibravatar Junio C Hamano5-12/+39
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>
2011-09-16Disambiguate duplicate t9160* testsLibravatar Frédéric Heitzmann2-1/+1
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>
2011-09-16Documentation/gitnamespaces.txt: cater to older asciidocLibravatar Junio C Hamano1-0/+7
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>
2011-09-15filter-branch: use require_clean_work_treeLibravatar Jeff King1-3/+1
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>
2011-09-15t6019: avoid refname collision on case-insensitive systemsLibravatar Thomas Rast1-8/+11
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>
2011-09-14Merge branch 'ph/format-patch-no-color'Libravatar Junio C Hamano2-1/+10
* ph/format-patch-no-color: format-patch: ignore ui.color
2011-09-13git-svn: teach git-svn to populate svn:mergeinfoLibravatar Bryan Jacobs4-0/+742
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>
2011-09-12fetch: avoid quadratic loop checking for updated submodulesLibravatar Jeff King1-5/+72
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>
2011-09-12format-patch: ignore ui.colorLibravatar Pang Yan Han2-1/+10
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>
2011-09-12Git 1.7.7-rc1Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-12Sync with 1.7.6.3Libravatar Junio C Hamano4-7/+19
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-12Merge branch 'jn/remote-helpers-doc'Libravatar Junio C Hamano3-31/+195
* 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
2011-09-12Git 1.7.6.3Libravatar Junio C Hamano3-2/+7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-12Merge branch 'jl/maint-fetch-submodule-check-fix' into maintLibravatar Junio C Hamano2-6/+13
* jl/maint-fetch-submodule-check-fix: fetch: skip on-demand checking when no submodules are configured