From ec84e069afd7845b1d6bb37d2aaefa913b0e0141 Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Fri, 25 May 2012 13:12:04 -0500 Subject: [PATCH 1/4] config doc: remove confusion about relative GIT_DIR from FILES section From the FILES section of the git-config(1) manual: $GIT_DIR/config:: Repository specific configuration file. (The filename is of course relative to the repository root, not the working directory.) That's confusing because $GIT_DIR really is relative to the working directory. $ GIT_DIR=.git GIT_EDITOR='pwd; echo editing' $ export GIT_DIR GIT_EDITOR $ git config --edit --local /home/jrn/src/git/Documentation editing .git/config It turns out that the comment is a remnant from older days when the heading said ".git/config" (which is indeed relative to the top of the worktree). It was only when the heading was changed to refer more precisely to /config (see v1.5.3.2~18, AsciiDoc tweak to avoid leading dot, 2007-09-14) that the parenthesis stopped making sense. Remove it. Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- Documentation/git-config.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt index 3f5d216a09..d9463cb387 100644 --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@ -198,9 +198,7 @@ If not set explicitly with '--file', there are three files where 'git config' will search for configuration options: $GIT_DIR/config:: - Repository specific configuration file. (The filename is - of course relative to the repository root, not the working - directory.) + Repository specific configuration file. ~/.gitconfig:: User-specific configuration file. Also called "global" From a3347b988a338e95b7f3b11eda776ac0d7b84dd0 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 25 May 2012 09:02:03 -0700 Subject: [PATCH 2/4] fmt-merge-message: add empty line between tag and signature verification When adding the information from a tag, put an empty line between the message of the tag and the commented-out signature verification information. At least for the kernel workflow, I often end up re-formatting the message that people send me in the tag data. In that situation, putting the tag message and the tag signature verification back-to-back then means that normal editor "reflow parapgraph" command will get confused and think that the signature is a continuation of the last message paragraph. So I always end up having to first add an empty line, and then go back and reflow the last paragraph. Let's just do it in git directly. The extra vertical space also makes the verification visually stand out more from the user-supplied message, so it looks a bit more readable to me too, but that may be just an odd personal preference. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- builtin/fmt-merge-msg.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c index fc083e3c5c..fb1ebcbe68 100644 --- a/builtin/fmt-merge-msg.c +++ b/builtin/fmt-merge-msg.c @@ -356,7 +356,10 @@ static void fmt_tag_signature(struct strbuf *tagbuf, strbuf_add(tagbuf, tag_body, buf + len - tag_body); } strbuf_complete_line(tagbuf); - strbuf_add_lines(tagbuf, "# ", sig->buf, sig->len); + if (sig->len) { + strbuf_addch(tagbuf, '\n'); + strbuf_add_lines(tagbuf, "# ", sig->buf, sig->len); + } } static void fmt_merge_msg_sigs(struct strbuf *out) @@ -521,8 +524,7 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out, rev.ignore_merges = 1; rev.limited = 1; - if (suffixcmp(out->buf, "\n")) - strbuf_addch(out, '\n'); + strbuf_complete_line(out); for (i = 0; i < origins.nr; i++) shortlog(origins.items[i].string, From 26e5c5d09334d157bd04f794f16f6e338d50c752 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 25 May 2012 11:28:43 -0700 Subject: [PATCH 3/4] Git 1.7.10.3 Signed-off-by: Junio C Hamano --- Documentation/RelNotes/1.7.10.3.txt | 19 +++++++++++++++---- GIT-VERSION-GEN | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Documentation/RelNotes/1.7.10.3.txt b/Documentation/RelNotes/1.7.10.3.txt index 153bf14032..703fbf1d60 100644 --- a/Documentation/RelNotes/1.7.10.3.txt +++ b/Documentation/RelNotes/1.7.10.3.txt @@ -6,10 +6,6 @@ Fixes since v1.7.10.2 * The message file for German translation has been updated a bit. - * "git status --porcelain" ignored "--branch" option by mistake. The - output for "git status --branch -z" was also incorrect and did not - terminate the record for the current branch name with NUL as asked. - * Running "git checkout" on an unborn branch used to corrupt HEAD. * When checking out another commit from an already detached state, we @@ -21,6 +17,9 @@ Fixes since v1.7.10.2 "checkout" phase; when run without any "--quiet" option, it should give progress to the lengthy operation. + * The directory path used in "git diff --no-index", when it recurses + down, was broken with a recent update after v1.7.10.1 release. + * "log -z --pretty=tformat:..." did not terminate each record with NUL. The fix is not entirely correct when the output also asks for --patch and/or --stat, though. @@ -29,4 +28,16 @@ Fixes since v1.7.10.2 broken and gave undue precedence to configured log.date, causing "git stash list" to show "stash@{time stamp string}". + * "git status --porcelain" ignored "--branch" option by mistake. The + output for "git status --branch -z" was also incorrect and did not + terminate the record for the current branch name with NUL as asked. + + * When a submodule repository uses alternate object store mechanism, + some commands that were started from the superproject did not + notice it and failed with "No such object" errors. The subcommands + of "git submodule" command that recursed into the submodule in a + separate process were OK; only the ones that cheated and peeked + directly into the submodule's repository from the primary process + were affected. + Also contains minor fixes and documentation updates. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 1df7b0ff66..86458311a1 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.7.10.2 +DEF_VER=v1.7.10.3 LF=' ' From befc5ed3799cb6fcbaa7de03e7fa1760e846853c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 25 May 2012 12:19:45 -0700 Subject: [PATCH 4/4] Git 1.7.11-rc0 Signed-off-by: Junio C Hamano --- Documentation/RelNotes/1.7.11.txt | 36 ++++++++++++++++++------------- GIT-VERSION-GEN | 2 +- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Documentation/RelNotes/1.7.11.txt b/Documentation/RelNotes/1.7.11.txt index 3f4c63ab30..7931f77076 100644 --- a/Documentation/RelNotes/1.7.11.txt +++ b/Documentation/RelNotes/1.7.11.txt @@ -79,6 +79,9 @@ Foreign Interface Performance and Internal Implementation (please report possible regressions) + * Bash completion script (in contrib/) have been cleaned up to make + future work on it simpler. + * An experimental "version 4" format of the index file has been introduced to reduce on-disk footprint and I/O overhead. @@ -120,23 +123,26 @@ Unless otherwise noted, all the fixes since v1.7.10 in the maintenance releases are contained in this release (see release notes to them for details). - * When a submodule repository uses alternate object store mechanism, - some commands that were started from the superproject did not - notice it and failed with "No such object" errors. The subcommands - of "git submodule" command that properly recursed into the - submodule in a separate process were OK; only the ones that cheated - and peeked directly into the submodule's repository from the - primary process were affected. - (merge 5e73633 hv/submodule-alt-odb later to maint). + * The progress indicator for a large "git checkout" was sent to + stderr even if it is not a terminal. + (merge e9fc64c ap/checkout-no-progress-for-non-tty later to maint). - * The directory path used in "git diff --no-index", when it recurses - down, was broken with a recent update after v1.7.10.1 release. - (merge 176a335 bp/diff-no-index-strbuf-fix later to maint). + * A name taken from mailmap was copied into an internal buffer + incorrectly and could overun the buffer if it is too long. + (merge c9b4e9e jk/format-person-part-buffer-limit later to maint). - * "git status --porcelain" ignored "--branch" option by mistake. The - output for "git status --branch -z" was also incorrect and did not - terminate the record for the current branch name with NUL as asked. - (merge d4a6bf1 jk/maint-status-porcelain-z-b later to maint). + * A malformed commit object that has a header line chomped in the + middle could kill git with a NULL pointer dereference. + (merge a9c7a8a jk/pretty-commit-header-incomplete-line later to maint). + + * An author/committer name that is a single character was mishandled + as an invalid name by mistake. + (merge d9955fd jk/ident-split-fix later to maint). + + * "git grep -e '$pattern'", unlike the case where the patterns are + read from a file, did not treat individual lines in the given + pattern argument as separate regular expressions as it should. + (merge ec83061 rs/maint-grep-F later to maint). * "git diff --stat" used to fully count a binary file with modified execution bits whose contents is unmodified, which was not quite diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index c92dbed2ec..ebbe873494 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.7.10.GIT +DEF_VER=v1.7.11-rc0 LF=' '