]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2015/08 #02)
authorJunio C Hamano <gitster@pobox.com>
Wed, 12 Aug 2015 21:57:33 +0000 (14:57 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 12 Aug 2015 21:57:33 +0000 (14:57 -0700)
whats-cooking.txt

index 42394f2f71159bf962081b17099759e6e476abb3..0211e565a954fef4558b406bec8e1bb5a9ce11d1 100644 (file)
@@ -1,30 +1,19 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Aug 2015, #01; Mon, 3)
-X-master-at: efc8a625e9b03e6f8ceed37ccd4b9167a7447e31
-X-next-at: f5e568e307909722237f3acc29e39e7d8dd1e7b9
+Subject: What's cooking in git.git (Aug 2015, #02; Wed, 12)
+X-master-at: 130be8eeb8b9b7c89751c3cab3bc54dc6f2d43e6
+X-next-at: dc45ae627aaa61b73b573b0f51469393f122b5f6
 
-What's cooking in git.git (Aug 2015, #01; Mon, 3)
+What's cooking in git.git (Aug 2015, #02; Wed, 12)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
 '-' are only in 'pu' (proposed updates) while commits prefixed with
 '+' are in 'next'.
 
-Accumulated fixes went to a new maintenance release 2.4.8.  The
-first batch of the post-2.5 development cycle has been merged to
-'master', and the tip of 'next' has been rewound.
-
-I've kicked a few topics out of 'next' back to 'pu' for now.
-
- - I think pt/am-builtin is more or less ready, but the fix to the
-   issue that options given to 'git am' when restarting were
-   rejected must be queued on that topic before we can start
-   thinking of merging it to 'master' for the next release.
-
- - I think es/worktree-add and es/worktree-add-cleanup are good
-   shape overall, but we probably would want to make them into a
-   single topic.
+The second batch of topics have graduated to 'master'.  Most
+notably, the rewritten "git am" is in.  Also "worktree add" is
+getting improved.
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -34,456 +23,495 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* as/sparse-checkout-removal (2015-07-21) 1 commit
-  (merged to 'next' on 2015-07-21 at ab94680)
- + unpack-trees: don't update files with CE_WT_REMOVE set
+* ad/bisect-cleanup (2015-08-03) 6 commits
+  (merged to 'next' on 2015-08-03 at 13b9314)
+ + bisect: don't mix option parsing and non-trivial code
+ + bisect: simplify the addition of new bisect terms
+ + bisect: replace hardcoded "bad|good" by variables
+ + Documentation/bisect: revise overall content
+ + Documentation/bisect: move getting help section to the end
+ + bisect: correction of typo
+ (this branch is used by ad/bisect-terms.)
+
+ Originally merged to 'next' on 2015-07-09
+
+ Code and documentation clean-up to "git bisect".
+
+
+* dt/reflog-tests (2015-07-28) 2 commits
+  (merged to 'next' on 2015-08-03 at 9d2fa1a)
+ + tests: remove some direct access to .git/logs
+ + t/t7509: remove unnecessary manipulation of reflog
+
+ Tests that assume how reflogs are represented on the filesystem too
+ much have been corrected.
+
+
+* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
+  (merged to 'next' on 2015-08-03 at 5b0d620)
+ + unpack-trees: populate cache-tree on successful merge
+
+ The code to perform multi-tree merges has been taught to repopulate
+ the cache-tree upon a successful merge into the index, so that
+ subsequent "diff-index --cached" (hence "status") and "write-tree"
+ (hence "commit") will go faster.
+
+ The same logic in "git checkout" may now be removed, but that is a
+ separate issue.
+
+
+* es/worktree-add (2015-07-20) 5 commits
+  (merged to 'next' on 2015-08-03 at 9771a44)
+ + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
+ + Documentation/git-worktree: wordsmith worktree-related manpages
+ + Documentation/config: fix stale "git prune --worktree" reference
+ + Documentation/git-worktree: fix incorrect reference to file "locked"
+ + Documentation/git-worktree: consistently use term "linked working tree"
+ (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
+
+ Originally merged to 'next' on 2015-07-20
+
+ Remove remaining cruft from  "git checkout --to", which
+ transitioned to "git worktree add".
+
+
+* es/worktree-add-cleanup (2015-08-05) 25 commits
+  (merged to 'next' on 2015-08-12 at 9168b42)
+ + Documentation/git-worktree: fix duplicated 'from'
+ + Documentation/config: mention "now" and "never" for 'expire' settings
+ + Documentation/git-worktree: fix broken 'linkgit' invocation
+ + checkout: drop intimate knowledge of newly created worktree
+ + worktree: populate via "git reset --hard" rather than "git checkout"
+ + worktree: avoid resolving HEAD unnecessarily
+ + worktree: make setup of new HEAD distinct from worktree population
+ + worktree: detect branch-name/detached and error conditions locally
+ + worktree: add_worktree: construct worktree-population command locally
+ + worktree: elucidate environment variables intended for child processes
+ + worktree: make branch creation distinct from worktree population
+ + worktree: add: suppress auto-vivication with --detach and no <branch>
+ + worktree: make --detach mutually exclusive with -b/-B
+ + worktree: introduce options container
+ + worktree: simplify new branch (-b/-B) option checking
+ + worktree: improve worktree setup message
+ + branch: publish die_if_checked_out()
+ + checkout: teach check_linked_checkout() about symbolic link HEAD
+ + checkout: check_linked_checkout: simplify symref parsing
+ + checkout: check_linked_checkout: improve "already checked out" aesthetic
+ + checkout: generalize die_if_checked_out() branch name argument
+ + checkout: die_if_checked_out: simplify strbuf management
+ + checkout: improve die_if_checked_out() robustness
+ + checkout: name check_linked_checkouts() more meaningfully
+ + checkout: avoid resolving HEAD unnecessarily
+ (this branch is used by dt/notes-multiple; uses es/worktree-add.)
+
+ Originally merged to 'next' on 2015-07-29
+
+ The "new-worktree-mode" hack in "checkout" that was added in
+ nd/multiple-work-trees topic has been removed by updating the
+ implementation of new "worktree add".
+
+
+* pt/am-builtin (2015-08-04) 46 commits
+  (merged to 'next' on 2015-08-12 at 10d0c56)
+ + git-am: add am.threeWay config variable
+ + builtin-am: remove redirection to git-am.sh
+ + builtin-am: check for valid committer ident
+ + builtin-am: implement legacy -b/--binary option
+ + builtin-am: implement -i/--interactive
+ + builtin-am: support and auto-detect mercurial patches
+ + builtin-am: support and auto-detect StGit series files
+ + builtin-am: support and auto-detect StGit patches
+ + builtin-am: rerere support
+ + builtin-am: invoke post-applypatch hook
+ + builtin-am: invoke pre-applypatch hook
+ + builtin-am: invoke applypatch-msg hook
+ + builtin-am: support automatic notes copying
+ + builtin-am: invoke post-rewrite hook
+ + builtin-am: implement -S/--gpg-sign, commit.gpgsign
+ + builtin-am: implement --committer-date-is-author-date
+ + builtin-am: implement --ignore-date
+ + builtin-am: pass git-apply's options to git-apply
+ + builtin-am: implement --[no-]scissors
+ + builtin-am: support --keep-cr, am.keepcr
+ + builtin-am: implement --[no-]message-id, am.messageid
+ + builtin-am: implement -k/--keep, --keep-non-patch
+ + builtin-am: implement -u/--utf8
+ + builtin-am: handle stray state directory
+ + builtin-am: bypass git-mailinfo when --rebasing
+ + builtin-am: implement --rebasing mode
+ + builtin-am: implement --3way
+ + cache-tree: introduce write_index_as_tree()
+ + builtin-am: implement -s/--signoff
+ + builtin-am: exit with user friendly message on failure
+ + builtin-am: implement -q/--quiet
+ + builtin-am: reject patches when there's a session in progress
+ + builtin-am: implement --abort
+ + builtin-am: implement --skip
+ + builtin-am: don't parse mail when resuming
+ + builtin-am: implement --resolved/--continue
+ + builtin-am: refuse to apply patches if index is dirty
+ + builtin-am: implement committing applied patch
+ + builtin-am: apply patch with git-apply
+ + builtin-am: extract patch and commit info with git-mailinfo
+ + builtin-am: auto-detect mbox patches
+ + builtin-am: split out mbox/maildir patches with git-mailsplit
+ + builtin-am: implement patch queue mechanism
+ + builtin-am: implement skeletal builtin am
+ + wrapper: implement xfopen()
+ + wrapper: implement xopen()
+ (this branch is used by pt/am-builtin-options.)
+
+ Originally merged to 'next' on 2015-07-23
+
+ Rewrite "am" in "C".
+
 
- "sparse checkout" misbehaved for a path that is excluded from the
- checkout when switching between branches that differ at the path.
+* sb/parse-options-codeformat (2015-07-29) 1 commit
+  (merged to 'next' on 2015-08-03 at f81993b)
+ + parse-options: align curly braces for all options
 
 
-* bc/gpg-verify-raw (2015-06-22) 7 commits
-  (merged to 'next' on 2015-06-24 at 08a1164)
- + verify-tag: add option to print raw gpg status information
- + verify-commit: add option to print raw gpg status information
- + gpg: centralize printing signature buffers
- + gpg: centralize signature check
- + verify-commit: add test for exit status on untrusted signature
- + verify-tag: share code with verify-commit
- + verify-tag: add tests
+* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
+  (merged to 'next' on 2015-08-03 at f5e568e)
+ + add: remove dead code
+
+--------------------------------------------------
+[New Topics]
 
- "git verify-tag" and "git verify-commit" have been taught to share
- more code, and then learned to optionally show the verification
- message from the underlying GPG implementation.
+* bb/remote-get-url (2015-08-05) 1 commit
+ - remote: add get-url subcommand
 
+ "git remote" learned "get-url" subcommand to show the URL for a
+ given remote name used for fetching and pushing.
 
-* cb/parse-magnitude (2015-06-22) 2 commits
-  (merged to 'next' on 2015-06-24 at 2fd7205)
- + parse-options: move unsigned long option parsing out of pack-objects.c
- + test-parse-options: update to handle negative ints
+ Waiting for a reroll.
+ ($gmane/275401)
 
- Move machinery to parse human-readable scaled numbers like 1k, 4M,
- and 2G as an option parameter's value from pack-objects to
- parse-options API, to make it available to other codepaths.
 
+* cb/open-noatime-clear-errno (2015-08-12) 1 commit
+ - git_open_noatime: return with errno=0 on success
 
-* cb/uname-in-untracked (2015-07-17) 1 commit
-  (merged to 'next' on 2015-07-21 at d867af0)
- + untracked: fix detection of uname(2) failure
+ When trying to see that an object does not exist, a state errno
+ leaked from our "first try to open a packfile with O_NOATIME and
+ then if it fails retry without it" logic on a system that refuses
+ O_NOATIME.  This confused us and caused us to die, saying that the
+ packfile is unreadable, when we should have just reported that the
+ object does not exist in that packfile to the caller.
 
- An experimental "untracked cache" feature used uname(2) in a
- slightly unportable way.
+ Will merge to 'next'.
 
 
-* da/subtree-date-confusion (2015-07-23) 1 commit
-  (merged to 'next' on 2015-07-29 at 01016b1)
- + contrib/subtree: ignore log.date configuration
+* jk/guess-repo-name-regression-fix (2015-08-10) 2 commits
+  (merged to 'next' on 2015-08-12 at 4cba33c)
+ + clone: use computed length in guess_dir_name
+ + clone: add tests for output directory
+ (this branch is used by ps/guess-repo-name-at-root.)
 
- "git subtree" (in contrib/) depended on "git log" output to be
- stable, which was a no-no.  Apply a workaround to force a
particular date format.
+ "git clone $URL" in recent releases of Git contains a regression in
+ the code that invents a new repository name incorrectly based on
the $URL.  This has been corrected.
 
+ Will merge to 'master'.
 
-* db/send-pack-user-signingkey (2015-07-21) 1 commit
-  (merged to 'next' on 2015-07-29 at b0d62e9)
- + builtin/send-pack.c: respect user.signingkey
 
- The low-level "git send-pack" did not honor 'user.signingkey'
- configuration variable when sending a signed-push.
+* ps/guess-repo-name-at-root (2015-08-10) 3 commits
+  (merged to 'next' on 2015-08-12 at 088860f)
+ + clone: abort if no dir name could be guessed
+ + clone: do not use port number as dir name
+ + clone: do not include authentication data in guessed dir
+ (this branch uses jk/guess-repo-name-regression-fix.)
 
+ "git clone $URL", when cloning from a site whose sole purpose is to
+ host a single repository (hence, no path after <scheme>://<site>/),
+ tried to use the site name as the new repository name, but did not
+ remove username or password when <site> part was of the form
+ <user>@<pass>:<host>.  The code is taught to redact these.
 
-* dt/log-follow-config (2015-07-09) 1 commit
-  (merged to 'next' on 2015-07-10 at b8fbb43)
- + log: add "log.follow" configuration variable
+ Will merge to 'master'.
 
- Add a new configuration variable to enable "--follow" automatically
- when "git log" is run with one pathspec argument.
 
+* jk/notes-merge-config (2015-08-05) 4 commits
+ - SQUASH???
+ - notes: add notes.merge option to select default strategy
+ - notes: add tests for --commit/--abort/--strategy exclusivity
+ - notes: document cat_sort_uniq rewriteMode
 
-* dt/refs-backend-preamble (2015-07-21) 7 commits
-  (merged to 'next' on 2015-07-23 at 9dac423)
- + git-stash: use update-ref --create-reflog instead of creating files
- + update-ref and tag: add --create-reflog arg
- + refs: add REF_FORCE_CREATE_REFLOG flag
- + git-reflog: add exists command
- + refs: new public ref function: safe_create_reflog
- + refs: break out check for reflog autocreation
- + refs.c: add err arguments to reflog functions
- (this branch is used by dt/refs-pseudo.)
+ "git notes merge" can be told with "--strategy=<how>" option how to
+ automatically handle conflicts; this can now be configured by
+ setting notes.merge configuration variable.
 
- In preparation for allowing different "backends" to store the refs
- in a way different from the traditional "one ref per file in $GIT_DIR
- or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
- direct filesystem access to ref-like things like CHERRY_PICK_HEAD
- from scripts and programs.
+ The last step to add more specific notes.$ref.merge looked
+ questionable.  What is queued is v3, v4 exists, but needs an
+ update.
 
+ Waiting for a reroll.
+ ($gmane/275749)
 
-* ee/clean-remove-dirs (2015-06-26) 6 commits
-  (merged to 'next' on 2015-06-29 at d595659)
- + read_gitfile_gently: fix use-after-free
-  (merged to 'next' on 2015-06-24 at 7c27821)
- + clean: improve performance when removing lots of directories
- + p7300: add performance tests for clean
- + t7300: add tests to document behavior of clean and nested git
- + setup: sanity check file size in read_gitfile_gently
- + setup: add gentle version of read_gitfile
 
- Replace "is this subdirectory a separate repository that should not
- be touched?" check "git clean" does by checking if it has .git/HEAD
- using the submodule-related code with a more optimized check.
+* mk/submodule-gitdir-path (2015-08-05) 2 commits
+ - path: implement common_dir handling in git_path_submodule()
+ - submodule refactor: use git_path_submodule() in add_submodule_odb()
 
+ The submodule code has been taught to work better with separate
+ work trees created via "git worktree add".
 
-* es/doc-clean-outdated-tools (2015-07-28) 5 commits
-  (merged to 'next' on 2015-07-29 at 6d80251)
- + Documentation/git-tools: retire manually-maintained list
- + Documentation/git-tools: drop references to defunct tools
- + Documentation/git-tools: fix item text formatting
- + Documentation/git-tools: improve discoverability of Git wiki
- + Documentation/git: drop outdated Cogito reference
+ Waiting for a review.
+ ($gmane/275340).
 
 
-* gp/status-rebase-i-info (2015-07-06) 4 commits
-  (merged to 'next' on 2015-07-10 at b121298)
- + status: add new tests for status during rebase -i
- + status: give more information during rebase -i
- + status: differentiate interactive from non-interactive rebases
- + status: factor two rebase-related messages together
+* mm/pull-upload-pack (2015-07-30) 1 commit
+  (merged to 'next' on 2015-08-12 at 14d2a52)
+ + pull.sh: quote $upload_pack when passing it to git-fetch
 
- Teach "git status" to show a more detailed information regarding
- the "rebase -i" session in progress.
+ "git pull" in recent releases of Git has a regression in the code
+ that allows custom path to the --upload-pack=<program>.  This has
+ been corrected.
 
+ Will merge to 'maint'.
 
-* gr/rebase-i-drop-warn (2015-06-30) 3 commits
-  (merged to 'next' on 2015-07-15 at 6f4f2c8)
- + git rebase -i: add static check for commands and SHA-1
- + git rebase -i: warn about removed commits
- + git-rebase -i: add command "drop" to remove a commit
+ Note that this is irrelevant for 'master' with "git pull" rewritten
+ in C.
 
- Add "drop commit-object-name subject" command as another way to
- skip replaying of a commit in "rebase -i".
 
+* ps/t1509-chroot-test-fixup (2015-08-05) 2 commits
+  (merged to 'next' on 2015-08-12 at 6d10ea5)
+ + tests: fix cleanup after tests in t1509-root-worktree
+ + tests: fix broken && chains in t1509-root-worktree
 
-* ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
-  (merged to 'next' on 2015-07-17 at 7bb1674)
- + rev-parse --parseopt: allow [*=?!] in argument hints
+ t1509 test that requires a dedicated VM environment had some
+ bitrot, which has been corrected.
 
- The "rev-parse --parseopt" mode parsed the option specification
- and the argument hint in a strange way to allow '=' and other
- special characters in the option name while forbidding them from
- the argument hint.  This made it impossible to define an option
- like "--pair <key>=<value>" with "pair=key=value" specification,
- which instead would have defined a "--pair=key <value>" option.
+ Will merge to 'master'.
 
 
-* jc/commit-slab (2015-05-22) 1 commit
-  (merged to 'next' on 2015-07-15 at 4c83475)
- + commit-slab: introduce slabname##_peek() function
-
- Memory use reduction when commit-slab facility is used to annotate
- sparsely (which is not recommended in the first place).
-
-
-* jk/cat-file-batch-all (2015-06-26) 8 commits
-  (merged to 'next' on 2015-07-10 at 80200cc)
- + cat-file: sort and de-dup output of --batch-all-objects
- + cat-file: add --batch-all-objects option
- + cat-file: split batch_one_object into two stages
- + cat-file: stop returning value from batch_one_object
- + cat-file: add --buffer option
- + cat-file: move batch_options definition to top of file
- + cat-file: minor style fix in options list
- + Merge branch 'jk/maint-for-each-packed-object' into jk/cat-file-batch-all
-
- "cat-file" learned "--batch-all-objects" option to enumerate all
- available objects in the repository more quickly than "rev-list
- --all --objects" (the output includes unreachable objects, though).
-
-
-* jk/date-mode-format (2015-07-20) 4 commits
-  (merged to 'next' on 2015-07-21 at 69f66be)
- + strbuf: make strbuf_addftime more robust
-  (merged to 'next' on 2015-07-09 at a01bfc3)
- + introduce "format" date-mode
- + convert "enum date_mode" into a struct
- + show-branch: use DATE_RELATIVE instead of magic number
-
- Teach "git log" and friends a new "--date=format:..." option to
- format timestamps using system's strftime(3).
-
-
-* jk/pkt-log-pack (2015-06-16) 3 commits
-  (merged to 'next' on 2015-07-10 at ba33212)
- + pkt-line: support tracing verbatim pack contents
- + pkt-line: tighten sideband PACK check when tracing
- + pkt-line: simplify starts_with checks in packet tracing
+* pt/am-builtin-options (2015-08-12) 3 commits
+  (merged to 'next' on 2015-08-12 at e57f754)
+ + am: let --signoff override --no-signoff
+ + am: let command-line options override saved options
+ + test_terminal: redirect child process' stdin to a pty
 
- Enhance packet tracing machinery to allow capturing an incoming
- pack data to a file for debugging.
-
-
-* jk/refspec-parse-wildcard (2015-07-27) 2 commits
-  (merged to 'next' on 2015-07-29 at eb48d2f)
- + refs: loosen restriction on wildcard "*" refspecs
- + refs: cleanup comments regarding check_refname_component()
-
- Allow an asterisk as a substring (as opposed to the entirety) of
- a path component for both side of a refspec, e.g.
- "refs/heads/o*:refs/remotes/heads/i*".
-
-
-* js/fsck-opt (2015-06-23) 19 commits
-  (merged to 'next' on 2015-07-10 at eb4da0a)
- + fsck: support ignoring objects in `git fsck` via fsck.skiplist
- + fsck: git receive-pack: support excluding objects from fsck'ing
- + fsck: introduce `git fsck --connectivity-only`
- + fsck: support demoting errors to warnings
- + fsck: document the new receive.fsck.<msg-id> options
- + fsck: allow upgrading fsck warnings to errors
- + fsck: optionally ignore specific fsck issues completely
- + fsck: disallow demoting grave fsck errors to warnings
- + fsck: add a simple test for receive.fsck.<msg-id>
- + fsck: make fsck_tag() warn-friendly
- + fsck: handle multiple authors in commits specially
- + fsck: make fsck_commit() warn-friendly
- + fsck: make fsck_ident() warn-friendly
- + fsck: report the ID of the error/warning
- + fsck (receive-pack): allow demoting errors to warnings
- + fsck: offer a function to demote fsck errors to warnings
- + fsck: provide a function to parse fsck message IDs
- + fsck: introduce identifiers for fsck messages
- + fsck: introduce fsck options
-
- Allow ignoring fsck errors on specific set of known-to-be-bad
- objects, and also tweaking warning level of various kinds of non
- critical breakages reported.
-
-
-* jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
-  (merged to 'next' on 2015-07-29 at 227d0d9)
- + receive-pack: crash when checking with non-exist HEAD
-
- An attempt to delete a ref by pushing into a repositorywhose HEAD
- symbolic reference points at an unborn branch that cannot be
- created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
- points at refs/heads/a) failed.
-
-
-* kb/i18n-doc (2015-07-01) 1 commit
-  (merged to 'next' on 2015-07-09 at a12c7b3)
- + Documentation/i18n.txt: clarify character encoding support
-
-
-* kn/for-each-ref (2015-08-03) 11 commits
- + ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
- + for-each-ref: introduce filter_refs()
- + ref-filter: move code from 'for-each-ref'
- + ref-filter: add 'ref-filter.h'
- + for-each-ref: rename variables called sort to sorting
- + for-each-ref: rename some functions and make them public
- + for-each-ref: introduce 'ref_array_clear()'
- + for-each-ref: introduce new structures for better organisation
- + for-each-ref: rename 'refinfo' to 'ref_array_item'
- + for-each-ref: clean up code
- + for-each-ref: extract helper functions out of grab_single_ref()
- (this branch is used by kn/for-each-tag-branch).
-
- GSoC project to rebuild ref listing by branch and tag based on the
- for-each-ref machinery.  This is its first part.
-
-
-* kn/tag-doc-fix (2015-07-10) 1 commit
-  (merged to 'next' on 2015-07-15 at 7bd6038)
- + Documentation/tag: remove double occurance of "<pattern>"
-
-
-* mh/fast-import-get-mark (2015-07-01) 1 commit
-  (merged to 'next' on 2015-07-15 at 5e034b9)
- + fast-import: add a get-mark command
-
- "git fast-import" learned to respond to the get-mark command via
- its cat-blob-fd interface.
-
-
-* mh/fast-import-optimize-current-from (2015-07-13) 1 commit
-  (merged to 'next' on 2015-07-15 at 2be8b1f)
- + fast-import: do less work when given "from" matches current branch head
-
- Often a fast-import stream builds a new commit on top of the
- previous commit it built, and it often unconditionally emits a
- "from" command to specify the first parent, which can be omitted in
- such a case.  This caused fast-import to forget the tree of the
- previous commit and then re-read it from scratch, which was
- inefficient.  Optimize for this common case.
-
-
-* mh/init-delete-refs-api (2015-06-22) 19 commits
-  (merged to 'next' on 2015-07-10 at 121b26e)
- + delete_ref(): use the usual convention for old_sha1
- + cmd_update_ref(): make logic more straightforward
- + update_ref(): don't read old reference value before delete
- + check_branch_commit(): make first parameter const
- + refs.h: add some parameter names to function declarations
- + refs: move the remaining ref module declarations to refs.h
- + initial_ref_transaction_commit(): check for ref D/F conflicts
- + initial_ref_transaction_commit(): check for duplicate refs
- + refs: remove some functions from the module's public interface
- + initial_ref_transaction_commit(): function for initial ref creation
- + repack_without_refs(): make function private
- + prune_refs(): use delete_refs()
- + prune_remote(): use delete_refs()
- + delete_refs(): bail early if the packed-refs file cannot be rewritten
- + delete_refs(): make error message more generic
- + delete_refs(): new function for the refs API
- + delete_ref(): handle special case more explicitly
- + remove_branches(): remove temporary
- + delete_ref(): move declaration to refs.h
-
- Clean up refs API and make "git clone" less intimate with the
- implementation detail.
-
-
-* mh/replace-refs (2015-06-12) 1 commit
-  (merged to 'next' on 2015-06-24 at cb13adf)
- + Allow to control where the replace refs are looked for
-
- Add an environment variable to tell Git to look into refs hierarchy
- other than refs/replace/ for the object replacement data.
-
-
-* mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
-  (merged to 'next' on 2015-07-10 at ec383cd)
- + git-rebase--interactive.sh: add config option for custom instruction format
-
- "git rebase -i"'s list of todo is made configurable.
-
-
-* nd/export-worktree (2015-06-26) 1 commit
-  (merged to 'next' on 2015-07-09 at 1581a9b)
- + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
-
- Running an aliased command from a subdirectory when the .git thing
- in the working tree is a gitfile pointing elsewhere did not work.
-
-
-* pt/am-foreign (2015-06-15) 5 commits
-  (merged to 'next' on 2015-06-24 at 838c702)
- + am: teach mercurial patch parser how to read from stdin
- + am: use gmtime() to parse mercurial patch date
- + t4150: test applying StGit series
- + am: teach StGit patch parser how to read from stdin
- + t4150: test applying StGit patch
-
- Various enhancements around "git am" reading patches generated by
- foreign SCM.
-
-
-* pt/am-tests (2015-07-20) 12 commits
-  (merged to 'next' on 2015-07-21 at 8d3d5f4)
- + t3901: test git-am encoding conversion
- + t3418: non-interactive rebase --continue with rerere enabled
- + t4150: tests for am --[no-]scissors
- + t4150: am with post-applypatch hook
- + t4150: am with pre-applypatch hook
- + t4150: am with applypatch-msg hook
- + t4150: am --resolved fails if index has unmerged entries
- + t4150: am --resolved fails if index has no changes
- + t4150: am refuses patches when paused
- + t4151: am --abort will keep dirty index intact
- + t4150: am fails if index is dirty
- + t4150: am.messageid really adds the message id
-
-
-* pt/pull-builtin (2015-06-18) 19 commits
-  (merged to 'next' on 2015-07-10 at 07b1794)
- + pull: remove redirection to git-pull.sh
- + pull --rebase: error on no merge candidate cases
- + pull --rebase: exit early when the working directory is dirty
- + pull: configure --rebase via branch.<name>.rebase or pull.rebase
- + pull: teach git pull about --rebase
- + pull: set reflog message
- + pull: implement pulling into an unborn branch
- + pull: fast-forward working tree if head is updated
- + pull: check if in unresolved merge state
- + pull: support pull.ff config
- + pull: error on no merge candidates
- + pull: pass git-fetch's options to git-fetch
- + pull: pass git-merge's options to git-merge
- + pull: pass verbosity, --progress flags to fetch and merge
- + pull: implement fetch + merge
- + pull: implement skeletal builtin pull
- + argv-array: implement argv_array_pushv()
- + parse-options-cb: implement parse_opt_passthru_argv()
- + parse-options-cb: implement parse_opt_passthru()
- (this branch is used by kd/pull-rebase-autostash, pt/am-builtin and pt/am-builtin-fix.)
-
- Reimplement 'git pull' in C.
-
-
-* rl/send-email-aliases (2015-07-07) 10 commits
-  (merged to 'next' on 2015-07-09 at c60553d)
- + send-email: suppress meaningless whitespaces in from field
- + send-email: allow multiple emails using --cc, --to and --bcc
- + send-email: consider quote as delimiter instead of character
- + send-email: reduce dependencies impact on parse_address_line
- + send-email: minor code refactoring
- + send-email: allow use of aliases in the From field of --compose mode
- + send-email: refactor address list process
- + t9001-send-email: refactor header variable fields replacement
- + send-email: allow aliases in patch header and command script outputs
- + t9001-send-email: move script creation in a setup test
-
- "git send-email" now performs alias-expansion on names that are
- given via --cccmd, etc.
-
- This round comes with a lot more enhanced e-mail address parser,
- which makes it a bit scary, but as long as it works as designed, it
- makes it wonderful ;-).
-
-
-* se/doc-checkout-ours-theirs (2015-07-12) 1 commit
-  (merged to 'next' on 2015-07-21 at 5275f04)
- + checkout: document subtlety around --ours/--theirs
-
- A "rebase" replays changes of the local branch on top of something
- else, as such they are placed in stage #3 and referred to as
- "theirs", while the changes in the new base, typically a foreign
- work, are placed in stage #2 and referred to as "ours".  Clarify
- the "checkout --ours/--theirs".
-
-
-* sg/bash-prompt-untracked-optim (2015-07-20) 2 commits
-  (merged to 'next' on 2015-07-21 at e151fb7)
- + bash prompt: faster untracked status indicator with untracked directories
- + bash prompt: test untracked files status indicator with untracked dirs
-
- Optimize computation of untracked status indicator by bash prompt
- script (in contrib/).
-
-
-* zb/userdiff-fountain (2015-07-23) 1 commit
-  (merged to 'next' on 2015-07-23 at e177995)
- + userdiff: add support for Fountain documents
-
- New userdiff pattern definition for fountain screenwriting markup
- format.
+ After "git am --opt1" stops, running "git am --opt2" pays attention
+ to "--opt2" only for the patch that caused the original invocation
+ to stop.
 
---------------------------------------------------
-[New Topics]
+ Will merge to 'master'.
 
-* sb/check-return-from-read-ref (2015-08-03) 1 commit
- - transport-helper: die on errors reading refs.
 
- Will merge to 'next'.
+* sb/remove-get-pathspec (2015-08-03) 1 commit
+ - builtin/mv: remove get_pathspec()
+
+ Expecting a reroll.
+ ($gmane/275224)
+
+
+* sb/submodule-helper (2015-08-07) 1 commit
+ - submodule: implement `module_list` as a builtin helper
+
+ The beginning of "git submodule" rewritten in C.
+
+
+* tb/complete-rebase-i-edit-todo (2015-08-05) 1 commit
+  (merged to 'next' on 2015-08-12 at 9606c21)
+ + completion: offer '--edit-todo' during interactive rebase
+
+ The command-line completion script (in contrib/) has been updated.
+
+ Will merge to 'master'.
+
+
+* dt/untracked-subdir (2015-08-07) 2 commits
+ - DONTMERGE: wait for Duy to Ack or comment
+ - untracked-cache: fix subdirectory handling
+ (this branch uses dt/untracked-sparse.)
+
+ Waiting for a review.
+
+
+* jk/test-with-x (2015-08-07) 2 commits
+  (merged to 'next' on 2015-08-12 at 06576a1)
+ + test-lib: disable trace when test is not verbose
+ + test-lib: turn off "-x" tracing during chain-lint check
+
+ Running tests with the "-x" option to make them verbose had some
+ unpleasant interactions with other features of the test suite.
+
+ Will merge to 'master'.
+
+
+* ad/cygwin-wants-rename (2015-08-07) 1 commit
+ - config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
+
+ Will hold.
+ ($gmane/275680).
+
+
+* bc/connect-plink (2015-08-11) 1 commit
+ - t5601-clone: remove broken and pointless check for plink.exe
+
+ Test updates for Windows.
+
+ Seems controversial.
+ Will hold.
+ for now ($gmane/275758).
+
+
+* ee/clean-remove-dirs (2015-08-11) 1 commit
+  (merged to 'next' on 2015-08-12 at fc41b09)
+ + t7300-clean: require POSIXPERM for chmod 0 test
+
+ Test updates for Windows.
+
+ Will merge to 'master'.
+
+
+* jc/finalize-temp-file (2015-08-10) 1 commit
+  (merged to 'next' on 2015-08-12 at 6fe62fe)
+ + sha1_file.c: rename move_temp_to_file() to finalize_object_file()
+
+ Long overdue micro clean-up.
+
+ Will merge to 'master'.
+
+
+* jk/git-path (2015-08-10) 16 commits
+  (merged to 'next' on 2015-08-12 at 7ebe864)
+ + memoize common git-path "constant" files
+ + get_repo_path: refactor path-allocation
+ + find_hook: keep our own static buffer
+ + refs.c: remove_empty_directories can take a strbuf
+ + refs.c: avoid git_path assignment in lock_ref_sha1_basic
+ + refs.c: avoid repeated git_path calls in rename_tmp_log
+ + refs.c: simplify strbufs in reflog setup and writing
+ + path.c: drop git_path_submodule
+ + refs.c: remove extra git_path calls from read_loose_refs
+ + remote.c: drop extraneous local variable from migrate_file
+ + prefer mkpathdup to mkpath in assignments
+ + prefer git_pathdup to git_path in some possibly-dangerous cases
+ + add_to_alternates_file: don't add duplicate entries
+ + t5700: modernize style
+ + cache.h: complete set of git_path_submodule helpers
+ + cache.h: clarify documentation for git_path, et al
+
+ git_path() and mkpath() are handy helper functions but it is easy
+ to misuse, as the callers need to be careful to keep the number of
+ active results below 4.  Their uses have been reduced.
+
+ Will merge to 'master'.
+
+
+* jk/long-error-messages (2015-08-11) 2 commits
+  (merged to 'next' on 2015-08-12 at 36303cd)
+ + vreportf: avoid intermediate buffer
+ + vreportf: report to arbitrary filehandles
+
+ The codepath to produce error messages had a hard-coded limit to
+ the size of the message, primarily to avoid memory allocation while
+ calling die().
+
+ Will merge to 'master'.
+
+
+* nd/dwim-wildcards-as-pathspecs (2015-08-11) 1 commit
+  (merged to 'next' on 2015-08-12 at bb73f4d)
+ + t2019: skip test requiring '*' in a file name non Windows
+
+ Test updates for Windows.
+
+ Will merge to 'master'.
 
 --------------------------------------------------
 [Stalled]
 
+* nd/list-files (2015-02-09) 21 commits
+ - t3080: tests for git-list-files
+ - list-files: -M aka diff-cached
+ - list-files -F: show submodules with the new indicator '&'
+ - list-files: add -F/--classify
+ - list-files: show directories as well as files
+ - list-files: do not show duplicate cached entries
+ - list-files: sort output and remove duplicates
+ - list-files: add -t back
+ - list-files: add -1 short for --no-column
+ - list-files: add -R/--recursive short for --max-depth=-1
+ - list-files: -u does not imply showing stages
+ - list-files: make alias 'ls' default to 'list-files'
+ - list-files: a user friendly version of ls-files and more
+ - ls-files: support --max-depth
+ - ls-files: add --column
+ - ls-files: add --color to highlight file names
+ - ls-files: buffer full item in strbuf before printing
+ - ls_colors.c: highlight submodules like directories
+ - ls_colors.c: add a function to color a file name
+ - ls_colors.c: parse color.ls.* from config file
+ - ls_colors.c: add $LS_COLORS parsing code
+
+ A new "git list-files" Porcelain command, "ls-files" with bells and
+ whistles.
+
+ Reroll to base on wt-status work ($gmane/265142) has seen some
+ positive discussions.
+
+ Waiting for a further polished reroll ($gmane/265534).
+
+
+* mh/numparse (2015-03-19) 14 commits
+ . diff_opt_parse(): use convert_i() when handling --abbrev=<num>
+ . diff_opt_parse(): use convert_i() when handling "-l<num>"
+ . opt_arg(): simplify pointer handling
+ . opt_arg(): report errors parsing option values
+ . opt_arg(): use convert_i() in implementation
+ . opt_arg(): val is always non-NULL
+ . builtin_diff(): detect errors when parsing --unified argument
+ . handle_revision_opt(): use convert_ui() when handling "--abbrev="
+ . strtoul_ui(), strtol_i(): remove functions
+ . handle_revision_opt(): use convert_i() when handling "-<digit>"
+ . handle_revision_opt(): use skip_prefix() in many places
+ . write_subdirectory(): use convert_ui() for parsing mode
+ . cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
+ . numparse: new module for parsing integral numbers
+
+ Many codepaths use unchecked use of strtol() and friends (or even
+ worse, atoi()).  Introduce a set of wrappers that try to be more
+ careful.
+
+ Expecting a reroll.
+ ($gmane/268058).
+
+
+* kk/log-merges-config (2015-04-21) 5 commits
+ - bash-completion: add support for git-log --merges= and log.merges
+ - t4202-log: add tests for --merges=
+ - Documentation: add git-log --merges= option and log.merges config. var
+ - log: honor log.merges= option
+ - revision: add --merges={show|only|hide} option
+
+ "git log" (but not other commands in the "log" family) learned to
+ pay attention to the log.merges configuration variable that can be
+ set to "show" (the normal behaviour), "only" (hide non-merge
+ commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
+ can be used to override the setting from the command line.
+
+ The documentation may need to be updated once more ($gmane/267250).
+ Waiting for a reroll.
+
+
+* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
+ - t/lib-git-svn: check same httpd module dirs as lib-httpd
+ - t/lib-httpd: load mod_unixd
+
+ This is the first two commits in a three-patch series $gmane/266962
+
+ Expecting a reroll.
+ with updated log message ($gmane/268061).
+
+
 * bw/portability-solaris (2015-07-20) 3 commits
  - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
  - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
  - tests: modify tr expressions so that xpg4/tr handles it on Solaris
 
- Needs another reroll? ($gmane/274296)
+ Needs another reroll?
+ ($gmane/274296)
 
 
 * jc/clone-bundle (2015-04-30) 1 commit
@@ -493,17 +521,6 @@ of the repositories listed at
  Still an early WIP.
 
 
-* jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
- - strbuf_read(): skip unnecessary strbuf_grow() at eof
-
- Avoid one extra iteration and strbuf_grow() of 8kB in
- strbuf_read().
-
- Looked reasonable; perhaps a log message clarification is needed.
-
- Expecting a reroll.
-
-
 * mg/index-read-error-messages (2015-06-01) 2 commits
  - messages: uniform error messages for index write
  - show-index: uniform error messages for index read
@@ -521,7 +538,8 @@ of the repositories listed at
  The gitmodules API accessed from the C code learned to cache stuff
  lazily.
 
- Needs another reroll? ($gmane/273743).
+ Needs another reroll?
+ ($gmane/273743)
 
 
 * jk/log-missing-default-HEAD (2015-06-03) 1 commit
@@ -565,36 +583,11 @@ of the repositories listed at
  ($gmane/272180).
 
 
-* mh/tempfile (2015-06-10) 14 commits
- - credential-cache--daemon: use tempfile module
- - credential-cache--daemon: delete socket from main()
- - gc: use tempfile module to handle gc.pid file
- - lock_repo_for_gc(): compute the path to "gc.pid" only once
- - diff: use tempfile module
- - setup_temporary_shallow(): use tempfile module
- - write_shared_index(): use tempfile module
- - register_tempfile(): new function to handle an existing temporary file
- - tempfile: add several functions for creating temporary files
- - register_tempfile_object(): new function, extracted from create_tempfile()
- - commit_lock_file(): use get_locked_file_path()
- - lockfile: remove some redundant functions
- - tempfile: a new module for handling temporary files
- - Move lockfile API documentation to lockfile.h
-
- Rebuild "lockfile" API on top of a new "tempfile" API.
- This needs rerolling, to include "tempfile.h" in "lockfile.h", at
- least.
-
- Expecting a reroll.
- ($gmane/271353)
-
-
 * ad/bisect-terms (2015-08-03) 4 commits
  - bisect: allow setting any user-specified in 'git bisect start'
  - bisect: add 'git bisect terms' to view the current terms
  - bisect: add the terms old/new
  - bisect: sanity check on terms
- (this branch uses ad/bisect-cleanup.)
 
  The use of 'good/bad' in "git bisect" made it confusing to use when
  hunting for a state change that is not a regression (e.g. bugfix).
@@ -620,102 +613,7 @@ of the repositories listed at
  have a place to store the updated notes tree, iow, a ref).
 
  Needs update to docs.
-
-
-* sg/config-name-only (2015-05-28) 3 commits
- - completion: use new 'git config' options to reliably list variable names
- - SQUASH
- - config: add options to list only variable names
-
- "git config --list" output was hard to parse when values consist of
- multiple lines.  Introduce a way to show only the keys.
-
- Adding a single --name-only option may be a better way to go than
- adding two new options.
-
- Expecting a reroll.
-
-
-* kk/log-merges-config (2015-04-21) 5 commits
- - bash-completion: add support for git-log --merges= and log.merges
- - t4202-log: add tests for --merges=
- - Documentation: add git-log --merges= option and log.merges config. var
- - log: honor log.merges= option
- - revision: add --merges={show|only|hide} option
-
- "git log" (but not other commands in the "log" family) learned to
- pay attention to the log.merges configuration variable that can be
- set to "show" (the normal behaviour), "only" (hide non-merge
- commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
- can be used to override the setting from the command line.
-
- The documentation may need to be updated once more ($gmane/267250).
- Waiting for a reroll.
-
-
-* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
- - t/lib-git-svn: check same httpd module dirs as lib-httpd
- - t/lib-httpd: load mod_unixd
-
- This is the first two commits in a three-patch series $gmane/266962
- Will be rerolled.
- with updated log message ($gmane/268061).
-
-
-* mh/numparse (2015-03-19) 14 commits
- . diff_opt_parse(): use convert_i() when handling --abbrev=<num>
- . diff_opt_parse(): use convert_i() when handling "-l<num>"
- . opt_arg(): simplify pointer handling
- . opt_arg(): report errors parsing option values
- . opt_arg(): use convert_i() in implementation
- . opt_arg(): val is always non-NULL
- . builtin_diff(): detect errors when parsing --unified argument
- . handle_revision_opt(): use convert_ui() when handling "--abbrev="
- . strtoul_ui(), strtol_i(): remove functions
- . handle_revision_opt(): use convert_i() when handling "-<digit>"
- . handle_revision_opt(): use skip_prefix() in many places
- . write_subdirectory(): use convert_ui() for parsing mode
- . cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
- . numparse: new module for parsing integral numbers
-
- Many codepaths use unchecked use of strtol() and friends (or even
- worse, atoi()).  Introduce a set of wrappers that try to be more
- careful.
-
- Expecting a reroll.
- ($gmane/268058).
-
-
-* nd/list-files (2015-02-09) 21 commits
- - t3080: tests for git-list-files
- - list-files: -M aka diff-cached
- - list-files -F: show submodules with the new indicator '&'
- - list-files: add -F/--classify
- - list-files: show directories as well as files
- - list-files: do not show duplicate cached entries
- - list-files: sort output and remove duplicates
- - list-files: add -t back
- - list-files: add -1 short for --no-column
- - list-files: add -R/--recursive short for --max-depth=-1
- - list-files: -u does not imply showing stages
- - list-files: make alias 'ls' default to 'list-files'
- - list-files: a user friendly version of ls-files and more
- - ls-files: support --max-depth
- - ls-files: add --column
- - ls-files: add --color to highlight file names
- - ls-files: buffer full item in strbuf before printing
- - ls_colors.c: highlight submodules like directories
- - ls_colors.c: add a function to color a file name
- - ls_colors.c: parse color.ls.* from config file
- - ls_colors.c: add $LS_COLORS parsing code
-
- A new "git list-files" Porcelain command, "ls-files" with bells and
- whistles.
-
- Reroll to base on wt-status work ($gmane/265142) has seen some
- positive discussions.
-
- Waiting for a further polished reroll ($gmane/265534).
+ ($gmane/273928)
 
 
 * jc/diff-b-m (2015-02-23) 5 commits
@@ -734,9 +632,9 @@ of the repositories listed at
 
 
 * pw/remote-set-url-fetch (2014-11-26) 1 commit
- remote: add --fetch and --both options to set-url
. remote: add --fetch and --both options to set-url
 
- Expecting a reroll.
+ Ejected.
 
 
 * tr/remerge-diff (2014-11-10) 9 commits
@@ -781,70 +679,104 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
-* dt/reflog-tests (2015-07-28) 2 commits
-  (merged to 'next' on 2015-08-03 at 9d2fa1a)
- + tests: remove some direct access to .git/logs
- + t/t7509: remove unnecessary manipulation of reflog
+* sg/config-name-only (2015-08-10) 2 commits
+  (merged to 'next' on 2015-08-12 at c658fe4)
+ + completion: list variable names reliably with 'git config --name-only'
+ + config: add '--name-only' option to list only variable names
 
- Tests that assume how reflogs are represented on the filesystem too
- much have been corrected.
+ "git config --list" output was hard to parse when values consist of
+ multiple lines.  "--name-only" option is added to help this.
 
  Will merge to 'master'.
 
 
-* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
-  (merged to 'next' on 2015-08-03 at 5b0d620)
- + unpack-trees: populate cache-tree on successful merge
+* mh/tempfile (2015-08-12) 16 commits
+  (merged to 'next' on 2015-08-12 at 80efcb7)
+ + credential-cache--daemon: use tempfile module
+ + credential-cache--daemon: delete socket from main()
+ + gc: use tempfile module to handle gc.pid file
+ + lock_repo_for_gc(): compute the path to "gc.pid" only once
+ + diff: use tempfile module
+ + setup_temporary_shallow(): use tempfile module
+ + write_shared_index(): use tempfile module
+ + register_tempfile(): new function to handle an existing temporary file
+ + tempfile: add several functions for creating temporary files
+ + prepare_tempfile_object(): new function, extracted from create_tempfile()
+ + tempfile: a new module for handling temporary files
+ + commit_lock_file(): use get_locked_file_path()
+ + lockfile: add accessor get_lock_file_path()
+ + lockfile: add accessors get_lock_file_fd() and get_lock_file_fp()
+ + create_bundle(): duplicate file descriptor to avoid closing it twice
+ + lockfile: move documentation to lockfile.h and lockfile.c
+
+ The "lockfile" API has been rebuilt on top of a new "tempfile" API.
 
- The code to perform multi-tree merges has been taught to repopulate
- the cache-tree upon a successful merge into the index, so that
- subsequent "diff-index --cached" (hence "status") and "write-tree"
- (hence "commit") will go faster.
+ Will merge to 'master'.
 
- The same logic in "git checkout" may now be removed, but that is a
- separate issue.
+
+* jh/strbuf-read-use-read-in-full (2015-08-10) 1 commit
+  (merged to 'next' on 2015-08-12 at db16247)
+ + strbuf_read(): skip unnecessary strbuf_grow() at eof
+
+ strbuf_read() used to have one extra iteration (and an unnecessary
+ strbuf_grow() of 8kB), which was eliminated.
+
+ Will merge to 'master'.
+
+
+* sb/check-return-from-read-ref (2015-08-03) 1 commit
+  (merged to 'next' on 2015-08-12 at 4a1c801)
+ + transport-helper: die on errors reading refs.
 
  Will merge to 'master'.
 
 
-* jk/negative-hiderefs (2015-07-28) 2 commits
- - refs: support negative transfer.hideRefs
- - docs/config.txt: reorder hideRefs config
+* jk/negative-hiderefs (2015-08-07) 2 commits
+  (merged to 'next' on 2015-08-12 at bdc478d)
+ + refs: support negative transfer.hideRefs
+ + docs/config.txt: reorder hideRefs config
 
- Allow negative !ref entry in multi-value transfer.hideRefs
- configuration to say "don't hide this one".
+ A negative !ref entry in multi-value transfer.hideRefs
+ configuration can be used to say "don't hide this one".
 
- An update to test coming?
+ Will merge to 'master'.
 
 
 * mh/get-remote-group-fix (2015-07-28) 4 commits
- - get_remote_group(): use skip_prefix()
- - get_remote_group(): eliminate superfluous call to strcspn()
- - get_remote_group(): rename local variable "space" to "wordlen"
- - get_remote_group(): handle remotes with single-character names
+  (merged to 'next' on 2015-08-12 at b77820e)
+ + get_remote_group(): use skip_prefix()
+ + get_remote_group(): eliminate superfluous call to strcspn()
+ + get_remote_group(): rename local variable "space" to "wordlen"
+ + get_remote_group(): handle remotes with single-character names
 
  An off-by-one error made "git remote" to mishandle a remote with a
  single letter nickname.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * ta/docfix-index-format-tech (2015-07-28) 1 commit
- - typofix for index-format.txt
+  (merged to 'next' on 2015-08-12 at 662d88a)
+ + typofix for index-format.txt
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* dt/notes-multiple (2015-08-03) 2 commits
- - notes: handle multiple worktrees
- - worktrees: add find_shared_symref
- (this branch uses es/worktree-add and es/worktree-add-cleanup.)
+* dt/notes-multiple (2015-08-11) 2 commits
+  (merged to 'next' on 2015-08-12 at 0052055)
+ + notes: handle multiple worktrees
+ + worktrees: add find_shared_symref
 
- Forbid simultaneous "notes merge" to happen for the same ref in
- refs/notes/* when linked worktree is used.
+ When linked worktree is used, simultaneous "notes merge" instances
+ for the same ref in refs/notes/* are prevented from stomping on
+ each other.
+
+ Will merge to 'master'.
 
 
-* dt/refs-pseudo (2015-07-31) 5 commits
+* dt/refs-pseudo (2015-08-11) 6 commits
+  (merged to 'next' on 2015-08-12 at 7078eb6)
+ + pseudoref: check return values from read_ref()
   (merged to 'next' on 2015-08-03 at 3eafd33)
  + sequencer: replace write_cherry_pick_head with update_ref
  + bisect: use update_ref
@@ -861,97 +793,22 @@ of the repositories listed at
 
 
 * dt/untracked-sparse (2015-07-31) 1 commit
- - untracked-cache: support sparse checkout
+  (merged to 'next' on 2015-08-12 at 234434d)
+ + untracked-cache: support sparse checkout
+ (this branch is used by dt/untracked-subdir.)
 
  Allow untracked cache (experimental) to be used when sparse
  checkout (experimental) is also in use.
 
-
-* pt/am-builtin-fix (2015-07-28) 1 commit
- - am: let command-line options override saved options
- (this branch uses pt/am-builtin.)
-
- With "git am --options" followed by "git am --other-options", the
- options given in a later invocation should override the initial
- options for a single invocation, but the rewritten "git am" didn't.
-
- Will merge into pt/am-builtin topic.
-
- Expecting a reroll.
-
-
-* sb/parse-options-codeformat (2015-07-29) 1 commit
-  (merged to 'next' on 2015-08-03 at f81993b)
- + parse-options: align curly braces for all options
-
- Will merge to 'master'.
-
-
-* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
-  (merged to 'next' on 2015-08-03 at f5e568e)
- + add: remove dead code
-
  Will merge to 'master'.
 
 
 * kd/pull-rebase-autostash (2015-07-22) 1 commit
- - pull: allow dirty tree when rebase.autostash enabled
-
- Teach "git pull --rebase" to pay attention to rebase.autostash
- configuration.
-
- Will merge to 'next'.
+  (merged to 'next' on 2015-08-12 at de88e8e)
+ + pull: allow dirty tree when rebase.autostash enabled
 
-
-* es/worktree-add (2015-07-20) 5 commits
-  (merged to 'next' on 2015-08-03 at 9771a44)
- + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
- + Documentation/git-worktree: wordsmith worktree-related manpages
- + Documentation/config: fix stale "git prune --worktree" reference
- + Documentation/git-worktree: fix incorrect reference to file "locked"
- + Documentation/git-worktree: consistently use term "linked working tree"
- (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
-
- Originally merged to 'next' on 2015-07-20
-
- Remove remaining cruft from  "git checkout --to", which
- transitioned to "git worktree add".
-
- Will merge to 'master'.
-
-
-* es/worktree-add-cleanup (2015-07-28) 24 commits
- - Documentation/config: mention "now" and "never" for 'expire' settings
- - Documentation/git-worktree: fix broken 'linkgit' invocation
- - checkout: drop intimate knowledge of newly created worktree
- - worktree: populate via "git reset --hard" rather than "git checkout"
- - worktree: avoid resolving HEAD unnecessarily
- - worktree: make setup of new HEAD distinct from worktree population
- - worktree: detect branch-name/detached and error conditions locally
- - worktree: add_worktree: construct worktree-population command locally
- - worktree: elucidate environment variables intended for child processes
- - worktree: make branch creation distinct from worktree population
- - worktree: add: suppress auto-vivication with --detach and no <branch>
- - worktree: make --detach mutually exclusive with -b/-B
- - worktree: introduce options container
- - worktree: simplify new branch (-b/-B) option checking
- - worktree: improve worktree setup message
- - branch: publish die_if_checked_out()
- - checkout: teach check_linked_checkout() about symbolic link HEAD
- - checkout: check_linked_checkout: simplify symref parsing
- - checkout: check_linked_checkout: improve "already checked out" aesthetic
- - checkout: generalize die_if_checked_out() branch name argument
- - checkout: die_if_checked_out: simplify strbuf management
- - checkout: improve die_if_checked_out() robustness
- - checkout: name check_linked_checkouts() more meaningfully
- - checkout: avoid resolving HEAD unnecessarily
- (this branch is used by dt/notes-multiple; uses es/worktree-add.)
-
- Originally merged to 'next' on 2015-07-29
-
- Remove the "new-worktree-mode" hack in "checkout" that was added in
- nd/multiple-work-trees topic by updating the implementation of new
- "worktree add".
+ "git pull --rebase" has been taught to pay attention to
+ rebase.autostash configuration.
 
  Will merge to 'master'.
 
@@ -978,79 +835,6 @@ of the repositories listed at
  series or two.
 
 
-* pt/am-builtin (2015-07-20) 46 commits
- - builtin-am: remove redirection to git-am.sh
- - builtin-am: check for valid committer ident
- - builtin-am: implement legacy -b/--binary option
- - builtin-am: implement -i/--interactive
- - builtin-am: support and auto-detect mercurial patches
- - builtin-am: support and auto-detect StGit series files
- - builtin-am: support and auto-detect StGit patches
- - builtin-am: rerere support
- - builtin-am: invoke post-applypatch hook
- - builtin-am: invoke pre-applypatch hook
- - builtin-am: invoke applypatch-msg hook
- - builtin-am: support automatic notes copying
- - builtin-am: invoke post-rewrite hook
- - builtin-am: implement -S/--gpg-sign, commit.gpgsign
- - builtin-am: implement --committer-date-is-author-date
- - builtin-am: implement --ignore-date
- - builtin-am: pass git-apply's options to git-apply
- - builtin-am: implement --[no-]scissors
- - builtin-am: support --keep-cr, am.keepcr
- - builtin-am: implement --[no-]message-id, am.messageid
- - builtin-am: implement -k/--keep, --keep-non-patch
- - builtin-am: implement -u/--utf8
- - builtin-am: handle stray state directory
- - builtin-am: bypass git-mailinfo when --rebasing
- - builtin-am: implement --rebasing mode
- - builtin-am: implement --3way, am.threeWay
- - cache-tree: introduce write_index_as_tree()
- - builtin-am: implement -s/--signoff
- - builtin-am: exit with user friendly message on failure
- - builtin-am: implement -q/--quiet
- - builtin-am: reject patches when there's a session in progress
- - builtin-am: implement --abort
- - builtin-am: implement --skip
- - builtin-am: don't parse mail when resuming
- - builtin-am: implement --resolved/--continue
- - builtin-am: refuse to apply patches if index is dirty
- - builtin-am: implement committing applied patch
- - builtin-am: apply patch with git-apply
- - builtin-am: extract patch and commit info with git-mailinfo
- - builtin-am: auto-detect mbox patches
- - builtin-am: split out mbox/maildir patches with git-mailsplit
- - builtin-am: implement patch queue mechanism
- - builtin-am: implement skeletal builtin am
- - wrapper: implement xfopen()
- - wrapper: implement xopen()
- - Merge branch 'pt/pull-builtin' into pt/am-builtin
- (this branch is used by pt/am-builtin-fix.)
-
- Originally merged to 'next' on 2015-07-23
-
- Rewrite "am" in "C".
-
- Almost there.
-
-
-* ad/bisect-cleanup (2015-08-03) 6 commits
-  (merged to 'next' on 2015-08-03 at 13b9314)
- + bisect: don't mix option parsing and non-trivial code
- + bisect: simplify the addition of new bisect terms
- + bisect: replace hardcoded "bad|good" by variables
- + Documentation/bisect: revise overall content
- + Documentation/bisect: move getting help section to the end
- + bisect: correction of typo
- (this branch is used by ad/bisect-terms)
-
- Originally merged to 'next' on 2015-07-09
-
- Code and documentation clean-up to "git bisect".
-
- Will merge to 'master'.
-
-
 * jc/rerere (2015-07-30) 21 commits
  - rerere: un-nest merge() further
  - rerere: use "struct rerere_id" instead of "char *" for conflict ID
@@ -1148,33 +932,3 @@ of the repositories listed at
 
  Does not quite fix ($gmane/267614).
  Will discard.
-
-
-* mm/for-each-ref-fixup (2015-08-03) 11 commits
-  (merged to 'next' on 2015-08-03 at d9e94b9)
- + for-each-ref: add '--contains' option
- + ref-filter: implement '--contains' option
- + parse-options.h: add macros for '--contains' option
- + parse-option: rename parse_opt_with_commit()
- + for-each-ref: add '--merged' and '--no-merged' options
- + ref-filter: implement '--merged' and '--no-merged' options
- + ref-filter: add parse_opt_merge_filter()
- + for-each-ref: add '--points-at' option
- + ref-filter: implement '--points-at' option
- + tag: libify parse_opt_points_at()
- + t6302: for-each-ref tests for ref-filter APIs
-
- Drop; has been squashed.
-
-
-
-* rj/bisect-terms-fixup (2015-08-03) 4 commits
- - bisect: allow setting any user-specified in 'git bisect start'
- - bisect: add 'git bisect terms' to view the current terms
- - bisect: add the terms old/new
- - bisect: sanity check on terms
- (this branch uses ad/bisect-cleanup.)
-
- Will squash into ad/bisect-cleanup.
-
-