To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Aug 2015, #04; Tue, 25)
-X-master-at: 33f2c4ff7b9ac02cd9010d504e847b912b35baf6
-X-next-at: f2c83a76d16e5fd4c4f2e37c6ad65b3ba13dc31e
+Subject: What's cooking in git.git (Aug 2015, #05; Fri, 28)
+X-master-at: aecce6d0eff68a7144e32247d2e02d9974772ab1
+X-next-at: bcd55f746af0c6584187e548b53df1562e68a14d
-What's cooking in git.git (Aug 2015, #04; Tue, 25)
+What's cooking in git.git (Aug 2015, #05; Fri, 28)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* cb/open-noatime-clear-errno (2015-08-12) 1 commit
- (merged to 'next' on 2015-08-17 at 6aa43a1)
- + git_open_noatime: return with errno=0 on success
-
- When trying to see that an object does not exist, a state errno
- leaked from our "first try to open a packfile with O_NOATIME and
- then if it fails retry without it" logic on a system that refuses
- O_NOATIME. This confused us and caused us to die, saying that the
- packfile is unreadable, when we should have just reported that the
- object does not exist in that packfile to the caller.
-
-
-* dt/notes-multiple (2015-08-11) 2 commits
- (merged to 'next' on 2015-08-12 at 0052055)
- + notes: handle multiple worktrees
- + worktrees: add find_shared_symref
-
- When linked worktree is used, simultaneous "notes merge" instances
- for the same ref in refs/notes/* are prevented from stomping on
- each other.
-
-
-* dt/refs-pseudo (2015-08-11) 6 commits
- (merged to 'next' on 2015-08-12 at 7078eb6)
- + pseudoref: check return values from read_ref()
- (merged to 'next' on 2015-08-03 at 3eafd33)
- + sequencer: replace write_cherry_pick_head with update_ref
- + bisect: use update_ref
- + pseudorefs: create and use pseudoref update and delete functions
- + refs: add ref_type function
- + refs: introduce pseudoref and per-worktree ref concepts
-
- To prepare for allowing a different "ref" backend to be plugged in
- to the system, update_ref()/delete_ref() have been taught about
- ref-like things like MERGE_HEAD that are per-worktree (they will
- always be written to the filesystem inside $GIT_DIR).
-
-
-* ee/clean-remove-dirs (2015-08-11) 1 commit
- (merged to 'next' on 2015-08-12 at fc41b09)
- + t7300-clean: require POSIXPERM for chmod 0 test
-
- Test updates for Windows.
-
-
-* jc/finalize-temp-file (2015-08-10) 1 commit
- (merged to 'next' on 2015-08-12 at 6fe62fe)
- + sha1_file.c: rename move_temp_to_file() to finalize_object_file()
-
- Long overdue micro clean-up.
-
-
-* jh/strbuf-read-use-read-in-full (2015-08-10) 1 commit
- (merged to 'next' on 2015-08-12 at db16247)
- + strbuf_read(): skip unnecessary strbuf_grow() at eof
-
- strbuf_read() used to have one extra iteration (and an unnecessary
- strbuf_grow() of 8kB), which was eliminated.
-
-
-* jk/git-path (2015-08-10) 16 commits
- (merged to 'next' on 2015-08-12 at 7ebe864)
- + memoize common git-path "constant" files
- + get_repo_path: refactor path-allocation
- + find_hook: keep our own static buffer
- + refs.c: remove_empty_directories can take a strbuf
- + refs.c: avoid git_path assignment in lock_ref_sha1_basic
- + refs.c: avoid repeated git_path calls in rename_tmp_log
- + refs.c: simplify strbufs in reflog setup and writing
- + path.c: drop git_path_submodule
- + refs.c: remove extra git_path calls from read_loose_refs
- + remote.c: drop extraneous local variable from migrate_file
- + prefer mkpathdup to mkpath in assignments
- + prefer git_pathdup to git_path in some possibly-dangerous cases
- + add_to_alternates_file: don't add duplicate entries
- + t5700: modernize style
- + cache.h: complete set of git_path_submodule helpers
- + cache.h: clarify documentation for git_path, et al
- (this branch is used by sb/submodule-helper.)
-
- git_path() and mkpath() are handy helper functions but it is easy
- to misuse, as the callers need to be careful to keep the number of
- active results below 4. Their uses have been reduced.
-
-
-* jk/guess-repo-name-regression-fix (2015-08-10) 2 commits
- (merged to 'next' on 2015-08-12 at 4cba33c)
- + clone: use computed length in guess_dir_name
- + clone: add tests for output directory
- (this branch is used by ps/guess-repo-name-at-root.)
+* as/docfix-reflog-expire-unreachable (2015-08-21) 1 commit
+ (merged to 'next' on 2015-08-25 at eb75d55)
+ + Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable
- "git clone $URL" in recent releases of Git contains a regression in
- the code that invents a new repository name incorrectly based on
- the $URL. This has been corrected.
+ Docfix.
-* jk/long-error-messages (2015-08-11) 2 commits
- (merged to 'next' on 2015-08-12 at 36303cd)
- + vreportf: avoid intermediate buffer
- + vreportf: report to arbitrary filehandles
+* cc/trailers-corner-case-fix (2015-08-21) 1 commit
+ (merged to 'next' on 2015-08-25 at ac25d80)
+ + trailer: ignore first line of message
- The codepath to produce error messages had a hard-coded limit to
- the size of the message, primarily to avoid memory allocation while
- calling die().
+ "interpret-trailers" helper mistook a single-liner log message that
+ has a colon as the end of existing trailer.
-* jk/negative-hiderefs (2015-08-07) 2 commits
- (merged to 'next' on 2015-08-12 at bdc478d)
- + refs: support negative transfer.hideRefs
- + docs/config.txt: reorder hideRefs config
+* dt/untracked-sparse (2015-08-19) 1 commit
+ (merged to 'next' on 2015-08-25 at 2501a7e)
+ + t7063: use --force-untracked-cache to speed up a bit
+ (this branch is used by dt/untracked-subdir.)
- A negative !ref entry in multi-value transfer.hideRefs
- configuration can be used to say "don't hide this one".
+ Test update.
-* jk/test-with-x (2015-08-07) 2 commits
- (merged to 'next' on 2015-08-12 at 06576a1)
- + test-lib: disable trace when test is not verbose
- + test-lib: turn off "-x" tracing during chain-lint check
+* dt/untracked-subdir (2015-08-19) 2 commits
+ (merged to 'next' on 2015-08-25 at ab4fd04)
+ + untracked cache: fix entry invalidation
+ + untracked-cache: fix subdirectory handling
+ (this branch uses dt/untracked-sparse.)
- Running tests with the "-x" option to make them verbose had some
- unpleasant interactions with other features of the test suite.
+ The experimental untracked-cache feature were buggy when paths with
+ a few levels of subdirectories are involved.
-* mh/tempfile (2015-08-12) 16 commits
- (merged to 'next' on 2015-08-12 at 80efcb7)
- + credential-cache--daemon: use tempfile module
- + credential-cache--daemon: delete socket from main()
- + gc: use tempfile module to handle gc.pid file
- + lock_repo_for_gc(): compute the path to "gc.pid" only once
- + diff: use tempfile module
- + setup_temporary_shallow(): use tempfile module
- + write_shared_index(): use tempfile module
- + register_tempfile(): new function to handle an existing temporary file
- + tempfile: add several functions for creating temporary files
- + prepare_tempfile_object(): new function, extracted from create_tempfile()
- + tempfile: a new module for handling temporary files
- + commit_lock_file(): use get_locked_file_path()
- + lockfile: add accessor get_lock_file_path()
- + lockfile: add accessors get_lock_file_fd() and get_lock_file_fp()
- + create_bundle(): duplicate file descriptor to avoid closing it twice
- + lockfile: move documentation to lockfile.h and lockfile.c
+* ep/http-configure-ssl-version (2015-08-17) 1 commit
+ (merged to 'next' on 2015-08-19 at aab726b)
+ + http: add support for specifying the SSL version
- The "lockfile" API has been rebuilt on top of a new "tempfile" API.
+ A new configuration variable http.sslVersion can be used to specify
+ what specific version of SSL/TLS to use to make a connection.
-* mm/pull-upload-pack (2015-07-30) 1 commit
- (merged to 'next' on 2015-08-12 at 14d2a52)
- + pull.sh: quote $upload_pack when passing it to git-fetch
+* jc/calloc-pathspec (2015-08-20) 1 commit
+ (merged to 'next' on 2015-08-25 at 877490c)
+ + ps_matched: xcalloc() takes nmemb and then element size
- "git pull" in recent releases of Git has a regression in the code
- that allows custom path to the --upload-pack=<program>. This has
- been corrected.
+ Minor code cleanup.
- Note that this is irrelevant for 'master' with "git pull" rewritten
- in C.
+* jv/send-email-selective-smtp-auth (2015-08-17) 1 commit
+ (merged to 'next' on 2015-08-19 at 3f0c693)
+ + send-email: provide whitelist of SMTP AUTH mechanisms
-* nd/dwim-wildcards-as-pathspecs (2015-08-11) 1 commit
- (merged to 'next' on 2015-08-12 at bb73f4d)
- + t2019: skip test requiring '*' in a file name non Windows
+ "git send-email" learned a new option --smtp-auth to limit the SMTP
+ AUTH mechanisms to be used to a subset of what the system library
+ supports.
- Test updates for Windows.
+* po/po-readme (2015-08-17) 1 commit
+ (merged to 'next' on 2015-08-19 at 1899e59)
+ + po/README: Update directions for l10n contributors
-* ps/guess-repo-name-at-root (2015-08-10) 3 commits
- (merged to 'next' on 2015-08-12 at 088860f)
- + clone: abort if no dir name could be guessed
- + clone: do not use port number as dir name
- + clone: do not include authentication data in guessed dir
- (this branch uses jk/guess-repo-name-regression-fix.)
+ Doc updates for i18n.
- "git clone $URL", when cloning from a site whose sole purpose is to
- host a single repository (hence, no path after <scheme>://<site>/),
- tried to use the site name as the new repository name, but did not
- remove username or password when <site> part was of the form
- <user>@<pass>:<host>. The code is taught to redact these.
+* pt/am-builtin-abort-fix (2015-08-19) 1 commit
+ (merged to 'next' on 2015-08-19 at 729e682)
+ + am --skip/--abort: merge HEAD/ORIG_HEAD tree into index
-* ps/t1509-chroot-test-fixup (2015-08-05) 2 commits
- (merged to 'next' on 2015-08-12 at 6d10ea5)
- + tests: fix cleanup after tests in t1509-root-worktree
- + tests: fix broken && chains in t1509-root-worktree
+ "git am" that was recently reimplemented in C had a performance
+ regression in "git am --abort" that goes back to the version before
+ an attempted (and failed) patch application.
- t1509 test that requires a dedicated VM environment had some
- bitrot, which has been corrected.
+* sg/help-group (2015-08-25) 1 commit
+ (merged to 'next' on 2015-08-25 at 907e5a8)
+ + generate-cmdlist: re-implement as shell script
-* pt/am-builtin-options (2015-08-12) 3 commits
- (merged to 'next' on 2015-08-12 at e57f754)
- + am: let --signoff override --no-signoff
- + am: let command-line options override saved options
- + test_terminal: redirect child process' stdin to a pty
- (this branch is used by jc/am-state-fix.)
+ We rewrote one of the build scripts in Perl but this reimplements
+ in Bourne shell.
- After "git am --opt1" stops, running "git am --opt2" pays attention
- to "--opt2" only for the patch that caused the original invocation
- to stop.
+* sg/t3020-typofix (2015-08-20) 1 commit
+ (merged to 'next' on 2015-08-25 at 051d6c0)
+ + t3020: fix typo in test description
-* sb/check-return-from-read-ref (2015-08-03) 1 commit
- (merged to 'next' on 2015-08-12 at 4a1c801)
- + transport-helper: die on errors reading refs.
+* sg/wt-status-header-inclusion (2015-08-21) 1 commit
+ (merged to 'next' on 2015-08-25 at fa5b2b2)
+ + wt-status: move #include "pathspec.h" to the header
-* tb/complete-rebase-i-edit-todo (2015-08-05) 1 commit
- (merged to 'next' on 2015-08-12 at 9606c21)
- + completion: offer '--edit-todo' during interactive rebase
- The command-line completion script (in contrib/) has been updated.
+* ss/fix-config-fd-leak (2015-08-14) 1 commit
+ (merged to 'next' on 2015-08-19 at 80d4880)
+ + config: close config file handle in case of error
--------------------------------------------------
[New Topics]
-* dt/untracked-sparse (2015-08-19) 1 commit
- (merged to 'next' on 2015-08-25 at 2501a7e)
- + t7063: use --force-untracked-cache to speed up a bit
- (this branch is used by dt/untracked-subdir.)
+* ah/pack-objects-usage-strings (2015-08-28) 1 commit
+ - pack-objects: place angle brackets around placeholders in usage strings
- Test update.
+ Usage string fix.
- Will merge to 'master'.
-
-
-* as/docfix-reflog-expire-unreachable (2015-08-21) 1 commit
- (merged to 'next' on 2015-08-25 at eb75d55)
- + Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable
-
- Will merge to 'master'.
-
-
-* cc/trailers-corner-case-fix (2015-08-21) 1 commit
- (merged to 'next' on 2015-08-25 at ac25d80)
- + trailer: ignore first line of message
+ Will merge to 'next'.
- "interpret-trailers" helper mistook a single-liner log message that
- has a colon as the end of existing trailer.
- Will merge to 'master'.
+* ah/read-tree-usage-string (2015-08-28) 1 commit
+ - read-tree: replace bracket set with parentheses to clarify usage
+ Usage string fix.
-* jc/am-state-fix (2015-08-25) 5 commits
- (merged to 'next' on 2015-08-25 at 4efcd88)
- + write_file(): drop caller-supplied LF from calls to create a one-liner file
- + write_file_v(): do not leave incomplete line at the end
- + write_file(): drop "fatal" parameter
- + builtin/am: make sure state files are text
- + builtin/am: introduce write_state_*() helper functions
+ Will merge to 'next'.
- Recent reimplementation of "git am" changed the format of state
- files kept in $GIT_DIR/rebase-apply/ without meaning to do so,
- primarily because write_file() API was cumbersome to use and it was
- easy to mistakenly make text files with incomplete lines. Update
- write_file() interface to make it harder to misuse.
- Will merge to 'master'.
+* ah/reflog-typofix-in-error (2015-08-28) 1 commit
+ - reflog: add missing single quote to error message
+ Error string fix.
-* jc/calloc-pathspec (2015-08-20) 1 commit
- (merged to 'next' on 2015-08-25 at 877490c)
- + ps_matched: xcalloc() takes nmemb and then element size
+ Will merge to 'next'.
- Will merge to 'master'.
+* ah/submodule-typofix-in-error (2015-08-28) 1 commit
+ - git-submodule: remove extraneous space from error message
-* jc/log-p-cc (2015-08-25) 4 commits
- (merged to 'next' on 2015-08-25 at 2d6a6d4)
- + builtin/log.c: minor reformat
- + log: show merge commit when --cc is given
- + log: when --cc is given, default to -p unless told otherwise
- + log: rename "tweak" helpers
+ Error string fix.
- "git log --cc" did not show any patch, even though most of the time
- the user meant "git log --cc -p -m" to see patch output for commits
- with a single parent, and combined diff for merge commits. The
- command is taught to DWIM "--cc" (without "--raw" and other forms
- of output specification) to "--cc -p -m".
+ Will merge to 'next'.
- Will merge to 'master'.
+* br/svn-doc-include-paths-config (2015-08-26) 1 commit
+ - git-svn doc: mention "svn-remote.<name>.include-paths"
-* jk/fix-alias-pager-config-key-warnings (2015-08-24) 1 commit
- (merged to 'next' on 2015-08-25 at 89eac5a)
- + config: silence warnings for command names with invalid keys
+ Will merge to 'next'.
- Because the configuration system does not allow "alias.0foo" and
- "pager.0foo" as the configuration key, the user cannot use '0foo'
- as a custom command name anyway, but "git 0foo" tried to look these
- keys up and emitted useless warnings before saying '0foo is not a
- git command'. These warning messages have been squelched.
- Will merge to 'master'.
+* dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update (2015-08-28) 1 commit
+ - commit: don't rewrite shared index unnecessarily
+ When re-priming the cache-tree opportunistically while committing
+ the in-core index as-is, we mistakenly invalidated the in-core
+ index too aggressively, causing the experimental split-index code
+ to unnecessarily rewrite the on-disk index file(s).
-* jk/rev-list-has-no-notes (2015-08-24) 1 commit
- (merged to 'next' on 2015-08-25 at 73cb2ad)
- + rev-list: make it obvious that we do not support notes
+ Will merge to 'next'.
- "git rev-list" does not take "--notes" option, but did not complain
- when one is given.
- Will merge to 'master'.
+* dt/refs-bisection (2015-08-28) 5 commits
+ - bisect: make bisection refs per-worktree
+ - refs: make refs/worktree/* per-worktree
+ - SQUASH???
+ - path: optimize common dir checking
+ - refs: clean up common_list
+ Move the refs used during a "git bisect" session to per-worktree
+ hierarchy refs/worktree/* so that independent bisect sessions can
+ be done in different worktrees.
-* kn/for-each-tag (2015-08-25) 15 commits
- - SQUASH??? a tag longer than 15 bytes break alignment but keeps SP before the message
- - tag.c: implement '--merged' and '--no-merged' options
- - tag.c: implement '--format' option
- - tag.c: use 'ref-filter' APIs
- - tag.c: use 'ref-filter' data structures
- - ref-filter: add option to match literal pattern
- - ref-filter: add support to sort by version
- - ref-filter: support printing N lines from tag annotation
- - ref-filter: add option to filter out tags, branches and remotes
- - ref-filter: implement an `align` atom
- - utf8: add function to align a string into given strbuf
- - ref-filter: introduce ref_formatting_state and ref_formatting_stack
- - ref-filter: move `struct atom_value` to ref-filter.c
- - Merge 'jk/git-path' into kn/for-each-tag
- - Merge 'kn/for-each-tag-branch' into kn/for-each-tag
- (this branch uses kn/for-each-tag-branch.)
+ Will merge to 'next' after squashing the update in.
- The "ref-filter" code was taught about many parts of what "tag -l"
- does and then "tag -l" is reimplemented in terms of "ref-filter".
- Almost there...
+* ld/p4-import-labels (2015-08-28) 3 commits
+ - git-p4: fix P4 label import for unprocessed commits
+ - git-p4: do not terminate creating tag for unknown commit
+ - git-p4: failing test for ignoring invalid p4 labels
-* nd/fixup-linked-gitdir (2015-08-25) 1 commit
- - setup: update the right file in multiple checkouts
+* ls/p4-fold-case-client-specs (2015-08-28) 1 commit
+ - git-p4: honor core.ignorecase when using P4 client specs
- The code in "multiple-worktree" support that attempted to recover
- from an inconsistent state updated an incorrect file.
+ On case insensitive systems, "git p4" did not work well with client
+ specs.
Will merge to 'next'.
+* rs/archive-zip-many (2015-08-28) 3 commits
+ - archive-zip: support more than 65535 entries
+ - archive-zip: use a local variable to store the creator version
+ - t5004: test ZIP archives with many entries
-* nd/ita-cleanup (2015-08-25) 6 commits
- - grep: make it clear i-t-a entries are ignored
- - checkout(-index): do not checkout i-t-a entries
- - apply: make sure check_preimage() does not leave empty file on error
- - apply: fix adding new files on i-t-a entries
- - Add and use convenient macro ce_intent_to_add()
- - blame: remove obsolete comment
-
- Paths that have been told the index about with "add -N" are not yet
- in the index, but various commands behaved as if they already are.
-
- Some commits need better explanation.
-
- Waiting for a reroll.
-
-
-* sg/describe-contains (2015-08-25) 1 commit
- - describe --contains: default to HEAD when no commit-ish is given
-
- "git describe" without argument defaulted to describe the HEAD
- commit, but "git describe --contains" didn't. Arguably, in a
- repository used for active development, such defaulting would not
- be very useful as the tip of branch is typically not tagged, but it
- is better to be consistent.
+ "git archive" did not use zip64 extension when creating an archive
+ with more than 64k entries, which nobody should need, right ;-)?
Will merge to 'next'.
-* sg/help-group (2015-08-25) 1 commit
- (merged to 'next' on 2015-08-25 at 907e5a8)
- + generate-cmdlist: re-implement as shell script
-
- We rewrote one of the build scripts in Perl but this reimplements
- in Bourne shell.
-
- Will merge to 'master'.
-
-
-* sg/t3020-typofix (2015-08-20) 1 commit
- (merged to 'next' on 2015-08-25 at 051d6c0)
- + t3020: fix typo in test description
-
- Will merge to 'master'.
-
+* rt/remove-hold-lockfile-for-append (2015-08-28) 1 commit
+ - lockfile: remove function "hold_lock_file_for_append"
-* sg/wt-status-header-inclusion (2015-08-21) 1 commit
- (merged to 'next' on 2015-08-25 at fa5b2b2)
- + wt-status: move #include "pathspec.h" to the header
-
- Will merge to 'master'.
+ Will merge to 'next'.
--------------------------------------------------
[Stalled]
worse, atoi()). Introduce a set of wrappers that try to be more
careful.
- Expecting a reroll.
+ Waiting for a reroll.
($gmane/268058).
This is the first two commits in a three-patch series $gmane/266962
- Expecting a reroll.
+ Waiting for a reroll.
with updated log message ($gmane/268061).
- show-index: uniform error messages for index read
The tip was RFC.
- Expecting a reroll.
+ Waiting for a reroll.
* jk/log-missing-default-HEAD (2015-06-03) 1 commit
Introduce "branch^{/!-<pattern>}" notation to name a commit
reachable from branch that does not match the given pattern.
- Expecting a reroll.
+ Waiting for a reroll.
* mk/utf8-no-iconv-warn (2015-06-08) 1 commit
iconv support when the specified encoding is not available, but the
patch does not go there.
- Expecting a reroll.
+ Waiting for a reroll.
* ak/format-patch-odir-config (2015-06-19) 1 commit
Reroll exists but didn't pick it up as it seemed to be still
collecting review comments.
- Expecting a reroll.
+ Waiting for a reroll.
($gmane/272180).
--------------------------------------------------
[Cooking]
-* db/push-sign-if-asked (2015-08-19) 9 commits
- - push: add a config option push.gpgSign for default signed pushes
- - push: support signing pushes iff the server supports it
- - builtin/send-pack.c: use parse_options API
- - config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool
- - transport: remove git_transport_options.push_cert
- - gitremote-helpers.txt: document pushcert option
- - Documentation/git-send-pack.txt: document --signed
- - Documentation/git-send-pack.txt: wrap long synopsis line
- - Documentation/git-push.txt: document when --signed may fail
+* jc/am-state-fix (2015-08-25) 5 commits
+ (merged to 'next' on 2015-08-25 at 4efcd88)
+ + write_file(): drop caller-supplied LF from calls to create a one-liner file
+ + write_file_v(): do not leave incomplete line at the end
+ + write_file(): drop "fatal" parameter
+ + builtin/am: make sure state files are text
+ + builtin/am: introduce write_state_*() helper functions
- The client side codepaths in "git push" have been cleaned up
- and the user can request to perform an optional "signed push",
- i.e. sign only when the other end accepts signed push.
+ Recent reimplementation of "git am" changed the format of state
+ files kept in $GIT_DIR/rebase-apply/ without meaning to do so,
+ primarily because write_file() API was cumbersome to use and it was
+ easy to mistakenly make text files with incomplete lines. Update
+ write_file() interface to make it harder to misuse.
- I think this is ready for 'next', but did I miss comments that need
- to be addressed before it happens?
+ Will merge to 'master'.
-* dk/gc-idx-wo-pack (2015-08-17) 3 commits
- - DONTMERGE: log message, grace-period and tests $gmane/276058
- - gc: remove stale .idx files without corresponding .pack file
- - prepare_packed_git(): refactor garbage reporting in pack directory
+* jc/log-p-cc (2015-08-25) 4 commits
+ (merged to 'next' on 2015-08-25 at 2d6a6d4)
+ + builtin/log.c: minor reformat
+ + log: show merge commit when --cc is given
+ + log: when --cc is given, default to -p unless told otherwise
+ + log: rename "tweak" helpers
- Having a leftover .idx file without correspoinding .pack file in
- the repository hurts performance; "git gc" learned to prune them.
+ "git log --cc" did not show any patch, even though most of the time
+ the user meant "git log --cc -p -m" to see patch output for commits
+ with a single parent, and combined diff for merge commits. The
+ command is taught to DWIM "--cc" (without "--raw" and other forms
+ of output specification) to "--cc -p -m".
- Expecting a reroll.
+ Will merge to 'master'.
-* ep/http-configure-ssl-version (2015-08-17) 1 commit
- (merged to 'next' on 2015-08-19 at aab726b)
- + http: add support for specifying the SSL version
+* jk/fix-alias-pager-config-key-warnings (2015-08-24) 1 commit
+ (merged to 'next' on 2015-08-25 at 89eac5a)
+ + config: silence warnings for command names with invalid keys
- A new configuration variable http.sslVersion can be used to specify
- what specific version of SSL/TLS to use to make a connection.
+ Because the configuration system does not allow "alias.0foo" and
+ "pager.0foo" as the configuration key, the user cannot use '0foo'
+ as a custom command name anyway, but "git 0foo" tried to look these
+ keys up and emitted useless warnings before saying '0foo is not a
+ git command'. These warning messages have been squelched.
Will merge to 'master'.
-* jv/send-email-selective-smtp-auth (2015-08-17) 1 commit
- (merged to 'next' on 2015-08-19 at 3f0c693)
- + send-email: provide whitelist of SMTP AUTH mechanisms
+* jk/rev-list-has-no-notes (2015-08-24) 1 commit
+ (merged to 'next' on 2015-08-25 at 73cb2ad)
+ + rev-list: make it obvious that we do not support notes
- "git send-email" learned a new option --smtp-auth to limit the SMTP
- AUTH mechanisms to be used to a subset of what the system library
- supports.
+ "git rev-list" does not take "--notes" option, but did not complain
+ when one is given.
Will merge to 'master'.
-* po/po-readme (2015-08-17) 1 commit
- (merged to 'next' on 2015-08-19 at 1899e59)
- + po/README: Update directions for l10n contributors
+* kn/for-each-tag (2015-08-25) 15 commits
+ - SQUASH??? a tag longer than 15 bytes break alignment but keeps SP before the message
+ - tag.c: implement '--merged' and '--no-merged' options
+ - tag.c: implement '--format' option
+ - tag.c: use 'ref-filter' APIs
+ - tag.c: use 'ref-filter' data structures
+ - ref-filter: add option to match literal pattern
+ - ref-filter: add support to sort by version
+ - ref-filter: support printing N lines from tag annotation
+ - ref-filter: add option to filter out tags, branches and remotes
+ - ref-filter: implement an `align` atom
+ - utf8: add function to align a string into given strbuf
+ - ref-filter: introduce ref_formatting_state and ref_formatting_stack
+ - ref-filter: move `struct atom_value` to ref-filter.c
+ - Merge 'jk/git-path' into kn/for-each-tag
+ - Merge 'kn/for-each-tag-branch' into kn/for-each-tag
+ (this branch uses kn/for-each-tag-branch.)
+
+ The "ref-filter" code was taught about many parts of what "tag -l"
+ does and then "tag -l" is reimplemented in terms of "ref-filter".
+
+ Almost there...
+ Waiting for a reroll.
+ ($gmane/276615, $gmane/276529, $gmane/276607, $gmane/276606, etc.)
+
+
+* nd/fixup-linked-gitdir (2015-08-25) 1 commit
+ (merged to 'next' on 2015-08-26 at 7b8a1aa)
+ + setup: update the right file in multiple checkouts
+
+ The code in "multiple-worktree" support that attempted to recover
+ from an inconsistent state updated an incorrect file.
Will merge to 'master'.
-* pt/am-builtin-abort-fix (2015-08-19) 1 commit
- (merged to 'next' on 2015-08-19 at 729e682)
- + am --skip/--abort: merge HEAD/ORIG_HEAD tree into index
+* nd/ita-cleanup (2015-08-25) 6 commits
+ - grep: make it clear i-t-a entries are ignored
+ - checkout(-index): do not checkout i-t-a entries
+ - apply: make sure check_preimage() does not leave empty file on error
+ - apply: fix adding new files on i-t-a entries
+ - Add and use convenient macro ce_intent_to_add()
+ - blame: remove obsolete comment
- "git am" that was recently reimplemented in C had a performance
- regression in "git am --abort" that goes back to the version before
- an attempted (and failed) patch application.
+ Paths that have been told the index about with "add -N" are not yet
+ in the index, but various commands behaved as if they already are.
+
+ Some commits need better explanation.
+
+ Waiting for a reroll.
+
+
+* sg/describe-contains (2015-08-25) 1 commit
+ (merged to 'next' on 2015-08-26 at a7c66d9)
+ + describe --contains: default to HEAD when no commit-ish is given
+
+ "git describe" without argument defaulted to describe the HEAD
+ commit, but "git describe --contains" didn't. Arguably, in a
+ repository used for active development, such defaulting would not
+ be very useful as the tip of branch is typically not tagged, but it
+ is better to be consistent.
Will merge to 'master'.
-* ss/fix-config-fd-leak (2015-08-14) 1 commit
- (merged to 'next' on 2015-08-19 at 80d4880)
- + config: close config file handle in case of error
+* db/push-sign-if-asked (2015-08-19) 9 commits
+ (merged to 'next' on 2015-08-26 at a7a32e9)
+ + push: add a config option push.gpgSign for default signed pushes
+ + push: support signing pushes iff the server supports it
+ + builtin/send-pack.c: use parse_options API
+ + config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool
+ + transport: remove git_transport_options.push_cert
+ + gitremote-helpers.txt: document pushcert option
+ + Documentation/git-send-pack.txt: document --signed
+ + Documentation/git-send-pack.txt: wrap long synopsis line
+ + Documentation/git-push.txt: document when --signed may fail
+
+ The client side codepaths in "git push" have been cleaned up
+ and the user can request to perform an optional "signed push",
+ i.e. sign only when the other end accepts signed push.
Will merge to 'master'.
+* dk/gc-idx-wo-pack (2015-08-17) 3 commits
+ - DONTMERGE: log message, grace-period and tests $gmane/276058
+ - gc: remove stale .idx files without corresponding .pack file
+ - prepare_packed_git(): refactor garbage reporting in pack directory
+
+ Having a leftover .idx file without correspoinding .pack file in
+ the repository hurts performance; "git gc" learned to prune them.
+
+ Waiting for a reroll.
+
+
* bb/remote-get-url (2015-08-05) 1 commit
- remote: add get-url subcommand
* jk/notes-merge-config (2015-08-17) 6 commits
- - notes: teach git-notes about notes.<name>.mergeStrategy option
- - notes: add notes.mergeStrategy option to select default strategy
- - notes: add tests for --commit/--abort/--strategy exclusivity
- - notes: extract parse_notes_merge_strategy to notes-utils
- - notes: extract enum notes_merge_strategy to notes-utils.h
- - notes: document cat_sort_uniq rewriteMode
+ (merged to 'next' on 2015-08-26 at 6dd2286)
+ + notes: teach git-notes about notes.<name>.mergeStrategy option
+ + notes: add notes.mergeStrategy option to select default strategy
+ + notes: add tests for --commit/--abort/--strategy exclusivity
+ + notes: extract parse_notes_merge_strategy to notes-utils
+ + notes: extract enum notes_merge_strategy to notes-utils.h
+ + notes: document cat_sort_uniq rewriteMode
"git notes merge" can be told with "--strategy=<how>" option how to
automatically handle conflicts; this can now be configured by
setting notes.merge configuration variable.
- I think this is ready for 'next', but did I miss comments that need
- to be addressed before it happens?
+ Will merge to 'master'.
* hv/submodule-config (2015-08-19) 4 commits
Will merge to 'master'.
-* sb/submodule-helper (2015-08-25) 7 commits
+* sb/submodule-helper (2015-08-26) 6 commits
- submodule: helper to run foreach in parallel
- thread-utils: add a threaded task queue
- - FIXUP submodule: implement `module_clone` as a builtin helper
- submodule: implement `module_clone` as a builtin helper
- submodule: implement `module_name` as a builtin helper
- submodule: implement `module_list` as a builtin helper
incrementally. These early part looks promising.
-* dt/untracked-subdir (2015-08-19) 2 commits
- (merged to 'next' on 2015-08-25 at ab4fd04)
- + untracked cache: fix entry invalidation
- + untracked-cache: fix subdirectory handling
- (this branch uses dt/untracked-sparse.)
-
- The experimental untracked-cache feature were buggy when paths with
- a few levels of subdirectories are involved.
-
- Will merge to 'master'.
-
-
* ad/cygwin-wants-rename (2015-08-07) 1 commit
- config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
* jc/rerere (2015-07-24) 21 commits
- - rerere: un-nest merge() further
- - rerere: use "struct rerere_id" instead of "char *" for conflict ID
- - rerere: call conflict-ids IDs
- - rerere: further clarify do_rerere_one_path()
- - rerere: further de-dent do_plain_rerere()
- - rerere: refactor "replay" part of do_plain_rerere()
- - rerere: explain the remainder
- - rerere: explain "rerere forget" codepath
- - rerere: explain the primary codepath
- - rerere: explain MERGE_RR management helpers
- - rerere: fix benign off-by-one non-bug and clarify code
- - rerere: explain the rerere I/O abstraction
- - rerere: do not leak mmfile[] for a path with multiple stage #1 entries
- - rerere: stop looping unnecessarily
- - rerere: drop want_sp parameter from is_cmarker()
- - rerere: report autoupdated paths only after actually updating them
- - rerere: write out each record of MERGE_RR in one go
- - rerere: lift PATH_MAX limitation
- - rerere: plug conflict ID leaks
- - rerere: handle conflicts with multiple stage #1 entries
- - rerere: fix an off-by-one non-bug
+ (merged to 'next' on 2015-08-26 at 8ae15ef)
+ + rerere: un-nest merge() further
+ + rerere: use "struct rerere_id" instead of "char *" for conflict ID
+ + rerere: call conflict-ids IDs
+ + rerere: further clarify do_rerere_one_path()
+ + rerere: further de-dent do_plain_rerere()
+ + rerere: refactor "replay" part of do_plain_rerere()
+ + rerere: explain the remainder
+ + rerere: explain "rerere forget" codepath
+ + rerere: explain the primary codepath
+ + rerere: explain MERGE_RR management helpers
+ + rerere: fix benign off-by-one non-bug and clarify code
+ + rerere: explain the rerere I/O abstraction
+ + rerere: do not leak mmfile[] for a path with multiple stage #1 entries
+ + rerere: stop looping unnecessarily
+ + rerere: drop want_sp parameter from is_cmarker()
+ + rerere: report autoupdated paths only after actually updating them
+ + rerere: write out each record of MERGE_RR in one go
+ + rerere: lift PATH_MAX limitation
+ + rerere: plug conflict ID leaks
+ + rerere: handle conflicts with multiple stage #1 entries
+ + rerere: fix an off-by-one non-bug
(this branch is used by jc/rerere-multi.)
- Code clean-up and minor fixes (so far).
+ Code clean-up and minor fixes.
- Will merge to 'next'.
+ Will merge to 'master'.
* jc/rerere-multi (2015-07-30) 7 commits