From 3b537faa68480ec5334cf31fa6a2d83328d1de3c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 11 May 2015 15:28:26 -0700 Subject: [PATCH] What's cooking (2015/05 #04) --- whats-cooking.txt | 867 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 452 insertions(+), 415 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index e408c395e4..01f8aec8a4 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,34 +1,342 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (May 2015, #03; Fri, 8) -X-master-at: 8440f74997cf7958c7e8ec853f590828085049b8 -X-next-at: 38e70713119c25ab5699df6b2fb13e4133d399ab +Subject: What's cooking in git.git (May 2015, #04; Mon, 11) +X-master-at: c518059b263bb506b96a0ae90c4d40408c760cb0 +X-next-at: 91e4f9ead74701a5690c950e19c8b631ee8c7a4b -What's cooking in git.git (May 2015, #03; Fri, 8) +What's cooking in git.git (May 2015, #04; Mon, 11) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. +Git 2.3.8 has been tagged; it contains Linus's favorite fix for "git +commit --date=now", among other things, and it will be the last for +2.3.x series for now. + You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- +[Graduated to "master"] + +* ep/do-not-feed-a-pointer-to-array-size (2015-05-05) 1 commit + (merged to 'next' on 2015-05-07 at 64d9a20) + + git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array + + Catch a programmer mistake to feed a pointer not an array to + ARRAY_SIZE() macro, by using a couple of GCC extensions. + + +* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit + (merged to 'next' on 2015-05-05 at 1eb279f) + + daemon: unbreak NO_IPV6 build regression + + "git daemon" fails to build from the source under NO_IPV6 + configuration (regression in 2.4). + + +* jc/hash-object (2015-05-05) 4 commits + (merged to 'next' on 2015-05-07 at 9b81a06) + + write_sha1_file(): do not use a separate sha1[] array + + t1007: add hash-object --literally tests + + hash-object --literally: fix buffer overrun with extra-long object type + + git-hash-object.txt: document --literally option + + "hash-object --literally" introduced in v2.2 was not prepared to + take a really long object type name. + + +* jc/plug-fmt-merge-msg-leak (2015-04-20) 1 commit + (merged to 'next' on 2015-05-05 at bd94828) + + fmt-merge-msg: plug small leak of commit buffer + + Originally merged to 'next' on 2015-04-21 + + +* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit + (merged to 'next' on 2015-05-07 at 849a24d) + + filter-branch: avoid passing commit message through sed + + "filter-branch" corrupted commit log message that ends with an + incomplete line on platforms with some "sed" implementations that + munge such a line. Work it around by avoiding to use "sed". + + +* jk/reading-packed-refs (2015-04-16) 9 commits + (merged to 'next' on 2015-05-05 at 89b5694) + + t1430: add another refs-escape test + + read_packed_refs: avoid double-checking sane refs + + strbuf_getwholeline: use getdelim if it is available + + strbuf_getwholeline: avoid calling strbuf_grow + + strbuf_addch: avoid calling strbuf_grow + + config: use getc_unlocked when reading from file + + strbuf_getwholeline: use getc_unlocked + + git-compat-util: add fallbacks for unlocked stdio + + strbuf_getwholeline: use getc macro + + Originally merged to 'next' on 2015-04-21 + + An earlier rewrite to use strbuf_getwholeline() instead of fgets(3) + to read packed-refs file revealed that the former is unacceptably + inefficient. + + +* jk/rebase-quiet-noop (2015-04-28) 1 commit + (merged to 'next' on 2015-05-05 at 82780b9) + + rebase: silence "git checkout" for noop rebase + + "git rebase --quiet" was not quite quiet when there is nothing to + do. + + +* jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit + (merged to 'next' on 2015-05-05 at a8de68e) + + sha1_file: squelch "packfile cannot be accessed" warnings + + Originally merged to 'next' on 2015-04-21 + + +* jk/still-interesting (2015-04-17) 1 commit + (merged to 'next' on 2015-05-05 at 6a5c89c) + + limit_list: avoid quadratic behavior from still_interesting + + Originally merged to 'next' on 2015-04-21 + + "git rev-list --objects $old --not --all" to see if everything that + is reachable from $old is already connected to the existing refs + was very inefficient. + + +* jn/clean-use-error-not-fprintf-on-stderr (2015-05-04) 1 commit + (merged to 'next' on 2015-05-05 at 12391f1) + + config: use error() instead of fprintf(stderr, ...) + + Some error messages in "git config" were emitted without calling + the usual error() facility. + + +* ld/p4-case-fold (2015-04-28) 1 commit + (merged to 'next' on 2015-05-05 at 03ecbd0) + + git-p4: add failing tests for case-folding p4d + + +* lm/squelch-bg-progress (2015-04-15) 2 commits + (merged to 'next' on 2015-05-05 at a2fe74d) + + compat/mingw: stubs for getpgid() and tcgetpgrp() + + progress: no progress in background + + Originally merged to 'next' on 2015-04-21 + + Many long-running operations show progress eye-candy, even when + they are later backgrounded. Hide the eye-candy when the process + is sent to the background instead. + + +* ls/p4-changes-block-size (2015-04-20) 1 commit + (merged to 'next' on 2015-05-05 at 92596d4) + + git-p4: use -m when running p4 changes + + Originally merged to 'next' on 2015-04-21 + + "git p4" learned "--changes-block-size " to read the changes in + chunks from Perforce, instead of making one call to "p4 changes" + that may trigger "too many rows scanned" error from Perforce. + + +* mm/add-p-split-error (2015-04-16) 5 commits + (merged to 'next' on 2015-05-05 at c556011) + + stash -p: demonstrate failure of split with mixed y/n + + t3904-stash-patch: factor PERL prereq at the top of the file + + t3904-stash-patch: fix test description + + add -p: demonstrate failure when running 'edit' after a split + + t3701-add-interactive: simplify code + + Originally merged to 'next' on 2015-04-23 + + When "add--interactive" splits a hunk into two overlapping hunks + and then let the user choose only one, it sometimes feeds an + incorrect patch text to "git apply". Add tests to demonstrate + this. + + I have a slight suspicion that this may be $gmane/87202 coming back + and biting us (I seem to have said "let's run with this and see + what happens" back then). + + +* nd/multiple-work-trees (2015-03-31) 41 commits + (merged to 'next' on 2015-05-05 at 0f04a1c) + + prune --worktrees: fix expire vs worktree existence condition + + t1501: fix test with split index + + t2026: fix broken &&-chain + + t2026 needs procondition SANITY + + git-checkout.txt: a note about multiple checkout support for submodules + + checkout: add --ignore-other-wortrees + + checkout: pass whole struct to parse_branchname_arg instead of individual flags + + git-common-dir: make "modules/" per-working-directory directory + + checkout: do not fail if target is an empty directory + + 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/worktrees/... + + gc: support prune --worktrees + + gc: factor out gc.pruneexpire parsing code + + gc: style change -- no SP before closing parenthesis + + checkout: clean up half-prepared directories in --to mode + + checkout: reject if the branch is already checked out elsewhere + + prune: strategies for linked checkouts + + 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 + + Originally merged to 'next' on 2015-04-02 + + 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. + + +* nd/slim-index-pack-memory-usage (2015-04-18) 2 commits + (merged to 'next' on 2015-05-05 at 42bd845) + + index-pack: kill union delta_base to save memory + + index-pack: reduce object_entry size to save memory + + Originally merged to 'next' on 2015-04-21 + + Memory usage of "git index-pack" has been trimmed by tens of + per-cent. + + +* pt/credential-xdg (2015-03-25) 4 commits + (merged to 'next' on 2015-05-05 at 0d6711f) + + t0302: "unreadable" test needs POSIXPERM + + t0302: test credential-store support for XDG_CONFIG_HOME + + git-credential-store: support XDG_CONFIG_HOME + + git-credential-store: support multiple credential files + (this branch is used by pt/xdg-config-path.) + + Originally merged to 'next' on 2015-03-25 + + Tweak the sample "store" backend of the credential helper to honor + XDG configuration file locations when specified. + + +* pt/xdg-config-path (2015-05-06) 7 commits + (merged to 'next' on 2015-05-07 at 38e7071) + + path.c: remove home_config_paths() + + git-config: replace use of home_config_paths() + + git-commit: replace use of home_config_paths() + + credential-store.c: replace home_config_paths() with xdg_config_home() + + dir.c: replace home_config_paths() with xdg_config_home() + + attr.c: replace home_config_paths() with xdg_config_home() + + path.c: implement xdg_config_home() + (this branch uses pt/credential-xdg.) + + Code clean-up for xdg configuration path support. + + +* sb/prefix-path-free-results (2015-05-05) 1 commit + (merged to 'next' on 2015-05-07 at 64f15a8) + + prefix_path(): unconditionally free results in the callers + + Code clean-up (not a leak-fix). + + +* sg/complete-decorate-full-not-long (2015-05-03) 1 commit + (merged to 'next' on 2015-05-07 at 2beb429) + + completion: fix and update 'git log --decorate=' options + + The completion for "log --decorate=" parameter value was incorrect. + + +* sg/completion-no-redundant-all-command-list (2015-05-03) 1 commit + (merged to 'next' on 2015-05-07 at 00b4bd9) + + completion: remove redundant __git_compute_all_commands() call + + Code simplification. + + +* tb/blame-resurrect-convert-to-git (2015-05-03) 1 commit + (merged to 'next' on 2015-05-05 at 8e1974e) + + blame: CRLF in the working tree and LF in the repo + + Some time ago, "git blame" (incorrectly) lost the convert_to_git() + call when synthesizing a fake "tip" commit that represents the + state in the working tree, which broke folks who record the history + with LF line ending to make their project portabile across + platforms while terminating lines in their working tree files with + CRLF for their platform. + + +* tb/t0027-crlf (2015-04-25) 3 commits + (merged to 'next' on 2015-05-05 at 36accbb) + + t0027: Add repoMIX and LF_nul + + t0027: support NATIVE_CRLF platforms + + t0027: cleanup: rename functions; avoid non-leading TABs + + Originally merged to 'next' on 2015-04-21 + + More line-ending tests. + + +* va/fix-git-p4-tests (2015-04-28) 1 commit + (merged to 'next' on 2015-05-05 at 795e858) + + git-p4: t9814: prevent --chain-lint failure + + +* va/p4-client-path (2015-04-23) 2 commits + (merged to 'next' on 2015-05-05 at 852facc) + + git-p4: improve client path detection when branches are used + + t9801: check git-p4's branch detection with client spec enabled + + Originally merged to 'next' on 2015-04-23 + + git p4 attempts to better handle branches in Perforce. + +-------------------------------------------------- [New Topics] * dl/branch-error-message (2015-05-06) 1 commit - - branch: do not call a "remote-tracking branch" a "remote branch" + (merged to 'next' on 2015-05-11 at ed947ab) + + branch: do not call a "remote-tracking branch" a "remote branch" - Will merge to 'next'. + Error messages from "git branch" called remote-tracking branches as + "remote branches". + + Will merge to 'master'. * dl/subtree-push-no-squash (2015-05-07) 1 commit - - contrib/subtree: there's no push --squash + (merged to 'next' on 2015-05-11 at 74d07ca) + + contrib/subtree: there's no push --squash - Will merge to 'next'. + "git subtree" script (in contrib/) does not have --squash option + when pushing, but the documentation and help text pretended as if + it did. + + Will merge to 'master'. * ld/p4-editor-multi-words (2015-05-07) 2 commits @@ -46,35 +354,111 @@ of the repositories listed at * dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit - - contrib/subtree: portability fix for string printing + (merged to 'next' on 2015-05-11 at 36d4f0e) + + contrib/subtree: portability fix for string printing "git subtree" script (in contrib/) used "echo -n" to produce progress messages in a non-portable way. - Will merge to 'next'. + Will merge to 'master'. * ls/http-ssl-cipher-list (2015-05-08) 1 commit - - http: add support for specifying an SSL cipher list + (merged to 'next' on 2015-05-11 at 55764ce) + + http: add support for specifying an SSL cipher list Introduce http..SSLCipherList configuration variable to tweak the list of cipher suite to be used with libcURL when talking with https:// sites. - Will merge to 'next'. + Will merge to 'master'. * ps/bundle-verify-arg (2015-05-08) 1 commit - - bundle: verify arguments more strictly + (merged to 'next' on 2015-05-11 at 9f1b1ae) + + bundle: verify arguments more strictly - Will merge to 'next'. + "git bundle verify" did not diagnose extra parameters on the + command line. + + Will merge to 'master'. * sg/help-subcommands (2015-05-08) 1 commit - - command-list.txt: fix whitespace inconsistency + (merged to 'next' on 2015-05-11 at 91e4f9e) + + command-list.txt: fix whitespace inconsistency A preparatory clean-up step. + Will merge to 'master'. + + +* mh/ref-directory-file-2 (2015-05-10) 19 commits + - SQUASH??? + - reflog_expire(): integrate lock_ref_sha1_basic() errors into ours + - ref_transaction_commit(): delete extra "the" from error message + - ref_transaction_commit(): provide better error messages + - rename_ref(): integrate lock_ref_sha1_basic() errors into ours + - lock_ref_sha1_basic(): improve diagnostics for D/F conflicts + - lock_ref_sha1_basic(): report errors via a "struct strbuf *err" + - verify_refname_available(): report errors via a "struct strbuf *err" + - verify_refname_available(): rename function + - refs: check for D/F conflicts among refs processed in a transaction + - ref_transaction_commit(): use a string_list for detecting duplicates + - is_refname_available(): use dirname in first loop + - struct nonmatching_ref_data: store a refname instead of a ref_entry + - report_refname_conflict(): inline function + - entry_matches(): inline function + - is_refname_available(): convert local variable "dirname" to strbuf + - is_refname_available(): avoid shadowing "dir" variable + - is_refname_available(): explain the reason for an early exit + - t1404: new tests of D/F conflicts within ref transactions + (this branch uses mh/write-refs-sooner-2.2, mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.) + + A reroll is posted, but haven't got a chance to pick it up yet. + + +* mh/write-refs-sooner-2.2 (2015-05-10) 8 commits + - ref_transaction_commit(): fix atomicity and avoid fd exhaustion + - ref_transaction_commit(): remove the local flags variable + - ref_transaction_commit(): inline call to write_ref_sha1() + - rename_ref(): inline calls to write_ref_sha1() from this function + - commit_ref_update(): new function, extracted from write_ref_sha1() + - write_ref_to_lockfile(): new function, extracted from write_ref_sha1() + - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE + - update-ref: test handling large transactions properly + (this branch is used by mh/ref-directory-file-2, mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.) + + Multi-ref transaction support we merged a few releases ago + unnecessarily kept many file descriptors open, risking to fail with + resource exhaustion. + + +* mh/write-refs-sooner-2.3 (2015-05-10) 1 commit + - Merge branch 'mh/write-refs-sooner' into mh/write-refs-sooner-2.3 + (this branch is used by mh/ref-directory-file-2 and mh/write-refs-sooner-2.4; uses mh/write-refs-sooner-2.2.) + + Multi-ref transaction support we merged a few releases ago + unnecessarily kept many file descriptors open, risking to fail with + resource exhaustion. This is for 2.3.x track. + + +* mh/write-refs-sooner-2.4 (2015-05-10) 1 commit + - Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4 + (this branch is used by mh/ref-directory-file-2; uses mh/write-refs-sooner-2.2 and mh/write-refs-sooner-2.3.) + + Multi-ref transaction support we merged a few releases ago + unnecessarily kept many file descriptors open, risking to fail with + resource exhaustion. This is for 2.4.x track. + + +* sb/ref-lock-lose-lock-fd (2015-05-10) 1 commit + - refs.c: remove lock_fd from struct ref_lock + + The refs API uses ref_lock struct which had its own "int fd", even + though the same file descriptor was in the lock struct it contains. + Clean-up the code to lose this redundant field. + Will merge to 'next'. -------------------------------------------------- @@ -321,67 +705,25 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit - (merged to 'next' on 2015-05-05 at 1eb279f) - + daemon: unbreak NO_IPV6 build regression - - "git daemon" fails to build from the source under NO_IPV6 - configuration (regression in 2.4). - - Will merge to 'master' in the second batch. - - -* sb/prefix-path-free-results (2015-05-05) 1 commit - (merged to 'next' on 2015-05-07 at 64f15a8) - + prefix_path(): unconditionally free results in the callers - - Code clean-up (not a leak-fix). - - Will merge to 'master' in the second batch. - - * sg/completion-omit-credential-helpers (2015-05-06) 1 commit - - completion: remove credential helpers from porcelain commands + (merged to 'next' on 2015-05-11 at aa7e554) + + completion: remove credential helpers from porcelain commands The Git subcommand completion (in contrib/) listed credential helpers among candidates, which is not something the end user would invoke interatively. - Will merge to 'next'. + Will merge to 'master'. * jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits - - tests: skip dav http-push tests under NO_EXPAT=NoThanks - - t/lib-httpd.sh: skip tests if NO_CURL is defined + (merged to 'next' on 2015-05-11 at a52b711) + + tests: skip dav http-push tests under NO_EXPAT=NoThanks + + t/lib-httpd.sh: skip tests if NO_CURL is defined Test clean-up. - Will merge to 'next'. - - -* mh/ref-directory-file (2015-05-05) 19 commits - - SQUASH??? - - reflog_expire(): integrate lock_ref_sha1_basic() errors into ours - - ref_transaction_commit(): delete extra "the" from error message - - ref_transaction_commit(): provide better error messages - - rename_ref(): integrate lock_ref_sha1_basic() errors into ours - - lock_ref_sha1_basic(): improve diagnostics for D/F conflicts - - lock_ref_sha1_basic(): report errors via a "struct strbuf *err" - - verify_refname_available(): report errors via a "struct strbuf *err" - - verify_refname_available(): rename function - - refs: check for D/F conflicts among refs processed in a transaction - - ref_transaction_commit(): use a string_list for detecting duplicates - - is_refname_available(): use dirname in first loop - - struct nonmatching_ref_data: store a refname instead of a ref_entry - - report_refname_conflict(): inline function - - entry_matches(): inline function - - is_refname_available(): convert local variable "dirname" to strbuf - - is_refname_available(): avoid shadowing "dir" variable - - is_refname_available(): explain the reason for an early exit - - t1404: new tests of D/F conflicts within ref transactions - (this branch uses mh/ref-lock-avoid-running-out-of-fds.) - - Expecting a reroll. + Will merge to 'master'. * nd/dwim-wildcards-as-pathspecs (2015-05-03) 1 commit @@ -415,47 +757,6 @@ of the repositories listed at Expecting a reroll ($gmane/268391). -* sg/complete-decorate-full-not-long (2015-05-03) 1 commit - (merged to 'next' on 2015-05-07 at 2beb429) - + completion: fix and update 'git log --decorate=' options - - The completion for "log --decorate=" parameter value was incorrect. - - Will merge to 'master' in the second batch. - - -* sg/completion-no-redundant-all-command-list (2015-05-03) 1 commit - (merged to 'next' on 2015-05-07 at 00b4bd9) - + completion: remove redundant __git_compute_all_commands() call - - Code simplification. - - Will merge to 'master' in the second batch. - - -* jc/hash-object (2015-05-05) 4 commits - (merged to 'next' on 2015-05-07 at 9b81a06) - + write_sha1_file(): do not use a separate sha1[] array - + t1007: add hash-object --literally tests - + hash-object --literally: fix buffer overrun with extra-long object type - + git-hash-object.txt: document --literally option - - "hash-object --literally" introduced in v2.2 was not prepared to - take a really long object type name. - - Will merge to 'master' in the second batch. - - -* jn/clean-use-error-not-fprintf-on-stderr (2015-05-04) 1 commit - (merged to 'next' on 2015-05-05 at 12391f1) - + config: use error() instead of fprintf(stderr, ...) - - Some error messages in "git config" were emitted without calling - the usual error() facility. - - Will merge to 'master' in the second batch. - - * jc/clone-bundle (2015-04-30) 1 commit - repack: optionally create a clone.bundle @@ -469,53 +770,18 @@ of the repositories listed at - sha1_name: refactor interpret_upstream_mark - sha1_name: refactor upstream_mark - remote.c: add branch_get_push - - remote.c: report specific errors from branch_get_upstream - - remote.c: introduce branch_get_upstream helper - - remote.c: provide per-branch pushremote name - - remote.c: hoist branch.*.remote lookup out of remote_get_1 - - remote.c: drop "remote" pointer from "struct branch" - - remote.c: drop default_remote_name variable - - Introduce @{push} short-hand to denote the remote-tracking - branch that tracks the branch at the remote the would be - pushed to. - - Expecting a reroll ($gmane/268419, etc.). - - -* jk/rebase-quiet-noop (2015-04-28) 1 commit - (merged to 'next' on 2015-05-05 at 82780b9) - + rebase: silence "git checkout" for noop rebase - - "git rebase --quiet" was not quite quiet when there is nothing to - do. - - Will merge to 'master' in the second batch. - - -* ld/p4-case-fold (2015-04-28) 1 commit - (merged to 'next' on 2015-05-05 at 03ecbd0) - + git-p4: add failing tests for case-folding p4d - - Will merge to 'master' in the second batch. - - -* va/fix-git-p4-tests (2015-04-28) 1 commit - (merged to 'next' on 2015-05-05 at 795e858) - + git-p4: t9814: prevent --chain-lint failure - - Will merge to 'master' in the second batch. - - -* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit - (merged to 'next' on 2015-05-07 at 849a24d) - + filter-branch: avoid passing commit message through sed + - remote.c: report specific errors from branch_get_upstream + - remote.c: introduce branch_get_upstream helper + - remote.c: provide per-branch pushremote name + - remote.c: hoist branch.*.remote lookup out of remote_get_1 + - remote.c: drop "remote" pointer from "struct branch" + - remote.c: drop default_remote_name variable - "filter-branch" corrupted commit log message that ends with an - incomplete line on platforms with some "sed" implementations that - munge such a line. Work it around by avoiding to use "sed". + Introduce @{push} short-hand to denote the remote-tracking + branch that tracks the branch at the remote the would be + pushed to. - Will merge to 'master' in the second batch. + Expecting a reroll ($gmane/268419, etc.). * ph/rebase-i-redo (2015-04-29) 1 commit @@ -528,39 +794,6 @@ of the repositories listed at Will merge to 'master' in the third batch. -* ep/do-not-feed-a-pointer-to-array-size (2015-05-05) 1 commit - (merged to 'next' on 2015-05-07 at 64d9a20) - + git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array - - Catch a programmer mistake to feed a pointer not an array to - ARRAY_SIZE() macro, by using a couple of GCC extensions. - - Will merge to 'master' in the second batch. - - -* tb/blame-resurrect-convert-to-git (2015-05-03) 1 commit - (merged to 'next' on 2015-05-05 at 8e1974e) - + blame: CRLF in the working tree and LF in the repo - - Some time ago, "git blame" (incorrectly) lost the convert_to_git() - call when synthesizing a fake "tip" commit that represents the - state in the working tree, which broke folks who record the history - with LF line ending to make their project portabile across - platforms while terminating lines in their working tree files with - CRLF for their platform. - - Will merge to 'master' in the second batch. - - -* jc/plug-fmt-merge-msg-leak (2015-04-20) 1 commit - (merged to 'next' on 2015-05-05 at bd94828) - + fmt-merge-msg: plug small leak of commit buffer - - Originally merged to 'next' on 2015-04-21 - - Will merge to 'master' in the second batch. - - * ee/clean-remove-dirs (2015-04-26) 5 commits - clean: improve performance when removing lots of directories - p7300: add performance tests for clean @@ -575,67 +808,6 @@ of the repositories listed at Waiting for a reroll. -* jk/still-interesting (2015-04-17) 1 commit - (merged to 'next' on 2015-05-05 at 6a5c89c) - + limit_list: avoid quadratic behavior from still_interesting - - Originally merged to 'next' on 2015-04-21 - - "git rev-list --objects $old --not --all" to see if everything that - is reachable from $old is already connected to the existing refs - was very inefficient. - - Will merge to 'master' in the second batch. - - -* ls/p4-changes-block-size (2015-04-20) 1 commit - (merged to 'next' on 2015-05-05 at 92596d4) - + git-p4: use -m when running p4 changes - - Originally merged to 'next' on 2015-04-21 - - "git p4" learned "--changes-block-size " to read the changes in - chunks from Perforce, instead of making one call to "p4 changes" - that may trigger "too many rows scanned" error from Perforce. - - Will merge to 'master' in the second batch. - - -* mm/add-p-split-error (2015-04-16) 5 commits - (merged to 'next' on 2015-05-05 at c556011) - + stash -p: demonstrate failure of split with mixed y/n - + t3904-stash-patch: factor PERL prereq at the top of the file - + t3904-stash-patch: fix test description - + add -p: demonstrate failure when running 'edit' after a split - + t3701-add-interactive: simplify code - - Originally merged to 'next' on 2015-04-23 - - When "add--interactive" splits a hunk into two overlapping hunks - and then let the user choose only one, it sometimes feeds an - incorrect patch text to "git apply". Add tests to demonstrate - this. - - I have a slight suspicion that this may be $gmane/87202 coming back - and biting us (I seem to have said "let's run with this and see - what happens" back then). - - Will merge to 'master' in the second batch. - - -* tb/t0027-crlf (2015-04-25) 3 commits - (merged to 'next' on 2015-05-05 at 36accbb) - + t0027: Add repoMIX and LF_nul - + t0027: support NATIVE_CRLF platforms - + t0027: cleanup: rename functions; avoid non-leading TABs - - Originally merged to 'next' on 2015-04-21 - - More line-ending tests. - - Will merge to 'master' in the second batch. - - * jc/gitignore-precedence (2015-04-22) 1 commit (merged to 'next' on 2015-05-05 at 6ef85da) + ignore: info/exclude should trump core.excludesfile @@ -731,30 +903,6 @@ of the repositories listed at Will merge to 'master' in the third batch. -* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits - - ref_transaction_commit(): only keep one lockfile open at a time - - ref_transaction_commit(): remove the local flags variables - - write_ref_sha1(): inline function at callers - - commit_ref_update(): new function, extracted from write_ref_sha1() - - write_ref_to_lockfile(): new function, extracted from write_ref_sha1() - - refs.c: remove lock_fd from struct ref_lock - - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE - - update-ref: test handling large transactions properly - (this branch is used by mh/ref-directory-file.) - - "git update-ref --stdin" was converted to be "transactional" some - time ago, but the ref transaction machinery was not prepared to - handle many refs, primarily because it tried to keep the loose ref - files open at the same time, which would cause us to hit the ENFILE - limit. Fix the ref_transaction_commit() code not to keep the file - descriptors open unnecessarily. - - We would want to apply the fix to older codebase, but this fix is - unfortunately done to apply only on v2.4.x track. - - Expecting a rebase to older codebase. - - * bc/connect-plink (2015-04-28) 3 commits (merged to 'next' on 2015-05-05 at 9def2e1) + connect: improve check for plink to reduce false positives @@ -794,27 +942,6 @@ of the repositories listed at A few usage string updates. The tip one still needs work. -* jk/reading-packed-refs (2015-04-16) 9 commits - (merged to 'next' on 2015-05-05 at 89b5694) - + t1430: add another refs-escape test - + read_packed_refs: avoid double-checking sane refs - + strbuf_getwholeline: use getdelim if it is available - + strbuf_getwholeline: avoid calling strbuf_grow - + strbuf_addch: avoid calling strbuf_grow - + config: use getc_unlocked when reading from file - + strbuf_getwholeline: use getc_unlocked - + git-compat-util: add fallbacks for unlocked stdio - + strbuf_getwholeline: use getc macro - - Originally merged to 'next' on 2015-04-21 - - An earlier rewrite to use strbuf_getwholeline() instead of fgets(3) - to read packed-refs file revealed that the former is unacceptably - inefficient. - - Will merge to 'master' in the second batch. - - * kn/cat-file-literally (2015-05-06) 4 commits - t1006: add tests for git cat-file --allow-unknown-type - cat-file: teach cat-file a '--allow-unknown-type' option @@ -824,74 +951,7 @@ of the repositories listed at Add the "--allow-unknown-type" option to "cat-file" to allow inspecting loose objects of an experimental or a broken type. - This is v10 $gmane/267960 with fixup! squashed in. - - -* lm/squelch-bg-progress (2015-04-15) 2 commits - (merged to 'next' on 2015-05-05 at a2fe74d) - + compat/mingw: stubs for getpgid() and tcgetpgrp() - + progress: no progress in background - - Originally merged to 'next' on 2015-04-21 - - Many long-running operations show progress eye-candy, even when - they are later backgrounded. Hide the eye-candy when the process - is sent to the background instead. - - Will merge to 'master' in the second batch. - - -* va/p4-client-path (2015-04-23) 2 commits - (merged to 'next' on 2015-05-05 at 852facc) - + git-p4: improve client path detection when branches are used - + t9801: check git-p4's branch detection with client spec enabled - - Originally merged to 'next' on 2015-04-23 - - git p4 attempts to better handle branches in Perforce. - - Will merge to 'master' in the second batch. - - -* jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit - (merged to 'next' on 2015-05-05 at a8de68e) - + sha1_file: squelch "packfile cannot be accessed" warnings - - Originally merged to 'next' on 2015-04-21 - - Will merge to 'master' in the second batch. - - -* pt/credential-xdg (2015-03-25) 4 commits - (merged to 'next' on 2015-05-05 at 0d6711f) - + t0302: "unreadable" test needs POSIXPERM - + t0302: test credential-store support for XDG_CONFIG_HOME - + git-credential-store: support XDG_CONFIG_HOME - + git-credential-store: support multiple credential files - (this branch is used by pt/xdg-config-path.) - - Originally merged to 'next' on 2015-03-25 - - Tweak the sample "store" backend of the credential helper to honor - XDG configuration file locations when specified. - - Will merge to 'master' in the second batch. - - -* pt/xdg-config-path (2015-05-06) 7 commits - (merged to 'next' on 2015-05-07 at 38e7071) - + path.c: remove home_config_paths() - + git-config: replace use of home_config_paths() - + git-commit: replace use of home_config_paths() - + credential-store.c: replace home_config_paths() with xdg_config_home() - + dir.c: replace home_config_paths() with xdg_config_home() - + attr.c: replace home_config_paths() with xdg_config_home() - + path.c: implement xdg_config_home() - (this branch uses pt/credential-xdg.) - - Code clean-up for xdg configuration path support. - - Will merge to 'master' in the second batch. + Will merge to 'next'. * nd/diff-i-t-a (2015-03-23) 1 commit @@ -914,68 +974,45 @@ of the repositories listed at Will merge to 'master' in the third batch. +-------------------------------------------------- +[Discarded] -* nd/slim-index-pack-memory-usage (2015-04-18) 2 commits - (merged to 'next' on 2015-05-05 at 42bd845) - + index-pack: kill union delta_base to save memory - + index-pack: reduce object_entry size to save memory - - Originally merged to 'next' on 2015-04-21 - - Memory usage of "git index-pack" has been trimmed by tens of - per-cent. - Will merge to 'master' in the second batch. +* mh/ref-directory-file (2015-05-05) 19 commits + . SQUASH??? + . reflog_expire(): integrate lock_ref_sha1_basic() errors into ours + . ref_transaction_commit(): delete extra "the" from error message + . ref_transaction_commit(): provide better error messages + . rename_ref(): integrate lock_ref_sha1_basic() errors into ours + . lock_ref_sha1_basic(): improve diagnostics for D/F conflicts + . lock_ref_sha1_basic(): report errors via a "struct strbuf *err" + . verify_refname_available(): report errors via a "struct strbuf *err" + . verify_refname_available(): rename function + . refs: check for D/F conflicts among refs processed in a transaction + . ref_transaction_commit(): use a string_list for detecting duplicates + . is_refname_available(): use dirname in first loop + . struct nonmatching_ref_data: store a refname instead of a ref_entry + . report_refname_conflict(): inline function + . entry_matches(): inline function + . is_refname_available(): convert local variable "dirname" to strbuf + . is_refname_available(): avoid shadowing "dir" variable + . is_refname_available(): explain the reason for an early exit + . t1404: new tests of D/F conflicts within ref transactions + (this branch uses mh/ref-lock-avoid-running-out-of-fds.) + Reroll posted, but didn't have time to pick it up. -* nd/multiple-work-trees (2015-03-31) 41 commits - (merged to 'next' on 2015-05-05 at 0f04a1c) - + prune --worktrees: fix expire vs worktree existence condition - + t1501: fix test with split index - + t2026: fix broken &&-chain - + t2026 needs procondition SANITY - + git-checkout.txt: a note about multiple checkout support for submodules - + checkout: add --ignore-other-wortrees - + checkout: pass whole struct to parse_branchname_arg instead of individual flags - + git-common-dir: make "modules/" per-working-directory directory - + checkout: do not fail if target is an empty directory - + 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/worktrees/... - + gc: support prune --worktrees - + gc: factor out gc.pruneexpire parsing code - + gc: style change -- no SP before closing parenthesis - + checkout: clean up half-prepared directories in --to mode - + checkout: reject if the branch is already checked out elsewhere - + prune: strategies for linked checkouts - + 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 - Originally merged to 'next' on 2015-04-02 - 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. +* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits + . ref_transaction_commit(): only keep one lockfile open at a time + . ref_transaction_commit(): remove the local flags variables + . write_ref_sha1(): inline function at callers + . commit_ref_update(): new function, extracted from write_ref_sha1() + . write_ref_to_lockfile(): new function, extracted from write_ref_sha1() + . refs.c: remove lock_fd from struct ref_lock + . t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE + . update-ref: test handling large transactions properly + (this branch is used by mh/ref-directory-file.) - Will merge to 'master' in the second batch. + Superseded by mh/write-refs-sooner* series. -- 2.11.4.GIT