From: Junio C Hamano Date: Mon, 8 Aug 2016 21:48:38 +0000 (-0700) Subject: Merge branch 'va/i18n' X-Git-Tag: v2.10.0-rc0~44 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/768ededa9c4e804ead6d473d4fe3a8092a77b05c?hp=1b8132d99d80ca98218c2685bbe5ba016a0a42f8 Merge branch 'va/i18n' More i18n marking. * va/i18n: i18n: config: unfold error messages marked for translation i18n: notes: mark comment for translation --- diff --git a/Documentation/RelNotes/2.10.0.txt b/Documentation/RelNotes/2.10.0.txt index f9dfc27b33..a9fb0736d6 100644 --- a/Documentation/RelNotes/2.10.0.txt +++ b/Documentation/RelNotes/2.10.0.txt @@ -34,7 +34,7 @@ UI, Workflows & Features * "upload-pack" allows a custom "git pack-objects" replacement when responding to "fetch/clone" via the uploadpack.packObjectsHook. - (merge 20b20a2 jk/upload-pack-hook later to maint). + (merge b738396 jk/upload-pack-hook later to maint). * Teach format-patch and mailsplit (hence "am") how a line that happens to begin with "From " in the e-mail message is quoted with @@ -84,6 +84,27 @@ UI, Workflows & Features * A new configuration variable core.sshCommand has been added to specify what value for GIT_SSH_COMMAND to use per repository. + * "git worktree prune" protected worktrees that are marked as + "locked" by creating a file in a known location. "git worktree" + command learned a dedicated command pair to create and remove such + a file, so that the users do not have to do this with editor. + + * A handful of "git svn" updates. + + * "git push" learned to accept and pass extra options to the + receiving end so that hooks can read and react to them. + + * "git status" learned to suggest "merge --abort" during a conflicted + merge, just like it already suggests "rebase --abort" during a + conflicted rebase. + (merge b0a61ab mm/status-suggest-merge-abort later to maint). + + * "git jump" script (in contrib/) has been updated a bit. + (merge a91e692 jk/git-jump later to maint). + + * "git push" and "git clone" learned to give better progress meters + to the end user who is waiting on the terminal. + Performance, Internal Implementation, Development Support etc. @@ -156,7 +177,6 @@ Performance, Internal Implementation, Development Support etc. * Improve the look of the way "git fetch" reports what happened to each ref that was fetched. - (merge bc437d1 nd/fetch-ref-summary later to maint). * The .c/.h sources are marked as such in our .gitattributes file so that "git diff -W" and friends would work better. @@ -205,6 +225,27 @@ Performance, Internal Implementation, Development Support etc. * The API to iterate over all the refs (i.e. for_each_ref(), etc.) has been revamped. + * A few tests that specifically target "git rebase -i" have been + added. + + * Dumb http transport on the client side has been optimized. + (merge ecba195 ew/http-walker later to maint). + + * Users of the parse_options_concat() API function need to allocate + extra slots in advance and fill them with OPT_END() when they want + to decide the set of supported options dynamically, which makes the + code error-prone and hard to read. This has been corrected by tweaking + the API to allocate and return a new copy of "struct option" array. + (merge 023ff39 jk/parse-options-concat later to maint). + + * "git fetch" exchanges batched have/ack messages between the sender + and the receiver, initially doubling every time and then falling + back to enlarge the window size linearly. The "smart http" + transport, being an half-duplex protocol, outgrows the preset limit + too quickly and becomes inefficient when interacting with a large + repository. The internal mechanism learned to grow the window size + more aggressively when working with the "smart http" transport. + Also contains various documentation updates and code clean-ups. @@ -285,7 +326,6 @@ notes for details). bogus offset value to the caller. Use a more benign looking +0000 instead and let "git log" going in such a case, instead of aborting. - (merge bab7483 jk/tzoffset-fix later to maint). * One among four invocations of readlink(1) in our test suite has been rewritten so that the test can run on systems without the @@ -308,58 +348,46 @@ notes for details). finds its subject line did not ignore leading blank lines, as is commonly done by other codepaths. Make it ignore leading blank lines to match. - (merge 054a5ae js/find-commit-subject-ignore-leading-blanks later to maint). * For a long time, we carried an in-code comment that said our colored output would work only when we use fprintf/fputs on Windows, which no longer is the case for the past few years. - (merge 3d0a833 js/color-on-windows-comment later to maint). * "gc.autoPackLimit" when set to 1 should not trigger a repacking when there is only one pack, but the code counted poorly and did so. - (merge 5f4e3bf ew/gc-auto-pack-limit-fix later to maint). * Add a test to specify the desired behaviour that currently is not available in "git rebase -Xsubtree=...". - (merge 5f35900 dg/subtree-rebase-test later to maint). * More mark-up updates to typeset strings that are expected to literally typed by the end user in fixed-width font. - (merge 661c3e9 mm/doc-tt later to maint). * "git commit --amend --allow-empty-message -S" for a commit without any message body could have misidentified where the header of the commit object ends. - (merge 3324dd8 js/sign-empty-commit-fix later to maint). * "git rebase -i --autostash" did not restore the auto-stashed change when the operation was aborted. - (merge 33ba9c6 ps/rebase-i-auto-unstash-upon-abort later to maint). * Git does not know what the contents in the index should be for a path added with "git add -N" yet, so "git grep --cached" should not show hits (or show lack of hits, with -L) in such a path, but that logic does not apply to "git grep", i.e. searching in the working tree files. But we did so by mistake, which has been corrected. - (merge b8e47d1 nd/ita-cleanup later to maint). * "git blame -M" missed a single line that was moved within the file. - (merge 17a07e2 dk/blame-move-no-reason-for-1-line-context later to maint). * Fix recently introduced codepaths that are involved in parallel submodule operations, which gave up on reading too early, and could have wasted CPU while attempting to write under a corner case condition. - (merge d751dd1 sb/submodule-parallel-fetch later to maint). * "git grep -i" has been taught to fold case in non-ascii locales correctly. - (merge 695f95b nd/icase later to maint). * A test that unconditionally used "mktemp" learned that the command is not necessarily available everywhere. - (merge c578a09 ak/lazy-prereq-mktemp later to maint). * There are certain house-keeping tasks that need to be performed at the very beginning of any Git program, and programs that are not @@ -372,7 +400,6 @@ notes for details). * The test framework learned a new helper test_match_signal to check an exit code from getting killed by an expected signal. - (merge 03c39b3 jk/test-match-signal later to maint). * General code clean-up around a helper function to write a single-liner to a file. @@ -383,7 +410,6 @@ notes for details). which was not gender-neutral and also inconsistent with the rest of the system where outside stuff is usuall called "theirs" in contrast to "ours". - (merge 715a51b js/am-call-theirs-theirs-in-fallback-3way later to maint). * "git blame file" allowed the lineage of lines in the uncommitted, unadded contents of "file" to be inspected, but it refused when @@ -414,15 +440,71 @@ notes for details). misbehave has been fixed. (merge 044fb19 js/ignore-space-at-eol later to maint). + * "git notes merge" had a code to see if a path exists (and fails if + it does) and then open the path for writing (when it doesn't). + Replace it with open with O_EXCL. + (merge deb9c15 rs/notes-merge-no-toctou later to maint). + + * "git pack-objects" and "git index-pack" mostly operate with off_t + when talking about the offset of objects in a packfile, but there + were a handful of places that used "unsigned long" to hold that + value, leading to an unintended truncation. + (merge ec9d224 nd/pack-ofs-4gb-limit later to maint). + + * Recent update to "git daemon" tries to enable the socket-level + KEEPALIVE, but when it is spawned via inetd, the standard input + file descriptor may not necessarily be connected to a socket. + Suppress an ENOTSOCK error from setsockopt(). + (merge fab6027 ew/daemon-socket-keepalive later to maint). + + * Recent FreeBSD stopped making perl available at /usr/bin/perl; + switch the default the built-in path to /usr/local/bin/perl on not + too ancient FreeBSD releases. + (merge 259f22a ew/find-perl-on-freebsd-in-local later to maint). + + * "git commit --help" said "--no-verify" is only about skipping the + pre-commit hook, and failed to say that it also skipped the + commit-msg hook. + (merge def480f os/no-verify-skips-commit-msg-too later to maint). + + * "git merge" in Git v2.9 was taught to forbid merging an unrelated + lines of history by default, but that is exactly the kind of thing + the "--rejoin" mode of "git subtree" (in contrib/) wants to do. + "git subtree" has been taught to use the "--allow-unrelated-histories" + option to override the default. + (merge 0f12c7d da/subtree-2.9-regression later to maint). + + * The build procedure for "git persistent-https" helper (in contrib/) + has been updated so that it can be built with more recent versions + of Go. + (merge accb613 pm/build-persistent-https-with-recent-go later to maint). + + * There is an optimization used in "git diff $treeA $treeB" to borrow + an already checked-out copy in the working tree when it is known to + be the same as the blob being compared, expecting that open/mmap of + such a file is faster than reading it from the object store, which + involves inflating and applying delta. This however kicked in even + when the checked-out copy needs to go through the convert-to-git + conversion (including the clean filter), which defeats the whole + point of the optimization. The optimization has been disabled when + the conversion is necessary. + (merge 06dec43 jk/diff-do-not-reuse-wtf-needs-cleaning later to maint). + + * "git -c grep.patternType=extended log --basic-regexp" misbehaved + because the internal API to access the grep machinery was not + designed well. + (merge 8465541 jc/grep-commandline-vs-configuration later to maint). + * Other minor clean-ups and documentation updates (merge e51b0df pb/commit-editmsg-path later to maint). (merge b333d0d jk/send-pack-stdio later to maint). (merge fcf0fe9 lf/sideband-returns-void later to maint). (merge c2691e2 ah/unpack-trees-advice-messages later to maint). - (merge 82f6178 nd/doc-new-command later to maint). - (merge fa90ab4 js/t3404-grammo-fix later to maint). (merge c61b2af lf/recv-sideband-cleanup later to maint). (merge 31471ba rs/use-strbuf-addbuf later to maint). (merge 503e224 nd/test-helpers later to maint). (merge 16726cf jc/doc-diff-filter-exclude later to maint). (merge fd2e7da rs/worktree-use-strbuf-absolute-path later to maint). + (merge 406621f sb/submodule-deinit-all later to maint). + (merge 55cbe18 rs/submodule-config-code-cleanup later to maint). + (merge 280abfd sb/pack-protocol-doc-nak later to maint). diff --git a/Documentation/RelNotes/2.9.3.txt b/Documentation/RelNotes/2.9.3.txt new file mode 100644 index 0000000000..28003a54ef --- /dev/null +++ b/Documentation/RelNotes/2.9.3.txt @@ -0,0 +1,58 @@ +Git v2.9.3 Release Notes +======================== + +Fixes since v2.9.2 +------------------ + + * A helper function that takes the contents of a commit object and + finds its subject line did not ignore leading blank lines, as is + commonly done by other codepaths. Make it ignore leading blank + lines to match. + + * Git does not know what the contents in the index should be for a + path added with "git add -N" yet, so "git grep --cached" should not + show hits (or show lack of hits, with -L) in such a path, but that + logic does not apply to "git grep", i.e. searching in the working + tree files. But we did so by mistake, which has been corrected. + + * "git rebase -i --autostash" did not restore the auto-stashed change + when the operation was aborted. + + * "git commit --amend --allow-empty-message -S" for a commit without + any message body could have misidentified where the header of the + commit object ends. + + * More mark-up updates to typeset strings that are expected to + literally typed by the end user in fixed-width font. + + * For a long time, we carried an in-code comment that said our + colored output would work only when we use fprintf/fputs on + Windows, which no longer is the case for the past few years. + + * "gc.autoPackLimit" when set to 1 should not trigger a repacking + when there is only one pack, but the code counted poorly and did + so. + + * One part of "git am" had an oddball helper function that called + stuff from outside "his" as opposed to calling what we have "ours", + which was not gender-neutral and also inconsistent with the rest of + the system where outside stuff is usuall called "theirs" in + contrast to "ours". + + * The test framework learned a new helper test_match_signal to + check an exit code from getting killed by an expected signal. + + * "git blame -M" missed a single line that was moved within the file. + + * Fix recently introduced codepaths that are involved in parallel + submodule operations, which gave up on reading too early, and + could have wasted CPU while attempting to write under a corner + case condition. + + * "git grep -i" has been taught to fold case in non-ascii locales + correctly. + + * A test that unconditionally used "mktemp" learned that the command + is not necessarily available everywhere. + +Also contains minor documentation updates and code clean-ups. diff --git a/Documentation/config.txt b/Documentation/config.txt index 8b1aee4b3b..bc1c433c4e 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -2427,8 +2427,13 @@ rebase.instructionFormat receive.advertiseAtomic:: By default, git-receive-pack will advertise the atomic push - capability to its clients. If you don't want to this capability - to be advertised, set this variable to false. + capability to its clients. If you don't want to advertise this + capability, set this variable to false. + +receive.advertisePushOptions:: + By default, git-receive-pack will advertise the push options + capability to its clients. If you don't want to advertise this + capability, set this variable to false. receive.autogc:: By default, git-receive-pack will run "git-gc --auto" after @@ -2483,6 +2488,15 @@ receive.fsck.skipList:: can be safely ignored such as invalid committer email addresses. Note: corrupt objects cannot be skipped with this setting. +receive.keepAlive:: + After receiving the pack from the client, `receive-pack` may + produce no output (if `--quiet` was specified) while processing + the pack, causing some networks to drop the TCP connection. + With this option set, if `receive-pack` does not transmit + any data in this phase for `receive.keepAlive` seconds, it will + send a short keepalive packet. The default is 5 seconds; set + to 0 to disable keepalives entirely. + receive.unpackLimit:: If the number of objects received in a push is below this limit then the objects will be unpacked into loose object diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index 93c3527f0c..ec514f6cd5 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -11,7 +11,7 @@ SYNOPSIS [verse] 'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=] [--repo=] [-f | --force] [-d | --delete] [--prune] [-v | --verbose] - [-u | --set-upstream] + [-u | --set-upstream] [--push-option=] [--[no-]signed|--sign=(true|false|if-asked)] [--force-with-lease[=[:]]] [--no-verify] [ [...]] @@ -156,6 +156,12 @@ already exists on the remote side. Either all refs are updated, or on error, no refs are updated. If the server does not support atomic pushes the push will fail. +-o:: +--push-option:: + Transmit the given string to the server, which passes them to + the pre-receive as well as the post-receive hook. The given string + must not contain a NUL or LF character. + --receive-pack=:: --exec=:: Path to the 'git-receive-pack' program on the remote diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index 7e17cade7f..5f9e65b0c4 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -625,6 +625,9 @@ config key: svn.authorsfile with the committer name as the first argument. The program is expected to return a single line of the form "Name ", which will be treated as if included in the authors file. ++ +[verse] +config key: svn.authorsProg -q:: --quiet:: diff --git a/Documentation/git-worktree.txt b/Documentation/git-worktree.txt index 7c4cfb0885..0aeb020d02 100644 --- a/Documentation/git-worktree.txt +++ b/Documentation/git-worktree.txt @@ -11,7 +11,9 @@ SYNOPSIS [verse] 'git worktree add' [-f] [--detach] [--checkout] [-b ] [] 'git worktree list' [--porcelain] +'git worktree lock' [--reason ] 'git worktree prune' [-n] [-v] [--expire ] +'git worktree unlock' DESCRIPTION ----------- @@ -38,9 +40,8 @@ section "DETAILS" for more information. If a linked working tree is stored on a portable device or network share which is not always mounted, you can prevent its administrative files from -being pruned by creating a file named 'locked' alongside the other -administrative files, optionally containing a plain text reason that -pruning should be suppressed. See section "DETAILS" for more information. +being pruned by issuing the `git worktree lock` command, optionally +specifying `--reason` to explain why the working tree is locked. COMMANDS -------- @@ -62,10 +63,22 @@ each of the linked worktrees. The output details include if the worktree is bare, the revision currently checked out, and the branch currently checked out (or 'detached HEAD' if none). +lock:: + +If a working tree is on a portable device or network share which +is not always mounted, lock it to prevent its administrative +files from being pruned automatically. This also prevents it from +being moved or deleted. Optionally, specify a reason for the lock +with `--reason`. + prune:: Prune working tree information in $GIT_DIR/worktrees. +unlock:: + +Unlock a working tree, allowing it to be pruned, moved or deleted. + OPTIONS ------- @@ -111,6 +124,18 @@ OPTIONS --expire