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 <n>" 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
* 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.<url>.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'.
--------------------------------------------------
--------------------------------------------------
[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
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
- 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 <branch>@{push} short-hand to denote the remote-tracking
- branch that tracks the branch at the remote the <branch> 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 <branch>@{push} short-hand to denote the remote-tracking
+ branch that tracks the branch at the remote the <branch> 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
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
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 <n>" 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
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
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
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
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.