]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2014/07 #02)
authorJunio C Hamano <gitster@pobox.com>
Mon, 14 Jul 2014 20:58:33 +0000 (13:58 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 14 Jul 2014 20:58:33 +0000 (13:58 -0700)
whats-cooking.txt

index a5113567574bddce184d81cd6fd7ec47957e0d39..6c1598e4f85877fef3e82089fea4f00619c2526a 100644 (file)
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jul 2014, #01; Tue, 8)
-X-master-at: 72c779457cd72928e36f2bc43c3ff7f3ae7b77c3
-X-next-at: 35b839c24c6ee47bec1710eabfa8653925462638
+Subject: What's cooking in git.git (Jul 2014, #02; Mon, 14)
+X-master-at: 66f467c3e6aa9c1e28eaf7b71cea5e452fc104e8
+X-next-at: a2efa2fd3a2243dea76a6988cbda3d2f4acf3381
 
-What's cooking in git.git (Jul 2014, #01; Tue, 8)
+What's cooking in git.git (Jul 2014, #02; Mon, 14)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
 '-' are only in 'pu' (proposed updates) while commits prefixed with
 '+' are in 'next'.
 
+We would need to start slowing down to prepare for -rc0 preview at
+the end of next week and then feature freeze.  Some topics that
+joined 'next' late may want to stay there for the remainder of this
+cycle.
+
 You can find the changes described here in the integration branches
 of the repositories listed at
 
     http://git-blame.blogspot.com/p/git-public-repositories.html
 
---------------------------------------------------
-[Graduated to "master"]
-
-* bc/fix-rebase-merge-skip (2014-06-16) 1 commit
-  (merged to 'next' on 2014-06-20 at 01f81f5)
- + rebase--merge: fix --skip with two conflicts in a row
-
- "git rebase --skip" did not work well when it stopped due to a
- conflict twice in a row.
-
-
-* dt/refs-check-refname-component-sse (2014-06-18) 1 commit
-  (merged to 'next' on 2014-06-20 at d286027)
- + refs.c: SSE2 optimizations for check_refname_component
-
- Further micro-optimization of a leaf-function.
-
-
-* jk/commit-buffer-length (2014-06-13) 18 commits
-  (merged to 'next' on 2014-06-16 at b2d2d7b)
- + reuse cached commit buffer when parsing signatures
- + commit: record buffer length in cache
- + commit: convert commit->buffer to a slab
- + commit-slab: provide a static initializer
- + use get_commit_buffer everywhere
- + convert logmsg_reencode to get_commit_buffer
- + use get_commit_buffer to avoid duplicate code
- + use get_cached_commit_buffer where appropriate
- + provide helpers to access the commit buffer
- + provide a helper to set the commit buffer
- + provide a helper to free commit buffer
- + sequencer: use logmsg_reencode in get_message
- + logmsg_reencode: return const buffer
- + do not create "struct commit" with xcalloc
- + commit: push commit_index update into alloc_commit_node
- + alloc: include any-object allocations in alloc_report
- + replace dangerous uses of strbuf_attach
- + commit_tree: take a pointer/len pair rather than a const strbuf
-
- Move "commit->buffer" out of the in-core commit object and keep
- track of their lengths.  Use this to optimize the code paths to
- validate GPG signatures in commit objects.
-
-
-* ye/http-extract-charset (2014-06-17) 1 commit
-  (merged to 'next' on 2014-06-20 at 9492bae)
- + http: fix charset detection of extract_content_type()
-
 --------------------------------------------------
 [New Topics]
 
-* cc/replace-edit (2014-06-25) 3 commits
- - replace: use argv_array in export_object
- - avoid double close of descriptors handed to run_command
- - replace: replace spaces with tabs in indentation
- (this branch is used by jk/replace-edit-raw.)
+* jk/skip-prefix (2014-07-10) 1 commit
+  (merged to 'next' on 2014-07-14 at 0fbd06e)
+ + tag: use skip_prefix instead of magic numbers
+ (this branch is used by jk/tag-sort.)
 
- Will merge to 'next'.
-
-
-* ep/submodule-code-cleanup (2014-06-30) 1 commit
- - submodule.c: use the ARRAY_SIZE macro
-
- Will merge to 'next'.
+ Will merge to 'master'.
 
+ One more to an already graduated topic.
 
-* jk/replace-edit-raw (2014-06-25) 1 commit
- - replace: add a --raw mode for --edit
- (this branch uses cc/replace-edit.)
 
- Will merge to 'next'.
+* rs/code-cleaning (2014-07-10) 5 commits
+  (merged to 'next' on 2014-07-14 at d5a89c8)
+ + fsck: simplify fsck_commit_buffer() by using commit_list_count()
+ + commit: use commit_list_append() instead of duplicating its code
+ + merge: simplify merge_trivial() by using commit_list_append()
+ + use strbuf_addch for adding single characters
+ + use strbuf_addbuf for adding strbufs
 
+ Will merge to 'master'.
 
-* jk/strip-suffix (2014-06-30) 9 commits
- - prepare_packed_git_one: refactor duplicate-pack check
- - verify-pack: use strbuf_strip_suffix
- - strbuf: implement strbuf_strip_suffix
- - index-pack: use strip_suffix to avoid magic numbers
- - use strip_suffix instead of ends_with in simple cases
- - replace has_extension with ends_with
- - implement ends_with via strip_suffix
- - add strip_suffix function
- - sha1_file: replace PATH_MAX buffer with strbuf in prepare_packed_git_one()
 
- Will merge to 'next'.
+* ah/fix-http-push (2014-07-13) 1 commit
+  (merged to 'next' on 2014-07-14 at 5d06516)
+ + http-push.c: make CURLOPT_IOCTLDATA a usable pointer
 
+ An ancient rewrite passed a wrong pointer to a curl library
+ function in a rarely used code path.
 
-* jk/tag-contains (2014-06-30) 8 commits
- - perf: add tests for tag --contains
- - tag: use commit_contains
- - commit: provide a fast multi-tip contains function
- - string-list: add pos to iterator callback
- - add functions for memory-efficient bitmaps
- - paint_down_to_common: use prio_queue
- - tag: factor out decision to stream tags
- - tag: allow --sort with -n
+ Will merge to 'master'.
 
- Expecting a reroll.
 
+* jc/reopen-lock-file (2014-07-14) 1 commit
+ - lockfile: allow reopening a closed but still locked file
+ (this branch uses nd/split-index.)
 
-* mg/fix-log-mergetag-color (2014-06-30) 1 commit
- - log: correctly identify mergetag signature verification status
+ Needed in the "commit -p" code path to update the cache tree in the
+ index.
 
- Will merge to 'next'.
 
+* jk/alloc-commit-id (2014-07-13) 8 commits
+ - diff-tree: avoid lookup_unknown_object
+ - object_as_type: set commit index
+ - alloc: factor out commit index
+ - add object_as_type helper for casting objects
+ - parse_object_buffer: do not set object type
+ - move setting of object->type to alloc_* functions
+ - alloc: write out allocator definitions
+ - alloc.c: remove the alloc_raw_commit_node() function
 
-* mk/merge-incomplete-files (2014-06-30) 2 commits
- - git-merge-file: do not add LF at EOF while applying unrelated change
- - t6023-merge-file.sh: fix and mark as broken invalid tests
+ Make sure all in-core commit objects are assigned a unique number
+ so that they can be annotated using the commit-slab API.
 
  Will merge to 'next'.
 
 
-* rs/status-code-clean-up (2014-06-29) 2 commits
-  (merged to 'next' on 2014-07-08 at db67965)
- + wt-status: simplify building of summary limit argument
- + wt-status: use argv_array for environment
-
- Will merge to 'master'.
-
-
-* tb/crlf-tests (2014-07-08) 2 commits
-  (merged to 'next' on 2014-07-08 at 40764b7)
- + t0027: combinations of core.autocrlf, core.eol and text
- + t0025: rename the test files
+* jk/remote-curl-squelch-extra-errors (2014-07-10) 3 commits
+  (merged to 'next' on 2014-07-14 at a2efa2f)
+ + remote-curl: mark helper-protocol errors more clearly
+ + remote-curl: use error instead of fprintf(stderr)
+ + remote-curl: do not complain on EOF from parent git
 
  Will merge to 'master'.
 
 
-* ak/profile-feedback-build (2014-07-08) 4 commits
- - Fix profile feedback with -jN and add profile-fast
- - Run the perf test suite for profile feedback too
- - Don't define away __attribute__ on gcc
- - Use BASIC_FLAGS for profile feedback
+* rs/ref-transaction-0 (2014-07-14) 19 commits
+  (merged to 'next' on 2014-07-14 at b21bcee)
+ + refs.c: change ref_transaction_update() to do error checking and return status
+ + refs.c: remove the onerr argument to ref_transaction_commit
+ + update-ref: use err argument to get error from ref_transaction_commit
+ + refs.c: make update_ref_write update a strbuf on failure
+ + refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
+ + refs.c: log_ref_write should try to return meaningful errno
+ + refs.c: make resolve_ref_unsafe set errno to something meaningful on error
+ + refs.c: commit_packed_refs to return a meaningful errno on failure
+ + refs.c: make remove_empty_directories always set errno to something sane
+ + refs.c: verify_lock should set errno to something meaningful
+ + refs.c: make sure log_ref_setup returns a meaningful errno
+ + refs.c: add an err argument to repack_without_refs
+ + lockfile.c: make lock_file return a meaningful errno on failurei
+ + lockfile.c: add a new public function unable_to_lock_message
+ + refs.c: add a strbuf argument to ref_transaction_commit for error logging
+ + refs.c: allow passing NULL to ref_transaction_free
+ + refs.c: constify the sha arguments for ref_transaction_create|delete|update
+ + refs.c: ref_transaction_commit should not free the transaction
+ + refs.c: remove ref_transaction_rollback
+ (this branch is used by rs/ref-transaction.)
+
+ Early part of Ronnie's "ref transaction" topic.
+ Portability workaround may be needed on top ($gmane/252496).
 
- Will merge to 'next'.
+--------------------------------------------------
+[Graduated to "master"]
 
+* jk/skip-prefix (2014-06-20) 18 commits
+ (merged to 'next' on 2014-06-23 at cd387a6)
+ + http-push: refactor parsing of remote object names
+ + imap-send: use skip_prefix instead of using magic numbers
+ + use skip_prefix to avoid repeated calculations
+ + git: avoid magic number with skip_prefix
+ + fetch-pack: refactor parsing in get_ack
+ + fast-import: refactor parsing of spaces
+ + stat_opt: check extra strlen call
+ + daemon: use skip_prefix to avoid magic numbers
+ + fast-import: use skip_prefix for parsing input
+ + use skip_prefix to avoid repeating strings
+ + use skip_prefix to avoid magic numbers
+ + transport-helper: avoid reading past end-of-string
+ + fast-import: fix read of uninitialized argv memory
+ + apply: use skip_prefix instead of raw addition
+ + refactor skip_prefix to return a boolean
+ + avoid using skip_prefix as a boolean
+ + daemon: mark some strings as const
+ + parse_diff_color_slot: drop ofs parameter
 
-* cb/filter-branch-prune-empty-degenerate-merges (2014-07-01) 1 commit
- - filter-branch: eliminate duplicate mapped parents
 
- Will merge to 'next'.
+* kb/path-max-must-go (2014-07-13) 1 commit
+  (merged to 'next' on 2014-07-14 at b0b9834)
+ + cache.h: rename cache_def_free to cache_def_clear
 
 
-* cc/for-each-mergetag (2014-07-07) 1 commit
- - commit: add for_each_mergetag()
- (this branch is used by cc/replace-graft.)
+* dt/refs-check-refname-component-sse-fix (2014-07-08) 2 commits
+  (merged to 'next' on 2014-07-08 at 35b839c)
+ + refs: fix valgrind suppression file
+ + refs.c: handle REFNAME_REFSPEC_PATTERN at end of page
 
Will merge to 'next'.
Fixes to a topic that is already in 'master'.
 
 
-* dt/cache-tree-repair (2014-07-08) 4 commits
- - cache-tree: write updated cache-tree after commit
- - cache-tree: subdirectory tests
- - test-dump-cache-tree: invalid trees are not errors
- - cache-tree: create/update cache-tree on checkout
+* jc/fix-clone-single-starting-at-a-tag (2014-06-23) 1 commit
+  (merged to 'next' on 2014-07-02 at cc0c4b1)
+ + builtin/clone.c: detect a clone starting at a tag correctly
 
- Reviews seen; waiting for a response.
+ "git clone -b brefs/tags/bar" would have mistakenly thought we were
+ following a single tag, even though it was a name of the branch,
+ because it incorrectly used strstr().
 
 
-* jl/test-lint-scripts (2014-07-07) 3 commits
- - DONTMERGE: missing sign-off
- - t/Makefile: always test all lint targets when running tests
- - t/Makefile: check helper scripts for non-portable shell commands too
+* jk/pretty-G-format-fixes (2014-06-25) 6 commits
+  (merged to 'next' on 2014-06-26 at 7138407)
+ + move "%G" format test from t7510 to t6006
+  (merged to 'next' on 2014-06-20 at f504bbc)
+ + pretty: avoid reading past end-of-string with "%G"
+ + t7510: check %G* pretty-format output
+ + t7510: test a commit signed by an unknown key
+ + t7510: use consistent &&-chains in loop
+ + t7510: stop referring to master in later tests
 
+ "%G" (nothing after G) is an invalid pretty format specifier, but
+ the parser did not notice it as garbage.
 
-* kb/hashmap-updates (2014-07-07) 4 commits
- - hashmap: add string interning API
- - hashmap: add simplified hashmap_get_from_hash() API
- - hashmap: improve struct hashmap member documentation
- - hashmap: factor out getting a hash code from a SHA1
 
- Reviews sent; waiting for a response.
+* jk/xstrfmt (2014-06-25) 11 commits
+  (merged to 'next' on 2014-06-25 at 5031d4e)
+ + setup_git_env(): introduce git_path_from_env() helper
+  (merged to 'next' on 2014-06-23 at 64f2558)
+ + unique_path: fix unlikely heap overflow
+ + walker_fetch: fix minor memory leak
+ + merge: use argv_array when spawning merge strategy
+ + sequencer: use argv_array_pushf
+ + setup_git_env: use git_pathdup instead of xmalloc + sprintf
+ + use xstrfmt to replace xmalloc + strcpy/strcat
+ + use xstrfmt to replace xmalloc + sprintf
+ + use xstrdup instead of xmalloc + strcpy
+ + use xstrfmt in favor of manual size calculations
+ + strbuf: add xstrfmt helper
 
 
-* kb/path-max-must-go (2014-07-07) 2 commits
-  (merged to 'next' on 2014-07-08 at 4d41c18)
- + dir: remove PATH_MAX limitation
- + symlinks: remove PATH_MAX limitation
+* mg/verify-commit (2014-06-23) 5 commits
+  (merged to 'next' on 2014-07-02 at 6d77bcf)
+ + t7510: test verify-commit
+ + t7510: exit for loop with test result
+ + verify-commit: scriptable commit signature verification
+ + gpg-interface: provide access to the payload
+ + gpg-interface: provide clear helper for struct signature_check
 
- Will merge to 'master'.
+ Add 'verify-commit' to be used in a way similar to 'verify-tag' is
+ used.  Further work on verifying the mergetags might be needed.
 
 
 * rs/fix-alt-odb-path-comparison (2014-07-01) 1 commit
   (merged to 'next' on 2014-07-08 at f9c69e5)
  + sha1_file: avoid overrunning alternate object base string
 
- Will merge to 'master'.
-
 
 * rs/simplify-archive-tests (2014-07-07) 1 commit
   (merged to 'next' on 2014-07-08 at c46cfac)
  + t5000, t5003: simplify commit
 
- Will merge to 'master'.
 
+* rs/status-code-clean-up (2014-06-29) 2 commits
+  (merged to 'next' on 2014-07-08 at db67965)
+ + wt-status: simplify building of summary limit argument
+ + wt-status: use argv_array for environment
 
-* zk/log-graph-showsig (2014-07-08) 1 commit
- - log: fix indentation for --graph --show-signature
 
- The "--show-signature" option did not pay much attention to
- "--graph".
+* sk/mingw-dirent (2014-06-09) 5 commits
+  (merged to 'next' on 2014-06-30 at ae9e2d6)
+ + Win32 dirent: improve dirent implementation
+ + Win32 dirent: clarify #include directives
+ + Win32 dirent: change FILENAME_MAX to MAX_PATH
+ + Win32 dirent: remove unused dirent.d_reclen member
+ + Win32 dirent: remove unused dirent.d_ino member
 
- Will merge to 'next'.
+
+* sk/mingw-main (2014-06-10) 2 commits
+  (merged to 'next' on 2014-06-30 at 447cb50)
+ + mingw: avoid const warning
+ + Win32: move main macro to a function
+ (this branch is used by sk/mingw-uni-console and sk/mingw-unicode-spawn-args.)
+
+
+* sk/mingw-uni-console (2014-06-16) 7 commits
+  (merged to 'next' on 2014-06-30 at f4fbc41)
+ + Win32: reliably detect console pipe handles
+ + Win32: fix broken pipe detection
+ + Win32: Thread-safe windows console output
+ + Win32: add Unicode conversion functions
+ + Win32: warn if the console font doesn't support Unicode
+ + Win32: detect console streams more reliably
+ + Win32: support Unicode console output
+ (this branch is used by sk/mingw-unicode-spawn-args; uses sk/mingw-main.)
+
+
+* sk/mingw-unicode-spawn-args (2014-06-16) 6 commits
+  (merged to 'next' on 2014-06-30 at c8f79d0)
+ + Win32: Unicode arguments (incoming)
+ + Win32: Unicode arguments (outgoing)
+ + MinGW: disable CRT command line globbing
+ + Win32: fix potential multi-threading issue
+ + Win32: simplify internal mingw_spawn* APIs
+ + Win32: let mingw_execve() return an int
+ (this branch uses sk/mingw-main and sk/mingw-uni-console.)
 
 --------------------------------------------------
 [Stalled]
@@ -282,35 +318,33 @@ of the repositories listed at
 
 
 * mh/lockfile (2014-04-15) 25 commits
- - trim_last_path_elm(): replace last_path_elm()
- - resolve_symlink(): take a strbuf parameter
- - resolve_symlink(): use a strbuf for internal scratch space
- - change lock_file::filename into a strbuf
- - commit_lock_file(): use a strbuf to manage temporary space
- - try_merge_strategy(): use a statically-allocated lock_file object
- - try_merge_strategy(): remove redundant lock_file allocation
- - struct lock_file: declare some fields volatile
- - lockfile: avoid transitory invalid states
- - commit_lock_file(): die() if called for unlocked lockfile object
- - commit_lock_file(): inline temporary variable
- - remove_lock_file(): call rollback_lock_file()
- - lock_file(): exit early if lockfile cannot be opened
- - write_packed_entry_fn(): convert cb_data into a (const int *)
- - prepare_index(): declare return value to be (const char *)
- - delete_ref_loose(): don't muck around in the lock_file's filename
- - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
- - lockfile.c: document the various states of lock_file objects
- - lock_file(): always add lock_file object to lock_file_list
- - hold_lock_file_for_append(): release lock on errors
- - lockfile: unlock file if lockfile permissions cannot be adjusted
- - rollback_lock_file(): set fd to -1
- - rollback_lock_file(): do not clear filename redundantly
- - api-lockfile: expand the documentation
- - unable_to_lock_die(): rename function from unable_to_lock_index_die()
-
- Refactor and fix corner-case bugs in the lockfile API, all looked
- sensible.
+ . trim_last_path_elm(): replace last_path_elm()
+ . resolve_symlink(): take a strbuf parameter
+ . resolve_symlink(): use a strbuf for internal scratch space
+ . change lock_file::filename into a strbuf
+ . commit_lock_file(): use a strbuf to manage temporary space
+ . try_merge_strategy(): use a statically-allocated lock_file object
+ . try_merge_strategy(): remove redundant lock_file allocation
+ . struct lock_file: declare some fields volatile
+ . lockfile: avoid transitory invalid states
+ . commit_lock_file(): die() if called for unlocked lockfile object
+ . commit_lock_file(): inline temporary variable
+ . remove_lock_file(): call rollback_lock_file()
+ . lock_file(): exit early if lockfile cannot be opened
+ . write_packed_entry_fn(): convert cb_data into a (const int *)
+ . prepare_index(): declare return value to be (const char *)
+ . delete_ref_loose(): don't muck around in the lock_file's filename
+ . cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
+ . lockfile.c: document the various states of lock_file objects
+ . lock_file(): always add lock_file object to lock_file_list
+ . hold_lock_file_for_append(): release lock on errors
+ . lockfile: unlock file if lockfile permissions cannot be adjusted
+ . rollback_lock_file(): set fd to -1
+ . rollback_lock_file(): do not clear filename redundantly
+ . api-lockfile: expand the documentation
+ . unable_to_lock_die(): rename function from unable_to_lock_index_die()
 
+ Ejected from 'pu' to unclutter.
  Expecting a reroll.
 
 
@@ -384,38 +418,6 @@ of the repositories listed at
  Will hold.
 
 
-* jk/branch-at-publish-rebased (2014-01-17) 5 commits
- . t1507 (rev-parse-upstream): fix typo in test title
- . implement @{publish} shorthand
- . branch_get: provide per-branch pushremote pointers
- . branch_get: return early on error
- . sha1_name: refactor upstream_mark
-
- Give an easier access to the tracking branches from "other" side in
- a triangular workflow by introducing B@{publish} that works in a
- similar way to how B@{upstream} does.
-
- Meant to be used as a basis for whatever Ram wants to build on.
-
- Ejected from 'pu' to unclutter.
-
-
-* fc/publish-vs-upstream (2014-04-21) 8 commits
- . sha1_name: add support for @{publish} marks
- . sha1_name: simplify track finding
- . sha1_name: cleanup interpret_branch_name()
- . branch: display publish branch
- . push: add --set-publish option
- . branch: add --set-publish-to option
- . Add concept of 'publish' branch
- . t5516 (fetch-push): fix test restoration
-
- Add branch@{publish}; it seems that this is somewhat different from
- Ram and Peff started working on.  At least the tip needs to be
- rerolled not to squat on @{p} which @{push} and possibly @{pull}
- may want to share.
-
-
 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
  - merge: drop unused arg from abort_commit method signature
  - merge: make prepare_to_commit responsible for write_merge_state
@@ -438,20 +440,6 @@ of the repositories listed at
  This was primarily a RFH ($gmane/239580).
 
 
-* np/pack-v4 (2013-09-18) 90 commits
- . packv4-parse.c: add tree offset caching
- . t1050: replace one instance of show-index with verify-pack
- . index-pack, pack-objects: allow creating .idx v2 with .pack v4
- . unpack-objects: decode v4 trees
- . unpack-objects: allow to save processed bytes to a buffer
- - ...
-
- Nico and Duy advancing the eternal vaporware pack-v4.  This is here
- primarily for wider distribution of the preview edition.
-
- Needs to be rebased, now the pack-bitmap series is in.
-
-
 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
  - perf-lib: add test_perf_cleanup target
  - perf-lib: split starting the test from the execution
@@ -477,134 +465,212 @@ of the repositories listed at
 
  More or less abandoned.  Will drop.
 
+--------------------------------------------------
+[Cooking]
 
-* nd/multiple-work-trees (2014-03-25) 28 commits
- . count-objects: report unused files in $GIT_DIR/repos/...
- . gc: support prune --repos
- . gc: style change -- no SP before closing bracket
- . prune: strategies for linked checkouts
- . checkout: detach if the branch is already checked out elsewhere
- . checkout: clean up half-prepared directories in --to mode
- . checkout: support checking out into a new working directory
- . use new wrapper write_file() for simple file writing
- . wrapper.c: wrapper to open a file, fprintf then close
- . setup.c: support multi-checkout repo setup
- . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
- . setup.c: convert check_repository_format_gently to use strbuf
- . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
- . setup.c: convert is_git_directory() to use strbuf
- . git-stash: avoid hardcoding $GIT_DIR/logs/....
- . *.sh: avoid hardcoding $GIT_DIR/hooks/...
- . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
- . $GIT_COMMON_DIR: a new environment variable
- . commit: use SEQ_DIR instead of hardcoding "sequencer"
- . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
- . reflog: avoid constructing .lock path with git_path
- . *.sh: respect $GIT_INDEX_FILE
- . git_path(): be aware of file relocation in $GIT_DIR
- . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
- . path.c: rename vsnpath() to do_git_path()
- . git_snpath(): retire and replace with strbuf_git_path()
- . path.c: make get_pathname() call sites return const char *
- . path.c: make get_pathname() return strbuf instead of static buffer
+* nd/multiple-work-trees (2014-07-14) 31 commits
+ - checkout: don't require a work tree when checking out into a new one
+ - git_path(): keep "info/sparse-checkout" per work-tree
+ - count-objects: report unused files in $GIT_DIR/repos/...
+ - gc: support prune --repos
+ - gc: factor out gc.pruneexpire parsing code
+ - gc: style change -- no SP before closing parenthesis
+ - prune: strategies for linked checkouts
+ - checkout: detach if the branch is already checked out elsewhere
+ - checkout: clean up half-prepared directories in --to mode
+ - checkout: support checking out into a new working directory
+ - use new wrapper write_file() for simple file writing
+ - wrapper.c: wrapper to open a file, fprintf then close
+ - setup.c: support multi-checkout repo setup
+ - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
+ - setup.c: convert check_repository_format_gently to use strbuf
+ - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
+ - setup.c: convert is_git_directory() to use strbuf
+ - git-stash: avoid hardcoding $GIT_DIR/logs/....
+ - *.sh: avoid hardcoding $GIT_DIR/hooks/...
+ - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
+ - $GIT_COMMON_DIR: a new environment variable
+ - commit: use SEQ_DIR instead of hardcoding "sequencer"
+ - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
+ - reflog: avoid constructing .lock path with git_path
+ - *.sh: respect $GIT_INDEX_FILE
+ - git_path(): be aware of file relocation in $GIT_DIR
+ - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
+ - path.c: rename vsnpath() to do_git_path()
+ - git_snpath(): retire and replace with strbuf_git_path()
+ - path.c: make get_pathname() call sites return const char *
+ - path.c: make get_pathname() return strbuf instead of static buffer
 
  A replacement for contrib/workdir/git-new-workdir that does not
  rely on symbolic links and make sharing of objects and refs safer
  by making the borrowee and borrowers aware of each other.
 
---------------------------------------------------
-[Cooking]
+ Rerolled.
 
-* cc/replace-graft (2014-07-07) 9 commits
- - replace: add test for --graft with a mergetag
- - replace: check mergetags when using --graft
- - replace: add test for --graft with signed commit
- - replace: remove signature when using --graft
- - contrib: add convert-grafts-to-replace-refs.sh
- - Documentation: replace: add --graft option
- - replace: add test for --graft
- - replace: add --graft option
- - replace: cleanup redirection style in tests
- (this branch uses cc/for-each-mergetag.)
 
- "git replace" learned a "--graft" option to rewrite parents of a
- commit.
+* cc/replace-edit (2014-06-25) 3 commits
+  (merged to 'next' on 2014-07-10 at 097cd5e)
+ + replace: use argv_array in export_object
+ + avoid double close of descriptors handed to run_command
+ + replace: replace spaces with tabs in indentation
+ (this branch is used by jk/replace-edit-raw.)
 
+ Teach "git replace" an "--edit" mode.
 
-* jc/fix-clone-single-starting-at-a-tag (2014-06-23) 1 commit
-  (merged to 'next' on 2014-07-02 at cc0c4b1)
- + builtin/clone.c: detect a clone starting at a tag correctly
+ Will merge to 'master'.
+
+
+* jk/replace-edit-raw (2014-06-25) 1 commit
+  (merged to 'next' on 2014-07-10 at b934bb0)
+ + replace: add a --raw mode for --edit
+ (this branch uses cc/replace-edit.)
+
+ Teach "git replace --edit" mode a "--raw" option to allow
+ editing the bare-metal representation data of objects.
 
  Will merge to 'master'.
 
 
-* mg/verify-commit (2014-06-23) 5 commits
-  (merged to 'next' on 2014-07-02 at 6d77bcf)
- + t7510: test verify-commit
- + t7510: exit for loop with test result
- + verify-commit: scriptable commit signature verification
- + gpg-interface: provide access to the payload
- + gpg-interface: provide clear helper for struct signature_check
+* ep/submodule-code-cleanup (2014-06-30) 1 commit
+  (merged to 'next' on 2014-07-10 at d4de30a)
+ + submodule.c: use the ARRAY_SIZE macro
+
+ Will merge to 'master'.
 
- Add 'verify-commit' to be used in a way similar to 'verify-tag' is
- used.  Further work on verifying the mergetags might be needed.
+
+* jk/strip-suffix (2014-06-30) 9 commits
+  (merged to 'next' on 2014-07-10 at e6cfa29)
+ + prepare_packed_git_one: refactor duplicate-pack check
+ + verify-pack: use strbuf_strip_suffix
+ + strbuf: implement strbuf_strip_suffix
+ + index-pack: use strip_suffix to avoid magic numbers
+ + use strip_suffix instead of ends_with in simple cases
+ + replace has_extension with ends_with
+ + implement ends_with via strip_suffix
+ + add strip_suffix function
+ + sha1_file: replace PATH_MAX buffer with strbuf in prepare_packed_git_one()
 
  Will merge to 'master'.
 
 
-* dt/refs-check-refname-component-sse-fix (2014-07-08) 2 commits
-  (merged to 'next' on 2014-07-08 at 35b839c)
- + refs: fix valgrind suppression file
- + refs.c: handle REFNAME_REFSPEC_PATTERN at end of page
+* jk/tag-contains (2014-06-30) 8 commits
+ - perf: add tests for tag --contains
+ - tag: use commit_contains
+ - commit: provide a fast multi-tip contains function
+ - string-list: add pos to iterator callback
+ - add functions for memory-efficient bitmaps
+ - paint_down_to_common: use prio_queue
+ - tag: factor out decision to stream tags
+ - tag: allow --sort with -n
 
- Fixes to a topic that is already in 'master'.
+ Expecting a reroll.
+
+
+* mg/fix-log-mergetag-color (2014-07-10) 1 commit
+  (merged to 'next' on 2014-07-14 at e90dba1)
+ + log: correctly identify mergetag signature verification status
 
  Will merge to 'master'.
 
 
-* jk/skip-prefix (2014-06-20) 18 commits
-  (merged to 'next' on 2014-06-23 at cd387a6)
- + http-push: refactor parsing of remote object names
- + imap-send: use skip_prefix instead of using magic numbers
- + use skip_prefix to avoid repeated calculations
- + git: avoid magic number with skip_prefix
- + fetch-pack: refactor parsing in get_ack
- + fast-import: refactor parsing of spaces
- + stat_opt: check extra strlen call
- + daemon: use skip_prefix to avoid magic numbers
- + fast-import: use skip_prefix for parsing input
- + use skip_prefix to avoid repeating strings
- + use skip_prefix to avoid magic numbers
- + transport-helper: avoid reading past end-of-string
- + fast-import: fix read of uninitialized argv memory
- + apply: use skip_prefix instead of raw addition
- + refactor skip_prefix to return a boolean
- + avoid using skip_prefix as a boolean
- + daemon: mark some strings as const
- + parse_diff_color_slot: drop ofs parameter
+* mk/merge-incomplete-files (2014-06-30) 2 commits
+  (merged to 'next' on 2014-07-10 at d1115f4)
+ + git-merge-file: do not add LF at EOF while applying unrelated change
+ + t6023-merge-file.sh: fix and mark as broken invalid tests
 
  Will merge to 'master'.
 
 
-* jk/xstrfmt (2014-06-25) 11 commits
-  (merged to 'next' on 2014-06-25 at 5031d4e)
- + setup_git_env(): introduce git_path_from_env() helper
-  (merged to 'next' on 2014-06-23 at 64f2558)
- + unique_path: fix unlikely heap overflow
- + walker_fetch: fix minor memory leak
- + merge: use argv_array when spawning merge strategy
- + sequencer: use argv_array_pushf
- + setup_git_env: use git_pathdup instead of xmalloc + sprintf
- + use xstrfmt to replace xmalloc + strcpy/strcat
- + use xstrfmt to replace xmalloc + sprintf
- + use xstrdup instead of xmalloc + strcpy
- + use xstrfmt in favor of manual size calculations
- + strbuf: add xstrfmt helper
+* tb/crlf-tests (2014-07-08) 2 commits
+  (merged to 'next' on 2014-07-08 at 40764b7)
+ + t0027: combinations of core.autocrlf, core.eol and text
+ + t0025: rename the test files
+
+ Will merge to 'master'.
+
+
+* ak/profile-feedback-build (2014-07-08) 4 commits
+  (merged to 'next' on 2014-07-14 at c40e86e)
+ + Fix profile feedback with -jN and add profile-fast
+ + Run the perf test suite for profile feedback too
+ + Don't define away __attribute__ on gcc
+ + Use BASIC_FLAGS for profile feedback
+
+ Will merge to 'master'.
+
+
+* cb/filter-branch-prune-empty-degenerate-merges (2014-07-01) 1 commit
+  (merged to 'next' on 2014-07-10 at 860cfea)
+ + filter-branch: eliminate duplicate mapped parents
+
+ Will merge to 'master'.
+
+
+* cc/for-each-mergetag (2014-07-07) 1 commit
+ - commit: add for_each_mergetag()
+ (this branch is used by cc/replace-graft.)
+
+ Will merge to 'next'.
+
+
+* dt/cache-tree-repair (2014-07-14) 4 commits
+ - cache-tree: Write updated cache-tree after commit
+ - cache-tree: subdirectory tests
+ - test-dump-cache-tree: invalid trees are not errors
+ - cache-tree: create/update cache-tree on checkout
+
+ Add a few more places in "commit" and "checkout" that make sure
+ that the cache-tree is fully populated in the index.
+
+ Will merge to 'next'.
+
+
+* jl/test-lint-scripts (2014-07-10) 2 commits
+  (merged to 'next' on 2014-07-14 at c03721c)
+ + t/Makefile: always test all lint targets when running tests
+ + t/Makefile: check helper scripts for non-portable shell commands too
+
+ Will merge to 'master'.
+
+
+* kb/hashmap-updates (2014-07-07) 4 commits
+ - hashmap: add string interning API
+ - hashmap: add simplified hashmap_get_from_hash() API
+ - hashmap: improve struct hashmap member documentation
+ - hashmap: factor out getting a hash code from a SHA1
+
+ Expecting a reroll ($gmane/252973 and possibly $gmane/252976).
+
+
+* zk/log-graph-showsig (2014-07-09) 1 commit
+  (merged to 'next' on 2014-07-14 at 4429c2e)
+ + log: fix indentation for --graph --show-signature
+
+ The "--show-signature" option did not pay much attention to
+ "--graph".
 
  Will merge to 'master'.
 
 
-* kb/perf-trace (2014-07-07) 17 commits
+* cc/replace-graft (2014-07-07) 9 commits
+ - replace: add test for --graft with a mergetag
+ - replace: check mergetags when using --graft
+ - replace: add test for --graft with signed commit
+ - replace: remove signature when using --graft
+ - contrib: add convert-grafts-to-replace-refs.sh
+ - Documentation: replace: add --graft option
+ - replace: add test for --graft
+ - replace: add --graft option
+ - replace: cleanup redirection style in tests
+ (this branch uses cc/for-each-mergetag.)
+
+ "git replace" learned a "--graft" option to rewrite parents of a
+ commit.
+
+
+* kb/perf-trace (2014-07-13) 17 commits
+ - api-trace.txt: add trace API documentation
  - progress: simplify performance measurement by using getnanotime()
  - wt-status: simplify performance measurement by using getnanotime()
  - git: add performance tracing for git's main() function to debug scripts
@@ -617,7 +683,6 @@ of the repositories listed at
  - trace: add infrastructure to augment trace output with additional info
  - sha1_file: change GIT_TRACE_PACK_ACCESS logging to use trace API
  - Documentation/git.txt: improve documentation of 'GIT_TRACE*' variables
- - trace.h: suppress some sparse warnings and errors
  - trace: improve trace performance
  - trace: remove redundant printf format attribute
  - trace: consistently name the format parameter
@@ -633,32 +698,34 @@ of the repositories listed at
  - implement submodule config cache for lookup of submodule names
 
 
-* jl/submodule-tests (2014-07-07) 14 commits
- - revert: add t3513 for submodule updates
- - stash: add t3906 for submodule updates
- - am: add t4255 for submodule updates
- - cherry-pick: add t3512 for submodule updates
- - pull: add t5572 for submodule updates
- - rebase: add t3426 for submodule updates
- - merge: add t7613 for submodule updates
- - bisect: add t6041 for submodule updates
- - reset: add t7112 for submodule updates
- - read-tree: add t1013 for submodule updates
- - apply: add t4137 for submodule updates
- - checkout: call the new submodule update test framework
- - submodules: add the lib-submodule-update.sh test library
- - test-lib: add test_dir_is_empty()
+* jl/submodule-tests (2014-07-14) 14 commits
+  (merged to 'next' on 2014-07-14 at 0c750bb)
+ + revert: add t3513 for submodule updates
+ + stash: add t3906 for submodule updates
+ + am: add t4255 for submodule updates
+ + cherry-pick: add t3512 for submodule updates
+ + pull: add t5572 for submodule updates
+ + rebase: add t3426 for submodule updates
+ + merge: add t7613 for submodule updates
+ + bisect: add t6041 for submodule updates
+ + reset: add t7112 for submodule updates
+ + read-tree: add t1013 for submodule updates
+ + apply: add t4137 for submodule updates
+ + checkout: call the new submodule update test framework
+ + submodules: add the lib-submodule-update.sh test library
+ + test-lib: add test_dir_is_empty()
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* po/error-message-style (2014-06-16) 1 commit
- - doc: state coding guideline for error message punctuation
+* po/error-message-style (2014-07-10) 1 commit
+  (merged to 'next' on 2014-07-14 at ed17678)
+ + doc: give some guidelines for error messages
 
Expecting a reroll.
Will merge to 'master'.
 
 
-* rs/ref-transaction (2014-06-20) 48 commits
+* rs/ref-transaction (2014-07-14) 29 commits
  - refs.c: make write_ref_sha1 static
  - fetch.c: change s_update_ref to use a ref transaction
  - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
@@ -688,43 +755,8 @@ of the repositories listed at
  - refs.c: make ref_transaction_begin take an err argument
  - refs.c: update ref_transaction_delete to check for error and return status
  - refs.c: change ref_transaction_create to do error checking and return status
- - refs.c: change ref_transaction_update() to do error checking and return status
- - refs.c: remove the onerr argument to ref_transaction_commit
- - update-ref: use err argument to get error from ref_transaction_commit
- - refs.c: make update_ref_write update a strbuf on failure
- - refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
- - refs.c: log_ref_write should try to return meaningful errno
- - refs.c: make resolve_ref_unsafe set errno to something meaningful on error
- - refs.c: commit_packed_refs to return a meaningful errno on failure
- - refs.c: make remove_empty_directories always set errno to something sane
- - refs.c: verify_lock should set errno to something meaningful
- - refs.c: make sure log_ref_setup returns a meaningful errno
- - refs.c: add an err argument to repack_without_refs
- - lockfile.c: make lock_file return a meaningful errno on failurei
- - lockfile.c: add a new public function unable_to_lock_message
- - refs.c: add a strbuf argument to ref_transaction_commit for error logging
- - refs.c: allow passing NULL to ref_transaction_free
- - refs.c: constify the sha arguments for ref_transaction_create|delete|update
- - refs.c: ref_transaction_commit should not free the transaction
- - refs.c: remove ref_transaction_rollback
-
- Portability workaround may be needed on top ($gmane/252496).
- Updates in response to review comments from Michael ($gmane/253033)
- may be needed for later parts, but the earlier parts look ready
- for 'next'.
-
-
-* jk/pretty-G-format-fixes (2014-06-25) 6 commits
-  (merged to 'next' on 2014-06-26 at 7138407)
- + move "%G" format test from t7510 to t6006
-  (merged to 'next' on 2014-06-20 at f504bbc)
- + pretty: avoid reading past end-of-string with "%G"
- + t7510: check %G* pretty-format output
- + t7510: test a commit signed by an unknown key
- + t7510: use consistent &&-chains in loop
- + t7510: stop referring to master in later tests
+ (this branch uses rs/ref-transaction-0.)
 
- Will merge to 'master'.
 
 
 * nd/split-index (2014-06-13) 32 commits
@@ -761,6 +793,7 @@ of the repositories listed at
  + sequencer: do not update/refresh index if the lock cannot be held
  + ewah: delete unused ewah_read_mmap_native declaration
  + ewah: fix constness of ewah_read_mmap
+ (this branch is used by jc/reopen-lock-file.)
 
  An experiment to use two files (the base file and incremental
  changes relative to it) to represent the index to reduce I/O cost
@@ -778,53 +811,6 @@ of the repositories listed at
  Will hold.
 
 
-* sk/mingw-unicode-spawn-args (2014-06-16) 6 commits
-  (merged to 'next' on 2014-06-30 at c8f79d0)
- + Win32: Unicode arguments (incoming)
- + Win32: Unicode arguments (outgoing)
- + MinGW: disable CRT command line globbing
- + Win32: fix potential multi-threading issue
- + Win32: simplify internal mingw_spawn* APIs
- + Win32: let mingw_execve() return an int
- (this branch uses sk/mingw-main and sk/mingw-uni-console.)
-
- Will merge to 'master'.
-
-
-* sk/mingw-dirent (2014-06-09) 5 commits
-  (merged to 'next' on 2014-06-30 at ae9e2d6)
- + Win32 dirent: improve dirent implementation
- + Win32 dirent: clarify #include directives
- + Win32 dirent: change FILENAME_MAX to MAX_PATH
- + Win32 dirent: remove unused dirent.d_reclen member
- + Win32 dirent: remove unused dirent.d_ino member
-
- Will merge to 'master'.
-
-
-* sk/mingw-main (2014-06-10) 2 commits
-  (merged to 'next' on 2014-06-30 at 447cb50)
- + mingw: avoid const warning
- + Win32: move main macro to a function
- (this branch is used by sk/mingw-uni-console and sk/mingw-unicode-spawn-args.)
-
- Will merge to 'master'.
-
-
-* sk/mingw-uni-console (2014-06-16) 7 commits
-  (merged to 'next' on 2014-06-30 at f4fbc41)
- + Win32: reliably detect console pipe handles
- + Win32: fix broken pipe detection
- + Win32: Thread-safe windows console output
- + Win32: add Unicode conversion functions
- + Win32: warn if the console font doesn't support Unicode
- + Win32: detect console streams more reliably
- + Win32: support Unicode console output
- (this branch is used by sk/mingw-unicode-spawn-args; uses sk/mingw-main.)
-
- Will merge to 'master'.
-
-
 * mt/patch-id-stable (2014-06-10) 1 commit
  - patch-id: change default to stable