sort by:
Revision Author Date Message Commit Date
a9400b0 Merge branch 'sg/help-group' * sg/help-group: Makefile: use SHELL_PATH when running generate-cmdlist.sh 14 September 2015, 21:59:05 UTC
153ec92 Merge branch 'rt/help-strings-fix' * rt/help-strings-fix: tag, update-ref: improve description of option "create-reflog" pull: don't mark values for option "rebase" for translation 14 September 2015, 21:59:04 UTC
45733fa Git 2.6-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 September 2015, 20:17:56 UTC
3f26fe7 Merge git://ozlabs.org/~paulus/gitk * git://ozlabs.org/~paulus/gitk: gitk: Accelerators for the main menu gitk: Adjust the menu line numbers to compensate for the new entry gitk: Add a "Copy commit summary" command gitk: Update Bulgarian translation (307t) gitk: Update .po files gitk: Update Bulgarian translation (304t) gitk: Use translated version of "Command line" in getcommitlines gitk: Make it easier to go quickly to a specific commit gitk: Show the current view's name in the window title gitk: Add mouse right-click options to copy path and branch name gitk: Remove mc parameter from proc show_error gitk: Fix error when changing colors after closing "List references" window gitk: Replace catch {unset foo} with unset -nocomplain foo gitk: Rearrange window title to be more conventional gitk: sv.po: Update Swedish translation (305t0f0u) gitk: Fix bad English grammar "Matches none Commit Info" 14 September 2015, 18:50:21 UTC
4be6af6 Merge branch 'jk/pack-protocol-doc' Streamline documentation of the pkt-line protocol. * jk/pack-protocol-doc: pack-protocol: clarify LF-handling in PKT-LINE() 14 September 2015, 18:46:59 UTC
971f9ea Merge branch 'mp/t7060-diff-index-test' Fix an old test that was doing the same thing as another one. * mp/t7060-diff-index-test: t7060: actually test "git diff-index --cached -M" 14 September 2015, 18:46:31 UTC
e0eeba2 Merge branch 'gb/apply-comment-typofix' * gb/apply-comment-typofix: apply: comment grammar fix 14 September 2015, 18:44:44 UTC
d99b4b0 gitk: Accelerators for the main menu This allows fast, keyboard-only usage of the menu (e.g. Alt+V, N to open a new view). Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org> 13 September 2015, 05:05:24 UTC
b6f92a8 gitk: Adjust the menu line numbers to compensate for the new entry Commit d835dbb9 ("gitk: Add a "Copy commit summary" command", 2015-08-13) in the upstream gitk repo added a new context menu entry. Therefore, the line numbers of the entries below the new one need to be adjusted when their text or state is changed. Signed-off-by: Beat Bolli <dev+git@drbeat.li> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Paul Mackerras <paulus@samba.org> 13 September 2015, 05:00:30 UTC
98c32bd tag, update-ref: improve description of option "create-reflog" The description of option "create-reflog" is "create_reflog", which is neither a good description, nor a sensible string to translate. Change it to a more meaningful message. Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 September 2015, 16:50:02 UTC
7306b39 pull: don't mark values for option "rebase" for translation "false|true|preserve" are actual values for option "rebase" of the "git-pull" command and should therefore not be marked for translation. Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 September 2015, 16:50:00 UTC
57cee8a Makefile: use SHELL_PATH when running generate-cmdlist.sh Non-POSIX shells, such as /bin/sh on SunOS, do not support $((...)) arithmetic expansion or $(...) command substitution needed by generate-cmdlist.sh. Make sure that we use a POSIX compliant shell $(SHELL_PATH) when running generate-cmdlist.sh. Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu> Acked-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 September 2015, 00:49:00 UTC
1962994 Merge git://bogomips.org/git-svn * git://bogomips.org/git-svn: git-svn: parse authors file more leniently 10 September 2015, 21:06:58 UTC
f7c6de0 git-svn: parse authors file more leniently Currently, git-svn parses an authors file using the perl regex /^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.+)>\s*$/ in order to extract svn user name, real name and e-mail. This does not match an empty e-mail field like "<>". On the other hand, the output of an authors-prog is parsed with the perl regex /^\s*(.+?)\s*<(.*)>\s*$/ in order to extract real name and e-mail. So, specifying a trivial file grep such as grep "$1" /tmp/authors | head -n 1 | cut -d'=' -f2 | cut -c'2-' as the authors prog gives different results compared to specifying /tmp/authors as the authors file directly. Instead, make git svn uses the perl regex /^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.*)>\s*$/ for parsing the authors file so that the same (slightly more lenient) regex is used in both cases. Reported-by: Till Schäfer <till2.schaefer@tu-dortmund.de> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Eric Wong <normalperson@yhbt.net> 10 September 2015, 17:59:38 UTC
f0bc854 Sync with 2.5.2 09 September 2015, 21:30:35 UTC
7a2c4af Release Notes: typofix Thanks to Andreas Schwab for careful reading. Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 September 2015, 17:34:35 UTC
5fcadc3 apply: comment grammar fix Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 September 2015, 17:21:43 UTC
689efb7 Git 2.6-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 September 2015, 22:38:43 UTC
d6a2b05 Merge branch 'jc/builtin-am-signoff-regression-fix' Recent "git am" had regression when adding a Signed-off-by line with its "-s" option by an unintended tightening of how an existing trailer block is detected. * jc/builtin-am-signoff-regression-fix: am: match --signoff to the original scripted version 08 September 2015, 22:35:05 UTC
aab8454 am: match --signoff to the original scripted version Linus noticed that the recently reimplemented "git am -s" defines the trailer block too rigidly, resulting in an unnecessary blank line between the existing sign-offs and his new sign-off. An e-mail submission sent to Linus in real life ends with mixture of sign-offs and commentaries, e.g. title here message here Signed-off-by: Original Author <original@auth.or> [rv: tweaked frotz and nitfol] Signed-off-by: Re Viewer <rv@ew.er> Signed-off-by: Other Reviewer <other@rev.ewer> --- patch here Because the reimplementation reused append_signoff() helper that is used by other codepaths, which is unaware that people intermix such comments with their sign-offs in the trailer block, such a message was judged to end with a non-trailer, resulting in an extra blank line before adding a new sign-off. The original scripted version of "git am" used a lot looser definition, i.e. "if and only if there is no line that begins with Signed-off-by:, add a blank line before adding a new sign-off". For the upcoming release, stop using the append_signoff() in "git am" and reimplement the looser definition used by the scripted version to use only in "git am" to fix this regression in "am" while avoiding new regressions to other users of append_signoff(). In the longer term, we should look into loosening append_signoff() so that other codepaths that add a new sign-off behave the same way as "git am -s", but that is a task for post-release. Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 September 2015, 02:59:40 UTC
ec371ff Sync with maint * maint: 04 September 2015, 21:34:57 UTC
27ea6f8 Git 2.5.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 17:46:07 UTC
3d3caf0 Sync with 2.4.9 04 September 2015, 17:43:23 UTC
74b6763 Git 2.4.9 Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 17:36:14 UTC
ef0e938 Sync with 2.3.9 04 September 2015, 17:34:19 UTC
ecad27c Git 2.3.9 Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 17:32:15 UTC
8267cd1 Sync with 2.2.3 04 September 2015, 17:29:28 UTC
441c4a4 Git 2.2.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 17:26:23 UTC
f54cb05 Merge branch 'jk/long-paths' into maint-2.2 04 September 2015, 17:25:23 UTC
78f23bd show-branch: use a strbuf for reflog descriptions When we show "branch@{0}", we format into a fixed-size buffer using sprintf. This can overflow if you have long branch names. We can fix it by using a temporary strbuf. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 16:48:26 UTC
5015f01 read_info_alternates: handle paths larger than PATH_MAX This function assumes that the relative_base path passed into it is no larger than PATH_MAX, and writes into a fixed-size buffer. However, this path may not have actually come from the filesystem; for example, add_submodule_odb generates a path using a strbuf and passes it in. This is hard to trigger in practice, though, because the long submodule directory would have to exist on disk before we would try to open its info/alternates file. We can easily avoid the bug, though, by simply creating the filename on the heap. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 16:36:51 UTC
c29edfe notes: use a strbuf in add_non_note When we are loading a notes tree into our internal hash table, we also collect any files that are clearly non-notes. We format the name of the file into a PATH_MAX buffer, but unlike true notes (which cannot be larger than a fanned-out sha1 hash), these tree entries can be arbitrarily long, overflowing our buffer. We can fix this by switching to a strbuf. It doesn't even cost us an extra allocation, as we can simply hand ownership of the buffer over to the non-note struct. This is of moderate security interest, as you might fetch notes trees from an untrusted remote. However, we do not do so by default, so you would have to manually fetch into the notes namespace. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 16:36:28 UTC
f514ef9 verify_absent: allow filenames longer than PATH_MAX When unpack-trees wants to know whether a path will overwrite anything in the working tree, we use lstat() to see if there is anything there. But if we are going to write "foo/bar", we can't just lstat("foo/bar"); we need to look for leading prefixes (e.g., "foo"). So we use the lstat cache to find the length of the leading prefix, and copy the filename up to that length into a temporary buffer (since the original name is const, we cannot just stick a NUL in it). The copy we make goes into a PATH_MAX-sized buffer, which will overflow if the prefix is longer than PATH_MAX. How this happens is a little tricky, since in theory PATH_MAX is the biggest path we will have read from the filesystem. But this can happen if: - the compiled-in PATH_MAX does not accurately reflect what the filesystem is capable of - the leading prefix is not _quite_ what is on disk; it contains the next element from the name we are checking. So if we want to write "aaa/bbb/ccc/ddd" and "aaa/bbb" exists, the prefix of interest is "aaa/bbb/ccc". If "aaa/bbb" approaches PATH_MAX, then "ccc" can overflow it. So this can be triggered, but it's hard to do. In particular, you cannot just "git clone" a bogus repo. The verify_absent checks happen before unpack-trees writes anything to the filesystem, so there are never any leading prefixes during the initial checkout, and the bug doesn't trigger. And by definition, these files are larger than PATH_MAX, so writing them will fail, and clone will complain (though it may write a partial path, which will cause a subsequent "git checkout" to hit the bug). We can fix it by creating the temporary path on the heap. The extra malloc overhead is not important, as we are already making at least one stat() call (and probably more for the prefix discovery). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 September 2015, 15:50:50 UTC
fb8880d Merge branch 'ee/clean-test-fixes' into maint * ee/clean-test-fixes: t7300: fix broken && chains 04 September 2015, 02:18:05 UTC
5af77d1 Merge branch 'jk/log-missing-default-HEAD' into maint "git init empty && git -C empty log" said "bad default revision 'HEAD'", which was found to be a bit confusing to new users. * jk/log-missing-default-HEAD: log: diagnose empty HEAD more clearly 04 September 2015, 02:18:04 UTC
9d93988 Merge branch 'cc/trailers-corner-case-fix' into maint The "interpret-trailers" helper mistook a multi-paragraph title of a commit log message with a colon in it as the end of the trailer block. * cc/trailers-corner-case-fix: trailer: support multiline title trailer: retitle a test and correct an in-comment message trailer: ignore first line of message 04 September 2015, 02:18:03 UTC
311e5ce Merge branch 'dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update' into maint When re-priming the cache-tree opportunistically while committing the in-core index as-is, we mistakenly invalidated the in-core index too aggressively, causing the experimental split-index code to unnecessarily rewrite the on-disk index file(s). * dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update: commit: don't rewrite shared index unnecessarily 04 September 2015, 02:18:02 UTC
1c82039 Merge branch 'rs/archive-zip-many' into maint "git archive" did not use zip64 extension when creating an archive with more than 64k entries, which nobody should need, right ;-)? * rs/archive-zip-many: archive-zip: support more than 65535 entries archive-zip: use a local variable to store the creator version t5004: test ZIP archives with many entries 04 September 2015, 02:18:01 UTC
ae6ac84 Merge branch 'jc/calloc-pathspec' into maint Minor code cleanup. * jc/calloc-pathspec: ps_matched: xcalloc() takes nmemb and then element size 04 September 2015, 02:18:00 UTC
8136099 Merge branch 'ss/fix-config-fd-leak' into maint * ss/fix-config-fd-leak: config: close config file handle in case of error 04 September 2015, 02:17:59 UTC
dc4e7b0 Merge branch 'sg/wt-status-header-inclusion' into maint * sg/wt-status-header-inclusion: wt-status: move #include "pathspec.h" to the header 04 September 2015, 02:17:57 UTC
659227b Merge branch 'po/po-readme' into maint Doc updates for i18n. * po/po-readme: po/README: Update directions for l10n contributors 04 September 2015, 02:17:56 UTC
57a2bb1 Merge branch 'sg/t3020-typofix' into maint * sg/t3020-typofix: t3020: fix typo in test description 04 September 2015, 02:17:55 UTC
c1fa16b Merge branch 'as/docfix-reflog-expire-unreachable' into maint Docfix. * as/docfix-reflog-expire-unreachable: Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable 04 September 2015, 02:17:53 UTC
d6c196a Merge branch 'nd/fixup-linked-gitdir' into maint The code in "multiple-worktree" support that attempted to recover from an inconsistent state updated an incorrect file. * nd/fixup-linked-gitdir: setup: update the right file in multiple checkouts 04 September 2015, 02:17:53 UTC
e654e3b Merge branch 'jk/rev-list-has-no-notes' into maint "git rev-list" does not take "--notes" option, but did not complain when one is given. * jk/rev-list-has-no-notes: rev-list: make it obvious that we do not support notes 04 September 2015, 02:17:53 UTC
fa6d374 Merge branch 'jk/fix-alias-pager-config-key-warnings' into maint Because the configuration system does not allow "alias.0foo" and "pager.0foo" as the configuration key, the user cannot use '0foo' as a custom command name anyway, but "git 0foo" tried to look these keys up and emitted useless warnings before saying '0foo is not a git command'. These warning messages have been squelched. * jk/fix-alias-pager-config-key-warnings: config: silence warnings for command names with invalid keys 04 September 2015, 02:17:52 UTC
0b2cef2 Merge branch 'nd/dwim-wildcards-as-pathspecs' into maint Test updates for Windows. * nd/dwim-wildcards-as-pathspecs: t2019: skip test requiring '*' in a file name non Windows 04 September 2015, 02:17:51 UTC
969560b Merge branch 'sg/help-group' into maint We rewrote one of the build scripts in Perl but this reimplements in Bourne shell. * sg/help-group: generate-cmdlist: re-implement as shell script 04 September 2015, 02:17:51 UTC
d11448f Merge branch 'ps/t1509-chroot-test-fixup' into maint t1509 test that requires a dedicated VM environment had some bitrot, which has been corrected. * ps/t1509-chroot-test-fixup: tests: fix cleanup after tests in t1509-root-worktree tests: fix broken && chains in t1509-root-worktree 04 September 2015, 02:17:50 UTC
8b27071 Merge branch 'jh/strbuf-read-use-read-in-full' into maint strbuf_read() used to have one extra iteration (and an unnecessary strbuf_grow() of 8kB), which was eliminated. * jh/strbuf-read-use-read-in-full: strbuf_read(): skip unnecessary strbuf_grow() at eof 04 September 2015, 02:17:50 UTC
6c0850f Merge branch 'jk/long-error-messages' into maint The codepath to produce error messages had a hard-coded limit to the size of the message, primarily to avoid memory allocation while calling die(). * jk/long-error-messages: vreportf: avoid intermediate buffer vreportf: report to arbitrary filehandles 04 September 2015, 02:17:49 UTC
cbcd3dc Merge branch 'cb/open-noatime-clear-errno' into maint When trying to see that an object does not exist, a state errno leaked from our "first try to open a packfile with O_NOATIME and then if it fails retry without it" logic on a system that refuses O_NOATIME. This confused us and caused us to die, saying that the packfile is unreadable, when we should have just reported that the object does not exist in that packfile to the caller. * cb/open-noatime-clear-errno: git_open_noatime: return with errno=0 on success 04 September 2015, 02:17:49 UTC
03ea027 Merge branch 'mh/get-remote-group-fix' into maint An off-by-one error made "git remote" to mishandle a remote with a single letter nickname. * mh/get-remote-group-fix: get_remote_group(): use skip_prefix() get_remote_group(): eliminate superfluous call to strcspn() get_remote_group(): rename local variable "space" to "wordlen" get_remote_group(): handle remotes with single-character names 04 September 2015, 02:17:48 UTC
1c9b659 pack-protocol: clarify LF-handling in PKT-LINE() The spec is very inconsistent about which PKT-LINE() parts of the grammar include a LF. On top of that, the code is not consistent, either (e.g., send-pack does not put newlines into the ref-update commands it sends). Let's make explicit the long-standing expectation that we generally expect pkt-lines to end in a newline, but that receivers should be lenient. This makes the spec consistent, and matches what git already does (though it does not always fulfill the SHOULD). We do make an exception for the push-cert, where the receiving code is currently a bit pickier. This is a reasonable way to be, as the data needs to be byte-for-byte compatible with what was signed. We _could_ make up some rules about signing a canonicalized version including newlines, but that would require a code change, and is out of scope for this patch. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 September 2015, 22:18:12 UTC
7662973 Merge branch 'jk/am-rerere-lock-fix' Recent "git am" introduced a double-locking failure when used with the "--3way" option that invokes rerere machinery. * jk/am-rerere-lock-fix: rerere: release lockfile in non-writing functions 03 September 2015, 21:14:01 UTC
16ffa64 Git 2.6-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 September 2015, 19:55:28 UTC
cdd00df Merge branch 'cc/trailers-corner-case-fix' The "interpret-trailers" helper mistook a multi-paragraph title of a commit log message with a colon in it as the end of the trailer block. * cc/trailers-corner-case-fix: trailer: support multiline title 02 September 2015, 19:50:21 UTC
8f8386e Merge branch 'sb/read-cache-one-indent-style-fix' * sb/read-cache-one-indent-style-fix: read-cache: fix indentation in read_index_from 02 September 2015, 19:50:18 UTC
83d9092 Merge branch 'ee/clean-test-fixes' * ee/clean-test-fixes: t7300: fix broken && chains 02 September 2015, 19:50:16 UTC
699a0f3 Merge branch 'jk/log-missing-default-HEAD' "git init empty && git -C empty log" said "bad default revision 'HEAD'", which was found to be a bit confusing to new users. * jk/log-missing-default-HEAD: log: diagnose empty HEAD more clearly 02 September 2015, 19:50:10 UTC
b894d3e t7060: actually test "git diff-index --cached -M" A test was designed for "git diff-index --cached -M" but the command is run without the "-M" option (which makes the test essentially identical to its preceding counterpart). Signed-off-by: Matthieu Prat <matthieuprat@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 September 2015, 19:23:30 UTC
7aa67f6 Ninth batch for 2.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 September 2015, 23:31:58 UTC
81d0e33 Merge branch 'dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update' When re-priming the cache-tree opportunistically while committing the in-core index as-is, we mistakenly invalidated the in-core index too aggressively, causing the experimental split-index code to unnecessarily rewrite the on-disk index file(s). * dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update: commit: don't rewrite shared index unnecessarily 01 September 2015, 23:31:29 UTC
0fb8e24 Merge branch 'rt/remove-hold-lockfile-for-append' * rt/remove-hold-lockfile-for-append: lockfile: remove function "hold_lock_file_for_append" 01 September 2015, 23:31:27 UTC
565f575 Merge branch 'rs/archive-zip-many' "git archive" did not use zip64 extension when creating an archive with more than 64k entries, which nobody should need, right ;-)? * rs/archive-zip-many: archive-zip: support more than 65535 entries archive-zip: use a local variable to store the creator version t5004: test ZIP archives with many entries 01 September 2015, 23:31:24 UTC
bb84dce Merge branch 'ls/p4-fold-case-client-specs' On case insensitive systems, "git p4" did not work well with client specs. * ls/p4-fold-case-client-specs: git-p4: honor core.ignorecase when using P4 client specs 01 September 2015, 23:31:22 UTC
2953140 Merge branch 'ah/submodule-typofix-in-error' Error string fix. * ah/submodule-typofix-in-error: git-submodule: remove extraneous space from error message 01 September 2015, 23:31:21 UTC
bc1c600 Merge branch 'ah/reflog-typofix-in-error' Error string fix. * ah/reflog-typofix-in-error: reflog: add missing single quote to error message 01 September 2015, 23:31:18 UTC
0b20a46 Merge branch 'ah/read-tree-usage-string' Usage string fix. * ah/read-tree-usage-string: read-tree: replace bracket set with parentheses to clarify usage 01 September 2015, 23:31:16 UTC
8746e30 Merge branch 'ah/pack-objects-usage-strings' Usage string fix. * ah/pack-objects-usage-strings: pack-objects: place angle brackets around placeholders in usage strings 01 September 2015, 23:31:12 UTC
49c15c0 Merge branch 'br/svn-doc-include-paths-config' * br/svn-doc-include-paths-config: git-svn doc: mention "svn-remote.<name>.include-paths" 01 September 2015, 23:31:10 UTC
91d5469 Merge branch 'nd/fixup-linked-gitdir' The code in "multiple-worktree" support that attempted to recover from an inconsistent state updated an incorrect file. * nd/fixup-linked-gitdir: setup: update the right file in multiple checkouts 01 September 2015, 23:31:07 UTC
9dd330e rerere: release lockfile in non-writing functions There's a bug in builtin/am.c in which we take a lock on MERGE_RR recursively. But rather than fix am.c, this patch fixes the confusing interface from rerere.c that caused the bug. Read on for the gory details. The setup_rerere() function both reads the existing MERGE_RR file, and takes MERGE_RR.lock. In the rerere() and rerere_forget() functions, we end up in write_rr(), which will then commit the lock file. But for functions like rerere_clear() that do not write to MERGE_RR, we expect the caller to have handled setup_rerere(). That caller would then need to release the lockfile, but it can't; the lock struct is local to rerere.c. For builtin/rerere.c, this is OK. We run a single rerere operation and then exit immediately, which has the side effect of rolling back the lockfile. But in builtin/am.c, this is actively wrong. If we run "git am -3 --skip", we call setup-rerere twice without releasing the lock: 1. The "--skip" causes us to call am_rerere_clear(), which calls setup_rerere(), but never drops the lock. 2. We then proceed to the next patch. 3. The "--3way" may cause us to call rerere() to handle conflicts in that patch, but we are already holding the lock. The lockfile code dies with: BUG: prepare_tempfile_object called for active object We could fix this by having rerere_clear() call rollback_lock_file(). But it feels a bit odd for it to roll back a lockfile that it did not itself take. So let's simplify the interface further, and handle setup_rerere in the function itself, taking away the question from the caller over whether they need to do so. We can give rerere_gc() the same treatment, as well (even though it doesn't have any callers besides builtin/rerere.c at this point). Note that these functions don't take flags from their callers to pass along to setup_rerere; that's OK, because the flags would not be meaningful for what they are doing. Both of those functions need to hold the lock because even though they do not write to MERGE_RR, they are still writing and should be protected from a simultaneous "rerere" run. But rerere_remaining(), "rerere diff", and "rerere status" are all read-only operations. They want to setup_rerere(), but do not care about taking the lock in the first place. Since our update of MERGE_RR is the usual atomic rename done by commit_lock_file, they can just do a lockless read. For that, we teach setup_rerere a READONLY flag to avoid the lock. As a bonus, this pushes builtin/rerere.c's setup_rerere call closer to the functions that use it. Which means that "git rerere totally-bogus-command" will no longer silently exit(0) in a repository without rerere enabled. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 September 2015, 22:52:54 UTC
1616360 Eighth batch for 2.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> 31 August 2015, 22:40:24 UTC
e95c3fb Merge branch 'sg/describe-contains' "git describe" without argument defaulted to describe the HEAD commit, but "git describe --contains" didn't. Arguably, in a repository used for active development, such defaulting would not be very useful as the tip of branch is typically not tagged, but it is better to be consistent. * sg/describe-contains: describe --contains: default to HEAD when no commit-ish is given 31 August 2015, 22:39:10 UTC
b21089d Merge branch 'db/push-sign-if-asked' The client side codepaths in "git push" have been cleaned up and the user can request to perform an optional "signed push", i.e. sign only when the other end accepts signed push. * db/push-sign-if-asked: push: add a config option push.gpgSign for default signed pushes push: support signing pushes iff the server supports it builtin/send-pack.c: use parse_options API config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool transport: remove git_transport_options.push_cert gitremote-helpers.txt: document pushcert option Documentation/git-send-pack.txt: document --signed Documentation/git-send-pack.txt: wrap long synopsis line Documentation/git-push.txt: document when --signed may fail 31 August 2015, 22:39:08 UTC
5b6211a Merge branch 'jk/notes-merge-config' "git notes merge" can be told with "--strategy=<how>" option how to automatically handle conflicts; this can now be configured by setting notes.mergeStrategy configuration variable. * jk/notes-merge-config: notes: teach git-notes about notes.<name>.mergeStrategy option notes: add notes.mergeStrategy option to select default strategy notes: add tests for --commit/--abort/--strategy exclusivity notes: extract parse_notes_merge_strategy to notes-utils notes: extract enum notes_merge_strategy to notes-utils.h notes: document cat_sort_uniq rewriteMode 31 August 2015, 22:39:05 UTC
d75bb73 Merge branch 'jc/am-state-fix' Recent reimplementation of "git am" changed the format of state files kept in $GIT_DIR/rebase-apply/ without meaning to do so, primarily because write_file() API was cumbersome to use and it was easy to mistakenly make text files with incomplete lines. Update write_file() interface to make it harder to misuse. * jc/am-state-fix: write_file(): drop caller-supplied LF from calls to create a one-liner file write_file_v(): do not leave incomplete line at the end write_file(): drop "fatal" parameter builtin/am: make sure state files are text builtin/am: introduce write_state_*() helper functions 31 August 2015, 22:39:03 UTC
2ba6183 Merge branch 'jc/log-p-cc' "git log --cc" did not show any patch, even though most of the time the user meant "git log --cc -p -m" to see patch output for commits with a single parent, and combined diff for merge commits. The command is taught to DWIM "--cc" (without "--raw" and other forms of output specification) to "--cc -p -m". * jc/log-p-cc: builtin/log.c: minor reformat log: show merge commit when --cc is given log: when --cc is given, default to -p unless told otherwise log: rename "tweak" helpers 31 August 2015, 22:38:59 UTC
7b7c10b Merge branch 'jk/fix-alias-pager-config-key-warnings' Because the configuration system does not allow "alias.0foo" and "pager.0foo" as the configuration key, the user cannot use '0foo' as a custom command name anyway, but "git 0foo" tried to look these keys up and emitted useless warnings before saying '0foo is not a git command'. These warning messages have been squelched. * jk/fix-alias-pager-config-key-warnings: config: silence warnings for command names with invalid keys 31 August 2015, 22:38:57 UTC
0bb71fb Merge branch 'jk/rev-list-has-no-notes' "git rev-list" does not take "--notes" option, but did not complain when one is given. * jk/rev-list-has-no-notes: rev-list: make it obvious that we do not support notes 31 August 2015, 22:38:55 UTC
5a4f07b Merge branch 'hv/submodule-config' The gitmodules API accessed from the C code learned to cache stuff lazily. * hv/submodule-config: submodule: allow erroneous values for the fetchRecurseSubmodules option submodule: use new config API for worktree configurations submodule: extract functions for config set and lookup submodule: implement a config API for lookup of .gitmodules values 31 August 2015, 22:38:52 UTC
fc9dfda Merge branch 'sg/config-name-only' "git config --list" output was hard to parse when values consist of multiple lines. "--name-only" option is added to help this. * sg/config-name-only: get_urlmatch: avoid useless strbuf write format_config: simplify buffer handling format_config: don't init strbuf config: restructure format_config() for better control flow completion: list variable names reliably with 'git config --name-only' config: add '--name-only' option to list only variable names 31 August 2015, 22:38:50 UTC
6bea53c read-cache: fix indentation in read_index_from Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 31 August 2015, 19:31:00 UTC
5c99995 trailer: support multiline title We currently ignore the first line passed to `git interpret-trailers`, when looking for the beginning of the trailers. Unfortunately this does not work well when a commit is created with a line break in the title, using for example the following command: git commit -m 'place of code: change we made' That's why instead of ignoring only the first line, it is better to ignore the first paragraph. Signed-off-by: Christian Couder <christian.couder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 31 August 2015, 18:14:08 UTC
1733ed3 t7300: fix broken && chains While we are here, remove some boilerplate by using test_commit. Signed-off-by: Erik Elfström <erik.elfstrom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 31 August 2015, 16:46:36 UTC
ce11360 log: diagnose empty HEAD more clearly If you init or clone an empty repository, the initial message from running "git log" is not very friendly: $ git init Initialized empty Git repository in /home/peff/foo/.git/ $ git log fatal: bad default revision 'HEAD' Let's detect this situation and write a more friendly message: $ git log fatal: your current branch 'master' does not have any commits yet We also detect the case that 'HEAD' points to a broken ref; this should be even less common, but is easy to see. Note that we do not diagnose all possible cases. We rely on resolve_ref, which means we do not get information about complex cases. E.g., "--default master" would use dwim_ref to find "refs/heads/master", but we notice only that "master" does not exist. Similarly, a complex sha1 expression like "--default HEAD^2" will not resolve as a ref. But that's OK. We fall back to a generic error message in those cases, and they are unlikely to be used anyway. Catching an empty or broken "HEAD" improves the common case, and the other cases are not regressed. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 31 August 2015, 16:34:20 UTC
475a344 commit: don't rewrite shared index unnecessarily Remove a cache invalidation which would cause the shared index to be rewritten on as-is commits. When the cache-tree has changed, we need to update it. But we don't necessarily need to update the shared index. So setting active_cache_changed to SOMETHING_CHANGED is unnecessary. Instead, we let update_main_cache_tree just update the CACHE_TREE_CHANGED bit. In order to test this, make test-dump-split-index not segfault on missing replace_bitmap/delete_bitmap. This new codepath is not called now that the test passes, but is necessary to avoid a segfault when the new test is run with the old builtin/commit.c code. Signed-off-by: David Turner <dturner@twopensource.com> Acked-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 31 August 2015, 15:41:07 UTC
aecce6d Sync with 2.5.1 28 August 2015, 19:32:45 UTC
e6837c8 Seventh batch for 2.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 19:32:25 UTC
483c9b8 Merge branch 'cc/trailers-corner-case-fix' "interpret-trailers" helper mistook a single-liner log message that has a colon as the end of existing trailer. * cc/trailers-corner-case-fix: trailer: retitle a test and correct an in-comment message trailer: ignore first line of message 28 August 2015, 19:32:17 UTC
038226e Merge branch 'dt/untracked-subdir' The experimental untracked-cache feature were buggy when paths with a few levels of subdirectories are involved. * dt/untracked-subdir: untracked cache: fix entry invalidation untracked-cache: fix subdirectory handling 28 August 2015, 19:32:15 UTC
9476c2c read-tree: replace bracket set with parentheses to clarify usage -u and -i can only be given if -m, --reset, or --prefix is given. Without parentheses, it looks like -u and -i can be used no matter what, and the second pair of brackets is confusing. Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 19:01:37 UTC
b8c1d27 pack-objects: place angle brackets around placeholders in usage strings Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 18:59:10 UTC
b80fa84 git-submodule: remove extraneous space from error message Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Acked-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 18:57:24 UTC
aae42e4 lockfile: remove function "hold_lock_file_for_append" With 77b9b1d (add_to_alternates_file: don't add duplicate entries, 2015-08-10) the last caller of function "hold_lock_file_for_append" has been removed, so we can remove the function as well. Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 18:32:01 UTC
c415fb7 Git 2.5.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 18:19:57 UTC
c3cb7b6 Mingw: verify both ends of the pipe () call The code to open and test the second end of the pipe clearly imitates the code for the first end. A little too closely, though... Let's fix the obvious copy-edit bug. Signed-off-by: Jose F. Morales <jfmcjf@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 18:11:50 UTC
a0a50d8 git-p4: honor core.ignorecase when using P4 client specs Perforce depot may record paths in mixed cases, e.g. "p4 files" may show that there are these two paths: //depot/Path/to/file1 //depot/pATH/to/file2 and with "p4" or "p4v", these end up in the same directory, e.g. //depot/Path/to/file1 //depot/Path/to/file2 which is the desired outcome on case insensitive systems. If git-p4 is used with client spec "//depot/Path/...", however, then all files not matching the case in the client spec are ignored (in the example above "//depot/pATH/to/file2"). Fix this by using the path case that appears first in lexicographical order when core.ignorecase is set to true. This behavior is consistent with "p4" and "p4v". Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Acked-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 August 2015, 17:33:16 UTC
back to top