What's cooking (2015/05 #04)

This commit is contained in:
Junio C Hamano 2015-05-11 15:28:26 -07:00
parent f2b2005282
commit 3b537faa68

View File

@ -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 <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
@ -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.<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'.
--------------------------------------------------
@ -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
@ -483,41 +784,6 @@ of the repositories listed at
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
"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".
Will merge to 'master' in the second batch.
* ph/rebase-i-redo (2015-04-29) 1 commit
(merged to 'next' on 2015-05-07 at 8fc1f52)
+ rebase -i: redo tasks that die during cherry-pick
@ -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 <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
@ -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.
* 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.
--------------------------------------------------
[Discarded]
* 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
* 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.)
Originally merged to 'next' on 2015-04-02
Reroll posted, but didn't have time to pick it up.
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.
Will merge to 'master' in the second 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.)
Superseded by mh/write-refs-sooner* series.