]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2013/09 #02)
authorJunio C Hamano <gitster@pobox.com>
Mon, 9 Sep 2013 22:33:46 +0000 (15:33 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Sep 2013 22:33:46 +0000 (15:33 -0700)
whats-cooking.txt

index 072222974b0f7912bf76d88512f7d2d3a8b1efad..b736406633cede3d1449e0d76127ff7547e6b8bd 100644 (file)
@@ -1,35 +1,17 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Sep 2013, #01; Tue, 3)
-X-master-at: 0a41de8f81d8fa39fa17943cd1ed5e0274fef187
-X-next-at: 91af5188d5bdbdf006c601a997f25c618050dcee
+Subject: What's cooking in git.git (Sep 2013, #02; Mon, 9)
+X-master-at: bb80ee09974667a1db6bbc5e33574ed869b76a88
+X-next-at: 117d2e3ab92364a7d246c98cc5b71f2b751600e6
 
-What's cooking in git.git (Sep 2013, #01; Tue, 3)
+What's cooking in git.git (Sep 2013, #02; Mon, 9)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
 '-' are only in 'pu' (proposed updates) while commits prefixed with
 '+' are in 'next'.
 
-The tip of 'next' has been rewound. I ejected a handful of topics
-that have been cooking there while rebuilding it, but it is not
-because I found anything in them problematic, but merely because
-they were young and I wanted to give their authors a chance to tweak
-with a reroll instead of a set of follow-up patches. Unless I hear
-otherwise in a few days, they will be merged back to 'next'.
-
-By the way, the push that overrides the usual "must fast-forward"
-was done using the "force-with-lease" option that has been cooking
-in next, like so:
-
-    $ git fetch ko next
-    $ anchor=$(git rev-parse --verify FETCH_HEAD)
-    $ for remote in ko repo gph github2
-      do
-        git push --force-with-lease=refs/heads/next:$anchor $remote next
-      done
-
-I used to do this with just --force.
+The second batch of topics are now in 'master'.
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -39,392 +21,469 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* bc/completion-for-bash-3.0 (2013-08-22) 3 commits
-  (merged to 'next' on 2013-08-28 at fb87a84)
- + contrib/git-prompt.sh: handle missing 'printf -v' more gracefully
- + t9902-completion.sh: old Bash still does not support array+=('') notation
- + git-completion.bash: use correct Bash/Zsh array length syntax
-
- Originally merged to 'next' on 2013-08-22
-
- Some people still use rather old versions of bash, which cannot
- grok some constructs like 'printf -v varname' the prompt and
- completion code started to use recently.
+* aj/p4-symlink-lose-nl (2013-08-12) 1 commit
+  (merged to 'next' on 2013-08-28 at 5ce9ceb)
+ + git-p4: Fix occasional truncation of symlink contents.
 
+ Originally merged to 'next' on 2013-08-14
 
-* hv/config-from-blob (2013-08-26) 1 commit
-  (merged to 'next' on 2013-08-28 at 189c6c1)
- + config: do not use C function names as struct members
 
- Portability fix.
+* ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
+  (merged to 'next' on 2013-08-28 at 9bfc430)
+ + remote-hg: fix path when cloning with tilde expansion
 
- Need to apply to 1.8.4.x maintenance track.
+ Originally merged to 'next' on 2013-08-14
 
 
-* mb/docs-favor-en-us (2013-08-01) 1 commit
-  (merged to 'next' on 2013-08-28 at 82910e5)
- + Provide some linguistic guidance for the documentation.
+* bc/unuse-packfile (2013-08-02) 2 commits
+  (merged to 'next' on 2013-08-28 at 9029801)
+ + Don't close pack fd when free'ing pack windows
+ + sha1_file: introduce close_one_pack() to close packs on fd pressure
 
  Originally merged to 'next' on 2013-08-06
 
- Declare that the official grammar & spelling of the source of this
- project is en_US, but strongly discourage patches only to "fix"
- existing en_UK strings to avoid unnecessary churns.
+ Handle memory pressure and file descriptor pressure separately when
+ deciding to release pack windows to honor resource limits.
 
 
-* mm/war-on-whatchanged (2013-08-13) 2 commits
-  (merged to 'next' on 2013-08-28 at 25e9c18)
- + whatchanged: document its historical nature
- + core-tutorial: trim the section on Inspecting Changes
+* da/darwin (2013-08-05) 3 commits
+  (merged to 'next' on 2013-08-28 at 6e4c5ae)
+ + OS X: Fix redeclaration of die warning
+ + Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
+ + imap-send: use Apple's Security framework for base64 encoding
 
- Originally merged to 'next' on 2013-08-14
+ Originally merged to 'next' on 2013-08-05
 
 
-* nd/fetch-pack-shallow-fix (2013-08-25) 1 commit
-  (merged to 'next' on 2013-08-28 at 6f5ed42)
- + fetch-pack: do not remove .git/shallow file when --depth is not specified
+* db/http-savecookies (2013-08-05) 2 commits
+  (merged to 'next' on 2013-08-28 at 22a8464)
+ + t5551: Remove header from curl cookie file
+ + http: add http.savecookies option to write out HTTP cookies
 
- Originally merged to 'next' on 2013-08-27
+ Originally merged to 'next' on 2013-08-05
 
- Recent "short-cut clone connectivity check" topic broke a shallow
- repository when a fetch operation tries to auto-follow tags.
 
- Need to apply to 1.8.4.x maintenance track.
+* es/blame-L-more (2013-08-05) 11 commits
+  (merged to 'next' on 2013-08-28 at b73cdc9)
+ + blame: reject empty ranges -L,+0 and -L,-0
+ + t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
+ + blame: reject empty ranges -LX,+0 and -LX,-0
+ + t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
+ + log: fix -L bounds checking bug
+ + t4211: retire soon-to-be unimplementable tests
+ + t4211: log: demonstrate -L bounds checking bug
+ + blame: fix -L bounds checking bug
+ + t8001/t8002: blame: add empty file & partial-line tests
+ + t8001/t8002: blame: demonstrate -L bounds checking bug
+ + t8001/t8002: blame: decompose overly-large test
+ (this branch is used by es/blame-L-twice and es/contacts-blame-L-multi.)
 
+ Originally merged to 'next' on 2013-08-06
 
-* rj/doc-rev-parse (2013-07-22) 2 commits
-  (merged to 'next' on 2013-08-28 at 0fce928)
- + rev-parse(1): logically group options
- + rev-parse: remove restrictions on some options
+ More fixes to the code to parse the "-L" option in "log" and "blame".
 
- Originally merged to 'next' on 2013-07-22
 
+* es/blame-L-twice (2013-08-06) 16 commits
+  (merged to 'next' on 2013-08-28 at e83ae2e)
+ + line-range: reject -L line numbers less than 1
+ + t8001/t8002: blame: add tests of -L line numbers less than 1
+ + line-range: teach -L^:RE to search from start of file
+ + line-range: teach -L:RE to search from end of previous -L range
+ + line-range: teach -L^/RE/ to search from start of file
+ + line-range-format.txt: document -L/RE/ relative search
+ + log: teach -L/RE/ to search from end of previous -L range
+ + blame: teach -L/RE/ to search from end of previous -L range
+ + line-range: teach -L/RE/ to search relative to anchor point
+ + blame: document multiple -L support
+ + t8001/t8002: blame: add tests of multiple -L options
+ + blame: accept multiple -L ranges
+ + blame: inline one-line function into its lone caller
+ + range-set: publish API for re-use by git-blame -L
+ + line-range-format.txt: clarify -L:regex usage form
+ + git-log.txt: place each -L option variation on its own line
+ (this branch is used by es/contacts-blame-L-multi; uses es/blame-L-more.)
 
-* rt/doc-merge-file-diff3 (2013-08-09) 1 commit
-  (merged to 'next' on 2013-08-28 at d6b8006)
- + Documentation/git-merge-file: document option "--diff3"
+ Originally merged to 'next' on 2013-08-08
 
- Originally merged to 'next' on 2013-08-14
+ Teaches "git blame" to take more than one -L ranges.
 
 
-* sp/doc-smart-http (2013-08-21) 1 commit
-  (merged to 'next' on 2013-08-28 at 20a6877)
- + Document the HTTP transport protocols
+* es/contacts-blame-L-multi (2013-08-13) 3 commits
+  (merged to 'next' on 2013-08-28 at 24ff8b4)
+ + contacts: reduce git-blame invocations
+ + contacts: gather all blame sources prior to invoking git-blame
+ + contacts: validate hunk length earlier
+ (this branch uses es/blame-L-more and es/blame-L-twice.)
 
- Originally merged to 'next' on 2013-08-22
+ Originally merged to 'next' on 2013-08-14
 
---------------------------------------------------
-[New Topics]
 
-* fc/contrib-bzr-hg-fixes (2013-09-03) 10 commits
- - contrib/remote-helpers: quote variable references in redirection targets
- - contrib/remote-helpers: style updates for test scripts
- - remote-hg: use notes to keep track of Hg revisions
- - remote-helpers: cleanup more global variables
- - remote-helpers: trivial style fixes
- - remote-hg: improve basic test
- - remote-hg: add missing &&s in the test
- - remote-hg: fix test
- - remote-bzr: make bzr branches configurable per-repo
- - remote-bzr: fix export of utf-8 authors
+* fc/remote-hg-shared-setup (2013-08-11) 2 commits
+  (merged to 'next' on 2013-08-28 at 41ee3fe)
+ + remote-hg: add shared repo upgrade
+ + remote-hg: ensure shared repo is initialized
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-08-14
 
 
-* jc/pager-configuration-doc (2013-08-29) 1 commit
- - config: rewrite core.pager documentation
+* fc/unpack-trees-leakfix (2013-08-13) 1 commit
+  (merged to 'next' on 2013-08-28 at 3ad1f21)
+ + unpack-trees: plug a memory leak
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-08-14
 
 
-* np/pack-v4 (2013-09-03) 24 commits
- - Document pack v4 format
- - initial pack index v3 support on the read side
- - pack v4: add progress display
- - pack v4: normalize pack name to properly generate the pack index file name
- - pack index v3
- - pack v4: relax commit parsing a bit
- - pack v4: honor pack.compression config option
- - pack v4: load delta candidate for encoding tree objects
- - pack v4: tree object delta encoding
- - pack v4: object writing
- - pack v4: object data copy
- - pack v4: object headers
- - pack v4: creation code
- - pack v4: dictionary table output
- - pack v4: tree object encoding
- - pack v4: commit object encoding
- - pack v4: basic references encoding
- - pack v4: move to struct pack_idx_entry and get rid of our own struct idx_entry
- - pack v4: split the object list and dictionary creation
- - pack v4: add commit object parsing
- - pack v4: add tree entry mode support to dictionary entries
- - pack v4: scan tree objects
- - export packed_object_info()
- - pack v4: initial pack dictionary structure and code
+* jc/check-x-z (2013-07-11) 4 commits
+  (merged to 'next' on 2013-08-28 at a7670ce)
+ + check-attr -z: a single -z should apply to both input and output
+ + check-ignore -z: a single -z should apply to both input and output
+ + check-attr: the name of the character is NUL, not NULL
+ + check-ignore: the name of the character is NUL, not NULL
 
+ Originally merged to 'next' on 2013-07-15
 
-* jk/free-tree-buffer (2013-06-06) 1 commit
- - clear parsed flag when we free tree buffers
+ "git check-ignore -z" applied the NUL termination to both its input
+ (with --stdin) and its output, but "git check-attr -z" ignored the
+ option on the output side.
 
- Will merge to 'next'.
+ This is potentially a backward incompatible fix.  Let's see if
+ anybody screams before deciding if we want to do anything to help
+ existing users (there may be none).
 
 
-* jk/has-sha1-file-retry-packed (2013-08-30) 1 commit
- - has_sha1_file: re-check pack directory before giving up
+* jc/diff-filter-negation (2013-07-19) 6 commits
+  (merged to 'next' on 2013-08-28 at 5cc7720)
+ + diff: deprecate -q option to diff-files
+ + diff: allow lowercase letter to specify what change class to exclude
+ + diff: reject unknown change class given to --diff-filter
+ + diff: preparse --diff-filter string argument
+ + diff: factor out match_filter()
+ + diff: pass the whole diff_options to diffcore_apply_filter()
+ (this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-07-22
 
+ Teach "git diff --diff-filter" to express "I do not want to see
+ these classes of changes" more directly by listing only the
+ unwanted ones in lowercase (e.g. "--diff-filter=d" will show
+ everything but deletion) and deprecate "diff-files -q" which did
+ the same thing as "--diff-filter=d".
 
-* ab/gitweb-author-initials (2013-08-30) 1 commit
- - gitweb: Fix the author initials in blame for non-ASCII names
 
- Will merge to 'next'.
+* jc/parseopt-command-modes (2013-07-30) 2 commits
+  (merged to 'next' on 2013-08-28 at 738b399)
+ + tag: use OPT_CMDMODE
+ + parse-options: add OPT_CMDMODE()
+ (this branch is used by sb/parseopt-boolean-removal.)
 
+ Many commands use --dashed-option as a operation mode selector
+ (e.g. "git tag --delete") that the user can use at most one
+ (e.g. "git tag --delete --verify" is a nonsense) and you cannot
+ negate (e.g. "git tag --no-delete" is a nonsense).  Make it easier
+ for users of parse_options() to enforce these restrictions.
 
-* bk/refs-multi-update (2013-08-30) 8 commits
- - update-ref: add test cases covering --stdin signature
- - update-ref: support multiple simultaneous updates
- - refs: add update_refs for multiple simultaneous updates
- - refs: add function to repack without multiple refs
- - refs: factor delete_ref loose ref step into a helper
- - refs: factor update_ref steps into helpers
- - refs: report ref type from lock_any_ref_for_update
- - reset: rename update_refs to reset_refs
 
+* jc/push-cas (2013-08-02) 9 commits
+  (merged to 'next' on 2013-08-28 at 784281f)
+ + push: teach --force-with-lease to smart-http transport
+ + send-pack: fix parsing of --force-with-lease option
+ + t5540/5541: smart-http does not support "--force-with-lease"
+ + t5533: test "push --force-with-lease"
+ + push --force-with-lease: tie it all together
+ + push --force-with-lease: implement logic to populate old_sha1_expect[]
+ + remote.c: add command line option parser for "--force-with-lease"
+ + builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
+ + cache.h: move remote/connect API out of it
 
-* fc/at-head (2013-09-03) 2 commits
- - Add new @ shortcut for HEAD
- - sha1-name: pass len argument to interpret_branch_name()
+ Originally merged to 'next' on 2013-08-05
 
- Attempt to resurrect "Type @ for HEAD"; the bottom one seems to be
- a genuine code improvement, but identifying cases where "@" means
- HEAD seems to be harder than it seems---the tip one does not yet
- get it right.
+ Allow a safer "rewind of the remote tip" push than blind "--force",
+ by requiring that the overwritten remote ref to be unchanged since
+ the new history to replace it was prepared.
 
+ The machinery is more or less ready.  The "--force" option is again
+ the big red button to override any safety, thanks to J6t's sanity
+ (the original round allowed --lockref to defeat --force).
 
-* fc/fast-export (2013-09-03) 2 commits
- - fast-export: refactor get_tags_and_duplicates()
- - fast-export: make extra_refs global
+ The logic to choose the default implemented here is fragile
+ (e.g. "git fetch" after seeing a failure will update the
+ remote-tracking branch and will make the next "push" pass,
+ defeating the safety pretty easily).  It is suitable only for the
+ simplest workflows, and it may hurt users more than it helps them.
 
- Code simpification.
 
- Will merge to 'next'.
+* jc/transport-do-not-use-connect-twice-in-fetch (2013-08-28) 6 commits
+  (merged to 'next' on 2013-08-29 at f88a6da)
+ + builtin/fetch.c: Fix a sparse warning
+  (merged to 'next' on 2013-08-28 at 2ed86df)
+ + fetch: work around "transport-take-over" hack
+ + fetch: refactor code that fetches leftover tags
+ + fetch: refactor code that prepares a transport
+ + fetch: rename file-scope global "transport" to "gtransport"
+ + t5802: add test for connect helper
 
+ Originally merged to 'next' on 2013-08-20
 
-* fc/rev-parse-test-updates (2013-09-03) 4 commits
- - rev-parse test: use standard test functions for setup
- - rev-parse test: use test_cmp instead of "test" builtin
- - rev-parse test: use test_must_fail, not "if <command>; then false; fi"
- - rev-parse test: modernize quoting and whitespace
+ The auto-tag-following code in "git fetch" tries to reuse the same
+ transport twice when the serving end does not cooperate and does
+ not give tags that point to commits that are asked for as part of
+ the primary transfer.  Unfortunately, Git-aware transport helper
+ interface is not designed to be used more than once, hence this
+ does not work over smart-http transfer.
 
- Modernize tests.
 
- Will merge to 'next'.
+* jc/url-match (2013-08-09) 7 commits
+  (merged to 'next' on 2013-08-28 at 2a9fd23)
+ + builtin/config.c: compilation fix
+ + config: "git config --get-urlmatch" parses section.<url>.key
+ + builtin/config: refactor collect_config()
+ + config: parse http.<url>.<variable> using urlmatch
+ + config: add generic callback wrapper to parse section.<url>.key
+ + config: add helper to normalize and match URLs
+ + http.c: fix parsing of http.sslCertPasswordProtected variable
 
+ Originally merged to 'next' on 2013-08-12
 
-* fc/t3200-fixes (2013-09-03) 3 commits
- - t: branch: fix broken && chains
- - t: branch: fix typo
- - t: branch: trivial style fix
+ Allow section.<urlpattern>.var configuration variables to be
+ treated as a "virtual" section.var given a URL, and use the
+ mechanism to enhance http.* configuration variables.
 
Will merge to 'next'.
This is a reroll of Kyle J. McKay's work.
 
 
-* fc/trivial (2013-09-03) 5 commits
- - branch: use $curr_branch_short more
- - add: trivial style cleanup
- - reset: trivial style cleanup
- - branch: trivial style fix
- - reset: trivial refactoring
+* jk/cat-file-batch-optim (2013-08-05) 1 commit
+  (merged to 'next' on 2013-08-28 at 624e60d)
+ + cat-file: only split on whitespace when %(rest) is used
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-08-06
 
+ Rework the reverted change to `cat-file --batch-check`.
 
-* jc/ref-excludes (2013-09-03) 2 commits
- - document --exclude option
- - revision: introduce --exclude=<glob> to tame wildcards
 
+* jk/fast-import-empty-ls (2013-06-23) 4 commits
+  (merged to 'next' on 2013-08-28 at 876a39d)
+ + fast-import: allow moving the root tree
+ + fast-import: allow ls or filecopy of the root tree
+ + fast-import: set valid mode on root tree in "ls"
+ + t9300: document fast-import empty path issues
 
-* jk/pager-bypass-cat-for-default-pager (2013-09-03) 1 commit
- - pager: turn on "cat" optimization for DEFAULT_PAGER
+ Originally merged to 'next' on 2013-07-22
 
- If a build-time fallback is set to "cat" instead of "less", we
- should apply the same "no subprocess or pipe" optimization as we
- apply to user-supplied GIT_PAGER=cat.
 
- Will merge to 'next'.
+* jk/mailmap-incomplete-line (2013-08-28) 1 commit
+  (merged to 'next' on 2013-09-04 at e77e887)
+ + mailmap: handle mailmap blobs without trailing newlines
 
+ Will merge later to 'maint'.
 
-* nd/git-dir-pointing-at-gitfile (2013-09-03) 1 commit
- - Make setup_git_env() resolve .git file when $GIT_DIR is not specified
 
- We made sure that we notice the user-supplied GIT_DIR is actually a
- gitfile, but failed to do so when the default ".git" is a gitfile.
+* jl/some-submodule-config-are-not-boolean (2013-08-19) 1 commit
+  (merged to 'next' on 2013-08-28 at 7fabc3e)
+ + avoid segfault on submodule.*.path set to an empty "true"
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-08-20
 
 
-* nr/git-cd-to-a-directory (2013-09-03) 1 commit
- - git: run in a directory given with -C option
+* jl/submodule-mv (2013-08-06) 5 commits
+  (merged to 'next' on 2013-08-28 at 4ec6b41)
+ + rm: delete .gitmodules entry of submodules removed from the work tree
+ + mv: update the path entry in .gitmodules for moved submodules
+ + submodule.c: add .gitmodules staging helper functions
+ + mv: move submodules using a gitfile
+ + mv: move submodules together with their work trees
+ (this branch is tangled with nd/magic-pathspec.)
 
- Just like "make -C <directory>", make "git -C <directory> ..." to
- go there before doing anything else.
+ Originally merged to 'next' on 2013-08-08
 
+ "git mv A B" when moving a submodule A does "the right thing",
+ inclusing relocating its working tree and adjusting the paths in
+ the .gitmodules file.
 
-* rh/peeling-tag-to-tag (2013-09-03) 2 commits
- - peel_onion: do not assume length of x_type globals
- - peel_onion(): add support for <rev>^{tag}
 
- Make "foo^{tag}" to peel a tag to itself, i.e. no-op., and fail if
- "foo" is not a tag.
+* km/svn-1.8-serf-only (2013-07-18) 3 commits
+  (merged to 'next' on 2013-08-28 at 1119134)
+ + Git.pm: revert _temp_cache use of temp_is_locked
+ + git-svn: allow git-svn fetching to work using serf
+ + Git.pm: add new temp_is_locked function
 
---------------------------------------------------
-[Stalled]
+ Originally merged to 'next' on 2013-07-19
 
-* rv/send-email-cache-generated-mid (2013-08-21) 2 commits
- - git-send-email: Cache generated message-ids, use them when prompting
- - git-send-email: add optional 'choices' parameter to the ask sub
+ Subversion 1.8.0 that was recently released breaks older subversion
+ clients coming over http/https in various ways.
 
 
-* rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
- - ### DONTMERGE: needs better explanation on what config they need
- - pack-refs.c: Add missing call to git_config()
- - show-ref.c: Add missing call to git_config()
+* mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
+  (merged to 'next' on 2013-08-28 at 86b300f)
+ + die_with_status: use "printf '%s\n'", not "echo"
 
- The changes themselves are probably good, but it is unclear what
- basic setting needs to be read for which exact operation.
+ Originally merged to 'next' on 2013-08-08
 
- Waiting for clarification.
- $gmane/228294
+ Fixes a minor bug in "git rebase -i" (there could be others, as the
+ root cause is pretty generic) where the code feeds a random, data
+ dependeant string to 'echo' and expects it to come out literally.
 
 
-* jh/shorten-refname (2013-05-07) 4 commits
- - t1514: refname shortening is done after dereferencing symbolic refs
- - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
- - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
- - t1514: Add tests of shortening refnames in strict/loose mode
+* ms/fetch-prune-configuration (2013-07-18) 1 commit
+  (merged to 'next' on 2013-08-28 at fa6ffc7)
+ + fetch: make --prune configurable
 
- When remotes/origin/HEAD is not a symbolic ref, "rev-parse
- --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
- "origin/HEAD", which is fixed with this series (if it is a symbolic
- ref that points at remotes/origin/something, then it should show
- "origin/something" and it already does).
+ Originally merged to 'next' on 2013-07-21
 
- Expecting a reroll, as an early part of a larger series.
- $gmane/225137
+ Allow fetch.prune and remote.*.prune configuration variables to be set,
+ and "git fetch" to behave as if "--prune" is given.
 
+ "git fetch" that honors remote.*.prune is fine, but I wonder if we
+ should somehow make "git push" aware of it as well.  Perhaps
+ remote.*.prune should not be just a boolean, but a 4-way "none",
+ "push", "fetch", "both"?
 
-* mg/more-textconv (2013-05-10) 7 commits
- - grep: honor --textconv for the case rev:path
- - grep: allow to use textconv filters
- - t7008: demonstrate behavior of grep with textconv
- - cat-file: do not die on --textconv without textconv filters
- - show: honor --textconv for blobs
- - diff_opt: track whether flags have been set explicitly
- - t4030: demonstrate behavior of show with textconv
 
- Make "git grep" and "git show" pay attention to --textconv when
- dealing with blob objects.
+* nd/clone-connectivity-shortcut (2013-07-23) 1 commit
+  (merged to 'next' on 2013-08-28 at d227f9f)
+ + smart http: use the same connectivity check on cloning
 
- I thought this was pretty well designed and executed, but it seems
- there are some doubts on the list; kicked back to 'pu'.
+ Originally merged to 'next' on 2013-07-30
 
 
-* jc/format-patch (2013-04-22) 2 commits
- - format-patch: --inline-single
- - format-patch: rename "no_inline" field
+* nd/gc-lock-against-each-other (2013-08-09) 1 commit
+  (merged to 'next' on 2013-08-28 at 46e072b)
+ + gc: reject if another gc is running, unless --force is given
 
- A new option to send a single patch to the standard output to be
- appended at the bottom of a message.  I personally have no need for
- this, but it was easy enough to cobble together.  Tests, docs and
- stripping out more MIMEy stuff are left as exercises to interested
- parties.
+ Originally merged to 'next' on 2013-08-14
 
- Not ready for inclusion.
 
- Will discard unless we hear from anybody who is interested in
- tying its loose ends.
+* nd/magic-pathspec (2013-09-05) 50 commits
+  (merged to 'next' on 2013-09-05 at b832b8d)
+ + add: lift the pathspec magic restriction on "add -p"
+ + pathspec: catch prepending :(prefix) on pathspec with short magic
+  (merged to 'next' on 2013-08-28 at 305c6e9)
+ + rm: do not set a variable twice without intermediate reading.
+ + t6131 - skip tests if on case-insensitive file system
+ + parse_pathspec: accept :(icase)path syntax
+ + pathspec: support :(glob) syntax
+ + pathspec: make --literal-pathspecs disable pathspec magic
+ + pathspec: support :(literal) syntax for noglob pathspec
+ + kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
+ + parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
+ + parse_pathspec: make sure the prefix part is wildcard-free
+ + rename field "raw" to "_raw" in struct pathspec
+ + tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
+ + remove match_pathspec() in favor of match_pathspec_depth()
+ + remove init_pathspec() in favor of parse_pathspec()
+ + remove diff_tree_{setup,release}_paths
+ + convert common_prefix() to use struct pathspec
+ + convert add_files_to_cache to take struct pathspec
+ + convert {read,fill}_directory to take struct pathspec
+ + convert refresh_index to take struct pathspec
+ + convert report_path_error to take struct pathspec
+ + checkout: convert read_tree_some to take struct pathspec
+ + convert unmerge_cache to take struct pathspec
+ + convert run_add_interactive to use struct pathspec
+ + convert read_cache_preload() to take struct pathspec
+ + line-log: convert to use parse_pathspec
+ + reset: convert to use parse_pathspec
+ + add: convert to use parse_pathspec
+ + check-ignore: convert to use parse_pathspec
+ + archive: convert to use parse_pathspec
+ + ls-files: convert to use parse_pathspec
+ + rm: convert to use parse_pathspec
+ + checkout: convert to use parse_pathspec
+ + rerere: convert to use parse_pathspec
+ + status: convert to use parse_pathspec
+ + commit: convert to use parse_pathspec
+ + clean: convert to use parse_pathspec
+ + guard against new pathspec magic in pathspec matching code
+ + parse_pathspec: support prefixing original patterns
+ + parse_pathspec: support stripping/checking submodule paths
+ + parse_pathspec: support stripping submodule trailing slashes
+ + parse_pathspec: add special flag for max_depth feature
+ + convert some get_pathspec() calls to parse_pathspec()
+ + parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
+ + parse_pathspec: save original pathspec for reporting
+ + add parse_pathspec() that converts cmdline args to struct pathspec
+ + pathspec: add copy_pathspec
+ + pathspec: i18n-ize error strings in pathspec parsing code
+ + move struct pathspec and related functions to pathspec.[ch]
+ + clean: remove unused variable "seen"
+ (this branch is tangled with jl/submodule-mv.)
 
+ Originally merged to 'next' on 2013-07-23
 
-* jk/gitweb-utf8 (2013-04-08) 4 commits
- - gitweb: Fix broken blob action parameters on blob/commitdiff pages
- - gitweb: Don't append ';js=(0|1)' to external links
- - gitweb: Make feed title valid utf8
- - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
+ Use "struct pathspec" interface in more places, instead of array of
+ characters, the latter of which cannot express magic pathspecs
+ (e.g. ":(icase)makefile" that matches both Makefile and makefile).
 
- Various fixes to gitweb.
 
- Drew Northup volunteered to take a look into this.
- $gmane/226216
+* nd/sq-quote-buf (2013-07-30) 3 commits
+  (merged to 'next' on 2013-08-28 at d0ffd55)
+ + quote: remove sq_quote_print()
+ + tar-tree: remove dependency on sq_quote_print()
+ + for-each-ref, quote: convert *_quote_print -> *_quote_buf
 
+ Originally merged to 'next' on 2013-08-01
 
-* jc/show-branch (2013-06-07) 5 commits
- - show-branch: use commit slab to represent bitflags of arbitrary width
- - show-branch.c: remove "all_mask"
- - show-branch.c: abstract out "flags" operation
- - show-branch.c: lift all_mask/all_revs to a global static
- - show-branch.c: update comment style
+ Code simplification as a preparatory step to something larger.
 
- Waiting for the final step to lift the hard-limit before sending it out.
 
---------------------------------------------------
-[Cooking]
+* rr/feed-real-path-to-editor (2013-07-29) 1 commit
+  (merged to 'next' on 2013-08-28 at 7458fa4)
+ + editor: use canonicalized absolute path
 
-* cc/replace-with-the-same-type (2013-08-27) 5 commits
- - Documentation/replace: add Creating Replacement Objects section
- - t6050-replace: add test to clean up all the replace refs
- - t6050-replace: test that objects are of the same type
- - Documentation/replace: state that objects must be of the same type
- - replace: forbid replacing an object with one of a different type
+ Originally merged to 'next' on 2013-07-30
 
- Using the replace mechanism to swap an object with another object
- of a different type can introduce inconsistency (e.g. a tree
- expects an object name to refer to a blob, but the blob object can
- be mistakenly or maliciously replaced with an object with a
- different type). Attempt to forbid such.
 
- This may need to be given an escape hatch "--force", though.
+* sb/diff-delta-remove-needless-comparison (2013-08-18) 1 commit
+  (merged to 'next' on 2013-08-28 at ba09c3f)
+ + create_delta_index: simplify condition always evaluating to true
 
+ Originally merged to 'next' on 2013-08-20
 
-* jx/clean-interactive (2013-08-28) 1 commit
- - documentation: clarify notes for clean.requireForce
 
- Finishing touches to update the document to adjust to a new option
- "git clean" learned recently.
+* sb/misc-cleanup (2013-08-09) 3 commits
+  (merged to 'next' on 2013-08-28 at bc2045b)
+ + rm: remove unneeded null pointer check
+ + diff: fix a possible null pointer dereference
+ + diff: remove ternary operator evaluating always to true
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-08-14
 
 
-* mm/status-without-comment-char (2013-08-29) 5 commits
- - status: introduce status.displayCommentChar to disable display of #
- - SQUASH: do not fprintf() random strings
- - get rid of "git submodule summary --for-status"
- - wt-status: use argv_array API
- - builtin/stripspace.c: fix broken indentation
+* sb/parseopt-boolean-removal (2013-08-07) 9 commits
+  (merged to 'next' on 2013-08-28 at 2f3f21f)
+ + revert: use the OPT_CMDMODE for parsing, reducing code
+ + checkout-index: fix negations of even numbers of -n
+ + config parsing options: allow one flag multiple times
+ + hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
+ + branch, commit, name-rev: ease up boolean conditions
+ + checkout: remove superfluous local variable
+ + log, format-patch: parsing uses OPT__QUIET
+ + Replace deprecated OPT_BOOLEAN by OPT_BOOL
+ + Remove deprecated OPTION_BOOLEAN for parsing arguments
+ (this branch uses jc/parseopt-command-modes.)
 
- Allow "git status" to omit the prefix to make its output a comment
in a commit log editor, which is not necessary for human
consumption.
+ Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary.
 
 
-* js/xread-in-full (2013-08-20) 1 commit
- - stream_to_pack: xread does not guarantee to read all requested bytes
+* sg/bash-prompt-lf-in-cwd-test (2013-08-18) 1 commit
+  (merged to 'next' on 2013-08-28 at eb449b5)
+ + bash prompt: test the prompt with newline in repository path
 
  Originally merged to 'next' on 2013-08-20
 
- A call to xread() was used without a loop around to cope with short
- read in the codepath to stream new contents to a pack.
-
- Will merge to 'next'.
-
 
-* sb/mailmap-freeing-NULL-is-ok (2013-08-20) 1 commit
- - mailmap: remove redundant check for freeing memory
+* sp/clip-read-write-to-8mb (2013-08-20) 2 commits
+  (merged to 'next' on 2013-08-28 at c9840d7)
+ + Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
+ + xread, xwrite: limit size of IO to 8MB
 
- Originally merged to 'next' on 2013-08-20
+ Originally merged to 'next' on 2013-08-22
 
- Will merge to 'next'.
+ Send a large request to read(2)/write(2) as a smaller but still
+ reasonably large chunks, which would improve the latency when the
+ operation needs to be killed and incidentally works around broken
+ 64-bit systems that cannot take a 2GB write or read in one go.
 
 
 * tg/index-struct-sizes (2013-08-20) 1 commit
@@ -436,799 +495,828 @@ of the repositories listed at
  The code that reads from a region that mmaps an on-disk index
  assumed that "int"/"short" are always 32/16 bits.
 
- Will merge to 'master' in the second batch.
 
+* tr/fd-gotcha-fixes (2013-08-06) 1 commit
+  (merged to 'next' on 2013-08-28 at 5305271)
+ + t0070: test that git_mkstemps correctly checks return value of open()
+
+ Originally merged to 'next' on 2013-08-08
+
+ Finishing touches to an earlier fix already in 'master'.
+
+
+* tr/log-full-diff-keep-true-parents (2013-08-05) 2 commits
+  (merged to 'next' on 2013-08-28 at e86ec11)
+ + log: use true parents for diff when walking reflogs
+ + log: use true parents for diff even when rewriting
+
+ Originally merged to 'next' on 2013-08-08
+
+ Output from "git log --full-diff -- <pathspec>" looked strange,
+ because comparison was done with the previous ancestor that touched
+ the specified <pathspec>, causing the patches for paths outside the
+ pathspec to show more than the single commit has changed.
+
+ Tweak "git reflog -p" for the same reason using the same mechanism.
+
+--------------------------------------------------
+[New Topics]
 
-* bc/submodule-status-ignored (2013-09-03) 2 commits
- . submodule: don't print status output with ignore=all
- . submodule: fix confusing variable name
+* js/add-i-mingw (2013-09-04) 1 commit
+ - add--interactive: fix external command invocation on Windows
 
- Originally merged to 'next' on 2013-08-22
+ The implementation of "add -i" has a crippling code to work around
+ ActiveState Perl limitation but it by mistake also triggered on Git
+ for Windows where MSYS perl is used.
 
- On hold; this conflicts and breaks tests when used with
- mm/status-without-comment-char.
+ Will merge to 'next'.
 
 
-* jk/config-int-range-check (2013-08-21) 2 commits
- - teach git-config to output large integers
- - config: properly range-check integer values
+* rh/ishes-doc (2013-09-04) 7 commits
+ - glossary: fix and clarify the definition of 'ref'
+ - revisions.txt: fix and clarify <rev>^{<type>}
+ - glossary: more precise definition of tree-ish (a.k.a. treeish)
+ - use 'commit-ish' instead of 'committish'
+ - use 'tree-ish' instead of 'treeish'
+ - glossary: define commit-ish (a.k.a. committish)
+ - glossary: mention 'treeish' as an alternative to 'tree-ish'
 
- Originally merged to 'next' on 2013-08-22
+ We liberally use "committish" and "commit-ish" (and "treeish" and
+ "tree-ish"); as these are non-words, let's unify these terms to
+ their dashed form.  More importantly, clarify the documentation on
+ object peeling using these terms.
 
- "git config --int section.var 3g" should somehow diagnose that the
- number does not fit in "int" (on 32-bit platforms anyway) but it
- did not.
+ Will merge to 'next'.
 
 
-* jk/duplicate-objects-in-packs (2013-08-24) 6 commits
- - default pack.indexDuplicates to false
- - index-pack: optionally reject packs with duplicate objects
- - test index-pack on packs with recoverable delta cycles
- - add tests for indexing packs with delta cycles
- - sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
- - test-sha1: add a binary output mode
+* jc/commit-is-spelled-with-two-ems (2013-09-05) 2 commits
+  (merged to 'next' on 2013-09-05 at 982aef2)
+ + typofix: cherry is spelled with two ars
+ + typofix: commit is spelled with two ems
 
- A packfile that stores the same object more than once is broken and
- will be rejected.
+ Will merge to 'master'.
 
- Will merge to 'next'.
 
+* bc/http-backend-allow-405 (2013-09-09) 1 commit
+ - http-backend: provide Allow header for 405
 
-* mm/mediawiki-dumb-push-fix (2013-09-03) 4 commits
- - git-remote-mediawiki: no need to update private ref in non-dumb push
- - git-remote-mediawiki: use no-private-update capability on dumb push
- - transport-helper: add no-private-update capability
- - git-remote-mediawiki: add test and check Makefile targets
+ When the webserver responds with "405 Method Not Allowed", it
+ should tell the client what methods are allowed with the "Allow"
+ header.
 
  Will merge to 'next'.
 
 
-* rt/rebase-p-no-merge-summary (2013-08-21) 1 commit
- - rebase --preserve-merges: ignore "merge.log" config
+* dw/check-ignore-sans-index (2013-09-05) 2 commits
+ - SQUASH??? do not let --no-index squat on short-and-sweet -i for now
+ - check-ignore: Add option to ignore index contents
 
- Originally merged to 'next' on 2013-08-22
+ "git check-ignore" follows the same rule as "git add" and "git
+ status" in that the ignore/exclude mechanism does not take effect
+ on paths that are already tracked.  With "--no-index" option, it
+ can be used to diagnose which paths that should have been ignored
+ have been mistakenly added to the index.
 
- "git rebase -p" internally used the merge machinery, but when
- rebasing, there should not be a need for merge summary.
+ Will squash the tip in and merge to 'next'.
 
- Will merge to 'next'.
 
+* hu/cherry-pick-previous-branch (2013-09-09) 1 commit
+ - cherry-pick: allow "-" as abbreviation of '@{-1}'
 
-* sp/clip-read-write-to-8mb (2013-08-20) 2 commits
-  (merged to 'next' on 2013-08-28 at c9840d7)
- + Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
- + xread, xwrite: limit size of IO to 8MB
+ Just like "git checkout -" knows to check out and "git merge -"
+ knows to merge the branch you were previously on, teach "git
+ cherry-pick" to understand "-" as the previous branch.
 
- Originally merged to 'next' on 2013-08-22
+ Will merge to 'next'.
 
- Send a large request to read(2)/write(2) as a smaller but still
- reasonably large chunks, which would improve the latency when the
- operation needs to be killed and incidentally works around broken
- 64-bit systems that cannot take a 2GB write or read in one go.
 
- Will merge to 'master' in the second batch.
+* jh/checkout-auto-tracking (2013-09-09) 5 commits
+ - branch.c: Relax unnecessary requirement on upstream's remote ref name
+ - t3200: Add test demonstrating minor regression in 41c21f2
+ - Refer to branch.<name>.remote/merge when documenting --track
+ - t3200: Minor fix when preparing for tracking failure
+ - t2024: Fix &&-chaining and a couple of typos
 
+ Fix a minor regression in v1.8.3.2 and later that made it
+ impossible to base your local work on anything but a local branch
+ of the upstream repository you are tracking from.
 
-* dw/diff-no-index-doc (2013-08-28) 2 commits
- - diff --no-index: describe in a separate paragraph
- - diff --no-index: clarify operation when not inside a repository
+ Will merge to 'next'.
 
- When the user types "git diff" outside a working tree, thinking he
- is inside one, the current error message that is a single-liner
- "usage: git diff --no-index <path> <path>" may not be sufficient to
- make him realize the mistake. Add "Not a git repository" to the
- error message when we fell into the "--no-index" mode without an
- explicit command line option to instruct us to do so.
 
+* jk/remove-remote-helpers-in-python (2013-09-09) 1 commit
+ - git_remote_helpers: remove little used Python library
 
-* sb/repack-in-c (2013-08-30) 2 commits
- - repack: retain the return value of pack-objects
- - repack: rewrite the shell script in C
+ Remove now disused remote-helpers framework for helpers written in
+ Python.
 
- Any further reviews?
+ Will merge to 'next'.
 
 
-* ap/commit-author-mailmap (2013-08-24) 1 commit
- - commit: search author pattern against mailmap
+* jk/upload-pack-keepalive (2013-09-09) 2 commits
+ - upload-pack: bump keepalive default to 5 seconds
+ - upload-pack: send keepalive packets during pack computation
 
- "git commit --author=$name", when $name is not in the canonical
- "A. U. Thor <au.thor@example.xz>" format, looks for a matching name
- from existing history, but did not consult mailmap to grab the
- preferred author name.
+ When running "fetch -q", a long silence while the sender side
+ computes the set of objects to send can be mistaken by proxies as
+ dropped connection.
 
  Will merge to 'next'.
 
 
-* jk/mailmap-incomplete-line (2013-08-28) 1 commit
- - mailmap: handle mailmap blobs without trailing newlines
-
- Will merge to 'next' and later to 'master' and 'maint'.
-
-
-* jk/write-broken-index-with-nul-sha1 (2013-08-28) 1 commit
- - write_index: optionally allow broken null sha1s
+* mm/rebase-continue-freebsd-WB (2013-09-09) 1 commit
+ - rebase: fix run_specific_rebase's use of "return" on FreeBSD
 
- Earlier we started rejecting an attempt to add 0{40} object name to
- the index and to tree objects, but it sometimes is necessary to
- allow so to be able to use tools like filter-branch to correct such
broken tree objects.
+ Work around a bug in FreeBSD shell that caused a regression to "git
+ rebase" in v1.8.4.  It would be lovely to hear from FreeBSD folks a
+ success report to make sure we didn't miss any other use of a bare
"return" from dot-sourced script.
 
  Will merge to 'next'.
 
 
-* kk/tests-with-no-perl (2013-08-24) 4 commits
- - reset test: modernize style
- - t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
- - add -i test: use skip_all instead of repeated PERL prerequisite
- - Make test "using invalid commit with -C" more strict
+* ss/doclinks (2013-09-06) 1 commit
+ - Documentation: make AsciiDoc links always point to HTML files
 
- Some tests were not skipped under NO_PERL build.
+ When we converted many documents that were traditionally text-only
+ to be formatted to AsciiDoc, we did not update links that point at
+ them to refer to the formatted HTML files.
 
  Will merge to 'next'.
 
 
-* mm/fast-import-feature-doc (2013-08-25) 1 commit
- - Documentation/fast-import: clarify summary for `feature` command
+* uh/git-svn-serf-fix (2013-09-06) 1 commit
+ - git-svn: fix termination issues for remote svn connections
 
- Will merge to 'next'.
+ "git-svn" used with SVN 1.8.0 when talking over https:// connection
+ dumped core due to a bug in the serf library that SVN uses.  Work
+ it around on our side, even though the SVN side is being fixed.
 
+--------------------------------------------------
+[Stalled]
 
-* mm/remote-helpers-doc (2013-08-26) 1 commit
- - Documentation/remote-helpers: document common use-case for private ref
+* rv/send-email-cache-generated-mid (2013-08-21) 2 commits
+ - git-send-email: Cache generated message-ids, use them when prompting
+ - git-send-email: add optional 'choices' parameter to the ask sub
 
- Will merge to 'next'.
 
+* rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
+ - ### DONTMERGE: needs better explanation on what config they need
+ - pack-refs.c: Add missing call to git_config()
+ - show-ref.c: Add missing call to git_config()
 
-* mn/doc-pack-heu-remove-dead-pastebin (2013-08-23) 1 commit
- - remove dead pastebin link from pack-heuristics document
+ The changes themselves are probably good, but it is unclear what
+ basic setting needs to be read for which exact operation.
 
- Will merge to 'next'.
+ Waiting for clarification.
+ $gmane/228294
 
 
-* ta/user-manual (2013-08-27) 11 commits
- - "git prune" is safe
- - Remove irrelevant reference from "Tying it all together"
- - Remove unnecessary historical note from "Object storage format"
- - Improve section "Merging multiple trees"
- - Improve section "Manipulating branches"
- - Simplify "How to make a commit"
- - Fix some typos and improve wording
- - Use "git merge" instead of "git pull ."
- - Use current output for "git repack"
- - Use current "detached HEAD" message
- - Call it "Git User Manual" and remove reference to very old Git version
+* jh/shorten-refname (2013-05-07) 4 commits
+ - t1514: refname shortening is done after dereferencing symbolic refs
+ - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
+ - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
+ - t1514: Add tests of shortening refnames in strict/loose mode
 
- Update the user's manual to more recent versions of Git.
+ When remotes/origin/HEAD is not a symbolic ref, "rev-parse
+ --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
+ "origin/HEAD", which is fixed with this series (if it is a symbolic
+ ref that points at remotes/origin/something, then it should show
+ "origin/something" and it already does).
 
+ Expecting a reroll, as an early part of a larger series.
+ $gmane/225137
 
-* tb/precompose-autodetect-fix (2013-08-27) 1 commit
- - Set core.precomposeunicode to true on e.g. HFS+
 
- Will merge to 'next'.
+* mg/more-textconv (2013-05-10) 7 commits
+ - grep: honor --textconv for the case rev:path
+ - grep: allow to use textconv filters
+ - t7008: demonstrate behavior of grep with textconv
+ - cat-file: do not die on --textconv without textconv filters
+ - show: honor --textconv for blobs
+ - diff_opt: track whether flags have been set explicitly
+ - t4030: demonstrate behavior of show with textconv
 
+ Make "git grep" and "git show" pay attention to --textconv when
+ dealing with blob objects.
 
-* tf/gitweb-ss-tweak (2013-08-20) 4 commits
- - gitweb: make search help link less ugly
- - gitweb: omit the repository owner when it is unset
- - gitweb: vertically centre contents of page footer
- - gitweb: ensure OPML text fits inside its box
+ I thought this was pretty well designed and executed, but it seems
+ there are some doubts on the list; kicked back to 'pu'.
 
- Originally merged to 'next' on 2013-08-22
 
- Tweak Gitweb CSS to layout some elements better.
+* jc/format-patch (2013-04-22) 2 commits
+ - format-patch: --inline-single
+ - format-patch: rename "no_inline" field
 
- Will merge to 'next'.
+ A new option to send a single patch to the standard output to be
+ appended at the bottom of a message.  I personally have no need for
+ this, but it was easy enough to cobble together.  Tests, docs and
+ stripping out more MIMEy stuff are left as exercises to interested
+ parties.
 
+ Not ready for inclusion.
 
-* es/rebase-i-respect-core-commentchar (2013-08-18) 1 commit
- - rebase -i: fix cases ignoring core.commentchar
+ Will discard unless we hear from anybody who is interested in
+ tying its loose ends.
 
- Originally merged to 'next' on 2013-08-20
 
- Will merge to 'next'.
+* jk/gitweb-utf8 (2013-04-08) 4 commits
+ - gitweb: Fix broken blob action parameters on blob/commitdiff pages
+ - gitweb: Don't append ';js=(0|1)' to external links
+ - gitweb: Make feed title valid utf8
+ - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
 
+ Various fixes to gitweb.
 
-* jx/branch-vv-always-compare-with-upstream (2013-08-26) 2 commits
- - status: always show tracking branch even no change
- - branch: report invalid tracking branch as gone
+ Drew Northup volunteered to take a look into this.
+ $gmane/226216
 
- "git branch -v -v" (and "git status") did not distinguish among a
- branch that does not build on any other branch, a branch that is in
- sync with the branch it builds on, and a branch that is configured
- to build on some other branch that no longer exists.
 
- Am I waiting for another reroll?
+* jc/show-branch (2013-06-07) 5 commits
+ - show-branch: use commit slab to represent bitflags of arbitrary width
+ - show-branch.c: remove "all_mask"
+ - show-branch.c: abstract out "flags" operation
+ - show-branch.c: lift all_mask/all_revs to a global static
+ - show-branch.c: update comment style
 
+ Waiting for the final step to lift the hard-limit before sending it out.
 
-* nd/fetch-into-shallow (2013-08-28) 7 commits
- - Add testcase for needless objects during a shallow fetch
- - list-objects: mark more commits as edges in mark_edges_uninteresting
- - list-objects: reduce one argument in mark_edges_uninteresting
- - upload-pack: delegate rev walking in shallow fetch to pack-objects
- - shallow: add setup_temporary_shallow()
- - shallow: only add shallow graft points to new shallow file
- - move setup_alternate_shallow and write_shallow_commits to shallow.c
+--------------------------------------------------
+[Cooking]
 
- When there is no sufficient overlap between old and new history
- during a fetch into a shallow repository, we unnecessarily sent
- objects the sending side knows the receiving end has.
+* fc/contrib-bzr-hg-fixes (2013-09-03) 10 commits
+ - contrib/remote-helpers: quote variable references in redirection targets
+ - contrib/remote-helpers: style updates for test scripts
+ - remote-hg: use notes to keep track of Hg revisions
+ - remote-helpers: cleanup more global variables
+ - remote-helpers: trivial style fixes
+ - remote-hg: improve basic test
+ - remote-hg: add missing &&s in the test
+ - remote-hg: fix test
+ - remote-bzr: make bzr branches configurable per-repo
+ - remote-bzr: fix export of utf-8 authors
 
  Will merge to 'next'.
 
 
-* sb/diff-delta-remove-needless-comparison (2013-08-18) 1 commit
-  (merged to 'next' on 2013-08-28 at ba09c3f)
- + create_delta_index: simplify condition always evaluating to true
+* jc/pager-configuration-doc (2013-08-29) 1 commit
+  (merged to 'next' on 2013-09-05 at 3169083)
+ + config: rewrite core.pager documentation
 
- Originally merged to 'next' on 2013-08-20
+ It was unclear in the documentation how various configurations and
+ environment variables determine which pager is eventually used.
 
  Will merge to 'master'.
 
 
-* sg/bash-prompt-lf-in-cwd-test (2013-08-18) 1 commit
-  (merged to 'next' on 2013-08-28 at eb449b5)
- + bash prompt: test the prompt with newline in repository path
+* np/pack-v4 (2013-09-03) 24 commits
+ - Document pack v4 format
+ - initial pack index v3 support on the read side
+ - pack v4: add progress display
+ - pack v4: normalize pack name to properly generate the pack index file name
+ - pack index v3
+ - pack v4: relax commit parsing a bit
+ - pack v4: honor pack.compression config option
+ - pack v4: load delta candidate for encoding tree objects
+ - pack v4: tree object delta encoding
+ - pack v4: object writing
+ - pack v4: object data copy
+ - pack v4: object headers
+ - pack v4: creation code
+ - pack v4: dictionary table output
+ - pack v4: tree object encoding
+ - pack v4: commit object encoding
+ - pack v4: basic references encoding
+ - pack v4: move to struct pack_idx_entry and get rid of our own struct idx_entry
+ - pack v4: split the object list and dictionary creation
+ - pack v4: add commit object parsing
+ - pack v4: add tree entry mode support to dictionary entries
+ - pack v4: scan tree objects
+ - export packed_object_info()
+ - pack v4: initial pack dictionary structure and code
 
- Originally merged to 'next' on 2013-08-20
+ Will replace with a newer version of the series.
 
- Will merge to 'master'.
 
+* jk/free-tree-buffer (2013-06-06) 1 commit
+  (merged to 'next' on 2013-09-09 at 3576189)
+ + clear parsed flag when we free tree buffers
 
-* jl/some-submodule-config-are-not-boolean (2013-08-19) 1 commit
-  (merged to 'next' on 2013-08-28 at 7fabc3e)
- + avoid segfault on submodule.*.path set to an empty "true"
+ Will merge to 'master'.
 
- Originally merged to 'next' on 2013-08-20
 
- Will merge to 'master'.
+* jk/has-sha1-file-retry-packed (2013-08-30) 1 commit
+  (merged to 'next' on 2013-09-09 at fc42e9b)
+ + has_sha1_file: re-check pack directory before giving up
 
+ When an object is not found after checking the packfiles and then
+ loose object directory, read_sha1_file() re-checks the packfiles to
+ prevent racing with a concurrent repacker; teach the same logic to
+ has_sha1_file().
 
-* jc/ls-files-killed-optim (2013-08-23) 4 commits
- - dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
- - t3010: update to demonstrate "ls-files -k" optimization pitfalls
- - ls-files -k: a directory only can be killed if the index has a non-directory
- - dir.c: use the cache_* macro to access the current index
+ Will merge to 'master'.
 
- Originally merged to 'next' on 2013-08-27
 
- "git ls-files -k" needs to crawl only the part of the working tree
- that may overlap the paths in the index to find killed files, but
- shared code with the logic to find all the untracked files, which
- made it unnecessarily inefficient.
+* ab/gitweb-author-initials (2013-08-30) 1 commit
+  (merged to 'next' on 2013-09-09 at ecb924d)
+ + gitweb: Fix the author initials in blame for non-ASCII names
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* es/blame-L-twice (2013-08-06) 16 commits
-  (merged to 'next' on 2013-08-28 at e83ae2e)
- + line-range: reject -L line numbers less than 1
- + t8001/t8002: blame: add tests of -L line numbers less than 1
- + line-range: teach -L^:RE to search from start of file
- + line-range: teach -L:RE to search from end of previous -L range
- + line-range: teach -L^/RE/ to search from start of file
- + line-range-format.txt: document -L/RE/ relative search
- + log: teach -L/RE/ to search from end of previous -L range
- + blame: teach -L/RE/ to search from end of previous -L range
- + line-range: teach -L/RE/ to search relative to anchor point
- + blame: document multiple -L support
- + t8001/t8002: blame: add tests of multiple -L options
- + blame: accept multiple -L ranges
- + blame: inline one-line function into its lone caller
- + range-set: publish API for re-use by git-blame -L
- + line-range-format.txt: clarify -L:regex usage form
- + git-log.txt: place each -L option variation on its own line
- (this branch is used by es/contacts-blame-L-multi; uses es/blame-L-more.)
+* bk/refs-multi-update (2013-09-09) 8 commits
+ - update-ref: add test cases covering --stdin signature
+ - update-ref: support multiple simultaneous updates
+ - refs: add update_refs for multiple simultaneous updates
+ - refs: add function to repack without multiple refs
+ - refs: factor delete_ref loose ref step into a helper
+ - refs: factor update_ref steps into helpers
+ - refs: report ref type from lock_any_ref_for_update
+ - reset: rename update_refs to reset_refs
 
- Originally merged to 'next' on 2013-08-08
+ Give "update-refs" a "--stdin" option to read multiple update
+ requests and perform them in an all-or-none fashion.
 
- Teaches "git blame" to take more than one -L ranges.
+ Comments?
 
- Will merge to 'master' in the second batch.
 
+* fc/at-head (2013-09-09) 3 commits
+ - SQUASH??? fixup
+ - Add new @ shortcut for HEAD
+ - sha1-name: pass len argument to interpret_branch_name()
 
-* mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
-  (merged to 'next' on 2013-08-28 at 86b300f)
- + die_with_status: use "printf '%s\n'", not "echo"
+ Attempt to resurrect "Type @ for HEAD"; the bottom one seems to be
+ a genuine code improvement, but identifying cases where "@" means
+ HEAD were harder than it should have been.  I think the result of
+ squashing the tip one in covers all the necessary cases.
 
- Originally merged to 'next' on 2013-08-08
+ Will squash the tip in and merge to 'next'.
 
- Fixes a minor bug in "git rebase -i" (there could be others, as the
- root cause is pretty generic) where the code feeds a random, data
- dependeant string to 'echo' and expects it to come out literally.
 
- Will merge to 'master'.
+* fc/fast-export (2013-09-03) 2 commits
+  (merged to 'next' on 2013-09-09 at 8d5d396)
+ + fast-export: refactor get_tags_and_duplicates()
+ + fast-export: make extra_refs global
 
+ Code simpification.
 
-* tr/fd-gotcha-fixes (2013-08-06) 1 commit
-  (merged to 'next' on 2013-08-28 at 5305271)
- + t0070: test that git_mkstemps correctly checks return value of open()
+ Will merge to 'master'.
 
- Originally merged to 'next' on 2013-08-08
 
- Finishing touches to an earlier fix already in 'master'.
+* fc/rev-parse-test-updates (2013-09-03) 4 commits
+  (merged to 'next' on 2013-09-09 at 92c51ef)
+ + rev-parse test: use standard test functions for setup
+ + rev-parse test: use test_cmp instead of "test" builtin
+ + rev-parse test: use test_must_fail, not "if <command>; then false; fi"
+ + rev-parse test: modernize quoting and whitespace
+
+ Modernize tests.
 
  Will merge to 'master'.
 
 
-* ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
-  (merged to 'next' on 2013-08-28 at 9bfc430)
- + remote-hg: fix path when cloning with tilde expansion
+* fc/t3200-fixes (2013-09-03) 3 commits
+  (merged to 'next' on 2013-09-09 at 3626363)
+ + t: branch: fix broken && chains
+ + t: branch: fix typo
+ + t: branch: trivial style fix
 
- Originally merged to 'next' on 2013-08-14
+ Will merge to 'master'.
+
+
+* fc/trivial (2013-09-08) 5 commits
+  (merged to 'next' on 2013-09-09 at a8ad2e1)
+ + pull: use $curr_branch_short more
+ + add: trivial style cleanup
+ + reset: trivial style cleanup
+ + branch: trivial style fix
+ + reset: trivial refactoring
 
  Will merge to 'master'.
 
 
-* es/rebase-i-no-abbrev (2013-08-25) 3 commits
- - rebase -i: fix short SHA-1 collision
- - t3404: rebase -i: demonstrate short SHA-1 collision
- - t3404: make tests more self-contained
+* jc/ref-excludes (2013-09-03) 2 commits
+ - document --exclude option
+ - revision: introduce --exclude=<glob> to tame wildcards
 
- Originally merged to 'next' on 2013-08-26
+ People often wished a way to tell "git log --branches" (and "git
+ log --remotes --not --branches") to exclude some local branches
+ from the expansion of "--branches" (similarly for "--tags", "--all"
+ and "--glob=<pattern>").  Now they have one.
 
  Will merge to 'next'.
 
 
-* fc/remote-hg-shared-setup (2013-08-11) 2 commits
-  (merged to 'next' on 2013-08-28 at 41ee3fe)
- + remote-hg: add shared repo upgrade
- + remote-hg: ensure shared repo is initialized
+* jk/pager-bypass-cat-for-default-pager (2013-09-03) 1 commit
+  (merged to 'next' on 2013-09-09 at c9cfbaa)
+ + pager: turn on "cat" optimization for DEFAULT_PAGER
 
- Originally merged to 'next' on 2013-08-14
+ If a build-time fallback is set to "cat" instead of "less", we
+ should apply the same "no subprocess or pipe" optimization as we
+ apply to user-supplied GIT_PAGER=cat.
 
  Will merge to 'master'.
 
 
-* jc/transport-do-not-use-connect-twice-in-fetch (2013-08-28) 6 commits
-  (merged to 'next' on 2013-08-29 at f88a6da)
- + builtin/fetch.c: Fix a sparse warning
-  (merged to 'next' on 2013-08-28 at 2ed86df)
- + fetch: work around "transport-take-over" hack
- + fetch: refactor code that fetches leftover tags
- + fetch: refactor code that prepares a transport
- + fetch: rename file-scope global "transport" to "gtransport"
- + t5802: add test for connect helper
-
- Originally merged to 'next' on 2013-08-20
+* nd/git-dir-pointing-at-gitfile (2013-09-03) 1 commit
+  (merged to 'next' on 2013-09-09 at 5b0a4bf)
+ + Make setup_git_env() resolve .git file when $GIT_DIR is not specified
 
- The auto-tag-following code in "git fetch" tries to reuse the same
- transport twice when the serving end does not cooperate and does
- not give tags that point to commits that are asked for as part of
- the primary transfer.  Unfortunately, Git-aware transport helper
- interface is not designed to be used more than once, hence this
- does not work over smart-http transfer.
+ We made sure that we notice the user-supplied GIT_DIR is actually a
+ gitfile, but failed to do so when the default ".git" is a gitfile.
 
- Will merge to 'master' in the second batch.
+ Will merge to 'master'.
 
 
-* ks/p4-view-spec (2013-09-03) 2 commits
- - git p4: implement view spec wildcards with "p4 where"
- - git p4 test: sanitize P4CHARSET
+* nr/git-cd-to-a-directory (2013-09-09) 1 commit
+ - git: run in a directory given with -C option
 
- Replaced with a reroll that was whitespace damaged.
+ Just like "make -C <directory>", make "git -C <directory> ..." to
+ go there before doing anything else.
 
- Waiting for the final Ack.
+ Will merge to 'next'.
 
 
-* nd/gc-lock-against-each-other (2013-08-09) 1 commit
-  (merged to 'next' on 2013-08-28 at 46e072b)
- + gc: reject if another gc is running, unless --force is given
+* rh/peeling-tag-to-tag (2013-09-03) 2 commits
+ - peel_onion: do not assume length of x_type globals
+ - peel_onion(): add support for <rev>^{tag}
 
- Originally merged to 'next' on 2013-08-14
+ Make "foo^{tag}" to peel a tag to itself, i.e. no-op., and fail if
+ "foo" is not a tag.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* sb/misc-cleanup (2013-08-09) 3 commits
-  (merged to 'next' on 2013-08-28 at bc2045b)
- + rm: remove unneeded null pointer check
- + diff: fix a possible null pointer dereference
- + diff: remove ternary operator evaluating always to true
+* cc/replace-with-the-same-type (2013-09-09) 8 commits
+ - Doc: 'replace' merge and non-merge commits
+ - t6050-replace: use some long option names
+ - replace: allow long option names
+ - Documentation/replace: add Creating Replacement Objects section
+ - t6050-replace: add test to clean up all the replace refs
+ - t6050-replace: test that objects are of the same type
+ - Documentation/replace: state that objects must be of the same type
+ - replace: forbid replacing an object with one of a different type
 
- Originally merged to 'next' on 2013-08-14
+ Using the replace mechanism to swap an object with another object
+ of a different type can introduce inconsistency (e.g. a tree
+ expects an object name to refer to a blob, but the blob object can
+ be mistakenly or maliciously replaced with an object with a
+ different type). Attempt to forbid such.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* aj/p4-symlink-lose-nl (2013-08-12) 1 commit
-  (merged to 'next' on 2013-08-28 at 5ce9ceb)
- + git-p4: Fix occasional truncation of symlink contents.
+* jx/clean-interactive (2013-08-28) 1 commit
+  (merged to 'next' on 2013-09-09 at 477fec6)
+ + documentation: clarify notes for clean.requireForce
 
- Originally merged to 'next' on 2013-08-14
+ Finishing touches to update the document to adjust to a new option
+ "git clean" learned recently.
 
  Will merge to 'master'.
 
 
-* es/contacts-blame-L-multi (2013-08-13) 3 commits
-  (merged to 'next' on 2013-08-28 at 24ff8b4)
- + contacts: reduce git-blame invocations
- + contacts: gather all blame sources prior to invoking git-blame
- + contacts: validate hunk length earlier
- (this branch uses es/blame-L-more and es/blame-L-twice.)
+* mm/status-without-comment-char (2013-09-06) 6 commits
+ - status: add missing blank line after list of "other" files
+ - tests: don't set status.displayCommentPrefix file-wide
+ - status: disable display of '#' comment prefix by default
+ - submodule summary: ignore --for-status option
+ - wt-status: use argv_array API
+ - builtin/stripspace.c: fix broken indentation
 
- Originally merged to 'next' on 2013-08-14
+ Allow "git status" to omit the prefix to make its output a comment
+ in a commit log editor, which is not necessary for human
+ consumption.
 
- Will merge to 'master' in the second batch.
+ We may want to tighten the output to omit unnecessary trailing
+ blank lines, but that does not have to be in the scope of this
+ series.
 
+ Will merge to 'next'.
 
-* fc/unpack-trees-leakfix (2013-08-13) 1 commit
-  (merged to 'next' on 2013-08-28 at 3ad1f21)
- + unpack-trees: plug a memory leak
 
- Originally merged to 'next' on 2013-08-14
+* js/xread-in-full (2013-08-20) 1 commit
+  (merged to 'next' on 2013-09-04 at 5bfb049)
+ + stream_to_pack: xread does not guarantee to read all requested bytes
 
- Will merge to 'master'.
+ Originally merged to 'next' on 2013-08-20
+
+ A call to xread() was used without a loop around to cope with short
+ read in the codepath to stream new contents to a pack.
 
+ Will merge to 'master' in the third batch.
 
-* nd/push-no-thin (2013-08-13) 1 commit
- - push: respect --no-thin
 
- Originally merged to 'next' on 2013-08-14
+* sb/mailmap-freeing-NULL-is-ok (2013-08-20) 1 commit
+  (merged to 'next' on 2013-09-04 at c831015)
+ + mailmap: remove redundant check for freeing memory
 
- Will merge to 'next'.
+ Originally merged to 'next' on 2013-08-20
 
+ Will merge to 'master' in the third batch.
 
-* sh/pull-rebase-preserve (2013-08-13) 1 commit
- - pull: Allow pull to preserve merges when rebasing.
 
- Originally merged to 'next' on 2013-08-14
+* bc/submodule-status-ignored (2013-09-04) 2 commits
+ - submodule: don't print status output with ignore=all
+ - submodule: fix confusing variable name
+
+ Originally merged to 'next' on 2013-08-22
 
  Will merge to 'next'.
 
 
-* es/blame-L-more (2013-08-05) 11 commits
-  (merged to 'next' on 2013-08-28 at b73cdc9)
- + blame: reject empty ranges -L,+0 and -L,-0
- + t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
- + blame: reject empty ranges -LX,+0 and -LX,-0
- + t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
- + log: fix -L bounds checking bug
- + t4211: retire soon-to-be unimplementable tests
- + t4211: log: demonstrate -L bounds checking bug
- + blame: fix -L bounds checking bug
- + t8001/t8002: blame: add empty file & partial-line tests
- + t8001/t8002: blame: demonstrate -L bounds checking bug
- + t8001/t8002: blame: decompose overly-large test
- (this branch is used by es/blame-L-twice and es/contacts-blame-L-multi.)
+* jk/config-int-range-check (2013-09-09) 5 commits
+  (merged to 'next' on 2013-09-09 at 9ab779d)
+ + git-config: always treat --int as 64-bit internally
+ + config: make numeric parsing errors more clear
+ + config: set errno in numeric git_parse_* functions
+ + config: properly range-check integer values
+ + config: factor out integer parsing from range checks
 
- Originally merged to 'next' on 2013-08-06
+ Originally merged to 'next' on 2013-08-22
 
- More fixes to the code to parse the "-L" option in "log" and "blame".
+ "git config --int section.var 3g" should somehow diagnose that the
+ number does not fit in "int" (on 32-bit platforms anyway) but it
+ did not.
 
- Will merge to 'master' in the second batch.
+ Will merge to 'master'.
 
 
-* jk/cat-file-batch-optim (2013-08-05) 1 commit
-  (merged to 'next' on 2013-08-28 at 624e60d)
- + cat-file: only split on whitespace when %(rest) is used
+* jk/duplicate-objects-in-packs (2013-09-04) 5 commits
+  (merged to 'next' on 2013-09-09 at 72f2c3d)
+ + t5308: check that index-pack --strict detects duplicate objects
+ + test index-pack on packs with recoverable delta cycles
+ + add tests for indexing packs with delta cycles
+ + sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
+ + test-sha1: add a binary output mode
 
- Originally merged to 'next' on 2013-08-06
+ A packfile that stores the same object more than once is broken and
+ will be rejected.
 
Rework the reverted change to `cat-file --batch-check`.
Will merge to 'master'.
 
- Will merge to 'master' in the second batch.
 
+* mm/mediawiki-dumb-push-fix (2013-09-03) 4 commits
+  (merged to 'next' on 2013-09-05 at f8313f4)
+ + git-remote-mediawiki: no need to update private ref in non-dumb push
+ + git-remote-mediawiki: use no-private-update capability on dumb push
+ + transport-helper: add no-private-update capability
+ + git-remote-mediawiki: add test and check Makefile targets
 
-* jn/post-receive-utf8 (2013-08-05) 3 commits
- - hooks/post-receive-email: set declared encoding to utf-8
- - hooks/post-receive-email: force log messages in UTF-8
- - hooks/post-receive-email: use plumbing instead of git log/show
+ Will merge to 'master'.
 
- Originally merged to 'next' on 2013-08-20
 
- Update post-receive-email script to make sure the message contents
- and pathnames are encoded consistently in UTF-8.
+* rt/rebase-p-no-merge-summary (2013-08-21) 1 commit
+  (merged to 'next' on 2013-09-04 at d8d89ee)
+ + rebase --preserve-merges: ignore "merge.log" config
 
- I have a feeling that it is a lost cause to solve the issue the
- topic tries to address in general, because the patch text can have
- payload in any encodings that are different from either the
- pathnames or the log message.  Patches that touch paths that use an
- encoding that conflicts with the encoding of the payload and/or the
- log message could be transferred with core.quotepath set and patch
- generated as all binary, but that would be pretty much useless.
+ Originally merged to 'next' on 2013-08-22
 
- Will merge to 'next'.
+ "git rebase -p" internally used the merge machinery, but when
+ rebasing, there should not be a need for merge summary.
 
+ Will merge to 'master' in the third batch.
 
-* sb/parseopt-boolean-removal (2013-08-07) 9 commits
-  (merged to 'next' on 2013-08-28 at 2f3f21f)
- + revert: use the OPT_CMDMODE for parsing, reducing code
- + checkout-index: fix negations of even numbers of -n
- + config parsing options: allow one flag multiple times
- + hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
- + branch, commit, name-rev: ease up boolean conditions
- + checkout: remove superfluous local variable
- + log, format-patch: parsing uses OPT__QUIET
- + Replace deprecated OPT_BOOLEAN by OPT_BOOL
- + Remove deprecated OPTION_BOOLEAN for parsing arguments
- (this branch uses jc/parseopt-command-modes.)
 
- Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
- OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
- remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary.
+* dw/diff-no-index-doc (2013-08-28) 2 commits
+ - diff --no-index: describe in a separate paragraph
+ - diff --no-index: clarify operation when not inside a repository
 
- Will merge to 'master'.
+ When the user types "git diff" outside a working tree, thinking he
+ is inside one, the current error message that is a single-liner
+ "usage: git diff --no-index <path> <path>" may not be sufficient to
+ make him realize the mistake. Add "Not a git repository" to the
+ error message when we fell into the "--no-index" mode without an
+ explicit command line option to instruct us to do so.
 
+ Will merge to 'next'.
 
-* jc/parseopt-command-modes (2013-07-30) 2 commits
-  (merged to 'next' on 2013-08-28 at 738b399)
- + tag: use OPT_CMDMODE
- + parse-options: add OPT_CMDMODE()
- (this branch is used by sb/parseopt-boolean-removal.)
 
- Many commands use --dashed-option as a operation mode selector
- (e.g. "git tag --delete") that the user can use at most one
- (e.g. "git tag --delete --verify" is a nonsense) and you cannot
- negate (e.g. "git tag --no-delete" is a nonsense).  Make it easier
- for users of parse_options() to enforce these restrictions.
+* sb/repack-in-c (2013-08-30) 2 commits
+ - repack: retain the return value of pack-objects
+ - repack: rewrite the shell script in C
 
- Will merge to 'master'.
+ Any further reviews?
 
 
-* tr/log-full-diff-keep-true-parents (2013-08-05) 2 commits
-  (merged to 'next' on 2013-08-28 at e86ec11)
- + log: use true parents for diff when walking reflogs
- + log: use true parents for diff even when rewriting
+* ap/commit-author-mailmap (2013-08-24) 1 commit
+  (merged to 'next' on 2013-09-09 at 79d5a20)
+ + commit: search author pattern against mailmap
 
- Originally merged to 'next' on 2013-08-08
+ "git commit --author=$name", when $name is not in the canonical
+ "A. U. Thor <au.thor@example.xz>" format, looks for a matching name
+ from existing history, but did not consult mailmap to grab the
+ preferred author name.
 
- Output from "git log --full-diff -- <pathspec>" looked strange,
- because comparison was done with the previous ancestor that touched
- the specified <pathspec>, causing the patches for paths outside the
- pathspec to show more than the single commit has changed.
+ Will merge to 'master'.
 
- Tweak "git reflog -p" for the same reason using the same mechanism.
 
- Will merge to 'master' in the second batch.
+* jk/write-broken-index-with-nul-sha1 (2013-08-28) 1 commit
+  (merged to 'next' on 2013-09-09 at 6953f27)
+ + write_index: optionally allow broken null sha1s
 
+ Earlier we started rejecting an attempt to add 0{40} object name to
+ the index and to tree objects, but it sometimes is necessary to
+ allow so to be able to use tools like filter-branch to correct such
+ broken tree objects.
 
-* bc/unuse-packfile (2013-08-02) 2 commits
-  (merged to 'next' on 2013-08-28 at 9029801)
- + Don't close pack fd when free'ing pack windows
- + sha1_file: introduce close_one_pack() to close packs on fd pressure
+ Will merge to 'master'.
 
- Originally merged to 'next' on 2013-08-06
 
- Handle memory pressure and file descriptor pressure separately when
- deciding to release pack windows to honor resource limits.
+* kk/tests-with-no-perl (2013-08-24) 4 commits
+  (merged to 'next' on 2013-09-09 at 67510b1)
+ + reset test: modernize style
+ + t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
+ + add -i test: use skip_all instead of repeated PERL prerequisite
+ + Make test "using invalid commit with -C" more strict
 
Will merge to 'master'.
Some tests were not skipped under NO_PERL build.
 
+ Will merge to 'master'.
 
-* da/darwin (2013-08-05) 3 commits
-  (merged to 'next' on 2013-08-28 at 6e4c5ae)
- + OS X: Fix redeclaration of die warning
- + Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
- + imap-send: use Apple's Security framework for base64 encoding
 
- Originally merged to 'next' on 2013-08-05
+* mm/fast-import-feature-doc (2013-08-25) 1 commit
+  (merged to 'next' on 2013-09-05 at 83802e2)
+ + Documentation/fast-import: clarify summary for `feature` command
 
  Will merge to 'master'.
 
 
-* nd/sq-quote-buf (2013-07-30) 3 commits
-  (merged to 'next' on 2013-08-28 at d0ffd55)
- + quote: remove sq_quote_print()
- + tar-tree: remove dependency on sq_quote_print()
- + for-each-ref, quote: convert *_quote_print -> *_quote_buf
+* mm/remote-helpers-doc (2013-08-26) 1 commit
+  (merged to 'next' on 2013-09-05 at c181b35)
+ + Documentation/remote-helpers: document common use-case for private ref
 
- Originally merged to 'next' on 2013-08-01
+ Will merge to 'master'.
 
- Code simplification as a preparatory step to something larger.
 
- Will merge to 'master'.
+* mn/doc-pack-heu-remove-dead-pastebin (2013-08-23) 1 commit
+  (merged to 'next' on 2013-09-05 at 5caecec)
+ + remove dead pastebin link from pack-heuristics document
 
+ Will merge to 'master'.
 
-* jc/url-match (2013-08-09) 7 commits
-  (merged to 'next' on 2013-08-28 at 2a9fd23)
- + builtin/config.c: compilation fix
- + config: "git config --get-urlmatch" parses section.<url>.key
- + builtin/config: refactor collect_config()
- + config: parse http.<url>.<variable> using urlmatch
- + config: add generic callback wrapper to parse section.<url>.key
- + config: add helper to normalize and match URLs
- + http.c: fix parsing of http.sslCertPasswordProtected variable
 
- Originally merged to 'next' on 2013-08-12
+* ta/user-manual (2013-08-27) 11 commits
+ - "git prune" is safe
+ - Remove irrelevant reference from "Tying it all together"
+ - Remove unnecessary historical note from "Object storage format"
+ - Improve section "Merging multiple trees"
+ - Improve section "Manipulating branches"
+ - Simplify "How to make a commit"
+ - Fix some typos and improve wording
+ - Use "git merge" instead of "git pull ."
+ - Use current output for "git repack"
+ - Use current "detached HEAD" message
+ - Call it "Git User Manual" and remove reference to very old Git version
 
- Allow section.<urlpattern>.var configuration variables to be
- treated as a "virtual" section.var given a URL, and use the
- mechanism to enhance http.* configuration variables.
+ Update the user's manual to more recent versions of Git.
 
This is a reroll of Kyle J. McKay's work.
Will merge to 'next'.
 
- Will merge to 'master' in the second batch.
 
+* tb/precompose-autodetect-fix (2013-08-27) 1 commit
+  (merged to 'next' on 2013-09-09 at 9bfdac1)
+ + Set core.precomposeunicode to true on e.g. HFS+
 
-* jl/submodule-mv (2013-08-06) 5 commits
-  (merged to 'next' on 2013-08-28 at 4ec6b41)
- + rm: delete .gitmodules entry of submodules removed from the work tree
- + mv: update the path entry in .gitmodules for moved submodules
- + submodule.c: add .gitmodules staging helper functions
- + mv: move submodules using a gitfile
- + mv: move submodules together with their work trees
- (this branch uses nd/magic-pathspec.)
+ On MacOS X, we detected if the filesystem needs the "pre-composed
+ unicode strings" workaround, but did not automatically enable it.
+ Now we do.
 
- Originally merged to 'next' on 2013-08-08
+ Will merge to 'master'.
 
- "git mv A B" when moving a submodule A does "the right thing",
- inclusing relocating its working tree and adjusting the paths in
- the .gitmodules file.
 
- Will merge to 'master' in the second batch.
+* tf/gitweb-ss-tweak (2013-08-20) 4 commits
+  (merged to 'next' on 2013-09-04 at 774bfbe)
+ + gitweb: make search help link less ugly
+ + gitweb: omit the repository owner when it is unset
+ + gitweb: vertically centre contents of page footer
+ + gitweb: ensure OPML text fits inside its box
 
+ Originally merged to 'next' on 2013-08-22
 
-* nd/clone-connectivity-shortcut (2013-07-23) 1 commit
-  (merged to 'next' on 2013-08-28 at d227f9f)
- + smart http: use the same connectivity check on cloning
+ Tweak Gitweb CSS to layout some elements better.
 
- Originally merged to 'next' on 2013-07-30
+ Will merge to 'master' in the third batch.
 
- Will merge to 'master' in the second batch.
 
+* es/rebase-i-respect-core-commentchar (2013-08-18) 1 commit
+  (merged to 'next' on 2013-09-04 at 8c1ce68)
+ + rebase -i: fix cases ignoring core.commentchar
 
-* db/http-savecookies (2013-08-05) 2 commits
-  (merged to 'next' on 2013-08-28 at 22a8464)
- + t5551: Remove header from curl cookie file
- + http: add http.savecookies option to write out HTTP cookies
+ Originally merged to 'next' on 2013-08-20
 
- Originally merged to 'next' on 2013-08-05
+ "rebase -i" forgot that the comment character can be configurable
+ while reading its insn sheet.
 
- Will merge to 'master' in the second batch.
+ Will merge to 'master' in the third batch.
 
 
-* rr/feed-real-path-to-editor (2013-07-29) 1 commit
-  (merged to 'next' on 2013-08-28 at 7458fa4)
- + editor: use canonicalized absolute path
+* jx/branch-vv-always-compare-with-upstream (2013-08-26) 2 commits
+ - status: always show tracking branch even no change
+ - branch: report invalid tracking branch as gone
 
- Originally merged to 'next' on 2013-07-30
+ "git branch -v -v" (and "git status") did not distinguish among a
+ branch that does not build on any other branch, a branch that is in
+ sync with the branch it builds on, and a branch that is configured
+ to build on some other branch that no longer exists.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* jk/fast-import-empty-ls (2013-06-23) 4 commits
-  (merged to 'next' on 2013-08-28 at 876a39d)
- + fast-import: allow moving the root tree
- + fast-import: allow ls or filecopy of the root tree
- + fast-import: set valid mode on root tree in "ls"
- + t9300: document fast-import empty path issues
+* nd/fetch-into-shallow (2013-08-28) 7 commits
+  (merged to 'next' on 2013-09-09 at 87a3b99)
+ + Add testcase for needless objects during a shallow fetch
+ + list-objects: mark more commits as edges in mark_edges_uninteresting
+ + list-objects: reduce one argument in mark_edges_uninteresting
+ + upload-pack: delegate rev walking in shallow fetch to pack-objects
+ + shallow: add setup_temporary_shallow()
+ + shallow: only add shallow graft points to new shallow file
+ + move setup_alternate_shallow and write_shallow_commits to shallow.c
 
- Originally merged to 'next' on 2013-07-22
+ When there is no sufficient overlap between old and new history
+ during a fetch into a shallow repository, we unnecessarily sent
+ objects the sending side knows the receiving end has.
 
  Will merge to 'master'.
 
 
-* jc/diff-filter-negation (2013-07-19) 6 commits
-  (merged to 'next' on 2013-08-28 at 5cc7720)
- + diff: deprecate -q option to diff-files
- + diff: allow lowercase letter to specify what change class to exclude
- + diff: reject unknown change class given to --diff-filter
- + diff: preparse --diff-filter string argument
- + diff: factor out match_filter()
- + diff: pass the whole diff_options to diffcore_apply_filter()
- (this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
+* jc/ls-files-killed-optim (2013-08-23) 4 commits
+  (merged to 'next' on 2013-09-04 at 20c2304)
+ + dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
+ + t3010: update to demonstrate "ls-files -k" optimization pitfalls
+ + ls-files -k: a directory only can be killed if the index has a non-directory
+ + dir.c: use the cache_* macro to access the current index
 
- Originally merged to 'next' on 2013-07-22
+ Originally merged to 'next' on 2013-08-27
 
- Teach "git diff --diff-filter" to express "I do not want to see
- these classes of changes" more directly by listing only the
- unwanted ones in lowercase (e.g. "--diff-filter=d" will show
- everything but deletion) and deprecate "diff-files -q" which did
- the same thing as "--diff-filter=d".
+ "git ls-files -k" needs to crawl only the part of the working tree
+ that may overlap the paths in the index to find killed files, but
+ shared code with the logic to find all the untracked files, which
+ made it unnecessarily inefficient.
 
- Will merge to 'master' in the second batch.
+ Will merge to 'master' in the third batch.
 
 
-* nd/magic-pathspec (2013-07-23) 48 commits
-  (merged to 'next' on 2013-08-28 at 305c6e9)
- + rm: do not set a variable twice without intermediate reading.
- + t6131 - skip tests if on case-insensitive file system
- + parse_pathspec: accept :(icase)path syntax
- + pathspec: support :(glob) syntax
- + pathspec: make --literal-pathspecs disable pathspec magic
- + pathspec: support :(literal) syntax for noglob pathspec
- + kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
- + parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
- + parse_pathspec: make sure the prefix part is wildcard-free
- + rename field "raw" to "_raw" in struct pathspec
- + tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
- + remove match_pathspec() in favor of match_pathspec_depth()
- + remove init_pathspec() in favor of parse_pathspec()
- + remove diff_tree_{setup,release}_paths
- + convert common_prefix() to use struct pathspec
- + convert add_files_to_cache to take struct pathspec
- + convert {read,fill}_directory to take struct pathspec
- + convert refresh_index to take struct pathspec
- + convert report_path_error to take struct pathspec
- + checkout: convert read_tree_some to take struct pathspec
- + convert unmerge_cache to take struct pathspec
- + convert run_add_interactive to use struct pathspec
- + convert read_cache_preload() to take struct pathspec
- + line-log: convert to use parse_pathspec
- + reset: convert to use parse_pathspec
- + add: convert to use parse_pathspec
- + check-ignore: convert to use parse_pathspec
- + archive: convert to use parse_pathspec
- + ls-files: convert to use parse_pathspec
- + rm: convert to use parse_pathspec
- + checkout: convert to use parse_pathspec
- + rerere: convert to use parse_pathspec
- + status: convert to use parse_pathspec
- + commit: convert to use parse_pathspec
- + clean: convert to use parse_pathspec
- + guard against new pathspec magic in pathspec matching code
- + parse_pathspec: support prefixing original patterns
- + parse_pathspec: support stripping/checking submodule paths
- + parse_pathspec: support stripping submodule trailing slashes
- + parse_pathspec: add special flag for max_depth feature
- + convert some get_pathspec() calls to parse_pathspec()
- + parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
- + parse_pathspec: save original pathspec for reporting
- + add parse_pathspec() that converts cmdline args to struct pathspec
- + pathspec: add copy_pathspec
- + pathspec: i18n-ize error strings in pathspec parsing code
- + move struct pathspec and related functions to pathspec.[ch]
- + clean: remove unused variable "seen"
- (this branch is used by jl/submodule-mv.)
+* es/rebase-i-no-abbrev (2013-08-25) 3 commits
+  (merged to 'next' on 2013-09-04 at 6027805)
+ + rebase -i: fix short SHA-1 collision
+ + t3404: rebase -i: demonstrate short SHA-1 collision
+ + t3404: make tests more self-contained
 
- Originally merged to 'next' on 2013-07-23
+ Originally merged to 'next' on 2013-08-26
 
- Use "struct pathspec" interface in more places, instead of array of
- characters, the latter of which cannot express magic pathspecs
- (e.g. ":(icase)makefile" that matches both Makefile and makefile).
+ The commit object names in the insn sheet that was prepared at the
+ beginning of "rebase -i" session can become ambiguous as the
+ rebasing progresses and the repository gains more commits. Make
+ sure the internal record is kept with full 40-hex object names.
 
- Will merge to 'master' in the second batch.
+ Will merge to 'master' in the third batch.
 
 
-* jc/check-x-z (2013-07-11) 4 commits
-  (merged to 'next' on 2013-08-28 at a7670ce)
- + check-attr -z: a single -z should apply to both input and output
- + check-ignore -z: a single -z should apply to both input and output
- + check-attr: the name of the character is NUL, not NULL
- + check-ignore: the name of the character is NUL, not NULL
+* ks/p4-view-spec (2013-09-03) 2 commits
+ - git p4: implement view spec wildcards with "p4 where"
+ - git p4 test: sanitize P4CHARSET
 
- Originally merged to 'next' on 2013-07-15
+ Replaced with a reroll that was whitespace damaged.
 
- "git check-ignore -z" applied the NUL termination to both its input
- (with --stdin) and its output, but "git check-attr -z" ignored the
- option on the output side.
+ Waiting for the final Ack.
 
- This is potentially a backward incompatible fix.  Let's see if
- anybody screams before deciding if we want to do anything to help
- existing users (there may be none).
 
- Will merge to 'master'.
+* nd/push-no-thin (2013-08-13) 1 commit
+  (merged to 'next' on 2013-09-04 at faa8c02)
+ + push: respect --no-thin
 
+ Originally merged to 'next' on 2013-08-14
 
-* ms/fetch-prune-configuration (2013-07-18) 1 commit
-  (merged to 'next' on 2013-08-28 at fa6ffc7)
- + fetch: make --prune configurable
+ "git push --no-thin" was a no-op by mistake.
 
- Originally merged to 'next' on 2013-07-21
+ Will merge to 'master' in the third batch.
 
- Allow fetch.prune and remote.*.prune configuration variables to be set,
- and "git fetch" to behave as if "--prune" is given.
 
- "git fetch" that honors remote.*.prune is fine, but I wonder if we
- should somehow make "git push" aware of it as well.  Perhaps
- remote.*.prune should not be just a boolean, but a 4-way "none",
- "push", "fetch", "both"?
+* sh/pull-rebase-preserve (2013-09-04) 1 commit
+  (merged to 'next' on 2013-09-04 at 32a93bb)
+ + pull: allow pull to preserve merges when rebasing
 
- Will merge to 'master' in the second batch.
+ Originally merged to 'next' on 2013-08-14
 
+ "git pull --rebase" always flattened the history; pull.rebase can
+ now be set to "preserve" to invoke "rebase --preserve-merges".
 
-* km/svn-1.8-serf-only (2013-07-18) 3 commits
-  (merged to 'next' on 2013-08-28 at 1119134)
- + Git.pm: revert _temp_cache use of temp_is_locked
- + git-svn: allow git-svn fetching to work using serf
- + Git.pm: add new temp_is_locked function
+ Will merge to 'master' in the third batch.
 
- Originally merged to 'next' on 2013-07-19
 
- Subversion 1.8.0 that was recently released breaks older subversion
- clients coming over http/https in various ways.
+* jn/post-receive-utf8 (2013-08-05) 3 commits
+  (merged to 'next' on 2013-09-04 at 3a3f480)
+ + hooks/post-receive-email: set declared encoding to utf-8
+ + hooks/post-receive-email: force log messages in UTF-8
+ + hooks/post-receive-email: use plumbing instead of git log/show
 
- Will merge to 'master'.
+ Originally merged to 'next' on 2013-08-20
+
+ Update post-receive-email script to make sure the message contents
+ and pathnames are encoded consistently in UTF-8.
+
+ Will merge to 'master' in the third batch.
 
 
 * tr/merge-recursive-index-only (2013-07-07) 3 commits
@@ -1239,37 +1327,6 @@ of the repositories listed at
  Will hold, until we get any user.
 
 
-* jc/push-cas (2013-08-02) 9 commits
-  (merged to 'next' on 2013-08-28 at 784281f)
- + push: teach --force-with-lease to smart-http transport
- + send-pack: fix parsing of --force-with-lease option
- + t5540/5541: smart-http does not support "--force-with-lease"
- + t5533: test "push --force-with-lease"
- + push --force-with-lease: tie it all together
- + push --force-with-lease: implement logic to populate old_sha1_expect[]
- + remote.c: add command line option parser for "--force-with-lease"
- + builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
- + cache.h: move remote/connect API out of it
-
- Originally merged to 'next' on 2013-08-05
-
- Allow a safer "rewind of the remote tip" push than blind "--force",
- by requiring that the overwritten remote ref to be unchanged since
- the new history to replace it was prepared.
-
- The machinery is more or less ready.  The "--force" option is again
- the big red button to override any safety, thanks to J6t's sanity
- (the original round allowed --lockref to defeat --force).
-
- The logic to choose the default implemented here is fragile
- (e.g. "git fetch" after seeing a failure will update the
- remote-tracking branch and will make the next "push" pass,
- defeating the safety pretty easily).  It is suitable only for the
- simplest workflows, and it may hurt users more than it helps them.
-
- Will merge to 'master' in the second batch.
-
-
 * jc/pull-training-wheel (2013-07-19) 1 commit
   (merged to 'next' on 2013-08-28 at c39bd15)
  + pull: require choice between rebase/merge on non-fast-forward pull
@@ -1280,14 +1337,10 @@ of the repositories listed at
  integrate from where) refuse with "it does not fast forward; choose
  between 'pull --merge' and 'pull --rebase'".
 
- See
-
- http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
- http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
-
- for full discussion.
+ Will revert the merge, wait for the discussion to settle and
+ produce a replacement to queue again. 
 
- Will merge to 'master' in the second batch.
+ http://thread.gmane.org/gmane.comp.version-control.git/233554/focus=234375
 
 
 * jc/reflog-doc (2013-06-19) 1 commit
@@ -1328,6 +1381,5 @@ of the repositories listed at
 
 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
  - diff: remove "diff-files -q" in a version of Git in a distant future
- (this branch uses jc/diff-filter-negation.)
 
  Will cook in 'next' until a distant future.