From a41223870171cf93d4f9bb7d33bdb030974dccbf Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 25 Aug 2015 16:21:04 -0700 Subject: [PATCH] What's cooking (2015/08 #04) --- whats-cooking.txt | 870 ++++++++++++++++++++++++++-------------------- 1 file changed, 502 insertions(+), 368 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index cc877cdbf8..29030af3b9 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,20 +1,16 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Aug 2015, #03; Mon, 17) -X-master-at: 44e02239f41177b6a7567e86db2cd18f7949d941 -X-next-at: ab17608326e73d8e92eba73c51dac99aa92984ba +Subject: What's cooking in git.git (Aug 2015, #04; Tue, 25) +X-master-at: 33f2c4ff7b9ac02cd9010d504e847b912b35baf6 +X-next-at: f2c83a76d16e5fd4c4f2e37c6ad65b3ba13dc31e -What's cooking in git.git (Aug 2015, #03; Mon, 17) +What's cooking in git.git (Aug 2015, #04; Tue, 25) -------------------------------------------------- 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 second batch of topics have graduated to 'master'. Most -notably, the rewritten "git am" is in. Also "worktree add" is -getting improved. - You can find the changes described here in the integration branches of the repositories listed at @@ -23,111 +19,415 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* dt/untracked-sparse (2015-07-31) 1 commit - (merged to 'next' on 2015-08-12 at 234434d) - + untracked-cache: support sparse checkout - (this branch is used by dt/untracked-subdir.) +* 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 - Allow untracked cache (experimental) to be used when sparse - checkout (experimental) is also in use. + 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. -* kd/pull-rebase-autostash (2015-07-22) 1 commit - (merged to 'next' on 2015-08-12 at de88e8e) - + pull: allow dirty tree when rebase.autostash enabled +* 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 - "git pull --rebase" has been taught to pay attention to - rebase.autostash configuration. + When linked worktree is used, simultaneous "notes merge" instances + for the same ref in refs/notes/* are prevented from stomping on + each other. -* mh/get-remote-group-fix (2015-07-28) 4 commits - (merged to 'next' on 2015-08-12 at b77820e) - + get_remote_group(): use skip_prefix() - + get_remote_group(): eliminate superfluous call to strcspn() - + get_remote_group(): rename local variable "space" to "wordlen" - + get_remote_group(): handle remotes with single-character names +* 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 - An off-by-one error made "git remote" to mishandle a remote with a - single letter nickname. + 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). -* ta/docfix-index-format-tech (2015-07-28) 1 commit - (merged to 'next' on 2015-08-12 at 662d88a) - + typofix for index-format.txt +* 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.) + + "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. + + +* jk/long-error-messages (2015-08-11) 2 commits + (merged to 'next' on 2015-08-12 at 36303cd) + + vreportf: avoid intermediate buffer + + vreportf: report to arbitrary filehandles + + The codepath to produce error messages had a hard-coded limit to + the size of the message, primarily to avoid memory allocation while + calling die(). + + +* 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 + + A negative !ref entry in multi-value transfer.hideRefs + configuration can be used to say "don't hide this one". + + +* jk/test-with-x (2015-08-07) 2 commits + (merged to 'next' on 2015-08-12 at 06576a1) + + test-lib: disable trace when test is not verbose + + test-lib: turn off "-x" tracing during chain-lint check + + Running tests with the "-x" option to make them verbose had some + unpleasant interactions with other features of the test suite. + + +* mh/tempfile (2015-08-12) 16 commits + (merged to 'next' on 2015-08-12 at 80efcb7) + + credential-cache--daemon: use tempfile module + + credential-cache--daemon: delete socket from main() + + gc: use tempfile module to handle gc.pid file + + lock_repo_for_gc(): compute the path to "gc.pid" only once + + diff: use tempfile module + + setup_temporary_shallow(): use tempfile module + + write_shared_index(): use tempfile module + + register_tempfile(): new function to handle an existing temporary file + + tempfile: add several functions for creating temporary files + + prepare_tempfile_object(): new function, extracted from create_tempfile() + + tempfile: a new module for handling temporary files + + commit_lock_file(): use get_locked_file_path() + + lockfile: add accessor get_lock_file_path() + + lockfile: add accessors get_lock_file_fd() and get_lock_file_fp() + + create_bundle(): duplicate file descriptor to avoid closing it twice + + lockfile: move documentation to lockfile.h and lockfile.c + + The "lockfile" API has been rebuilt on top of a new "tempfile" API. + + +* 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 + + "git pull" in recent releases of Git has a regression in the code + that allows custom path to the --upload-pack=. This has + been corrected. + + Note that this is irrelevant for 'master' with "git pull" rewritten + in C. + + +* nd/dwim-wildcards-as-pathspecs (2015-08-11) 1 commit + (merged to 'next' on 2015-08-12 at bb73f4d) + + t2019: skip test requiring '*' in a file name non Windows + + Test updates for Windows. + + +* ps/guess-repo-name-at-root (2015-08-10) 3 commits + (merged to 'next' on 2015-08-12 at 088860f) + + clone: abort if no dir name could be guessed + + clone: do not use port number as dir name + + clone: do not include authentication data in guessed dir + (this branch uses jk/guess-repo-name-regression-fix.) + + "git clone $URL", when cloning from a site whose sole purpose is to + host a single repository (hence, no path after :///), + tried to use the site name as the new repository name, but did not + remove username or password when part was of the form + @:. The code is taught to redact these. + + +* 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 + + t1509 test that requires a dedicated VM environment had some + bitrot, which has been corrected. + + +* 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.) + + After "git am --opt1" stops, running "git am --opt2" pays attention + to "--opt2" only for the patch that caused the original invocation + to stop. + + +* 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. + + +* 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. -------------------------------------------------- [New Topics] -* db/push-sign-if-asked (2015-08-17) 7 commits - - DONTMERGE: dropped bits to add config; needs tests - - push: support signed pushes iff the server supports it - - 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 +* 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.) - 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. + Test update. - Expecting a reroll. + 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 +* 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 - Having a leftover .idx file without correspoinding .pack file in - the repository hurts performance; "git gc" learned to prune them. - - Expecting a reroll. + Will merge to 'master'. -* ep/http-configure-ssl-version (2015-08-17) 1 commit - - http: add support for specifying the SSL version +* 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 - A new configuration variable http.sslVersion can be used to specify - what specific version of SSL/TLS to use to make a connection. + "interpret-trailers" helper mistook a single-liner log message that + has a colon as the end of existing trailer. + + Will merge to 'master'. + + +* 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 + + 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'. + + +* 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 'master'. + + +* 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 + + "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 'master'. + + +* 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 + + 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'. + + +* 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 rev-list" does not take "--notes" option, but did not complain + when one is given. + + Will merge to 'master'. + + +* 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... + + +* nd/fixup-linked-gitdir (2015-08-25) 1 commit + - 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 'next'. -* jv/send-email-selective-smtp-auth (2015-08-17) 1 commit - - send-email: provide whitelist of SMTP AUTH mechanisms +* 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 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. + 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. Will merge to 'next'. -* po/po-readme (2015-08-17) 1 commit - - po/README: Update directions for l10n contributors +* sg/help-group (2015-08-25) 1 commit + (merged to 'next' on 2015-08-25 at 907e5a8) + + generate-cmdlist: re-implement as shell script - Will merge to 'next'. + We rewrote one of the build scripts in Perl but this reimplements + in Bourne shell. + + Will merge to 'master'. -* pt/am-builtin-abort-fix (2015-08-17) 1 commit - - am --abort: merge ORIG_HEAD tree into index +* sg/t3020-typofix (2015-08-20) 1 commit + (merged to 'next' on 2015-08-25 at 051d6c0) + + t3020: fix typo in test description - "git am" that has 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. - - Will merge to 'next'. + Will merge to 'master'. -* ss/fix-config-fd-leak (2015-08-14) 1 commit - - config: close config file handle in case of error +* 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 'next'. + Will merge to 'master'. -------------------------------------------------- [Stalled] +* sb/remove-get-pathspec (2015-08-03) 1 commit + - builtin/mv: remove get_pathspec() + + Will discard. + ($gmane/276104) + + +* mk/submodule-gitdir-path (2015-08-05) 2 commits + - path: implement common_dir handling in git_path_submodule() + - submodule refactor: use git_path_submodule() in add_submodule_odb() + + The submodule code has been taught to work better with separate + work trees created via "git worktree add". + + Waiting for a review. + ($gmane/275340). + + * nd/list-files (2015-02-09) 21 commits - t3080: tests for git-list-files - list-files: -M aka diff-cached @@ -235,19 +535,6 @@ of the repositories listed at Expecting a reroll. -* hv/submodule-config (2015-06-15) 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 API for lookup of .gitmodules values - - The gitmodules API accessed from the C code learned to cache stuff - lazily. - - Needs another reroll? - ($gmane/273743) - - * jk/log-missing-default-HEAD (2015-06-03) 1 commit - log: diagnose empty HEAD more clearly @@ -344,15 +631,15 @@ of the repositories listed at * tr/remerge-diff (2014-11-10) 9 commits - - t4213: avoid "|" in sed regexp - - 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() + . t4213: avoid "|" in sed regexp + . 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() "log -p" output learns a new way to let users inspect a merge commit by showing the differences between the automerged result @@ -385,6 +672,82 @@ of the repositories listed at -------------------------------------------------- [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 + + 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. + + I think this is ready for 'next', but did I miss comments that need + to be addressed before it happens? + + +* 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. + + Expecting a reroll. + + +* 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 + + A new configuration variable http.sslVersion can be used to specify + what specific version of SSL/TLS to use to make a connection. + + 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 + + "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. + + 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 + + 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 + + "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. + + 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 + + Will merge to 'master'. + + * bb/remote-get-url (2015-08-05) 1 commit - remote: add get-url subcommand @@ -395,150 +758,58 @@ of the repositories listed at ($gmane/275401) -* 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. - - Will merge to 'master'. - - -* jk/guess-repo-name-regression-fix (2015-08-10) 2 commits - (merged to 'next' on 2015-08-12 at 4cba33c) - + clone: use computed length in guess_dir_name - + clone: add tests for output directory - (this branch is used by ps/guess-repo-name-at-root.) - - "git clone $URL" in recent releases of Git contains a regression in - the code that invents a new repository name incorrectly based on - the $URL. This has been corrected. - - Will merge to 'master'. - - -* ps/guess-repo-name-at-root (2015-08-10) 3 commits - (merged to 'next' on 2015-08-12 at 088860f) - + clone: abort if no dir name could be guessed - + clone: do not use port number as dir name - + clone: do not include authentication data in guessed dir - (this branch uses jk/guess-repo-name-regression-fix.) - - "git clone $URL", when cloning from a site whose sole purpose is to - host a single repository (hence, no path after :///), - tried to use the site name as the new repository name, but did not - remove username or password when part was of the form - @:. The code is taught to redact these. - - Will merge to 'master'. - - -* jk/notes-merge-config (2015-08-14) 4 commits - - notes: teach git-notes about notes..mergestrategy option - - notes: add notes.mergestrategy option to select default strategy +* jk/notes-merge-config (2015-08-17) 6 commits + - notes: teach git-notes about notes..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=" option how to automatically handle conflicts; this can now be configured by setting notes.merge configuration variable. - The latest reroll (v8) hasn't been picked up. - Expecting a reroll. - ($gmane/276068) + I think this is ready for 'next', but did I miss comments that need + to be addressed before it happens? -* mk/submodule-gitdir-path (2015-08-05) 2 commits - - path: implement common_dir handling in git_path_submodule() - - submodule refactor: use git_path_submodule() in add_submodule_odb() +* hv/submodule-config (2015-08-19) 4 commits + (merged to 'next' on 2015-08-25 at 82adb30) + + submodule: allow erroneous values for the fetchRecurseSubmodules option + + submodule: use new config API for worktree configurations + + submodule: extract functions for config set and lookup + + submodule: implement a config API for lookup of .gitmodules values + (this branch is used by sb/submodule-helper.) - The submodule code has been taught to work better with separate - work trees created via "git worktree add". - - Waiting for a review. - ($gmane/275340). - - -* 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 - - "git pull" in recent releases of Git has a regression in the code - that allows custom path to the --upload-pack=. This has - been corrected. - - Will merge to 'maint'. - - Note that this is irrelevant for 'master' with "git pull" rewritten - in C. - - -* 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 - - t1509 test that requires a dedicated VM environment had some - bitrot, which has been corrected. + The gitmodules API accessed from the C code learned to cache stuff + lazily. Will merge to 'master'. -* 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 - - After "git am --opt1" stops, running "git am --opt2" pays attention - to "--opt2" only for the patch that caused the original invocation - to stop. - - Will merge to 'master'. - - -* sb/remove-get-pathspec (2015-08-03) 1 commit - - builtin/mv: remove get_pathspec() - - Expecting a reroll. - ($gmane/275224) - - -* sb/submodule-helper (2015-08-07) 1 commit +* sb/submodule-helper (2015-08-25) 7 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 + - Merge 'hv/submodule-config' to 'sb/submodule-helper' + (this branch uses hv/submodule-config.) - The beginning of "git submodule" rewritten in C. + The infrastructure to rewrite "git submodule" in C is being built + incrementally. These early part looks promising. -* 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 +* 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 command-line completion script (in contrib/) has been updated. - - Will merge to 'master'. - - -* dt/untracked-subdir (2015-08-07) 2 commits - - DONTMERGE: wait for Duy to Ack or comment - - untracked-cache: fix subdirectory handling - - Waiting for a review cycle to conclude. - ($gmane/276019). - - -* jk/test-with-x (2015-08-07) 2 commits - (merged to 'next' on 2015-08-12 at 06576a1) - + test-lib: disable trace when test is not verbose - + test-lib: turn off "-x" tracing during chain-lint check - - Running tests with the "-x" option to make them verbose had some - unpleasant interactions with other features of the test suite. + The experimental untracked-cache feature were buggy when paths with + a few levels of subdirectories are involved. Will merge to 'master'. @@ -550,72 +821,12 @@ of the repositories listed at ($gmane/275680). -* ee/clean-remove-dirs (2015-08-11) 1 commit - (merged to 'next' on 2015-08-12 at fc41b09) - + t7300-clean: require POSIXPERM for chmod 0 test - - Test updates for Windows. - - Will merge to 'master'. - - -* jc/finalize-temp-file (2015-08-10) 1 commit - (merged to 'next' on 2015-08-12 at 6fe62fe) - + sha1_file.c: rename move_temp_to_file() to finalize_object_file() - - Long overdue micro clean-up. - - Will merge to 'master'. - - -* jk/git-path (2015-08-10) 16 commits - (merged to 'next' on 2015-08-12 at 7ebe864) - + memoize common git-path "constant" files - + get_repo_path: refactor path-allocation - + find_hook: keep our own static buffer - + refs.c: remove_empty_directories can take a strbuf - + refs.c: avoid git_path assignment in lock_ref_sha1_basic - + refs.c: avoid repeated git_path calls in rename_tmp_log - + refs.c: simplify strbufs in reflog setup and writing - + path.c: drop git_path_submodule - + refs.c: remove extra git_path calls from read_loose_refs - + remote.c: drop extraneous local variable from migrate_file - + prefer mkpathdup to mkpath in assignments - + prefer git_pathdup to git_path in some possibly-dangerous cases - + add_to_alternates_file: don't add duplicate entries - + t5700: modernize style - + cache.h: complete set of git_path_submodule helpers - + cache.h: clarify documentation for git_path, et al - - git_path() and mkpath() are handy helper functions but it is easy - to misuse, as the callers need to be careful to keep the number of - active results below 4. Their uses have been reduced. - - Will merge to 'master'. - - -* jk/long-error-messages (2015-08-11) 2 commits - (merged to 'next' on 2015-08-12 at 36303cd) - + vreportf: avoid intermediate buffer - + vreportf: report to arbitrary filehandles - - The codepath to produce error messages had a hard-coded limit to - the size of the message, primarily to avoid memory allocation while - calling die(). - - Will merge to 'master'. - - -* nd/dwim-wildcards-as-pathspecs (2015-08-11) 1 commit - (merged to 'next' on 2015-08-12 at bb73f4d) - + t2019: skip test requiring '*' in a file name non Windows - - Test updates for Windows. - - Will merge to 'master'. - - -* sg/config-name-only (2015-08-10) 2 commits +* sg/config-name-only (2015-08-20) 6 commits + (merged to 'next' on 2015-08-25 at 6cb3b7d) + + get_urlmatch: avoid useless strbuf write + + format_config: simplify buffer handling + + format_config: don't init strbuf + + config: restructure format_config() for better control flow (merged to 'next' on 2015-08-12 at c658fe4) + completion: list variable names reliably with 'git config --name-only' + config: add '--name-only' option to list only variable names @@ -626,88 +837,6 @@ of the repositories listed at Will merge to 'master'. -* mh/tempfile (2015-08-12) 16 commits - (merged to 'next' on 2015-08-12 at 80efcb7) - + credential-cache--daemon: use tempfile module - + credential-cache--daemon: delete socket from main() - + gc: use tempfile module to handle gc.pid file - + lock_repo_for_gc(): compute the path to "gc.pid" only once - + diff: use tempfile module - + setup_temporary_shallow(): use tempfile module - + write_shared_index(): use tempfile module - + register_tempfile(): new function to handle an existing temporary file - + tempfile: add several functions for creating temporary files - + prepare_tempfile_object(): new function, extracted from create_tempfile() - + tempfile: a new module for handling temporary files - + commit_lock_file(): use get_locked_file_path() - + lockfile: add accessor get_lock_file_path() - + lockfile: add accessors get_lock_file_fd() and get_lock_file_fp() - + create_bundle(): duplicate file descriptor to avoid closing it twice - + lockfile: move documentation to lockfile.h and lockfile.c - - The "lockfile" API has been rebuilt on top of a new "tempfile" API. - - Will merge to 'master'. - - -* jh/strbuf-read-use-read-in-full (2015-08-10) 1 commit - (merged to 'next' on 2015-08-12 at db16247) - + strbuf_read(): skip unnecessary strbuf_grow() at eof - - strbuf_read() used to have one extra iteration (and an unnecessary - strbuf_grow() of 8kB), which was eliminated. - - Will merge to 'master'. - - -* sb/check-return-from-read-ref (2015-08-03) 1 commit - (merged to 'next' on 2015-08-12 at 4a1c801) - + transport-helper: die on errors reading refs. - - Will merge to 'master'. - - -* jk/negative-hiderefs (2015-08-07) 2 commits - (merged to 'next' on 2015-08-12 at bdc478d) - + refs: support negative transfer.hideRefs - + docs/config.txt: reorder hideRefs config - - A negative !ref entry in multi-value transfer.hideRefs - configuration can be used to say "don't hide this one". - - Will merge to 'master'. - - -* 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. - - Will merge to 'master'. - - -* 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). - - Will merge to 'master'. - - * kn/for-each-tag-branch (2015-08-03) 11 commits (merged to 'next' on 2015-08-03 at d9e94b9) + for-each-ref: add '--contains' option @@ -721,6 +850,7 @@ of the repositories listed at + ref-filter: implement '--points-at' option + tag: libify parse_opt_points_at() + t6302: for-each-ref tests for ref-filter APIs + (this branch is used by kn/for-each-tag.) Originally merged to 'next' on 2015-07-15 @@ -756,6 +886,8 @@ of the repositories listed at Code clean-up and minor fixes (so far). + Will merge to 'next'. + * jc/rerere-multi (2015-07-30) 7 commits . t4200: rerere a merge with two identical conflicts @@ -767,7 +899,9 @@ of the repositories listed at - rerere: split conflict ID further (this branch uses jc/rerere.) - This is a contination of jc/rerere topic. + "git rerere" can encounter two or more files with the same conflict + signature that have to be resolved in different ways, but there was + no way to record these separate resolutions. * jc/merge-drop-old-syntax (2015-04-29) 1 commit