What's cooking (2015/05 #06)

This commit is contained in:
Junio C Hamano 2015-05-22 15:12:48 -07:00
parent 8254a60a5e
commit 5a10c05e99

View File

@ -1,16 +1,18 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (May 2015, #05; Tue, 19)
X-master-at: 6c1249c503f39ca45ca5b183527b22192cdaf7a7
X-next-at: 3179493ddf99afea85d647dbfa9ebe48a70b9cc0
Subject: What's cooking in git.git (May 2015, #06; Fri, 22)
X-master-at: 9532ead9875b7b92ff2007f9de61af5874e8839a
X-next-at: b70f6470d4a42c2efce07be8bc1edac7c5743a77
What's cooking in git.git (May 2015, #05; Tue, 19)
What's cooking in git.git (May 2015, #06; Fri, 22)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
The fourth batch of topics have been merged to 'master'.
The "untracked cache" series is in 'next', to give it a wider
exposure. I do not use it personally, but it is meant to make life
easier for those with large amount of untracked cruft in their
@ -25,170 +27,31 @@ of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
* 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
+ t5601: fix quotation error leading to skipped tests
+ connect: simplify SSH connection code path
* dl/branch-error-message (2015-05-06) 1 commit
(merged to 'next' on 2015-05-11 at ed947ab)
+ branch: do not call a "remote-tracking branch" a "remote branch"
The connection initiation code for "ssh" transport tried to absorb
differences between the stock "ssh" and Putty-supplied "plink" and
its derivatives, but the logic to tell that we are using "plink"
variants were too loose and falsely triggered when "plink" appeared
anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
Error messages from "git branch" called remote-tracking branches as
"remote branches".
* fg/document-commit-message-stripping (2015-04-27) 1 commit
(merged to 'next' on 2015-05-05 at 1892a99)
+ Documentation: clarify how "git commit" cleans up the edited log message
* dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
(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.
* jc/gitignore-precedence (2015-04-22) 1 commit
(merged to 'next' on 2015-05-05 at 6ef85da)
+ ignore: info/exclude should trump core.excludesfile
* dl/subtree-push-no-squash (2015-05-07) 1 commit
(merged to 'next' on 2015-05-11 at 74d07ca)
+ contrib/subtree: there's no push --squash
core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
to be overridden by repository-specific .git/info/exclude file, but
the order was swapped from the beginning. This belatedly fixes it.
"git subtree" script (in contrib/) does not have --squash option
when pushing, but the documentation and help text pretended as if
it did.
* jc/merge (2015-04-29) 15 commits
(merged to 'next' on 2015-05-07 at 1c56512)
+ merge: deprecate 'git merge <message> HEAD <commit>' syntax
+ merge: handle FETCH_HEAD internally
+ merge: decide if we auto-generate the message early in collect_parents()
+ merge: make collect_parents() auto-generate the merge message
+ merge: extract prepare_merge_message() logic out
+ merge: narrow scope of merge_names
+ merge: split reduce_parents() out of collect_parents()
+ merge: clarify collect_parents() logic
+ merge: small leakfix and code simplification
+ merge: do not check argc to determine number of remote heads
+ merge: clarify "pulling into void" special case
+ t5520: test pulling an octopus into an unborn branch
+ t5520: style fixes
+ merge: simplify code flow
+ merge: test the top-level merge driver
(this branch is used by jc/merge-drop-old-syntax and pt/pull-tests.)
"git merge FETCH_HEAD" learned that the previous "git fetch" could
be to create an Octopus merge, i.e. recording multiple branches
that are not marked as "not-for-merge"; this allows us to lose an
old style invocation "git merge <msg> HEAD $commits..." in the
implementation of "git pull" script; the old style syntax can now
be deprecated.
* jc/test-prereq-validate (2015-04-28) 1 commit
(merged to 'next' on 2015-05-05 at a30464c)
+ test: validate prerequistes syntax
Help us to find broken test script that splits the body part of the
test by mistaken use of wrong kind of quotes.
* jk/git-no-more-argv0-path-munging (2015-04-22) 1 commit
(merged to 'next' on 2015-05-05 at b3f9a45)
+ stop putting argv[0] dirname at front of PATH
We have prepended $GIT_EXEC_PATH and the path "git" is installed in
(typically "/usr/bin") to $PATH when invoking subprograms and hooks
for almost eternity, but the original use case the latter tried to
support was semi-bogus (i.e. install git to /opt/foo/git and run it
without having /opt/foo on $PATH), and more importantly it has
become less and less relevant as Git grew more mainstream (i.e. the
users would _want_ to have it on their $PATH). Stop prepending the
path in which "git" is installed to users' $PATH, as that would
interfere the command search order people depend on (e.g. they may
not like versions of programs that are unrelated to Git in /usr/bin
and want to override them by having different ones in /usr/local/bin
and have the latter directory earlier in their $PATH).
* jk/stash-require-clean-index (2015-04-22) 3 commits
(merged to 'next' on 2015-05-05 at b5f6c32)
+ stash: require a clean index to apply
+ t3903: avoid applying onto dirty index
+ t3903: stop hard-coding commit sha1s
"git stash pop/apply" forgot to make sure that not just the working
tree is clean but also the index is clean. The latter is important
as a stash application can conflict and the index will be used for
conflict resolution.
* jk/test-chain-lint (2015-04-28) 2 commits
(merged to 'next' on 2015-05-05 at e6f0290)
+ test-lib: turn on GIT_TEST_CHAIN_LINT by default
+ t7502-commit.sh: fix a broken and-chain
Developer support to automatically detect broken &&-chain in the
test scripts is now turned on by default.
* kn/cat-file-literally (2015-05-06) 4 commits
(merged to 'next' on 2015-05-12 at 04b29b5)
+ t1006: add tests for git cat-file --allow-unknown-type
+ cat-file: teach cat-file a '--allow-unknown-type' option
+ cat-file: make the options mutually exclusive
+ sha1_file: support reading from a loose object of unknown type
Add the "--allow-unknown-type" option to "cat-file" to allow
inspecting loose objects of an experimental or a broken type.
* nd/diff-i-t-a (2015-03-23) 1 commit
(merged to 'next' on 2015-05-05 at cba9cd9)
+ diff-lib.c: adjust position of i-t-a entries in diff
Originally merged to 'next' on 2015-03-24
After "git add -N", the path appeared in output of "git diff HEAD"
and "git diff --cached HEAD", leading "git status" to classify it
as "Changes to be committed". Such a path, however, is not yet to
be scheduled to be committed. "git diff" showed the change to the
path as modification, not as a "new file", in the header of its
output.
Treat such paths as "yet to be added to the index but Git already
know about them"; "git diff HEAD" and "git diff --cached HEAD"
should not talk about them, and "git diff" should show them as new
files yet to be added to the index.
* nd/dwim-wildcards-as-pathspecs (2015-05-03) 1 commit
(merged to 'next' on 2015-05-07 at 8176de7)
+ pathspec: avoid the need of "--" when wildcard is used
A heuristic to help the "git <cmd> <revs> <pathspec>" command line
convention to catch mistyped paths is to make sure all the non-rev
parameters in the later part of the command line are names of the
files in the working tree, but that means "git grep $str -- \*.c"
must always be disambiguated with "--", because nobody sane will
create a file whose name literally is asterisk-dot-see. Loosen the
heuristic to declare that with a wildcard string the user likely
meant to give us a pathspec.
* 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
"git rebase -i" moved the "current" command from "todo" to "done" a
bit too prematurely, losing a step when a "pick" did not even start.
* sb/ref-lock-lose-lock-fd (2015-05-10) 1 commit
(merged to 'next' on 2015-05-12 at dde9be1)
+ 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.
--------------------------------------------------
[New Topics]
* ja/tutorial-asciidoctor-fix (2015-05-12) 1 commit
(merged to 'next' on 2015-05-19 at f15d940)
+ doc: fix unmatched code fences
@ -197,33 +60,21 @@ of the repositories listed at
delimit it from the rest of the document, which choke GitHub's
AsciiDoc renderer.
Will merge to 'master'.
* jc/ignore-epipe-in-filter (2015-05-20) 2 commits
(merged to 'next' on 2015-05-20 at 2b14ed7)
+ filter_buffer_or_fd(): ignore EPIPE
+ copy.c: make copy_fd() report its status silently
* jk/stripspace-asciidoctor-fix (2015-05-12) 1 commit
(merged to 'next' on 2015-05-19 at 12f9059)
+ doc: fix unmatched code fences in git-stripspace
Filter scripts were run with SIGPIPE disabled on the Git side,
expecting that they may not read what Git feeds them to filter.
We however treated a filter that does not read its input fully
before exiting as an error.
A literal block in the tutorial had lines with unequal lengths to
delimit it from the rest of the document, which choke GitHub's
AsciiDoc renderer.
Will merge to 'master'.
* dt/cat-file-follow-symlinks (2015-05-14) 3 commits
- cat-file: add --follow-symlinks to --batch
- sha1_name: get_sha1_with_context learns to follow symlinks
- tree-walk: learn get_tree_entry_follow_symlinks
"git cat-file --batch(-check)" learned the "--follow-symlinks"
option that follows an in-tree symblic links when asked about an
object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
Documentation/RelNotes/2.5.0.txt. With the new option, the command
behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
input instead.
Will merge to 'next'.
This changes semantics, but arguably in a good way. If a filter
can produce its output without consuming its input using whatever
magic, we now let it do so, instead of diagnosing it as a
programming error.
* jk/add-e-kill-editor (2015-05-12) 1 commit
@ -233,8 +84,6 @@ of the repositories listed at
"git add -e" did not allow the user to abort the operation by
killing the editor.
Will merge to 'master'.
* jk/asciidoc-markup-fix (2015-05-14) 9 commits
(merged to 'next' on 2015-05-19 at df0c63e)
@ -252,7 +101,68 @@ of the repositories listed at
consistent in general and also make AsciiDoctor (an alternative
formatter) happier.
Will merge to 'master'.
* jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
(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.
* jk/stripspace-asciidoctor-fix (2015-05-12) 1 commit
(merged to 'next' on 2015-05-19 at 12f9059)
+ doc: fix unmatched code fences in git-stripspace
A literal block in the tutorial had lines with unequal lengths to
delimit it from the rest of the document, which choke GitHub's
AsciiDoc renderer.
* lm/squelch-bg-progress (2015-05-19) 1 commit
(merged to 'next' on 2015-05-20 at 60916e6)
+ progress: treat "no terminal" as being in the foreground
The controlling tty-based heuristics to squelch progress output did
not consider that the process may not be talking to a tty at all
(e.g. sending the progress to sideband #2). This is a finishing
touch to a topic that is already in 'master'.
* ls/http-ssl-cipher-list (2015-05-08) 1 commit
(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.
* mg/log-decorate-HEAD (2015-05-13) 2 commits
(merged to 'next' on 2015-05-19 at 009342b)
+ log: do not shorten decoration names too early
+ log: decorate HEAD with branch name under --decorate=full, too
The "log --decorate" enhancement in Git 2.4 that shows the commit
at the tip of the current branch e.g. "HEAD -> master", did not
work with --decorate=full.
* mh/clone-verbosity-fix (2015-05-19) 1 commit
(merged to 'next' on 2015-05-20 at f613575)
+ clone: call transport_set_verbosity before anything else on the newly created transport
Git 2.4 broke setting verbosity and progress levels on "git clone"
with native transports.
* mh/lockfile-retry (2015-05-14) 2 commits
(merged to 'next' on 2015-05-20 at 7ad2e9d)
+ lock_packed_refs(): allow retries when acquiring the packed-refs lock
+ lockfile: allow file locking to be retried with a timeout
Instead of dying immediately upon failing to obtain a lock, retry
after a short while with backoff.
* mh/ref-directory-file (2015-05-11) 18 commits
@ -280,160 +190,84 @@ of the repositories listed at
removed at the same time as 'refs/heads/xyzzy' is added (or vice
versa) very well.
Will merge to 'master'.
* mh/write-refs-sooner-2.2 (2015-05-12) 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/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.
* dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
- clean: only lstat files in pathspec
* mh/write-refs-sooner-2.3 (2015-05-12) 1 commit
+ Merge branch 'mh/write-refs-sooner-2.2' into mh/write-refs-sooner-2.3
(this branch is used by mh/write-refs-sooner-2.4; uses mh/write-refs-sooner-2.2.)
"git clean pathspec..." tried to lstat(2) and complain even for
paths outside the given pathspec.
Will merge to 'next'.
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.
* jh/filter-empty-contents (2015-05-18) 1 commit
- sha1_file: pass empty buffer to index empty file
* mh/write-refs-sooner-2.4 (2015-05-12) 9 commits
(merged to 'next' on 2015-05-19 at f7be074)
+ Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4
+ 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 uses mh/write-refs-sooner-2.2 and mh/write-refs-sooner-2.3.)
The clean/smudge interface did not work well when filtering an
empty contents (failed and then passed the empty input through).
It can be argued that a filter that produces anything but empty for
an empty input is nonsense, but if the user wants to do strange
things, then why not?
Will merge to 'next'.
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.
* jk/http-backend-deadlock (2015-05-15) 2 commits
- http-backend: spool ref negotiation requests to buffer
- http-backend: fix die recursion with custom handler
* ps/bundle-verify-arg (2015-05-08) 1 commit
(merged to 'next' on 2015-05-11 at 9f1b1ae)
+ bundle: verify arguments more strictly
Communication between the HTTP server and http_backend process can
lead to a dead-lock when relaying a large ref negotiation request.
Diagnose the situation better, and mitigate it by reading such a
request first into core (to a reasonable limit).
Will merge to 'next'.
* jk/rerere-forget-check-enabled (2015-05-14) 1 commit
(merged to 'next' on 2015-05-19 at bfe67dc)
+ rerere: exit silently on "forget" when rerere is disabled
"git rerere forget" in a repository without rerere enabled gave a
cryptic error message; it should be a silent no-op instead.
Will merge to 'master'.
* lm/squelch-bg-progress (2015-05-19) 1 commit
- progress: treat "no terminal" as being in the foreground
The controlling tty-based heuristics to squelch progress output did
not consider that the process may not be talking to a tty at all
(e.g. sending the progress to sideband #2). This is a finishing
touch to a topic that is already in 'master'.
Will merge to 'next'.
* mg/log-decorate-HEAD (2015-05-13) 2 commits
(merged to 'next' on 2015-05-19 at 009342b)
+ log: do not shorten decoration names too early
+ log: decorate HEAD with branch name under --decorate=full, too
The "log --decorate" enhancement in Git 2.4 that shows the commit
at the tip of the current branch e.g. "HEAD -> master", did not
work with --decorate=full.
Will merge to 'master'.
* mh/clone-verbosity-fix (2015-05-19) 1 commit
- clone: call transport_set_verbosity before anything else on the newly created transport
Git 2.4 broke setting verbosity and progress levels on "git clone"
with native transports.
Will merge to 'next'.
* mh/lockfile-retry (2015-05-14) 2 commits
- lock_packed_refs(): allow retries when acquiring the packed-refs lock
- lockfile: allow file locking to be retried with a timeout
Instead of dying immediately upon failing to obtain a lock, retry
after a short while with backoff.
Will merge to 'next'.
* mm/log-format-raw-doc (2015-05-18) 3 commits
- SQUASH
- Documentation/log: clarify sha1 non-abbreviation in log --raw
- Documentation/log: clarify what --raw means
Clarify that "log --raw" and "log --format=raw" are unrelated
concepts.
Will merge to 'next' after squashing the fixup.
"git bundle verify" did not diagnose extra parameters on the
command line.
* ps/doc-packfile-vs-pack-file (2015-05-17) 3 commits
- pack-protocol.txt: fix insconsistent spelling of "packfile"
- git-unpack-objects.txt: fix inconsistent spelling of "packfile"
- git-verify-pack.txt: fix inconsistent spelling of "packfile"
(merged to 'next' on 2015-05-20 at 7302174)
+ pack-protocol.txt: fix insconsistent spelling of "packfile"
+ git-unpack-objects.txt: fix inconsistent spelling of "packfile"
+ git-verify-pack.txt: fix inconsistent spelling of "packfile"
Doc consistency updates. I am not sure if this is unifying in the
right direction, though.
* pt/pull-ff-vs-merge-ff (2015-05-18) 2 commits
- pull: parse pull.ff as a bool or string
- pull: make pull.ff=true override merge.ff
The pull.ff configuration was supposed to override the merge.ff
configuration, but it didn't.
Will merge to 'next'.
* pt/pull-log-n (2015-05-18) 1 commit
- pull: handle --log=<n>
"git pull --log" and "git pull --no-log" worked as expected, but
"git pull --log=20" did not.
Will merge to 'next'.
Doc consistency updates.
* pt/pull-tags-error-diag (2015-05-14) 1 commit
- pull: remove --tags error in no merge candidates case
(merged to 'next' on 2015-05-20 at 6e1a5f1)
+ pull: remove --tags error in no merge candidates case
There was a dead code that used to handle "git pull --tags" and
show special-cased error message, which was made irrelevant when
the semantics of the option changed back in Git 1.9 days.
Will merge to 'next'.
* rs/plug-leak-in-pack-bitmaps (2015-05-19) 1 commit
- pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps
The code to memoise recently used pack bitmaps were totally broken.
Will merge to 'next'.
* sb/t1020-cleanup (2015-05-18) 1 commit
- subdirectory tests: code cleanup, uncomment test
(merged to 'next' on 2015-05-20 at fa74b14)
+ subdirectory tests: code cleanup, uncomment test
There was a commented-out (instead of being marked to expect
failure) test that documented a breakage that was fixed since the
test was written; turn it into a proper test.
Will merge to 'next'.
* sg/completion-config (2015-05-12) 2 commits
(merged to 'next' on 2015-05-19 at c83fde1)
@ -442,34 +276,132 @@ of the repositories listed at
Code clean-up for completion script (in contrib/).
Will merge to 'master'.
* sg/completion-omit-credential-helpers (2015-05-06) 1 commit
(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.
* sg/help-group (2015-05-18) 5 commits
- help: respect new common command grouping
- command-list.txt: drop the "common" tag
- generate-cmdlist: parse common group commands
- command-list.txt: add the common groups block
- command-list: prepare machinery for upcoming "common groups" section
(this branch uses sg/help-subcommands.)
* sg/help-subcommands (2015-05-08) 1 commit
(merged to 'next' on 2015-05-11 at 91e4f9e)
+ command-list.txt: fix whitespace inconsistency
(this branch is used by sg/help-group.)
Group list of commands shown by "git help" along the workflow
elements to help early learners.
A preparatory clean-up step.
--------------------------------------------------
[New Topics]
* da/mergetool-winmerge (2015-05-20) 2 commits
- mergetools: add winmerge as a builtin tool
- mergetool--lib: set IFS for difftool and mergetool
"git mergetool" learned to drive WinMerge as a backend.
Will merge to 'next'.
* jc/ignore-epipe-in-filter (2015-05-19) 2 commits
- filter_buffer_or_fd(): ignore EPIPE
- copy.c: make copy_fd() report its status silently
* jk/http-backend-deadlock-2.2 (2015-05-20) 3 commits
- http-backend: spool ref negotiation requests to buffer
- t5551: factor out tag creation
- http-backend: fix die recursion with custom handler
(this branch is used by jk/http-backend-deadlock and jk/http-backend-deadlock-2.3.)
Filter scripts were run with SIGPIPE disabled on the Git side,
expecting that they may not read what Git feeds them to filter.
We however treated a filter that does not read its input fully
before exiting as an error.
Communication between the HTTP server and http_backend process can
lead to a dead-lock when relaying a large ref negotiation request.
Diagnose the situation better, and mitigate it by reading such a
request first into core (to a reasonable limit).
This changes semantics, but arguably in a good way. If a filter
can produce its output without consuming its input using whatever
magic, we now let it do so, instead of diagnosing it as a
programming error.
This was wiggled back to apply to the 2.2 maintenance track
(original was for 2.4).
Will merge to 'next'.
* jk/http-backend-deadlock-2.3 (2015-05-20) 1 commit
- Merge branch 'jk/http-backend-deadlock-2.2' into jk/http-backend-deadlock-2.3
(this branch is used by jk/http-backend-deadlock; uses jk/http-backend-deadlock-2.2.)
Same for 2.3 maintenance track.
Will merge to 'next'.
* jk/stash-options (2015-05-20) 2 commits
- stash: recognize "--help" for subcommands
- stash: complain about unknown flags
Make "git stash something --help" error out, so that users can
safely say "git stash drop --help".
Will merge to 'next'.
* mc/commit-doc-grammofix (2015-05-19) 1 commit
- Documentation/git-commit: grammofix
Will merge to 'next'.
* rs/janitorial (2015-05-20) 3 commits
- dir: remove unused variable sb
- clean: remove unused variable buf
- use file_exists() to check if a file exists in the worktree
Will merge to 'next'.
* ah/send-email-postfix-alias (2015-05-21) 1 commit
- git-send-email.perl: Add sendmail aliases support
* fm/fetch-raw-sha1 (2015-05-21) 5 commits
- SQUASH
- upload-pack: optionally allow fetching reachable sha1
- SQUASH
- upload-pack: prepare to extend allow-tip-sha1-in-want
- config.txt: clarify allowTipSHA1InWant with camelCase
"git upload-pack" that serves "git fetch" can be told to serve
commits that are not at the tip of any ref as long as they are
reachable from a ref with uploadpack.allowReachableSHA1InWant
configuration variable.
Will squash the fixes in and then merge to 'next'.
* jc/commit-slab (2015-05-22) 1 commit
- commit-slab: introduce slabname##_peek() function
Memory use reduction when commit-slab facility is used to annotate
sparsely (which is not recommended in the first place).
* mm/rebase-i-post-rewrite-exec (2015-05-22) 3 commits
- t5407: use <<- to align the expected output
- rebase -i: fix post-rewrite hook with failed exec command
- rebase -i: demonstrate incorrect behavior of post-rewrite
"git rebase -i" fired post-rewrite hook when it shouldn't (namely,
when it was told to stop sequencing with 'exec' insn).
Will merge to 'next'.
* sb/submodule-doc-intro (2015-05-22) 1 commit
- submodule documentation: reorder introductory paragraphs
Will merge to 'next'.
* sb/test-bitmap-free-at-end (2015-05-22) 1 commit
- test_bitmap_walk: free bitmap with bitmap_free
Will merge to 'next'.
--------------------------------------------------
[Stalled]
@ -687,6 +619,120 @@ of the repositories listed at
--------------------------------------------------
[Cooking]
* dt/cat-file-follow-symlinks (2015-05-20) 3 commits
- cat-file: add --follow-symlinks to --batch
- sha1_name: get_sha1_with_context learns to follow symlinks
- tree-walk: learn get_tree_entry_follow_symlinks
"git cat-file --batch(-check)" learned the "--follow-symlinks"
option that follows an in-tree symblic links when asked about an
object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
Documentation/RelNotes/2.5.0.txt. With the new option, the command
behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
input instead.
Will merge to 'next'.
* dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
- clean: only lstat files in pathspec
"git clean pathspec..." tried to lstat(2) and complain even for
paths outside the given pathspec.
Will merge to 'next'.
* jh/filter-empty-contents (2015-05-18) 1 commit
- sha1_file: pass empty buffer to index empty file
The clean/smudge interface did not work well when filtering an
empty contents (failed and then passed the empty input through).
It can be argued that a filter that produces anything but empty for
an empty input is nonsense, but if the user wants to do strange
things, then why not?
Will merge to 'next'.
* jk/http-backend-deadlock (2015-05-20) 1 commit
- Merge branch 'jk/http-backend-deadlock-2.3' into jk/http-backend-deadlock
(this branch uses jk/http-backend-deadlock-2.2 and jk/http-backend-deadlock-2.3.)
Communication between the HTTP server and http_backend process can
lead to a dead-lock when relaying a large ref negotiation request.
Diagnose the situation better, and mitigate it by reading such a
request first into core (to a reasonable limit).
Will merge to 'next'.
* jk/rerere-forget-check-enabled (2015-05-14) 1 commit
(merged to 'next' on 2015-05-19 at bfe67dc)
+ rerere: exit silently on "forget" when rerere is disabled
"git rerere forget" in a repository without rerere enabled gave a
cryptic error message; it should be a silent no-op instead.
Will merge to 'master'.
* mm/log-format-raw-doc (2015-05-20) 2 commits
- Documentation/log: clarify sha1 non-abbreviation in log --raw
- Documentation/log: clarify what --raw means
Clarify that "log --raw" and "log --format=raw" are unrelated
concepts.
Will merge to 'next'.
* pt/pull-ff-vs-merge-ff (2015-05-18) 2 commits
(merged to 'next' on 2015-05-20 at 064a082)
+ pull: parse pull.ff as a bool or string
+ pull: make pull.ff=true override merge.ff
The pull.ff configuration was supposed to override the merge.ff
configuration, but it didn't.
Will merge to 'master'.
* pt/pull-log-n (2015-05-18) 1 commit
(merged to 'next' on 2015-05-20 at db6ce78)
+ pull: handle --log=<n>
"git pull --log" and "git pull --no-log" worked as expected, but
"git pull --log=20" did not.
Will merge to 'master'.
* rs/plug-leak-in-pack-bitmaps (2015-05-19) 1 commit
(merged to 'next' on 2015-05-20 at b70f647)
+ pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps
The code to read pack-bitmap wanted to allocate a few hundred
pointers to a structure, but by mistake allocated and leaked memory
enough to hold that many actual structures. Correct the allocation
size and also have it on stack, as it is small enough.
Will merge to 'master'.
* sg/help-group (2015-05-21) 5 commits
- help: respect new common command grouping
- command-list.txt: drop the "common" tag
- generate-cmdlist: parse common group commands
- command-list.txt: add the common groups block
- command-list: prepare machinery for upcoming "common groups" section
Group list of commands shown by "git help" along the workflow
elements to help early learners.
Will merge to 'next'.
* nd/untracked-cache (2015-03-12) 24 commits
(merged to 'next' on 2015-05-19 at 26e619b)
+ git-status.txt: advertisement for untracked cache
@ -720,30 +766,12 @@ of the repositories listed at
Will cook in 'next'.
* dl/branch-error-message (2015-05-06) 1 commit
(merged to 'next' on 2015-05-11 at ed947ab)
+ branch: do not call a "remote-tracking branch" a "remote branch"
Error messages from "git branch" called remote-tracking branches as
"remote branches".
Will merge to 'master' in the fourth batch.
* dl/subtree-push-no-squash (2015-05-07) 1 commit
(merged to 'next' on 2015-05-11 at 74d07ca)
+ contrib/subtree: there's no push --squash
"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' in the fourth batch.
* ld/p4-editor-multi-words (2015-05-19) 3 commits
* ld/p4-editor-multi-words (2015-05-20) 6 commits
- SQUASH
- git-p4: tests: use test-chmtime in place of touch
- SQUASH
- git-p4: fix handling of multi-word P4EDITOR
- SQUASH???
- SQUASH
- git-p4: add failing test for P4EDITOR handling
Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
@ -753,111 +781,6 @@ of the repositories listed at
Make it in line with the rest of Git, as well as with Perforce.
* dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
(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 'master' in the fourth batch.
* ls/http-ssl-cipher-list (2015-05-08) 1 commit
(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 'master' in the fourth batch.
* ps/bundle-verify-arg (2015-05-08) 1 commit
(merged to 'next' on 2015-05-11 at 9f1b1ae)
+ bundle: verify arguments more strictly
"git bundle verify" did not diagnose extra parameters on the
command line.
Will merge to 'master' in the fourth batch.
* sg/help-subcommands (2015-05-08) 1 commit
(merged to 'next' on 2015-05-11 at 91e4f9e)
+ command-list.txt: fix whitespace inconsistency
(this branch is used by sg/help-group.)
A preparatory clean-up step.
Will merge to 'master' in the fourth batch.
* mh/write-refs-sooner-2.2 (2015-05-12) 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/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-12) 1 commit
+ Merge branch 'mh/write-refs-sooner-2.2' into mh/write-refs-sooner-2.3
(this branch is used by 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-12) 9 commits
(merged to 'next' on 2015-05-19 at f7be074)
+ Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4
+ 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 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.
* sg/completion-omit-credential-helpers (2015-05-06) 1 commit
(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 'master' in the fourth batch.
* jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
(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 'master' in the fourth batch.
* pt/pull-tests (2015-05-18) 8 commits
- t5520: check reflog action in fast-forward merge
- t5521: test --dry-run does not make any changes
@ -877,25 +800,29 @@ of the repositories listed at
Still an early WIP
* jk/at-push-sha1 (2015-05-03) 12 commits
* jk/at-push-sha1 (2015-05-22) 16 commits
- for-each-ref: accept "%(push)" format
- for-each-ref: use skip_prefix instead of starts_with
- sha1_name: implement @{push} shorthand
- sha1_name: refactor interpret_upstream_mark
- sha1_name: refactor upstream_mark
- remote.c: add branch_get_push
- remote.c: return upstream name from stat_tracking_info
- remote.c: untangle error logic in branch_get_upstream
- remote.c: report specific errors from branch_get_upstream
- remote.c: introduce branch_get_upstream helper
- remote.c: hoist read_config into remote_get_1
- 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: refactor setup of branch->merge list
- 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.).
Will merge to 'next'.
* ee/clean-remove-dirs (2015-04-26) 5 commits