To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Sep 2014, #01; Tue, 2)
-X-master-at: 85f083786fe37f280ca30fc0b74498b22b322c6d
-X-next-at: 7c4bc81ba6302d4dd40821b46578580afbcdf4b5
+Subject: What's cooking in git.git (Sep 2014, #02; Tue, 9)
+X-master-at: 0c72b98f31bf6eabd75be565a08ffcf0d8e74b1f
+X-next-at: 90a3d47e489b9d2109b72bab5f08275f9af8a3ad
-What's cooking in git.git (Sep 2014, #01; Tue, 2)
+What's cooking in git.git (Sep 2014, #02; Tue, 9)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
-The first batch of topics have graduated to 'master'.
+The second batch of topics have graduated to 'master'. There are
+too many topics waiting to be in 'next' but without comments and
+reviews on the list, which is somewhat disturbing.
You can find the changes described here in the integration branches
of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
-* bc/archive-pax-header-mode (2014-08-04) 1 commit
- (merged to 'next' on 2014-08-26 at 51fca1a)
- + archive: honor tar.umask even for pax headers
+* bc/imap-send-doc (2014-08-05) 1 commit
+ (merged to 'next' on 2014-08-29 at 2ea514b)
+ + imap-send doc: omit confusing "to use imap-send" modifier
- Originally merged to 'next' on 2014-08-13
- Implementations of "tar" that do not understand an extended pax
- header would extract the contents of it in a regular file; make
- sure the permission bits of this file follows the same tar.umask
- configuration setting.
+* jc/apply-ws-prefix (2014-08-07) 3 commits
+ (merged to 'next' on 2014-08-29 at 67967d3)
+ + apply: omit ws check for excluded paths
+ + apply: hoist use_patch() helper for path exclusion up
+ + apply: use the right attribute for paths in non-Git patches
+ Applying a patch not generated by Git in a subdirectory used to
+ check the whitespace breakage using the attributes for incorrect
+ paths. Also whitespace checks were performed even for paths
+ excluded via "git apply --exclude=<path>" mechanism.
-* jc/reopen-lock-file (2014-07-14) 1 commit
- (merged to 'next' on 2014-08-26 at c5a5a12)
- + lockfile: allow reopening a closed but still locked file
- Originally merged to 'next' on 2014-07-21
+* jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
+ (merged to 'next' on 2014-08-29 at 55e28af)
+ + config.mak.uname: add hint on uname_R for MacOS X
+ (this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
- Needed in the "commit -p" code path to update the cache tree in the
- index (e.g. for dt/cache-tree-repair topic).
+* jc/not-mingw-cygwin (2014-07-21) 2 commits
+ (merged to 'next' on 2014-08-29 at 0d00bb7)
+ + test prerequisites: enumerate with commas
+ + test prerequisites: eradicate NOT_FOO
-* jk/pretty-empty-format (2014-07-30) 3 commits
- (merged to 'next' on 2014-08-26 at 1eb7cc3)
- + pretty: make empty userformats truly empty
- + pretty: treat "--format=" as an empty userformat
- + revision: drop useless string offset when parsing "--pretty"
+ We have been using NOT_{MINGW,CYGWIN} test prerequisites long
+ before Peff invented support for negated prerequisites e.g. !MINGW
+ and we still add more uses of the former. Convert them to the
+ latter to avoid confusion.
- Originally merged to 'next' on 2014-08-13
- "git log --pretty/format=" with an empty format string did not mean
- the more obvious "No output whatsoever" but "Use default format",
- which was counterintuitive.
+* jk/command-line-config-empty-string (2014-08-05) 1 commit
+ (merged to 'next' on 2014-08-29 at 74f04af)
+ + config: teach "git -c" to recognize an empty string
+ "git -c section.var command" and "git -c section.var= command"
+ should pass the configuration differently (the former should be
+ a boolean true, the latter should be an empty string).
-* mm/config-edit-global (2014-07-25) 3 commits
- (merged to 'next' on 2014-08-26 at 3a47fc5)
- + commit: advertise config --global --edit on guessed identity
- + home_config_paths(): let the caller ignore xdg path
- + config --global --edit: create a template file if needed
- Originally merged to 'next' on 2014-07-31
+* jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
+ (merged to 'next' on 2014-08-29 at 526e3bd)
+ + git-prompt: do not look for refs/stash in $GIT_DIR
- Start "git config --edit --global" from a skeletal per-user
- configuration file contents, instead of a total blank, when the
- user does not already have any. This immediately reduces the need
- for a later "Have you forgotten setting core.user?" and we can add
- more to the template as we gain more experience.
+ The prompt script checked $GIT_DIR/ref/stash file to see if there
+ is a stash, which was a no-no.
-* pr/remotes-in-hashmap (2014-07-30) 1 commit
- (merged to 'next' on 2014-08-26 at 2052a31)
- + use a hashmap to make remotes faster
+* jk/stash-list-p (2014-08-07) 1 commit
+ (merged to 'next' on 2014-08-29 at db94527)
+ + stash: default listing to working-tree diff
- Originally merged to 'next' on 2014-08-13
+ Teach "git stash list -p" to show the difference between the base
+ commit version and the working tree version, which is in line with
+ what "git show" gives.
- Optimize remotes configuration look-up in a repository with very
- many remotes defined.
+* km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
+ (merged to 'next' on 2014-08-29 at 8abb416)
+ + config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
+ (this branch is used by jc/config-mak-document-darwin-vs-macosx.)
-* rs/init-no-duplicate-real-path (2014-07-28) 1 commit
- (merged to 'next' on 2014-08-26 at c66e1c4)
- + init: avoid superfluous real_path() calls
+ Build automation for older versions of MacOS X.
- Originally merged to 'next' on 2014-07-31
+* la/init-doc (2014-08-08) 7 commits
+ (merged to 'next' on 2014-08-29 at 2cf846b)
+ + Documentation: git-init: flesh out example
+ + Documentation: git-init: template directory: reword and cross-reference
+ + Documentation: git-init: reword parenthetical statements
+ + Documentation: git-init: --separate-git-dir: clarify
+ + Documentation: git-init: template directory: reword
+ + Documentation: git-init: list items facelift
+ + Documentation: git-init: typographical fixes
-* rs/strbuf-getcwd (2014-08-26) 10 commits
- (merged to 'next' on 2014-08-26 at 11be0d6)
- + use strbuf_add_absolute_path() to add absolute paths
- + abspath: convert absolute_path() to strbuf
- + use xgetcwd() to set $GIT_DIR
- + use xgetcwd() to get the current directory or die
- + wrapper: add xgetcwd()
- + abspath: convert real_path_internal() to strbuf
- + abspath: use strbuf_getcwd() to remember original working directory
- + setup: convert setup_git_directory_gently_1 et al. to strbuf
- + unix-sockets: use strbuf_getcwd()
- + strbuf: add strbuf_getcwd()
- (this branch is tangled with nd/lock-paths-absolute.)
- Originally merged to 'next' on 2014-08-18
+* lf/bundle-exclusion (2014-08-07) 1 commit
+ (merged to 'next' on 2014-08-29 at d84b102)
+ + bundle: fix exclusion of annotated tags
- Reduce the use of fixed sized buffer passed to getcwd() calls
- by introducing xgetcwd() helper.
+ "git bundle create" with date-range specification were meant to
+ exclude tags outside the range, but it didn't.
-* ta/config-set (2014-07-29) 2 commits
- (merged to 'next' on 2014-08-26 at 81395f9)
- + test-config: add tests for the config_set API
- + add `config_set` API for caching config-like files
- (this branch is used by ta/config-set-1 and ta/config-set-2.)
+* mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
+ (merged to 'next' on 2014-08-29 at 3580add)
+ + builtin/log.c: fix minor memory leak
- Originally merged to 'next' on 2014-08-13
- Add in-core caching layer to let us avoid reading the same
- configuration files number of times.
+* nd/strbuf-utf8-replace (2014-08-11) 1 commit
+ (merged to 'next' on 2014-08-29 at 5d1ddf4)
+ + utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
-* ta/pretty-parse-config (2014-08-04) 1 commit
- (merged to 'next' on 2014-08-26 at 901e8c2)
- + pretty.c: make git_pretty_formats_config return -1 on git_config_string failure
+* rs/clean-menu-item-defn (2014-08-18) 1 commit
+ (merged to 'next' on 2014-08-29 at 88c1a9d)
+ + clean: use f(void) instead of f() to declare a pointer to a function without arguments
- Originally merged to 'next' on 2014-08-13
---------------------------------------------------
-[New Topics]
+* rs/inline-compat-path-macros (2014-08-18) 1 commit
+ (merged to 'next' on 2014-08-29 at 5705ad5)
+ + turn path macros into inline function
-* bb/date-iso-strict (2014-08-29) 1 commit
- - pretty: provide a strict ISO 8601 date format
+* rs/refresh-beyond-symlink (2014-08-10) 1 commit
+ (merged to 'next' on 2014-08-29 at 90a4a8b)
+ + read-cache: check for leading symlinks when refreshing index
-* jk/commit-author-parsing (2014-08-29) 6 commits
- - determine_author_info(): copy getenv output
- - determine_author_info(): reuse parsing functions
- - date: use strbufs in date-formatting functions
- - record_author_date(): use find_commit_header()
- - record_author_date(): fix memory leak on malformed commit
- - commit: provide a function to find a header in a buffer
+ "git add x" where x that used to be a directory has become a
+ symbolic link to a directory misbehaved.
-* jk/contrib-subtree-make-all (2014-08-18) 1 commit
- - subtree: make "all" default target of Makefile
+* sb/blame-msg-i18n (2014-08-12) 1 commit
+ (merged to 'next' on 2014-08-29 at 5b33466)
+ + builtin/blame.c: add translation to warning about failed revision walk
-* jk/fast-export-anonymize (2014-08-28) 2 commits
- - docs/fast-export: explain --anonymize more completely
- - teach fast-export an --anonymize option
+* sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
+ (merged to 'next' on 2014-08-29 at 4f9ca4f)
+ + mailsplit.c: remove dead code
-* jk/index-pack-threading-races (2014-08-29) 1 commit
- - index-pack: fix race condition with duplicate bases
+* sb/plug-leaks (2014-08-10) 2 commits
+ (merged to 'next' on 2014-08-29 at e42f0b8)
+ + clone.c: don't leak memory in cmd_clone
+ + remote.c: don't leak the base branch name in format_tracking_info
-* jk/send-pack-many-refspecs (2014-08-26) 1 commit
- - send-pack: take refspecs over stdin
+* sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
+ (merged to 'next' on 2014-08-29 at fb82508)
+ + prepare_revision_walk(): check for return value in all places
-* jp/index-with-corrupt-stages (2014-08-29) 2 commits
- - read_index_unmerged(): remove unnecessary loop index adjustment
- - read_index_from(): catch out of order entries when reading an index file
+* so/rebase-doc (2014-08-12) 1 commit
+ (merged to 'next' on 2014-08-29 at 77cfce1)
+ + Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
+ May need further updates to the description to explain what makes
+ various modes of operation to decide that the request can become a
+ "no-op".
-* jt/timer-settime (2014-08-29) 9 commits
- - use timer_settime() for new platforms
- - autoconf: check for timer_settime()
- - autoconf: check for struct itimerspec
- - autoconf: check for struct sigevent
- - autoconf: check for struct timespec
- - autoconf: check for timer_t
- - autoconf: check for setitimer()
- - autoconf: check for struct itimerval
- - git-compat-util.h: add missing semicolon after struct itimerval
- Need a rerolled one.
+* sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
+ (merged to 'next' on 2014-08-29 at b1ae451)
+ + Document LF appearing in shallow command during send-pack/receive-pack
-* mb/build-contrib-svn-fe (2014-08-28) 1 commit
- - contrib/svn-fe: fix Makefile
+* tb/pretty-format-cd-date-format (2014-08-21) 1 commit
+ (merged to 'next' on 2014-08-29 at ab8ccd4)
+ + pretty: note that %cd respects the --date= option
+ Documentation update.
-* mb/fast-import-delete-root (2014-08-29) 2 commits
- - fast-import: fix segfault in store_tree()
- - t9300: test filedelete command
+* tf/imap-send-create (2014-08-25) 2 commits
+ (merged to 'next' on 2014-08-29 at 8390945)
+ + imap-send: create target mailbox if it is missing
+ + imap-send: clarify CRAM-MD5 vs LOGIN documentation
-* mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
- - merge, pull: stop advising 'commit -a' in case of conflict
+--------------------------------------------------
+[New Topics]
-* sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
- (merged to 'next' on 2014-08-29 at b1ae451)
- + Document LF appearing in shallow command during send-pack/receive-pack
+* as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
+ - calloc() and xcalloc() takes nmemb and then size
- Will merge to 'master'.
+ Code clean-up.
+ Will merge to 'next'.
-* ah/grammofix (2014-09-02) 1 commit
- - grammofix in user-facing messages
+* tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
+ - completion: Add --ignore-blank-lines for diff
-* da/styles (2014-09-02) 1 commit
- - stylefix: asterisks stick to the variable, not the type
+ Will merge to 'next'.
-* da/use-rev-parse-verify-quiet-in-stash (2014-09-02) 1 commit
- - stash: prefer --quiet over shell redirection
+* jc/parseopt-verify-short-name (2014-09-04) 1 commit
+ - parse-options: detect attempt to add a duplicate short option name
+ Add checks for a common programming mistake to assign the same
+ short option name to two separate options to help developers.
-* mk/reachable-protect-detached-head (2014-09-02) 2 commits
- - SQUASH???
- - reachable.c: add HEAD to reachability starting commits
+ Will merge to 'next'.
-* rs/furhter-uses-of-skip-prefix (2014-09-02) 2 commits
+* rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
- pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
- connect: simplify check_ref() using skip_prefix() and starts_with()
+ Code clean-up.
-* rs/merge-tree-simplify (2014-09-02) 1 commit
- - merge-tree: remove unused df_conflict arguments
+ Will merge to 'next'.
-* rs/simplify-config-include (2014-09-02) 1 commit
- - config: simplify git_config_include()
+* kb/perf-trace (2014-09-08) 1 commit
+ - trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
+ Compilation fix for some compilers.
-* rs/simplify-http-walker (2014-09-02) 1 commit
- - http-walker: simplify process_alternates_response() using strbuf
+ Will merge to 'next'.
-* tb/crlf-tests (2014-09-02) 3 commits
- - MinGW: update tests to handle a native eol of crlf
- - Makefile: propagate NATIVE_CRLF to C
- - t0027: Tests for core.eol=native, eol=lf, eol=crlf
+* rs/export-strbuf-addchars (2014-09-08) 2 commits
+ - strbuf: use strbuf_addchars() for adding a char multiple times
+ - strbuf: export strbuf_addchars()
+
+ Code clean-up.
+
+ Will merge to 'next'.
--------------------------------------------------
[Stalled]
-* jk/pack-bitmap (2014-08-04) 1 commit
- - pack-bitmap: do not use gcc packed attribute
+* hv/submodule-config (2014-06-30) 4 commits
+ - do not die on error of parsing fetchrecursesubmodules option
+ - use new config API for worktree configurations of submodules
+ - extract functions for submodule config set and lookup
+ - implement submodule config cache for lookup of submodule names
- Hold, waiting for Karsten's replacement.
+ Kicked back to 'pu' per request ($gmane/255610).
-* nd/multiple-work-trees (2014-07-29) 39 commits
- . checkout --to: do not touch existing target directory
- . checkout: prefix --to argument properly when cwd is moved
- . environment.c: fix incorrect git_graft_file initialization
- . checkout --to: fix dangling pointers in remove_junk()
- . checkout: no auto-detach if the ref is already checked out
- . prune --repos: fix uninitialized access
- . checkout: no need to call check_linked_checkouts if head_ref is NULL
- . gitrepository-layout.txt: s/ignored/ignored if/
- . 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
+* jt/timer-settime (2014-08-29) 9 commits
+ - use timer_settime() for new platforms
+ - autoconf: check for timer_settime()
+ - autoconf: check for struct itimerspec
+ - autoconf: check for struct sigevent
+ - autoconf: check for struct timespec
+ - autoconf: check for timer_t
+ - autoconf: check for setitimer()
+ - autoconf: check for struct itimerval
+ - git-compat-util.h: add missing semicolon after struct itimerval
- 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.
+ Reviewed, discussed and wanting for a reroll.
- Reroll posted, but haven't picked up yet. How would this interact
- with rr/transaction series which is pretty much all about the refs?
+
+* jk/pack-bitmap (2014-08-04) 1 commit
+ - pack-bitmap: do not use gcc packed attribute
+
+ Hold, waiting for Karsten's replacement.
* cb/mergetool-difftool (2014-07-21) 2 commits
Reviews sent; waiting for a response.
-* cc/interpret-trailers (2014-05-28) 11 commits
- - Documentation: add documentation for 'git interpret-trailers'
- - trailer: add tests for commands in config file
- - trailer: execute command from 'trailer.<name>.command'
- - trailer: add tests for "git interpret-trailers"
- - trailer: add interpret-trailers command
- - trailer: put all the processing together and print
- - trailer: parse trailers from file or stdin
- - trailer: process command line trailer arguments
- - trailer: read and process config information
- - trailer: process trailers from input message and arguments
- - trailer: add data structures and basic functions
-
- A new filter to programatically edit the tail end of the commit log
- messages.
-
- Reroll exists, but haven't had time to pick it up yet.
-
-
-* 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()
-
- Expecting a reroll.
-
-
* bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
- git-rebase: print name of rev when using shorthand
Expecting a reroll.
-* tr/merge-recursive-index-only (2014-02-05) 3 commits
- - merge-recursive: -Xindex-only to leave worktree unchanged
- - merge-recursive: internal flag to avoid touching the worktree
- - merge-recursive: remove dead conditional in update_stages()
- (this branch is used by tr/remerge-diff.)
-
-
-* tr/remerge-diff (2014-02-26) 5 commits
- . log --remerge-diff: show what the conflict resolution changed
- . name-hash: allow dir hashing even when !ignore_case
- . merge-recursive: allow storing conflict hunks in index
- . revision: fold all merge diff variants into an enum merge_diff_mode
- . combine-diff: do not pass revs->dense_combined_merges redundantly
- (this branch uses tr/merge-recursive-index-only.)
-
- "log -p" output learns a new way to let users inspect a merge
- commit by showing the differences between the automerged result
- with conflicts the person who recorded the merge would have seen
- and the final conflict resolution that was recorded in the merge.
-
- Needs to be rebased, now kb/fast-hashmap topic is in.
-
-
* jk/makefile (2014-02-05) 16 commits
. FIXUP
. move LESS/LV pager environment to Makefile
the right direction, but needs more work to at least get the
mark-up right before public consumption.
- Will hold.
+ Waiting for a reroll (thread ending at $gmane/254746)
* rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
--------------------------------------------------
[Cooking]
-* ta/config-add-to-empty-or-true-fix (2014-08-18) 1 commit
- (merged to 'next' on 2014-08-29 at d219212)
- + make config --add behave correctly for empty and NULL values
+* tr/remerge-diff (2014-09-08) 8 commits
+ - log --remerge-diff: show what the conflict resolution changed
+ - name-hash: allow dir hashing even when !ignore_case
+ - merge-recursive: allow storing conflict hunks in index
+ - merge_diff_mode: fold all merge diff variants into an enum
+ - combine-diff: do not pass revs->dense_combined_merges redundantly
+ - merge-recursive: -Xindex-only to leave worktree unchanged
+ - merge-recursive: internal flag to avoid touching the worktree
+ - merge-recursive: remove dead conditional in update_stages()
- We may want to undo the "a^" bit along the lines of $gmane/255445
+ "log -p" output learns a new way to let users inspect a merge
+ commit by showing the differences between the automerged result
+ with conflicts the person who recorded the merge would have seen
+ and the final conflict resolution that was recorded in the merge.
+ Review comments sent.
+
+
+
+* mh/lockfile (2014-09-08) 33 commits
+ - lockfile.c: store absolute path
+ - Extract a function commit_lock_file_to()
+ - 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
+ - git_config_set_multivar_in_file(): avoid call to rollback_lock_file()
+ - dump_marks(): remove a redundant call to rollback_lock_file()
+ - api-lockfile: document edge cases
+ - commit_lock_file(): rollback lock file on failure to rename
+ - commit_lock_file(): if close fails, roll back
+ - 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(): exit early if lock is not active
+ - 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()
+
+ Rerolled but not reviewed yet.
+
+
+* nd/multiple-work-trees (2014-09-03) 32 commits
+ . t2025: add a test to make sure grafts is working from a linked checkout
+ . 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: reject 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
-* et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
- - upload-pack: keep poll(2)'s timeout to -1
+ 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.
- We used to pass -1000 to poll(2), expecting it to also mean "no
- timeout", which should be spelled as -1.
- Will merge to 'next'.
+* cc/interpret-trailers (2014-05-28) 11 commits
+ - Documentation: add documentation for 'git interpret-trailers'
+ - trailer: add tests for commands in config file
+ - trailer: execute command from 'trailer.<name>.command'
+ - trailer: add tests for "git interpret-trailers"
+ - trailer: add interpret-trailers command
+ - trailer: put all the processing together and print
+ - trailer: parse trailers from file or stdin
+ - trailer: process command line trailer arguments
+ - trailer: read and process config information
+ - trailer: process trailers from input message and arguments
+ - trailer: add data structures and basic functions
+
+ A new filter to programatically edit the tail end of the commit log
+ messages.
+ Comments & reviews?
-* jk/make-simplify-dependencies (2014-08-26) 3 commits
- - Makefile: drop CHECK_HEADER_DEPENDENCIES code
- - Makefile: use `find` to determine static header dependencies
- - i18n: treat "make pot" as an explicitly-invoked target
- Admit that keeping LIB_H up-to-date, only for those that do not use
- the automatically generated dependencies, is a losing battle, and
- make it conservative by making everything depend on anything.
+* bb/date-iso-strict (2014-08-29) 1 commit
+ - pretty: provide a strict ISO 8601 date format
+
+ "log --date=iso" uses a slight variant of ISO 8601 format that is
+ made more human readable. A new "--date=iso-strict" option gives
+ datetime output that is more strictly conformant.
Will merge to 'next'.
-* jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
- (merged to 'next' on 2014-08-29 at 526e3bd)
- + git-prompt: do not look for refs/stash in $GIT_DIR
+* jk/commit-author-parsing (2014-08-29) 6 commits
+ - determine_author_info(): copy getenv output
+ - determine_author_info(): reuse parsing functions
+ - date: use strbufs in date-formatting functions
+ - record_author_date(): use find_commit_header()
+ - record_author_date(): fix memory leak on malformed commit
+ - commit: provide a function to find a header in a buffer
- The prompt script checked $GIT_DIR/ref/stash file to see if there
- is a stash, which was a no-no.
+ Code clean-up.
+
+ Will merge to 'next'.
+
+
+* jk/contrib-subtree-make-all (2014-08-18) 1 commit
+ (merged to 'next' on 2014-09-03 at 919d889)
+ + subtree: make "all" default target of Makefile
Will merge to 'master'.
-* jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
- - pack-refs: prune top-level refs like "refs/foo"
+* jk/fast-export-anonymize (2014-08-28) 2 commits
+ - docs/fast-export: explain --anonymize more completely
+ - teach fast-export an --anonymize option
- After "pack-refs --prune" packed refs at the top-level, it failed
- to prune them.
+ Sometimes users want to report a bug they experience on their
+ repository, but they are not at liberty to share the contents of
+ the repository. "fast-export" was taught an "--anonymize" option
+ to replace blob contents, names of people and paths and log
+ messages with bland and simple strings to help them.
Will merge to 'next'.
-* jk/fast-import-fixes (2014-08-25) 2 commits
- - fast-import: fix buffer overflow in dump_tags
- - fast-import: clean up pack_data pointer in end_packfile
+* jk/index-pack-threading-races (2014-08-29) 1 commit
+ - index-pack: fix race condition with duplicate bases
- With sufficiently long refnames, fast-import could have overflown
- an on-stack buffer.
+ When receiving an invalid pack stream that records the same object
+ twice, multiple threads got confused due to a race. We should
+ reject or correct such a stream upon receiving, but that will be a
+ larger change.
Will merge to 'next'.
-* nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
- - fetch: silence git-gc if --quiet is given
- - fetch: convert argv_gc_auto to struct argv_array
+* jk/send-pack-many-refspecs (2014-08-26) 1 commit
+ - send-pack: take refspecs over stdin
- Progress output from "git gc --auto" was visible in "git fetch -q".
+ The number of refs that can be pushed at once over smart HTTP was
+ limited by the command line length. The limitation has been lifted
+ by passing these refs from the standard input of send-pack.
Will merge to 'next'.
-* rs/list-optim (2014-08-25) 2 commits
- - walker: avoid quadratic list insertion in mark_complete
- - sha1_name: avoid quadratic list insertion in handle_one_ref
+* jp/index-with-corrupt-stages (2014-08-29) 2 commits
+ - read_index_unmerged(): remove unnecessary loop index adjustment
+ - read_index_from(): catch out of order entries when reading an index file
- Fix a couple of "accumulate into a sorted list" to "accumulate and
- then sort the list".
+ A broken reimplementation of Git could write an invalid index that
+ records both stage #0 and higher stage entries for the same path.
+ Notice and reject such an index, as there is no sensible fallback
+ (we do not know if the broken tool wanted to resolve and forgot to
+ remove higher stage entries, or if it wanted to unresolve and
+ forgot to remove the stage#0 entry).
+
+ Will merge to 'next'.
+
+
+* mb/build-contrib-svn-fe (2014-08-28) 1 commit
+ - contrib/svn-fe: fix Makefile
Will merge to 'next'.
-* sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
- (merged to 'next' on 2014-08-29 at 4f9ca4f)
- + mailsplit.c: remove dead code
+* mb/fast-import-delete-root (2014-08-29) 2 commits
+ - fast-import: fix segfault in store_tree()
+ - t9300: test filedelete command
+
+ An attempt to remove the entire tree in the "git fast-import" input
+ stream caused it to misbehave.
+
+ Will merge to 'next'.
+
+
+* mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
+ (merged to 'next' on 2014-09-03 at e3f872f)
+ + merge, pull: stop advising 'commit -a' in case of conflict
+
+ Will merge to 'master'.
+
+
+* ah/grammofix (2014-09-02) 1 commit
+ - grammofix in user-facing messages
+
+ Will merge to 'next'.
+
+
+* da/styles (2014-09-02) 1 commit
+ - stylefix: asterisks stick to the variable, not the type
+
+ Will merge to 'next'.
+
+
+* da/use-rev-parse-verify-quiet-in-stash (2014-09-09) 1 commit
+ - stash: prefer --quiet over shell redirection of the standard error stream
+
+ Will merge to 'next'.
+
+
+* mk/reachable-protect-detached-head (2014-09-03) 1 commit
+ - reachable.c: add HEAD to reachability starting commits
+
+ Will merge to 'next'.
+
+
+* rs/merge-tree-simplify (2014-09-02) 1 commit
+ - merge-tree: remove unused df_conflict arguments
+
+ Code clean-up.
- Will merge to 'master'.
+ Will merge to 'next'.
-* tb/pretty-format-cd-date-format (2014-08-21) 1 commit
- (merged to 'next' on 2014-08-29 at ab8ccd4)
- + pretty: note that %cd respects the --date= option
+* rs/simplify-config-include (2014-09-02) 1 commit
+ - config: simplify git_config_include()
- Documentation update.
+ Code clean-up.
- Will merge to 'master'.
+ Will merge to 'next'.
-* jk/name-decoration-alloc (2014-08-27) 3 commits
- - log-tree: use FLEX_ARRAY in name_decoration
- - log-tree: make name_decoration hash static
- - log-tree: make add_name_decoration a public function
+* rs/simplify-http-walker (2014-09-02) 1 commit
+ - http-walker: simplify process_alternates_response() using strbuf
- The API to allocate the structure to keep track of commit
- decoration was cumbersome to use, inviting lazy code to
- overallocate memory.
+ Code clean-up.
Will merge to 'next'.
-* br/http-init-fix (2014-08-21) 2 commits
- - http: style fixes for curl_multi_init error check
- - http.c: die if curl_*_init fails
+* tb/crlf-tests (2014-09-02) 3 commits
+ - MinGW: update tests to handle a native eol of crlf
+ - Makefile: propagate NATIVE_CRLF to C
+ - t0027: Tests for core.eol=native, eol=lf, eol=crlf
Will merge to 'next'.
-* br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
- - imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
- - imap-send.c: imap_folder -> imap_server_conf.folder
- - git-imap-send: simplify tunnel construction
+* ta/config-add-to-empty-or-true-fix (2014-08-18) 1 commit
+ (merged to 'next' on 2014-08-29 at d219212)
+ + make config --add behave correctly for empty and NULL values
- Will merge to 'next'.
+ We may want to undo the "a^" bit along the lines of $gmane/255445
-* jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
- (merged to 'next' on 2014-08-29 at 55e28af)
- + config.mak.uname: add hint on uname_R for MacOS X
- (this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
+* et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
+ (merged to 'next' on 2014-09-03 at 5be5957)
+ + upload-pack: keep poll(2)'s timeout to -1
+
+ We used to pass -1000 to poll(2), expecting it to also mean "no
+ timeout", which should be spelled as -1.
Will merge to 'master'.
-* jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
- - checkout -m: attempt merge when deletion of path was staged
- - unpack-trees: use 'cuddled' style for if-else cascade
- - unpack-trees: simplify 'all other failures' case
+* jk/make-simplify-dependencies (2014-08-26) 3 commits
+ (merged to 'next' on 2014-09-03 at 820a600)
+ + Makefile: drop CHECK_HEADER_DEPENDENCIES code
+ + Makefile: use `find` to determine static header dependencies
+ + i18n: treat "make pot" as an explicitly-invoked target
- Will merge to 'next'.
+ Admit that keeping LIB_H up-to-date, only for those that do not use
+ the automatically generated dependencies, is a losing battle, and
+ make it conservative by making everything depend on anything.
+ Will merge to 'master'.
-* km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
- (merged to 'next' on 2014-08-29 at 8abb416)
- + config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
- (this branch is used by jc/config-mak-document-darwin-vs-macosx.)
- Build automation for older versions of MacOS X.
+* jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
+ (merged to 'next' on 2014-09-04 at bfe3873)
+ + pack-refs: prune top-level refs like "refs/foo"
- Will merge to 'master'.
+ After "pack-refs --prune" packed refs at the top-level, it failed
+ to prune them.
+ Will merge to 'master'.
-* nd/large-blobs (2014-08-18) 5 commits
- - diff: shortcut for diff'ing two binary SHA-1 objects
- - diff --stat: mark any file larger than core.bigfilethreshold binary
- - diff.c: allow to pass more flags to diff_populate_filespec
- - sha1_file.c: do not die failing to malloc in unpack_compressed_entry
- - wrapper.c: introduce gentle xmallocz that does not die()
- Will merge to 'next'.
+* jk/fast-import-fixes (2014-08-25) 2 commits
+ (merged to 'next' on 2014-09-04 at 74838e5)
+ + fast-import: fix buffer overflow in dump_tags
+ + fast-import: clean up pack_data pointer in end_packfile
+ With sufficiently long refnames, fast-import could have overflown
+ an on-stack buffer.
-* nd/mv-code-cleaning (2014-08-11) 9 commits
- - SQUASH???
- - mv: no SP between function name and the first opening parenthese
- - mv: combine two if(s)
- - mv: unindent one level for directory move code
- - mv: move index search code out
- - mv: remove an "if" that's always true
- - mv: split submodule move preparation code out
- - mv: flatten error handling code block
- - mv: mark strings for translations
+ Will merge to 'master'.
- SQUASH!!! Will merge to 'next'.
+* nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
+ (merged to 'next' on 2014-09-04 at 028cd42)
+ + fetch: silence git-gc if --quiet is given
+ + fetch: convert argv_gc_auto to struct argv_array
-* nd/strbuf-utf8-replace (2014-08-11) 1 commit
- (merged to 'next' on 2014-08-29 at 5d1ddf4)
- + utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
+ Progress output from "git gc --auto" was visible in "git fetch -q".
Will merge to 'master'.
-* rs/clean-menu-item-defn (2014-08-18) 1 commit
- (merged to 'next' on 2014-08-29 at 88c1a9d)
- + clean: use f(void) instead of f() to declare a pointer to a function without arguments
+* rs/list-optim (2014-08-25) 2 commits
+ (merged to 'next' on 2014-09-04 at eecaf99)
+ + walker: avoid quadratic list insertion in mark_complete
+ + sha1_name: avoid quadratic list insertion in handle_one_ref
+
+ Fix a couple of "accumulate into a sorted list" to "accumulate and
+ then sort the list".
Will merge to 'master'.
-* rs/inline-compat-path-macros (2014-08-18) 1 commit
- (merged to 'next' on 2014-08-29 at 5705ad5)
- + turn path macros into inline function
+* jk/name-decoration-alloc (2014-08-27) 3 commits
+ (merged to 'next' on 2014-09-04 at 05f0d29)
+ + log-tree: use FLEX_ARRAY in name_decoration
+ + log-tree: make name_decoration hash static
+ + log-tree: make add_name_decoration a public function
+
+ The API to allocate the structure to keep track of commit
+ decoration was cumbersome to use, inviting lazy code to
+ overallocate memory.
Will merge to 'master'.
-* rs/refresh-beyond-symlink (2014-08-10) 1 commit
- (merged to 'next' on 2014-08-29 at 90a4a8b)
- + read-cache: check for leading symlinks when refreshing index
+* br/http-init-fix (2014-08-21) 2 commits
+ (merged to 'next' on 2014-09-03 at 6d42f5e)
+ + http: style fixes for curl_multi_init error check
+ + http.c: die if curl_*_init fails
- "git add x" where x that used to be a directory has become a
- symbolic link to a directory misbehaved.
+ Code clean-up.
Will merge to 'master'.
-* sb/blame-msg-i18n (2014-08-12) 1 commit
- (merged to 'next' on 2014-08-29 at 5b33466)
- + builtin/blame.c: add translation to warning about failed revision walk
+* br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
+ (merged to 'next' on 2014-09-04 at a182987)
+ + imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
+ + imap-send.c: imap_folder -> imap_server_conf.folder
+ + git-imap-send: simplify tunnel construction
+
+ Code clean-up.
Will merge to 'master'.
-* sb/plug-leaks (2014-08-10) 2 commits
- (merged to 'next' on 2014-08-29 at e42f0b8)
- + clone.c: don't leak memory in cmd_clone
- + remote.c: don't leak the base branch name in format_tracking_info
+* jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
+ (merged to 'next' on 2014-09-04 at e15803a)
+ + checkout -m: attempt merge when deletion of path was staged
+ + unpack-trees: use 'cuddled' style for if-else cascade
+ + unpack-trees: simplify 'all other failures' case
+
+ "git checkout -m" did not switch to another branch while carrying
+ the local changes forward when a path was deleted from the index.
Will merge to 'master'.
-* sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
- (merged to 'next' on 2014-08-29 at fb82508)
- + prepare_revision_walk(): check for return value in all places
+* nd/large-blobs (2014-08-18) 5 commits
+ (merged to 'next' on 2014-09-04 at 16d7c62)
+ + diff: shortcut for diff'ing two binary SHA-1 objects
+ + diff --stat: mark any file larger than core.bigfilethreshold binary
+ + diff.c: allow to pass more flags to diff_populate_filespec
+ + sha1_file.c: do not die failing to malloc in unpack_compressed_entry
+ + wrapper.c: introduce gentle xmallocz that does not die()
+
+ Teach a few codepaths to punt (instead of dying) when large blobs
+ that would not fit in core are involved in the operation.
Will merge to 'master'.
-* so/rebase-doc (2014-08-12) 1 commit
- (merged to 'next' on 2014-08-29 at 77cfce1)
- + Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
+* nd/mv-code-cleaning (2014-09-03) 8 commits
+ (merged to 'next' on 2014-09-03 at 4315447)
+ + mv: no SP between function name and the first opening parenthese
+ + mv: combine two if(s)
+ + mv: unindent one level for directory move code
+ + mv: move index search code out
+ + mv: remove an "if" that's always true
+ + mv: split submodule move preparation code out
+ + mv: flatten error handling code block
+ + mv: mark strings for translations
- May need description on what makes various modes of operation to
- decide that the request can become a "no-op".
+ Code clean-up.
Will merge to 'master'.
- config.c: add git_env_ulong() to parse environment variable
- convert: drop arguments other than 'path' from would_convert_to_git()
- Rerolled.
+ Rerolled. Comments & reviews?
-* jc/push-cert (2014-08-25) 20 commits
+* jc/push-cert (2014-09-08) 22 commits
+ - signed push: allow stale nonce in stateless mode
- signed push: fortify against replay attacks
- - signed-push: add "pushee" header to push certificate
+ - signed push: add "pushee" header to push certificate
- signed push: remove duplicated protocol info
- send-pack: send feature request on push-cert packet
- receive-pack: GPG-validate push certificates
- - the beginning of the signed push
+ - push: the beginning of "git push --signed"
- pack-protocol doc: typofix for PKT-LINE
- gpg-interface: move parse_signature() to where it should be
- gpg-interface: move parse_gpg_output() to where it should be
- send-pack: clarify that cmds_sent is a boolean
- send-pack: refactor inspecting and resetting status and sending commands
- send-pack: rename "new_refs" to "need_pack_data"
+ - receive-pack: factor out capability string generation
- send-pack: factor out capability string generation
- send-pack: always send capabilities
- send-pack: refactor decision to send update per ref
tips of branches at a public repository really point the commits
the pusher wanted to, without having to "trust" the server.
- The tip two feels still a bit slushy, but otherwise should be
- reasonably solid to build upon.
+ Hopefully a final reroll. Comments & reviews?
* rs/child-process-init (2014-08-20) 4 commits
- - run-command: inline prepare_run_command_v_opt()
- - run-command: call run_command_v_opt_cd_env() instead of duplicating it
- - run-command: introduce child_process_init()
- - run-command: introduce CHILD_PROCESS_INIT
-
- Will merge to 'next'.
-
-
-* tf/imap-send-create (2014-08-25) 2 commits
- (merged to 'next' on 2014-08-29 at 8390945)
- + imap-send: create target mailbox if it is missing
- + imap-send: clarify CRAM-MD5 vs LOGIN documentation
-
- Will merge to 'master'.
-
-
-* bc/imap-send-doc (2014-08-05) 1 commit
- (merged to 'next' on 2014-08-29 at 2ea514b)
- + imap-send doc: omit confusing "to use imap-send" modifier
-
- Will merge to 'master'.
-
-
-* jc/apply-ws-prefix (2014-08-07) 3 commits
- (merged to 'next' on 2014-08-29 at 67967d3)
- + apply: omit ws check for excluded paths
- + apply: hoist use_patch() helper for path exclusion up
- + apply: use the right attribute for paths in non-Git patches
-
- Applying a patch not generated by Git in a subdirectory used to
- check the whitespace breakage using the attributes for incorrect
- paths. Also whitespace checks were performed even for paths
- excluded via "git apply --exclude=<path>" mechanism.
-
- Will merge to 'master'.
-
-
-* jk/command-line-config-empty-string (2014-08-05) 1 commit
- (merged to 'next' on 2014-08-29 at 74f04af)
- + config: teach "git -c" to recognize an empty string
-
- "git -c section.var command" and "git -c section.var= command"
- should pass the configuration differently (the former should be
- a boolean true, the latter should be an empty string).
-
- Will merge to 'master'.
-
-
-* la/init-doc (2014-08-08) 7 commits
- (merged to 'next' on 2014-08-29 at 2cf846b)
- + Documentation: git-init: flesh out example
- + Documentation: git-init: template directory: reword and cross-reference
- + Documentation: git-init: reword parenthetical statements
- + Documentation: git-init: --separate-git-dir: clarify
- + Documentation: git-init: template directory: reword
- + Documentation: git-init: list items facelift
- + Documentation: git-init: typographical fixes
+ (merged to 'next' on 2014-09-03 at c17c06c)
+ + run-command: inline prepare_run_command_v_opt()
+ + run-command: call run_command_v_opt_cd_env() instead of duplicating it
+ + run-command: introduce child_process_init()
+ + run-command: introduce CHILD_PROCESS_INIT
- Will merge to 'master'.
-
-
-* lf/bundle-exclusion (2014-08-07) 1 commit
- (merged to 'next' on 2014-08-29 at d84b102)
- + bundle: fix exclusion of annotated tags
-
- Will merge to 'master'.
-
-
-* mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
- (merged to 'next' on 2014-08-29 at 3580add)
- + builtin/log.c: fix minor memory leak
+ Code clean-up.
Will merge to 'master'.
* ta/config-set-1 (2014-08-07) 8 commits
- - add tests for `git_config_get_string_const()`
- - add a test for semantic errors in config files
- - rewrite git_config() to use the config-set API
- - config: add `git_die_config()` to the config-set API
- - change `git_config()` return value to void
- - add line number and file name info to `config_set`
- - config.c: fix accuracy of line number in errors
- - config.c: mark error and warnings strings for translation
+ (merged to 'next' on 2014-09-03 at 184b2ef)
+ + add tests for `git_config_get_string_const()`
+ + add a test for semantic errors in config files
+ + rewrite git_config() to use the config-set API
+ + config: add `git_die_config()` to the config-set API
+ + change `git_config()` return value to void
+ + add line number and file name info to `config_set`
+ + config.c: fix accuracy of line number in errors
+ + config.c: mark error and warnings strings for translation
(this branch is used by ta/config-set-2.)
- Will merge to 'next'.
+ Use the new caching config-set API in git_config() calls.
+
+ Will merge to 'master'.
* ta/config-set-2 (2014-08-13) 15 commits
- - builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
- - merge-recursive.c: replace `git_config()` with `git_config_get_int()`
- - ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
- - fast-import.c: replace `git_config()` with `git_config_get_*()` family
- - branch.c: replace `git_config()` with `git_config_get_string()
- - alias.c: replace `git_config()` with `git_config_get_string()`
- - imap-send.c: replace `git_config()` with `git_config_get_*()` family
- - pager.c: replace `git_config()` with `git_config_get_value()`
- - builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
- - rerere.c: replace `git_config()` with `git_config_get_*()` family
- - fetchpack.c: replace `git_config()` with `git_config_get_*()` family
- - archive.c: replace `git_config()` with `git_config_get_bool()` family
- - read-cache.c: replace `git_config()` with `git_config_get_*()` family
- - http-backend.c: replace `git_config()` with `git_config_get_bool()` family
- - daemon.c: replace `git_config()` with `git_config_get_bool()` family
+ (merged to 'next' on 2014-09-03 at f2eff02)
+ + builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
+ + merge-recursive.c: replace `git_config()` with `git_config_get_int()`
+ + ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
+ + fast-import.c: replace `git_config()` with `git_config_get_*()` family
+ + branch.c: replace `git_config()` with `git_config_get_string()
+ + alias.c: replace `git_config()` with `git_config_get_string()`
+ + imap-send.c: replace `git_config()` with `git_config_get_*()` family
+ + pager.c: replace `git_config()` with `git_config_get_value()`
+ + builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
+ + rerere.c: replace `git_config()` with `git_config_get_*()` family
+ + fetchpack.c: replace `git_config()` with `git_config_get_*()` family
+ + archive.c: replace `git_config()` with `git_config_get_bool()` family
+ + read-cache.c: replace `git_config()` with `git_config_get_*()` family
+ + http-backend.c: replace `git_config()` with `git_config_get_bool()` family
+ + daemon.c: replace `git_config()` with `git_config_get_bool()` family
(this branch uses ta/config-set-1.)
- Will merge to 'next'.
-
-
-* jk/stash-list-p (2014-08-07) 1 commit
- (merged to 'next' on 2014-08-29 at db94527)
- + stash: default listing to working-tree diff
-
- Teach "git stash list -p" to show the difference between the base
- commit version and the working tree version, which is in line with
- what "git show" gives.
+ Update git_config() users with callback functions for a very narrow
+ scope with calls to config-set API that lets us query a single
+ variable.
Will merge to 'master'.
-* rs/ref-transaction-multi (2014-08-27) 6 commits
+* rs/ref-transaction-multi (2014-09-03) 7 commits
- ### rs/ref-transaction-multi
- refs.c: make the *_packed_refs functions static
- refs.c: make repack_without_refs static
- remote.c: use a transaction for deleting refs
- refs.c: write updates to packed refs when a transaction has more than one ref
- refs.c: move reflog updates into its own function
+ - ### rs/ref-transaction-rename
(this branch uses rs/ref-transaction, rs/ref-transaction-1, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
Follow-up on rs/ref-transaction series to use the packed-ref to
achieve atomicity when multiple refs are involved.
- No more nitpicks and better design suggestions?
+ Comments & reviews?
-* rs/ref-transaction-rename (2014-08-27) 6 commits
- - ### rs/ref-transaction-rename
+* rs/ref-transaction-rename (2014-09-03) 6 commits
- refs.c: rollback the lockfile before we die() in repack_without_refs
- refs.c: update rename_ref to use a transaction
- refs.c: use packed refs when deleting refs during a transaction
- refs.c: return error instead of dying when locking fails during transaction
- refs.c: allow passing raw git_committer_info as email to _update_reflog
+ - ### rs/ref-transaction-reflog
(this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction, rs/ref-transaction-1 and rs/ref-transaction-reflog.)
Follow-up on rs/ref-transaction series to make renaming a ref
transactional (i.e. "delete old and create new" should not leave
an in-between state behind when it fails).
- No more nitpicks and better design suggestions?
+ Comments & reviews?
-* rs/ref-transaction-reflog (2014-08-27) 16 commits
- - ### rs/ref-transaction-reflog
+* rs/ref-transaction-reflog (2014-09-03) 16 commits
- refs.c: allow deleting refs with a broken sha1
- refs.c: remove lock_any_ref_for_update
- refs.c: make unlock_ref/close_ref/commit_ref static
- refs.c: rename the transaction functions
- refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
- refs.c: make ref_transaction_create a wrapper to ref_transaction_update
+ - ### rs/ref-transaction
(this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
Cover updates to reflog with the same transaction mechanism as used
for reflog manipulations.
- No more nitpicks and better design suggestions?
-
+ Comments & reviews?
+ Otherwise will merge to 'next'.
-* jc/not-mingw-cygwin (2014-07-21) 2 commits
- (merged to 'next' on 2014-08-29 at 0d00bb7)
- + test prerequisites: enumerate with commas
- + test prerequisites: eradicate NOT_FOO
-
- We have been using NOT_{MINGW,CYGWIN} test prerequisites long
- before Peff invented support for negated prerequisites e.g. !MINGW
- and we still add more uses of the former. Convert them to the
- latter to avoid confusion.
- Will merge to 'master'.
+* rs/ref-transaction (2014-09-03) 13 commits
+ - refs.c: fix handling of badly named refs
+ - 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
+ - refs.c: pass a skip list to name_conflict_fn
+ - refs.c: call lock_ref_sha1_basic directly from commit
+ - refs.c: move the check for valid refname to lock_ref_sha1_basic
+ - refs.c: pass NULL as *flags to read_ref_full
+ - refs.c: pass the ref log message to _create/delete/update instead of _commit
+ - refs.c: add an err argument to delete_ref_loose
+ - wrapper.c: add a new function unlink_or_msg
+ - wrapper.c: simplify warn_if_unremovable
+ - ### rs/ref-transaction-1
+ (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
-* rs/ref-transaction-1 (2014-08-27) 20 commits
- - refs.c: make delete_ref use a transaction
- - refs.c: make prune_ref use a transaction to delete the ref
- - refs.c: remove lock_ref_sha1
- - refs.c: remove the update_ref_write function
- - refs.c: remove the update_ref_lock function
- - refs.c: make lock_ref_sha1 static
- - walker.c: use ref transaction for ref updates
- - fast-import.c: use a ref transaction when dumping tags
- - receive-pack.c: use a reference transaction for updating the refs
- - refs.c: change update_ref to use a transaction
- - branch.c: use ref transaction for all ref updates
- - fast-import.c: change update_branch to use ref transactions
- - sequencer.c: use ref transactions for all ref updates
- - commit.c: use ref transactions for updates
- - replace.c: use the ref transaction functions for updates
- - tag.c: use ref transactions when doing updates
- - refs.c: add transaction.status and track OPEN/CLOSED
- - 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
+ Comments & reviews?
+ Otherwise will merge to 'next'.
+
+
+* rs/ref-transaction-1 (2014-09-03) 22 commits
+ (merged to 'next' on 2014-09-03 at 68e20b8)
+ + update-ref --stdin: pass transaction around explicitly
+ + update-ref --stdin: narrow scope of err strbuf
+ + refs.c: make delete_ref use a transaction
+ + refs.c: make prune_ref use a transaction to delete the ref
+ + refs.c: remove lock_ref_sha1
+ + refs.c: remove the update_ref_write function
+ + refs.c: remove the update_ref_lock function
+ + refs.c: make lock_ref_sha1 static
+ + walker.c: use ref transaction for ref updates
+ + fast-import.c: use a ref transaction when dumping tags
+ + receive-pack.c: use a reference transaction for updating the refs
+ + refs.c: change update_ref to use a transaction
+ + branch.c: use ref transaction for all ref updates
+ + fast-import.c: change update_branch to use ref transactions
+ + sequencer.c: use ref transactions for all ref updates
+ + commit.c: use ref transactions for updates
+ + replace.c: use the ref transaction functions for updates
+ + tag.c: use ref transactions when doing updates
+ + refs.c: add transaction.status and track OPEN/CLOSED
+ + 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
(this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
The second batch of the transactional ref update series.
- A hopefully final reroll exists but haven't picked it up yet.
+
+ Will merge to 'master'.
-* dt/cache-tree-repair (2014-09-02) 5 commits
- - cache-tree: propagate invalidation up when punting
+* dt/cache-tree-repair (2014-09-03) 5 commits
+ (merged to 'next' on 2014-09-03 at 1c8ff65)
+ + cache-tree: do not try to use an invalidated subtree info to build a tree
(merged to 'next' on 2014-08-26 at 6faccdb)
+ 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
- Originally merged to 'next' on 2014-07-21
-
Add a few more places in "commit" and "checkout" that make sure
that the cache-tree is fully populated in the index.
- The tip one is a proposed fix for $gmane/256285, but it is not
- quite right yet.
-
-
-* hv/submodule-config (2014-06-30) 4 commits
- - do not die on error of parsing fetchrecursesubmodules option
- - use new config API for worktree configurations of submodules
- - extract functions for submodule config set and lookup
- - implement submodule config cache for lookup of submodule names
-
- Kicked back to 'pu'.
-
-
-* rs/ref-transaction (2014-08-27) 14 commits
- - ### rs/ref-transaction
- - refs.c: fix handling of badly named refs
- - 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
- - refs.c: pass a skip list to name_conflict_fn
- - refs.c: call lock_ref_sha1_basic directly from commit
- - refs.c: move the check for valid refname to lock_ref_sha1_basic
- - refs.c: pass NULL as *flags to read_ref_full
- - refs.c: pass the ref log message to _create/delete/update instead of _commit
- - refs.c: add an err argument to delete_ref_loose
- - wrapper.c: add a new function unlink_or_msg
- - wrapper.c: simplify warn_if_unremovable
- - ### rs/ref-transaction-1
- (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
+ Will merge to 'master'.
* jc/test-lazy-prereq (2014-06-13) 1 commit
Test-script clean-up.
- Will hold.
+ Comments & reviews?
+ Otherwise will merge to 'next'.
* mt/patch-id-stable (2014-06-10) 1 commit
is backward incompatible, the last bit to flip it to be the default
is left out of 'master' for now.
- Will hold.
+ Nobody seems to be jumping up & down requesting this last step.
+ Perhaps will drop.
+
+
+--------------------------------------------------
+[Discarded]
+
+* tr/merge-recursive-index-only (2014-02-05) 3 commits
+ - merge-recursive: -Xindex-only to leave worktree unchanged
+ - merge-recursive: internal flag to avoid touching the worktree
+ - merge-recursive: remove dead conditional in update_stages()
+
+ Now part of tr/remerge-diff.