summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-05-03Merge branch 'jm/maint-strncpy-diff-no-index' into maintLibravatar Junio C Hamano1-21/+17
"diff --no-index" codepath had a few places that used fixed-size buffer and truncated paths that are too long. By Jim Meyering (1) and Junio C Hamano (1) * jm/maint-strncpy-diff-no-index: diff --no-index: use strbuf for temporary pathnames diff: avoid stack-buffer-read-overrun for very long name
2012-05-01Git 1.7.10.1Libravatar Junio C Hamano3-3/+32
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-01Merge branch 'pw/fast-import-dataref-parsing' into maintLibravatar Junio C Hamano2-33/+364
The parser in "fast-import" did not diagnose ":9" style references that is not followed by required SP/LF as an error. By Pete Wyckoff * pw/fast-import-dataref-parsing: fast-import: tighten parsing of datarefs
2012-05-01Merge branch 'it/fetch-pack-many-refs' into maintLibravatar Junio C Hamano6-6/+162
When "git fetch" encounters repositories with too many references, the command line of "fetch-pack" that is run by a helper e.g. remote-curl, may fail to hold all of them. Now such an internal invocation can feed the references through the standard input of "fetch-pack". By Ivan Todoroski * it/fetch-pack-many-refs: remote-curl: main test case for the OS command line overflow fetch-pack: test cases for the new --stdin option remote-curl: send the refs to fetch-pack on stdin fetch-pack: new --stdin option to read refs from stdin Conflicts: t/t5500-fetch-pack.sh
2012-05-01Merge branch 'jl/maint-submodule-recurse-fetch' into maintLibravatar Junio C Hamano1-3/+3
"git fetch" that recurses into submodules on demand did not check if it needs to go into submodules when non branches (most notably, tags) are fetched. By Jens Lehmann * jl/maint-submodule-recurse-fetch: submodules: recursive fetch also checks new tags for submodule commits
2012-05-01Merge branch 'jc/maint-blame-minimal' into maintLibravatar Junio C Hamano1-0/+1
"git blame" started missing quite a few changes from the origin since we stopped using the diff minimalization by default in v1.7.2 era. Teach "--minimal" option to "git blame" to work around this regression. * jc/maint-blame-minimal: blame: accept --need-minimal
2012-05-01Merge branch 'lp/maint-diff-three-dash-with-graph' into maintLibravatar Junio C Hamano3-2/+299
"log -p --graph" used with "--stat" had a few formatting error. By Lucian Poston * lp/maint-diff-three-dash-with-graph: t4202: add test for "log --graph --stat -p" separator lines log --graph: fix break in graph lines log --graph --stat: three-dash separator should come after graph lines
2012-05-01Merge branch 'jk/rebase-i-submodule-conflict-only' into maintLibravatar Junio C Hamano2-1/+31
Giving "--continue" to a conflicted "rebase -i" session skipped a commit that only results in changes to submodules. By John Keeping * jk/rebase-i-submodule-conflict-only: rebase -i continue: don't skip commits that only change submodules
2012-05-01Merge branch 'maint' of https://github.com/git-l10n/git-poLibravatar Junio C Hamano6-282/+7605
By Byrial Jensen (2) and others via Jiang Xin (1) and Ralf Thielow (1) * 'maint' of https://github.com/git-l10n/git-po: l10n: Initial German translation l10n: Update Simplified Chinese translation l10n: Update git.pot (2 new messages) l10n: Add the German translation team and initialize de.po l10n: Add Danish team (da) to list of teams l10n: New da.po file with 0 translations l10n: Updated pt_PT language
2012-05-01l10n: Initial German translationLibravatar Ralf Thielow1-717/+984
Helped-by: Thomas Kuchs Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>
2012-04-28l10n: Update Simplified Chinese translationLibravatar Jiang Xin1-84/+100
Translate 2 new messages come from git maint branch. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-04-28l10n: Update git.pot (2 new messages)Libravatar Jiang Xin1-83/+96
Changes of po/git.pot from v1.7.10 to v1.7.10-55-g868d6 * 2 new l10n messages at lines: 1583, 2730 Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-04-28Merge maint branch for tracking l10n updates of git stable versionLibravatar Jiang Xin40-213/+779
Use master branch to track l10n updates for git next release, while use maint branch to track l10n updates for git stable version.
2012-04-28l10n: Add the German translation team and initialize de.poLibravatar Ralf Thielow2-0/+3508
Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-04-26Start preparing for 1.7.10.1Libravatar Junio C Hamano2-1/+51
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-26Merge branch 'jk/run-command-eacces' into maintLibravatar Junio C Hamano6-7/+86
When PATH contains an unreadable directory, alias expansion code did not kick in, and failed with an error that said "git-subcmd" was not found. By Jeff King (1) and Ramsay Jones (1) * jk/run-command-eacces: run-command: treat inaccessible directories as ENOENT compat/mingw.[ch]: Change return type of exec functions to int
2012-04-26Merge branch 'jc/push-upstream-sanity' into maintLibravatar Junio C Hamano2-8/+72
The 'push to upstream' implementation was broken in some corner cases. "git push $there" without refspec, when the current branch is set to push to a remote different from $there, used to push to $there using the upstream information to a remote unreleated to $there. * jc/push-upstream-sanity: push: error out when the "upstream" semantics does not make sense
2012-04-26Merge branch 'jc/maint-clean-nested-worktree-in-subdir' into maintLibravatar Junio C Hamano2-11/+43
"git clean -d -f" (not "-d -f -f") is supposed to protect nested working trees of independent git repositories that exist in the current project working tree from getting removed, but the protection applied only to such working trees that are at the top-level of the current project by mistake. * jc/maint-clean-nested-worktree-in-subdir: clean: preserve nested git worktree in subdirectories
2012-04-26Merge branch 'jk/diff-no-rename-empty' into maintLibravatar Junio C Hamano9-14/+45
Rename detection logic used to match two empty files as renames during merge-recursive, leading unnatural mismerges. By Jeff King * jk/diff-no-rename-empty: merge-recursive: don't detect renames of empty files teach diffcore-rename to optionally ignore empty content make is_empty_blob_sha1 available everywhere drop casts from users EMPTY_TREE_SHA1_BIN
2012-04-26Merge branch 'rs/combine-diff-zero-context-at-the-beginning' into maintLibravatar Junio C Hamano1-1/+1
An age-old corner case bug in combine diff (only triggered with -U0 and the hunk at the beginning of the file needs to be shown) has been fixed. By René Scharfe * rs/combine-diff-zero-context-at-the-beginning: combine-diff: fix loop index underflow
2012-04-26Merge branch 'jc/commit-unedited-template' into maintLibravatar Junio C Hamano3-24/+65
When "git commit --template F" errors out because the user did not touch the message, it claimed that it aborts due to "empty message", which was utterly wrong. By Junio C Hamano (4) and Adam Monsen (1) * jc/commit-unedited-template: Documentation/git-commit: rephrase the "initial-ness" of templates git-commit.txt: clarify -t requires editing message commit: rephrase the error when user did not touch templated log message commit: do not trigger bogus "has templated message edited" check t7501: test the right kind of breakage
2012-04-26Merge branch 'jk/add-p-skip-conflicts' into maintLibravatar Junio C Hamano2-7/+44
"git add -p" is not designed to deal with unmerged paths but did not exclude them and tried to apply funny patches only to fail. By Jeff King * jk/add-p-skip-conflicts: add--interactive: ignore unmerged entries in patch mode
2012-04-26Merge branch 'jc/commit-hook-authorship' into maintLibravatar Junio C Hamano5-47/+141
"git commit --author=$name" did not tell the name that was being recorded in the resulting commit to hooks, even though it does do so when the end user overrode the authorship via the "GIT_AUTHOR_NAME" environment variable. * jc/commit-hook-authorship: commit: pass author/committer info to hooks t7503: does pre-commit-hook learn authorship? ident.c: add split_ident_line() to parse formatted ident line
2012-04-26Merge branch 'tr/maint-word-diff-regex-sticky' into maintLibravatar Junio C Hamano2-56/+102
The regexp configured with diff.wordregex was incorrectly reused across files. By Thomas Rast (2) and Johannes Sixt (1) * tr/maint-word-diff-regex-sticky: diff: tweak a _copy_ of diff_options with word-diff diff: refactor the word-diff setup from builtin_diff_cmd t4034: diff.*.wordregex should not be "sticky" in --word-diff
2012-04-26Merge branch 'jh/notes-merge-in-git-dir-worktree' into maintLibravatar Junio C Hamano4-32/+73
Running "notes merge --commit" failed to perform correctly when run from any directory inside $GIT_DIR/. When "notes merge" stops with conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits to resolve it. By Johan Herland (3) and Junio C Hamano (1) * jh/notes-merge-in-git-dir-worktree: notes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd notes-merge: use opendir/readdir instead of using read_directory() t3310: illustrate failure to "notes merge --commit" inside $GIT_DIR/ remove_dir_recursively(): Add flag for skipping removal of toplevel dir
2012-04-26Sync with 1.7.9.7Libravatar Junio C Hamano5-4/+55
2012-04-26Git 1.7.9.7Libravatar Junio C Hamano3-2/+16
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-26Sync with 1.7.8.6Libravatar Junio C Hamano4-3/+40
2012-04-26Git 1.7.8.6Libravatar Junio C Hamano4-3/+27
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-26Sync with 1.7.7.7Libravatar Junio C Hamano3-2/+16
2012-04-26Git 1.7.7.7Libravatar Junio C Hamano4-3/+18
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-26diff --no-index: use strbuf for temporary pathnamesLibravatar Junio C Hamano1-23/+17
Instead of using limited-length buffers and risking of pathname truncation, we should be taking advantage of strbuf API nowadays. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-26bundle: remove stray single-quote from error messageLibravatar Jonathan Nieder1-1/+1
After running rev-list --boundary to retrieve the list of boundary commits, "git bundle create" runs its own revision walk. If in this stage git encounters an unfamiliar option, it writes a message with an unbalanced quotation mark: error: unrecognized argument: --foo' Drop the stray quote to match the "unrecognized argument: %s" message used elsewhere and save translators some work. This is mostly a futureproofing measure: for now, the "rev-list --boundary" command catches most strange arguments on its own and the above message is not seen unless you try something esoteric like "git bundle create test.bundle --header HEAD". Reported-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-16diff: avoid stack-buffer-read-overrun for very long nameLibravatar Jim Meyering1-0/+2
Due to the use of strncpy without explicit NUL termination, we could end up passing names n1 or n2 that are not NUL-terminated to queue_diff, which requires NUL-terminated strings. Ensure that each is NUL terminated. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-14submodules: recursive fetch also checks new tags for submodule commitsLibravatar Jens Lehmann1-3/+3
Since 88a21979c (fetch/pull: recurse into submodules when necessary) all fetched commits are examined if they contain submodule changes (unless configuration or command line options inhibit that). If a newly recorded submodule commit is not present in the submodule, a fetch is run inside it to download that commit. Checking new refs was done in an else branch where it wasn't executed for tags. This normally isn't a problem because tags are only fetched with the branches they live on, then checking the new commits in the fetched branches for submodule commits will also process all tags. But when a specific tag is fetched (or the refspec contains refs/tags/) commits only reachable by tags won't be searched for submodule commits, which is a bug. Fix that by moving the code outside the if/else construct to handle new tags just like any other ref. The performance impact of adding tags that most of the time lie on a branch which is checked anyway for new submodule commit should be minimal, as since 6859de4 (fetch: avoid quadratic loop checking for updated submodules) all ref-tips are collected first and then fed to a single rev-list. Spotted-by: Jeff King <peff@peff.net> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-12l10n: Add Danish team (da) to list of teamsLibravatar Byrial Jensen1-0/+4
2012-04-12l10n: New da.po file with 0 translationsLibravatar Byrial Jensen1-0/+3503
2012-04-11blame: accept --need-minimalLibravatar Junio C Hamano1-0/+1
Between v1.7.1 and v1.7.2, 582aa00bdffb switched the default "diff" invocation not to use XDF_NEED_MINIMAL, but this breaks "git blame" rather badly. Allow the command line option to ask for an extra careful matching. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-11l10n: Updated pt_PT languageLibravatar Marco Sousa1-115/+127
2012-04-10remote-curl: main test case for the OS command line overflowLibravatar Ivan Todoroski1-0/+31
This is main test case for the original problem that triggered this patch series. We create a repo with 50k tags and then test whether git-clone over the smart HTTP protocol succeeds. Note that we construct the repo in a slightly different way than the original script used to reproduce the problem. This is because the original script just created 50k tags all pointing to the same commit, so if there was a bug where remote-curl.c was not passing all the refs to fetch-pack we wouldn't know. The clone would succeed even if only one tag was passed, because all the other tags were pointing at the same SHA and would be considered present. Instead we create a repo with 50k independent (dangling) commits and then tag each of those commits with a unique tag. This way if one of the tags is not given to fetch-pack, later stages of the clone would complain about it. This allows us to test both that the command line overflow was fixed, as well as that it was fixed in a way that doesn't leave out any of the refs. Signed-off-by: Ivan Todoroski <grnch@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-10fetch-pack: test cases for the new --stdin optionLibravatar Ivan Todoroski1-0/+66
These test cases focus only on testing the parsing of refs on stdin, without bothering with the rest of the fetch-pack machinery. We pass in the refs using different combinations of command line and stdin and then we watch fetch-pack's stdout to see whether it prints all the refs we specified (but we ignore their order). Signed-off-by: Ivan Todoroski <grnch@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-10remote-curl: send the refs to fetch-pack on stdinLibravatar Ivan Todoroski1-5/+13
Now that we can throw an arbitrary number of refs at fetch-pack using its --stdin option, we use it in the remote-curl helper to bypass the OS command line length limit. Signed-off-by: Ivan Todoroski <grnch@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-10fast-import: tighten parsing of datarefsLibravatar Pete Wyckoff2-33/+364
The syntax for the use of mark references in fast-import demands either a SP (space) or LF (end-of-line) after a mark reference. Fast-import does not complain when garbage appears after a mark reference in some cases. Factor out parsing of mark references and complain if errant characters are found. Also be a little more careful when parsing "inline" and SHA1s, complaining if extra characters appear or if the form of the dataref is unrecognized. Buggy input can cause fast-import to produce the wrong output, silently, without error. This makes it difficult to track down buggy generators of fast-import streams. An example is seen in the last line of this commit command: commit refs/heads/S2 committer Name <name@example.com> 1112912893 -0400 data <<COMMIT commit message COMMIT from :1M 100644 :103 hello.c It is missing a newline and should be: [...] from :1 M 100644 :103 hello.c What fast-import does is to produce a commit with the same contents for hello.c as in refs/heads/S2^. What the buggy program was expecting was the contents of blob :103. While the resulting commit graph looked correct, the contents in some commits were wrong. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-10Merge branch 'maint-1.7.9' into maintLibravatar Junio C Hamano0-0/+0
* maint-1.7.9:
2012-04-10Merge branch 'maint-1.7.8' into maint-1.7.9Libravatar Junio C Hamano2-6/+6
* maint-1.7.8: Documentation/gitweb: trivial English fixes fetch/receive: remove over-pessimistic connectivity check
2012-04-10test-subprocess: fix segfault without argumentsLibravatar René Scharfe1-3/+3
Check if we even have a parameter before checking its value. Running this command without any arguments may not make a lot of sense, but reacting with a segmentation fault is unduly harsh. While we're at it, avoid casting argv by declaring it const right away. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-10submodule: fix prototype of gitmodules_configLibravatar René Scharfe1-1/+1
Add void to make it match its definition in submodule.c. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-09rebase -i continue: don't skip commits that only change submodulesLibravatar John Keeping2-1/+31
When git-rebase--interactive stops due to a conflict and the only change to be committed is in a submodule, the test for whether there is anything to be committed ignores the staged submodule change. This leads rebase to skip creating the commit for the change. While unstaged submodule changes should be ignored to avoid needing to update submodules during a rebase, it is safe to remove the --ignore-submodules option to diff-index because --cached ensures that it is only checking the index. This was discussed in [1] and a test is included to ensure that unstaged changes are still ignored correctly. [1] http://thread.gmane.org/gmane.comp.version-control.git/188713 Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-09Merge branch 'jc/maint-verify-objects-remove-pessimism' into maint-1.7.8Libravatar Junio C Hamano1-4/+4
* jc/maint-verify-objects-remove-pessimism: fetch/receive: remove over-pessimistic connectivity check
2012-04-09Merge branch 'dw/gitweb-doc-grammo' into maint-1.7.8Libravatar Junio C Hamano1-2/+2
* dw/gitweb-doc-grammo: Documentation/gitweb: trivial English fixes