What's cooking (2015/05 #06)

Junio C Hamano committed May 22, 2015 at 15:12 UTC 5a10c05e99461d2fc9455b1767ba82bdf2b6ae79
1 file changed +357 -430
whats-cooking.txt
+357 -430
@@ -1,16 +1,18 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2015, #05; Tue, 19)
4 -X-master-at: 6c1249c503f39ca45ca5b183527b22192cdaf7a7
5 -X-next-at: 3179493ddf99afea85d647dbfa9ebe48a70b9cc0
3 +Subject: What's cooking in git.git (May 2015, #06; Fri, 22)
4 +X-master-at: 9532ead9875b7b92ff2007f9de61af5874e8839a
5 +X-next-at: b70f6470d4a42c2efce07be8bc1edac7c5743a77
6
7 -What's cooking in git.git (May 2015, #05; Tue, 19)
7 +What's cooking in git.git (May 2015, #06; Fri, 22)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
13
14 +The fourth batch of topics have been merged to 'master'.
15 +
16 The "untracked cache" series is in 'next', to give it a wider
17 exposure. I do not use it personally, but it is meant to make life
18 easier for those with large amount of untracked cruft in their
@@ -25,169 +27,30 @@ of the repositories listed at
27 --------------------------------------------------
28 [Graduated to "master"]
29
28 -* bc/connect-plink (2015-04-28) 3 commits
29 - (merged to 'next' on 2015-05-05 at 9def2e1)
30 - + connect: improve check for plink to reduce false positives
31 - + t5601: fix quotation error leading to skipped tests
32 - + connect: simplify SSH connection code path
33 -
34 - The connection initiation code for "ssh" transport tried to absorb
35 - differences between the stock "ssh" and Putty-supplied "plink" and
36 - its derivatives, but the logic to tell that we are using "plink"
37 - variants were too loose and falsely triggered when "plink" appeared
38 - anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
39 -
40 -
41 -* fg/document-commit-message-stripping (2015-04-27) 1 commit
42 - (merged to 'next' on 2015-05-05 at 1892a99)
43 - + Documentation: clarify how "git commit" cleans up the edited log message
44 -
45 -
46 -* jc/gitignore-precedence (2015-04-22) 1 commit
47 - (merged to 'next' on 2015-05-05 at 6ef85da)
48 - + ignore: info/exclude should trump core.excludesfile
49 -
50 - core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
51 - to be overridden by repository-specific .git/info/exclude file, but
52 - the order was swapped from the beginning. This belatedly fixes it.
53 -
54 -
55 -* jc/merge (2015-04-29) 15 commits
56 - (merged to 'next' on 2015-05-07 at 1c56512)
57 - + merge: deprecate 'git merge <message> HEAD <commit>' syntax
58 - + merge: handle FETCH_HEAD internally
59 - + merge: decide if we auto-generate the message early in collect_parents()
60 - + merge: make collect_parents() auto-generate the merge message
61 - + merge: extract prepare_merge_message() logic out
62 - + merge: narrow scope of merge_names
63 - + merge: split reduce_parents() out of collect_parents()
64 - + merge: clarify collect_parents() logic
65 - + merge: small leakfix and code simplification
66 - + merge: do not check argc to determine number of remote heads
67 - + merge: clarify "pulling into void" special case
68 - + t5520: test pulling an octopus into an unborn branch
69 - + t5520: style fixes
70 - + merge: simplify code flow
71 - + merge: test the top-level merge driver
72 - (this branch is used by jc/merge-drop-old-syntax and pt/pull-tests.)
73 -
74 - "git merge FETCH_HEAD" learned that the previous "git fetch" could
75 - be to create an Octopus merge, i.e. recording multiple branches
76 - that are not marked as "not-for-merge"; this allows us to lose an
77 - old style invocation "git merge <msg> HEAD $commits..." in the
78 - implementation of "git pull" script; the old style syntax can now
79 - be deprecated.
80 -
81 -
82 -* jc/test-prereq-validate (2015-04-28) 1 commit
83 - (merged to 'next' on 2015-05-05 at a30464c)
84 - + test: validate prerequistes syntax
85 -
86 - Help us to find broken test script that splits the body part of the
87 - test by mistaken use of wrong kind of quotes.
88 -
89 -
90 -* jk/git-no-more-argv0-path-munging (2015-04-22) 1 commit
91 - (merged to 'next' on 2015-05-05 at b3f9a45)
92 - + stop putting argv[0] dirname at front of PATH
93 -
94 - We have prepended $GIT_EXEC_PATH and the path "git" is installed in
95 - (typically "/usr/bin") to $PATH when invoking subprograms and hooks
96 - for almost eternity, but the original use case the latter tried to
97 - support was semi-bogus (i.e. install git to /opt/foo/git and run it
98 - without having /opt/foo on $PATH), and more importantly it has
99 - become less and less relevant as Git grew more mainstream (i.e. the
100 - users would _want_ to have it on their $PATH). Stop prepending the
101 - path in which "git" is installed to users' $PATH, as that would
102 - interfere the command search order people depend on (e.g. they may
103 - not like versions of programs that are unrelated to Git in /usr/bin
104 - and want to override them by having different ones in /usr/local/bin
105 - and have the latter directory earlier in their $PATH).
106 -
107 -
108 -* jk/stash-require-clean-index (2015-04-22) 3 commits
109 - (merged to 'next' on 2015-05-05 at b5f6c32)
110 - + stash: require a clean index to apply
111 - + t3903: avoid applying onto dirty index
112 - + t3903: stop hard-coding commit sha1s
113 -
114 - "git stash pop/apply" forgot to make sure that not just the working
115 - tree is clean but also the index is clean. The latter is important
116 - as a stash application can conflict and the index will be used for
117 - conflict resolution.
118 -
119 -
120 -* jk/test-chain-lint (2015-04-28) 2 commits
121 - (merged to 'next' on 2015-05-05 at e6f0290)
122 - + test-lib: turn on GIT_TEST_CHAIN_LINT by default
123 - + t7502-commit.sh: fix a broken and-chain
124 -
125 - Developer support to automatically detect broken &&-chain in the
126 - test scripts is now turned on by default.
127 -
128 -
129 -* kn/cat-file-literally (2015-05-06) 4 commits
130 - (merged to 'next' on 2015-05-12 at 04b29b5)
131 - + t1006: add tests for git cat-file --allow-unknown-type
132 - + cat-file: teach cat-file a '--allow-unknown-type' option
133 - + cat-file: make the options mutually exclusive
134 - + sha1_file: support reading from a loose object of unknown type
135 -
136 - Add the "--allow-unknown-type" option to "cat-file" to allow
137 - inspecting loose objects of an experimental or a broken type.
138 -
139 -
140 -* nd/diff-i-t-a (2015-03-23) 1 commit
141 - (merged to 'next' on 2015-05-05 at cba9cd9)
142 - + diff-lib.c: adjust position of i-t-a entries in diff
143 -
144 - Originally merged to 'next' on 2015-03-24
145 -
146 - After "git add -N", the path appeared in output of "git diff HEAD"
147 - and "git diff --cached HEAD", leading "git status" to classify it
148 - as "Changes to be committed". Such a path, however, is not yet to
149 - be scheduled to be committed. "git diff" showed the change to the
150 - path as modification, not as a "new file", in the header of its
151 - output.
152 -
153 - Treat such paths as "yet to be added to the index but Git already
154 - know about them"; "git diff HEAD" and "git diff --cached HEAD"
155 - should not talk about them, and "git diff" should show them as new
156 - files yet to be added to the index.
157 -
158 -
159 -* nd/dwim-wildcards-as-pathspecs (2015-05-03) 1 commit
160 - (merged to 'next' on 2015-05-07 at 8176de7)
161 - + pathspec: avoid the need of "--" when wildcard is used
30 +* dl/branch-error-message (2015-05-06) 1 commit
31 + (merged to 'next' on 2015-05-11 at ed947ab)
32 + + branch: do not call a "remote-tracking branch" a "remote branch"
33
163 - A heuristic to help the "git <cmd> <revs> <pathspec>" command line
164 - convention to catch mistyped paths is to make sure all the non-rev
165 - parameters in the later part of the command line are names of the
166 - files in the working tree, but that means "git grep $str -- \*.c"
167 - must always be disambiguated with "--", because nobody sane will
168 - create a file whose name literally is asterisk-dot-see. Loosen the
169 - heuristic to declare that with a wildcard string the user likely
170 - meant to give us a pathspec.
34 + Error messages from "git branch" called remote-tracking branches as
35 + "remote branches".
36
37
173 -* ph/rebase-i-redo (2015-04-29) 1 commit
174 - (merged to 'next' on 2015-05-07 at 8fc1f52)
175 - + rebase -i: redo tasks that die during cherry-pick
38 +* dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
39 + (merged to 'next' on 2015-05-11 at 36d4f0e)
40 + + contrib/subtree: portability fix for string printing
41
177 - "git rebase -i" moved the "current" command from "todo" to "done" a
178 - bit too prematurely, losing a step when a "pick" did not even start.
42 + "git subtree" script (in contrib/) used "echo -n" to produce
43 + progress messages in a non-portable way.
44
45
181 -* sb/ref-lock-lose-lock-fd (2015-05-10) 1 commit
182 - (merged to 'next' on 2015-05-12 at dde9be1)
183 - + refs.c: remove lock_fd from struct ref_lock
46 +* dl/subtree-push-no-squash (2015-05-07) 1 commit
47 + (merged to 'next' on 2015-05-11 at 74d07ca)
48 + + contrib/subtree: there's no push --squash
49
185 - The refs API uses ref_lock struct which had its own "int fd", even
186 - though the same file descriptor was in the lock struct it contains.
187 - Clean-up the code to lose this redundant field.
50 + "git subtree" script (in contrib/) does not have --squash option
51 + when pushing, but the documentation and help text pretended as if
52 + it did.
53
189 ---------------------------------------------------
190 -[New Topics]
54
55 * ja/tutorial-asciidoctor-fix (2015-05-12) 1 commit
56 (merged to 'next' on 2015-05-19 at f15d940)
@@ -197,33 +60,21 @@ of the repositories listed at
60 delimit it from the rest of the document, which choke GitHub's
61 AsciiDoc renderer.
62
200 - Will merge to 'master'.
201 -
202 -
203 -* jk/stripspace-asciidoctor-fix (2015-05-12) 1 commit
204 - (merged to 'next' on 2015-05-19 at 12f9059)
205 - + doc: fix unmatched code fences in git-stripspace
206 -
207 - A literal block in the tutorial had lines with unequal lengths to
208 - delimit it from the rest of the document, which choke GitHub's
209 - AsciiDoc renderer.
210 -
211 - Will merge to 'master'.
212 -
63
214 -* dt/cat-file-follow-symlinks (2015-05-14) 3 commits
215 - - cat-file: add --follow-symlinks to --batch
216 - - sha1_name: get_sha1_with_context learns to follow symlinks
217 - - tree-walk: learn get_tree_entry_follow_symlinks
64 +* jc/ignore-epipe-in-filter (2015-05-20) 2 commits
65 + (merged to 'next' on 2015-05-20 at 2b14ed7)
66 + + filter_buffer_or_fd(): ignore EPIPE
67 + + copy.c: make copy_fd() report its status silently
68
219 - "git cat-file --batch(-check)" learned the "--follow-symlinks"
220 - option that follows an in-tree symblic links when asked about an
221 - object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
222 - Documentation/RelNotes/2.5.0.txt. With the new option, the command
223 - behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
224 - input instead.
69 + Filter scripts were run with SIGPIPE disabled on the Git side,
70 + expecting that they may not read what Git feeds them to filter.
71 + We however treated a filter that does not read its input fully
72 + before exiting as an error.
73
226 - Will merge to 'next'.
74 + This changes semantics, but arguably in a good way. If a filter
75 + can produce its output without consuming its input using whatever
76 + magic, we now let it do so, instead of diagnosing it as a
77 + programming error.
78
79
80 * jk/add-e-kill-editor (2015-05-12) 1 commit
@@ -233,8 +84,6 @@ of the repositories listed at
84 "git add -e" did not allow the user to abort the operation by
85 killing the editor.
86
236 - Will merge to 'master'.
237 -
87
88 * jk/asciidoc-markup-fix (2015-05-14) 9 commits
89 (merged to 'next' on 2015-05-19 at df0c63e)
@@ -252,7 +101,68 @@ of the repositories listed at
101 consistent in general and also make AsciiDoctor (an alternative
102 formatter) happier.
103
255 - Will merge to 'master'.
104 +
105 +* jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
106 + (merged to 'next' on 2015-05-11 at a52b711)
107 + + tests: skip dav http-push tests under NO_EXPAT=NoThanks
108 + + t/lib-httpd.sh: skip tests if NO_CURL is defined
109 +
110 + Test clean-up.
111 +
112 +
113 +* jk/stripspace-asciidoctor-fix (2015-05-12) 1 commit
114 + (merged to 'next' on 2015-05-19 at 12f9059)
115 + + doc: fix unmatched code fences in git-stripspace
116 +
117 + A literal block in the tutorial had lines with unequal lengths to
118 + delimit it from the rest of the document, which choke GitHub's
119 + AsciiDoc renderer.
120 +
121 +
122 +* lm/squelch-bg-progress (2015-05-19) 1 commit
123 + (merged to 'next' on 2015-05-20 at 60916e6)
124 + + progress: treat "no terminal" as being in the foreground
125 +
126 + The controlling tty-based heuristics to squelch progress output did
127 + not consider that the process may not be talking to a tty at all
128 + (e.g. sending the progress to sideband #2). This is a finishing
129 + touch to a topic that is already in 'master'.
130 +
131 +
132 +* ls/http-ssl-cipher-list (2015-05-08) 1 commit
133 + (merged to 'next' on 2015-05-11 at 55764ce)
134 + + http: add support for specifying an SSL cipher list
135 +
136 + Introduce http.<url>.SSLCipherList configuration variable to tweak
137 + the list of cipher suite to be used with libcURL when talking with
138 + https:// sites.
139 +
140 +
141 +* mg/log-decorate-HEAD (2015-05-13) 2 commits
142 + (merged to 'next' on 2015-05-19 at 009342b)
143 + + log: do not shorten decoration names too early
144 + + log: decorate HEAD with branch name under --decorate=full, too
145 +
146 + The "log --decorate" enhancement in Git 2.4 that shows the commit
147 + at the tip of the current branch e.g. "HEAD -> master", did not
148 + work with --decorate=full.
149 +
150 +
151 +* mh/clone-verbosity-fix (2015-05-19) 1 commit
152 + (merged to 'next' on 2015-05-20 at f613575)
153 + + clone: call transport_set_verbosity before anything else on the newly created transport
154 +
155 + Git 2.4 broke setting verbosity and progress levels on "git clone"
156 + with native transports.
157 +
158 +
159 +* mh/lockfile-retry (2015-05-14) 2 commits
160 + (merged to 'next' on 2015-05-20 at 7ad2e9d)
161 + + lock_packed_refs(): allow retries when acquiring the packed-refs lock
162 + + lockfile: allow file locking to be retried with a timeout
163 +
164 + Instead of dying immediately upon failing to obtain a lock, retry
165 + after a short while with backoff.
166
167
168 * mh/ref-directory-file (2015-05-11) 18 commits
@@ -280,196 +190,218 @@ of the repositories listed at
190 removed at the same time as 'refs/heads/xyzzy' is added (or vice
191 versa) very well.
192
283 - Will merge to 'master'.
284 -
193
286 -* dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
287 - - clean: only lstat files in pathspec
194 +* mh/write-refs-sooner-2.2 (2015-05-12) 8 commits
195 + + ref_transaction_commit(): fix atomicity and avoid fd exhaustion
196 + + ref_transaction_commit(): remove the local flags variable
197 + + ref_transaction_commit(): inline call to write_ref_sha1()
198 + + rename_ref(): inline calls to write_ref_sha1() from this function
199 + + commit_ref_update(): new function, extracted from write_ref_sha1()
200 + + write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
201 + + t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
202 + + update-ref: test handling large transactions properly
203 + (this branch is used by mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.)
204
289 - "git clean pathspec..." tried to lstat(2) and complain even for
290 - paths outside the given pathspec.
205 + Multi-ref transaction support we merged a few releases ago
206 + unnecessarily kept many file descriptors open, risking to fail with
207 + resource exhaustion.
208
292 - Will merge to 'next'.
209
210 +* mh/write-refs-sooner-2.3 (2015-05-12) 1 commit
211 + + Merge branch 'mh/write-refs-sooner-2.2' into mh/write-refs-sooner-2.3
212 + (this branch is used by mh/write-refs-sooner-2.4; uses mh/write-refs-sooner-2.2.)
213
295 -* jh/filter-empty-contents (2015-05-18) 1 commit
296 - - sha1_file: pass empty buffer to index empty file
214 + Multi-ref transaction support we merged a few releases ago
215 + unnecessarily kept many file descriptors open, risking to fail with
216 + resource exhaustion. This is for 2.3.x track.
217
298 - The clean/smudge interface did not work well when filtering an
299 - empty contents (failed and then passed the empty input through).
300 - It can be argued that a filter that produces anything but empty for
301 - an empty input is nonsense, but if the user wants to do strange
302 - things, then why not?
218
304 - Will merge to 'next'.
219 +* mh/write-refs-sooner-2.4 (2015-05-12) 9 commits
220 + (merged to 'next' on 2015-05-19 at f7be074)
221 + + Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4
222 + + ref_transaction_commit(): fix atomicity and avoid fd exhaustion
223 + + ref_transaction_commit(): remove the local flags variable
224 + + ref_transaction_commit(): inline call to write_ref_sha1()
225 + + rename_ref(): inline calls to write_ref_sha1() from this function
226 + + commit_ref_update(): new function, extracted from write_ref_sha1()
227 + + write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
228 + + t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
229 + + update-ref: test handling large transactions properly
230 + (this branch uses mh/write-refs-sooner-2.2 and mh/write-refs-sooner-2.3.)
231
232 + Multi-ref transaction support we merged a few releases ago
233 + unnecessarily kept many file descriptors open, risking to fail with
234 + resource exhaustion. This is for 2.4.x track.
235
307 -* jk/http-backend-deadlock (2015-05-15) 2 commits
308 - - http-backend: spool ref negotiation requests to buffer
309 - - http-backend: fix die recursion with custom handler
236
311 - Communication between the HTTP server and http_backend process can
312 - lead to a dead-lock when relaying a large ref negotiation request.
313 - Diagnose the situation better, and mitigate it by reading such a
314 - request first into core (to a reasonable limit).
237 +* ps/bundle-verify-arg (2015-05-08) 1 commit
238 + (merged to 'next' on 2015-05-11 at 9f1b1ae)
239 + + bundle: verify arguments more strictly
240
316 - Will merge to 'next'.
241 + "git bundle verify" did not diagnose extra parameters on the
242 + command line.
243
244
319 -* jk/rerere-forget-check-enabled (2015-05-14) 1 commit
320 - (merged to 'next' on 2015-05-19 at bfe67dc)
321 - + rerere: exit silently on "forget" when rerere is disabled
245 +* ps/doc-packfile-vs-pack-file (2015-05-17) 3 commits
246 + (merged to 'next' on 2015-05-20 at 7302174)
247 + + pack-protocol.txt: fix insconsistent spelling of "packfile"
248 + + git-unpack-objects.txt: fix inconsistent spelling of "packfile"
249 + + git-verify-pack.txt: fix inconsistent spelling of "packfile"
250
323 - "git rerere forget" in a repository without rerere enabled gave a
324 - cryptic error message; it should be a silent no-op instead.
251 + Doc consistency updates.
252
326 - Will merge to 'master'.
253
254 +* pt/pull-tags-error-diag (2015-05-14) 1 commit
255 + (merged to 'next' on 2015-05-20 at 6e1a5f1)
256 + + pull: remove --tags error in no merge candidates case
257
329 -* lm/squelch-bg-progress (2015-05-19) 1 commit
330 - - progress: treat "no terminal" as being in the foreground
258 + There was a dead code that used to handle "git pull --tags" and
259 + show special-cased error message, which was made irrelevant when
260 + the semantics of the option changed back in Git 1.9 days.
261
332 - The controlling tty-based heuristics to squelch progress output did
333 - not consider that the process may not be talking to a tty at all
334 - (e.g. sending the progress to sideband #2). This is a finishing
335 - touch to a topic that is already in 'master'.
262
337 - Will merge to 'next'.
263 +* sb/t1020-cleanup (2015-05-18) 1 commit
264 + (merged to 'next' on 2015-05-20 at fa74b14)
265 + + subdirectory tests: code cleanup, uncomment test
266
267 + There was a commented-out (instead of being marked to expect
268 + failure) test that documented a breakage that was fixed since the
269 + test was written; turn it into a proper test.
270
340 -* mg/log-decorate-HEAD (2015-05-13) 2 commits
341 - (merged to 'next' on 2015-05-19 at 009342b)
342 - + log: do not shorten decoration names too early
343 - + log: decorate HEAD with branch name under --decorate=full, too
271
345 - The "log --decorate" enhancement in Git 2.4 that shows the commit
346 - at the tip of the current branch e.g. "HEAD -> master", did not
347 - work with --decorate=full.
272 +* sg/completion-config (2015-05-12) 2 commits
273 + (merged to 'next' on 2015-05-19 at c83fde1)
274 + + completion: simplify query for config variables
275 + + completion: add a helper function to get config variables
276
349 - Will merge to 'master'.
277 + Code clean-up for completion script (in contrib/).
278
279
352 -* mh/clone-verbosity-fix (2015-05-19) 1 commit
353 - - clone: call transport_set_verbosity before anything else on the newly created transport
280 +* sg/completion-omit-credential-helpers (2015-05-06) 1 commit
281 + (merged to 'next' on 2015-05-11 at aa7e554)
282 + + completion: remove credential helpers from porcelain commands
283
355 - Git 2.4 broke setting verbosity and progress levels on "git clone"
356 - with native transports.
284 + The Git subcommand completion (in contrib/) listed credential
285 + helpers among candidates, which is not something the end user would
286 + invoke interatively.
287
358 - Will merge to 'next'.
288
289 +* sg/help-subcommands (2015-05-08) 1 commit
290 + (merged to 'next' on 2015-05-11 at 91e4f9e)
291 + + command-list.txt: fix whitespace inconsistency
292 + (this branch is used by sg/help-group.)
293
361 -* mh/lockfile-retry (2015-05-14) 2 commits
362 - - lock_packed_refs(): allow retries when acquiring the packed-refs lock
363 - - lockfile: allow file locking to be retried with a timeout
294 + A preparatory clean-up step.
295
365 - Instead of dying immediately upon failing to obtain a lock, retry
366 - after a short while with backoff.
296 +--------------------------------------------------
297 +[New Topics]
298
368 - Will merge to 'next'.
299 +* da/mergetool-winmerge (2015-05-20) 2 commits
300 + - mergetools: add winmerge as a builtin tool
301 + - mergetool--lib: set IFS for difftool and mergetool
302
303 + "git mergetool" learned to drive WinMerge as a backend.
304
371 -* mm/log-format-raw-doc (2015-05-18) 3 commits
372 - - SQUASH
373 - - Documentation/log: clarify sha1 non-abbreviation in log --raw
374 - - Documentation/log: clarify what --raw means
305 + Will merge to 'next'.
306
376 - Clarify that "log --raw" and "log --format=raw" are unrelated
377 - concepts.
307
379 - Will merge to 'next' after squashing the fixup.
308 +* jk/http-backend-deadlock-2.2 (2015-05-20) 3 commits
309 + - http-backend: spool ref negotiation requests to buffer
310 + - t5551: factor out tag creation
311 + - http-backend: fix die recursion with custom handler
312 + (this branch is used by jk/http-backend-deadlock and jk/http-backend-deadlock-2.3.)
313
314 + Communication between the HTTP server and http_backend process can
315 + lead to a dead-lock when relaying a large ref negotiation request.
316 + Diagnose the situation better, and mitigate it by reading such a
317 + request first into core (to a reasonable limit).
318
382 -* ps/doc-packfile-vs-pack-file (2015-05-17) 3 commits
383 - - pack-protocol.txt: fix insconsistent spelling of "packfile"
384 - - git-unpack-objects.txt: fix inconsistent spelling of "packfile"
385 - - git-verify-pack.txt: fix inconsistent spelling of "packfile"
319 + This was wiggled back to apply to the 2.2 maintenance track
320 + (original was for 2.4).
321
387 - Doc consistency updates. I am not sure if this is unifying in the
388 - right direction, though.
322 + Will merge to 'next'.
323
324
391 -* pt/pull-ff-vs-merge-ff (2015-05-18) 2 commits
392 - - pull: parse pull.ff as a bool or string
393 - - pull: make pull.ff=true override merge.ff
325 +* jk/http-backend-deadlock-2.3 (2015-05-20) 1 commit
326 + - Merge branch 'jk/http-backend-deadlock-2.2' into jk/http-backend-deadlock-2.3
327 + (this branch is used by jk/http-backend-deadlock; uses jk/http-backend-deadlock-2.2.)
328
395 - The pull.ff configuration was supposed to override the merge.ff
396 - configuration, but it didn't.
329 + Same for 2.3 maintenance track.
330
331 Will merge to 'next'.
332
333
401 -* pt/pull-log-n (2015-05-18) 1 commit
402 - - pull: handle --log=<n>
334 +* jk/stash-options (2015-05-20) 2 commits
335 + - stash: recognize "--help" for subcommands
336 + - stash: complain about unknown flags
337
404 - "git pull --log" and "git pull --no-log" worked as expected, but
405 - "git pull --log=20" did not.
338 + Make "git stash something --help" error out, so that users can
339 + safely say "git stash drop --help".
340
341 Will merge to 'next'.
342
343
410 -* pt/pull-tags-error-diag (2015-05-14) 1 commit
411 - - pull: remove --tags error in no merge candidates case
344 +* mc/commit-doc-grammofix (2015-05-19) 1 commit
345 + - Documentation/git-commit: grammofix
346
413 - There was a dead code that used to handle "git pull --tags" and
414 - show special-cased error message, which was made irrelevant when
415 - the semantics of the option changed back in Git 1.9 days.
347 + Will merge to 'next'.
348 +
349 +
350 +* rs/janitorial (2015-05-20) 3 commits
351 + - dir: remove unused variable sb
352 + - clean: remove unused variable buf
353 + - use file_exists() to check if a file exists in the worktree
354
355 Will merge to 'next'.
356
357
420 -* rs/plug-leak-in-pack-bitmaps (2015-05-19) 1 commit
421 - - pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps
358 +* ah/send-email-postfix-alias (2015-05-21) 1 commit
359 + - git-send-email.perl: Add sendmail aliases support
360
423 - The code to memoise recently used pack bitmaps were totally broken.
361
425 - Will merge to 'next'.
362 +* fm/fetch-raw-sha1 (2015-05-21) 5 commits
363 + - SQUASH
364 + - upload-pack: optionally allow fetching reachable sha1
365 + - SQUASH
366 + - upload-pack: prepare to extend allow-tip-sha1-in-want
367 + - config.txt: clarify allowTipSHA1InWant with camelCase
368
369 + "git upload-pack" that serves "git fetch" can be told to serve
370 + commits that are not at the tip of any ref as long as they are
371 + reachable from a ref with uploadpack.allowReachableSHA1InWant
372 + configuration variable.
373
428 -* sb/t1020-cleanup (2015-05-18) 1 commit
429 - - subdirectory tests: code cleanup, uncomment test
374 + Will squash the fixes in and then merge to 'next'.
375
431 - There was a commented-out (instead of being marked to expect
432 - failure) test that documented a breakage that was fixed since the
433 - test was written; turn it into a proper test.
376
435 - Will merge to 'next'.
377 +* jc/commit-slab (2015-05-22) 1 commit
378 + - commit-slab: introduce slabname##_peek() function
379
380 + Memory use reduction when commit-slab facility is used to annotate
381 + sparsely (which is not recommended in the first place).
382
438 -* sg/completion-config (2015-05-12) 2 commits
439 - (merged to 'next' on 2015-05-19 at c83fde1)
440 - + completion: simplify query for config variables
441 - + completion: add a helper function to get config variables
383
443 - Code clean-up for completion script (in contrib/).
384 +* mm/rebase-i-post-rewrite-exec (2015-05-22) 3 commits
385 + - t5407: use <<- to align the expected output
386 + - rebase -i: fix post-rewrite hook with failed exec command
387 + - rebase -i: demonstrate incorrect behavior of post-rewrite
388
445 - Will merge to 'master'.
389 + "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
390 + when it was told to stop sequencing with 'exec' insn).
391
392 + Will merge to 'next'.
393
448 -* sg/help-group (2015-05-18) 5 commits
449 - - help: respect new common command grouping
450 - - command-list.txt: drop the "common" tag
451 - - generate-cmdlist: parse common group commands
452 - - command-list.txt: add the common groups block
453 - - command-list: prepare machinery for upcoming "common groups" section
454 - (this branch uses sg/help-subcommands.)
394
456 - Group list of commands shown by "git help" along the workflow
457 - elements to help early learners.
395 +* sb/submodule-doc-intro (2015-05-22) 1 commit
396 + - submodule documentation: reorder introductory paragraphs
397
398 + Will merge to 'next'.
399
460 -* jc/ignore-epipe-in-filter (2015-05-19) 2 commits
461 - - filter_buffer_or_fd(): ignore EPIPE
462 - - copy.c: make copy_fd() report its status silently
400
464 - Filter scripts were run with SIGPIPE disabled on the Git side,
465 - expecting that they may not read what Git feeds them to filter.
466 - We however treated a filter that does not read its input fully
467 - before exiting as an error.
401 +* sb/test-bitmap-free-at-end (2015-05-22) 1 commit
402 + - test_bitmap_walk: free bitmap with bitmap_free
403
469 - This changes semantics, but arguably in a good way. If a filter
470 - can produce its output without consuming its input using whatever
471 - magic, we now let it do so, instead of diagnosing it as a
472 - programming error.
404 + Will merge to 'next'.
405
406 --------------------------------------------------
407 [Stalled]
@@ -687,175 +619,166 @@ of the repositories listed at
619 --------------------------------------------------
620 [Cooking]
621
690 -* nd/untracked-cache (2015-03-12) 24 commits
691 - (merged to 'next' on 2015-05-19 at 26e619b)
692 - + git-status.txt: advertisement for untracked cache
693 - + untracked cache: guard and disable on system changes
694 - + mingw32: add uname()
695 - + t7063: tests for untracked cache
696 - + update-index: test the system before enabling untracked cache
697 - + update-index: manually enable or disable untracked cache
698 - + status: enable untracked cache
699 - + untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
700 - + untracked cache: mark index dirty if untracked cache is updated
701 - + untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
702 - + untracked cache: avoid racy timestamps
703 - + read-cache.c: split racy stat test to a separate function
704 - + untracked cache: invalidate at index addition or removal
705 - + untracked cache: load from UNTR index extension
706 - + untracked cache: save to an index extension
707 - + ewah: add convenient wrapper ewah_serialize_strbuf()
708 - + untracked cache: don't open non-existent .gitignore
709 - + untracked cache: mark what dirs should be recursed/saved
710 - + untracked cache: record/validate dir mtime and reuse cached output
711 - + untracked cache: make a wrapper around {open,read,close}dir()
712 - + untracked cache: invalidate dirs recursively if .gitignore changes
713 - + untracked cache: initial untracked cache validation
714 - + untracked cache: record .gitignore information and dir hierarchy
715 - + dir.c: optionally compute sha-1 of a .gitignore file
716 -
717 - Teach the index to optionally remember already seen untracked files
718 - to speed up "git status" in a working tree with tons of cruft.
622 +* dt/cat-file-follow-symlinks (2015-05-20) 3 commits
623 + - cat-file: add --follow-symlinks to --batch
624 + - sha1_name: get_sha1_with_context learns to follow symlinks
625 + - tree-walk: learn get_tree_entry_follow_symlinks
626
720 - Will cook in 'next'.
627 + "git cat-file --batch(-check)" learned the "--follow-symlinks"
628 + option that follows an in-tree symblic links when asked about an
629 + object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
630 + Documentation/RelNotes/2.5.0.txt. With the new option, the command
631 + behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
632 + input instead.
633
634 + Will merge to 'next'.
635
723 -* dl/branch-error-message (2015-05-06) 1 commit
724 - (merged to 'next' on 2015-05-11 at ed947ab)
725 - + branch: do not call a "remote-tracking branch" a "remote branch"
636
727 - Error messages from "git branch" called remote-tracking branches as
728 - "remote branches".
637 +* dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
638 + - clean: only lstat files in pathspec
639
730 - Will merge to 'master' in the fourth batch.
640 + "git clean pathspec..." tried to lstat(2) and complain even for
641 + paths outside the given pathspec.
642
643 + Will merge to 'next'.
644
733 -* dl/subtree-push-no-squash (2015-05-07) 1 commit
734 - (merged to 'next' on 2015-05-11 at 74d07ca)
735 - + contrib/subtree: there's no push --squash
645
737 - "git subtree" script (in contrib/) does not have --squash option
738 - when pushing, but the documentation and help text pretended as if
739 - it did.
646 +* jh/filter-empty-contents (2015-05-18) 1 commit
647 + - sha1_file: pass empty buffer to index empty file
648
741 - Will merge to 'master' in the fourth batch.
649 + The clean/smudge interface did not work well when filtering an
650 + empty contents (failed and then passed the empty input through).
651 + It can be argued that a filter that produces anything but empty for
652 + an empty input is nonsense, but if the user wants to do strange
653 + things, then why not?
654
655 + Will merge to 'next'.
656
744 -* ld/p4-editor-multi-words (2015-05-19) 3 commits
745 - - git-p4: fix handling of multi-word P4EDITOR
746 - - SQUASH???
747 - - git-p4: add failing test for P4EDITOR handling
657
749 - Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
750 - command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
751 - did not let the shell interpolate the contents of the environment
752 - variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
753 - Make it in line with the rest of Git, as well as with Perforce.
658 +* jk/http-backend-deadlock (2015-05-20) 1 commit
659 + - Merge branch 'jk/http-backend-deadlock-2.3' into jk/http-backend-deadlock
660 + (this branch uses jk/http-backend-deadlock-2.2 and jk/http-backend-deadlock-2.3.)
661
662 + Communication between the HTTP server and http_backend process can
663 + lead to a dead-lock when relaying a large ref negotiation request.
664 + Diagnose the situation better, and mitigate it by reading such a
665 + request first into core (to a reasonable limit).
666
756 -* dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
757 - (merged to 'next' on 2015-05-11 at 36d4f0e)
758 - + contrib/subtree: portability fix for string printing
667 + Will merge to 'next'.
668
760 - "git subtree" script (in contrib/) used "echo -n" to produce
761 - progress messages in a non-portable way.
669
763 - Will merge to 'master' in the fourth batch.
670 +* jk/rerere-forget-check-enabled (2015-05-14) 1 commit
671 + (merged to 'next' on 2015-05-19 at bfe67dc)
672 + + rerere: exit silently on "forget" when rerere is disabled
673
674 + "git rerere forget" in a repository without rerere enabled gave a
675 + cryptic error message; it should be a silent no-op instead.
676
766 -* ls/http-ssl-cipher-list (2015-05-08) 1 commit
767 - (merged to 'next' on 2015-05-11 at 55764ce)
768 - + http: add support for specifying an SSL cipher list
677 + Will merge to 'master'.
678
770 - Introduce http.<url>.SSLCipherList configuration variable to tweak
771 - the list of cipher suite to be used with libcURL when talking with
772 - https:// sites.
679
774 - Will merge to 'master' in the fourth batch.
680 +* mm/log-format-raw-doc (2015-05-20) 2 commits
681 + - Documentation/log: clarify sha1 non-abbreviation in log --raw
682 + - Documentation/log: clarify what --raw means
683
684 + Clarify that "log --raw" and "log --format=raw" are unrelated
685 + concepts.
686
777 -* ps/bundle-verify-arg (2015-05-08) 1 commit
778 - (merged to 'next' on 2015-05-11 at 9f1b1ae)
779 - + bundle: verify arguments more strictly
687 + Will merge to 'next'.
688
781 - "git bundle verify" did not diagnose extra parameters on the
782 - command line.
689
784 - Will merge to 'master' in the fourth batch.
690 +* pt/pull-ff-vs-merge-ff (2015-05-18) 2 commits
691 + (merged to 'next' on 2015-05-20 at 064a082)
692 + + pull: parse pull.ff as a bool or string
693 + + pull: make pull.ff=true override merge.ff
694
695 + The pull.ff configuration was supposed to override the merge.ff
696 + configuration, but it didn't.
697
787 -* sg/help-subcommands (2015-05-08) 1 commit
788 - (merged to 'next' on 2015-05-11 at 91e4f9e)
789 - + command-list.txt: fix whitespace inconsistency
790 - (this branch is used by sg/help-group.)
698 + Will merge to 'master'.
699
792 - A preparatory clean-up step.
700
794 - Will merge to 'master' in the fourth batch.
701 +* pt/pull-log-n (2015-05-18) 1 commit
702 + (merged to 'next' on 2015-05-20 at db6ce78)
703 + + pull: handle --log=<n>
704
705 + "git pull --log" and "git pull --no-log" worked as expected, but
706 + "git pull --log=20" did not.
707
797 -* mh/write-refs-sooner-2.2 (2015-05-12) 8 commits
798 - + ref_transaction_commit(): fix atomicity and avoid fd exhaustion
799 - + ref_transaction_commit(): remove the local flags variable
800 - + ref_transaction_commit(): inline call to write_ref_sha1()
801 - + rename_ref(): inline calls to write_ref_sha1() from this function
802 - + commit_ref_update(): new function, extracted from write_ref_sha1()
803 - + write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
804 - + t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
805 - + update-ref: test handling large transactions properly
806 - (this branch is used by mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.)
708 + Will merge to 'master'.
709
808 - Multi-ref transaction support we merged a few releases ago
809 - unnecessarily kept many file descriptors open, risking to fail with
810 - resource exhaustion.
710
711 +* rs/plug-leak-in-pack-bitmaps (2015-05-19) 1 commit
712 + (merged to 'next' on 2015-05-20 at b70f647)
713 + + pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps
714
813 -* mh/write-refs-sooner-2.3 (2015-05-12) 1 commit
814 - + Merge branch 'mh/write-refs-sooner-2.2' into mh/write-refs-sooner-2.3
815 - (this branch is used by mh/write-refs-sooner-2.4; uses mh/write-refs-sooner-2.2.)
715 + The code to read pack-bitmap wanted to allocate a few hundred
716 + pointers to a structure, but by mistake allocated and leaked memory
717 + enough to hold that many actual structures. Correct the allocation
718 + size and also have it on stack, as it is small enough.
719
817 - Multi-ref transaction support we merged a few releases ago
818 - unnecessarily kept many file descriptors open, risking to fail with
819 - resource exhaustion. This is for 2.3.x track.
720 + Will merge to 'master'.
721
722
822 -* mh/write-refs-sooner-2.4 (2015-05-12) 9 commits
823 - (merged to 'next' on 2015-05-19 at f7be074)
824 - + Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4
825 - + ref_transaction_commit(): fix atomicity and avoid fd exhaustion
826 - + ref_transaction_commit(): remove the local flags variable
827 - + ref_transaction_commit(): inline call to write_ref_sha1()
828 - + rename_ref(): inline calls to write_ref_sha1() from this function
829 - + commit_ref_update(): new function, extracted from write_ref_sha1()
830 - + write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
831 - + t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
832 - + update-ref: test handling large transactions properly
833 - (this branch uses mh/write-refs-sooner-2.2 and mh/write-refs-sooner-2.3.)
723 +* sg/help-group (2015-05-21) 5 commits
724 + - help: respect new common command grouping
725 + - command-list.txt: drop the "common" tag
726 + - generate-cmdlist: parse common group commands
727 + - command-list.txt: add the common groups block
728 + - command-list: prepare machinery for upcoming "common groups" section
729
835 - Multi-ref transaction support we merged a few releases ago
836 - unnecessarily kept many file descriptors open, risking to fail with
837 - resource exhaustion. This is for 2.4.x track.
730 + Group list of commands shown by "git help" along the workflow
731 + elements to help early learners.
732
733 + Will merge to 'next'.
734
840 -* sg/completion-omit-credential-helpers (2015-05-06) 1 commit
841 - (merged to 'next' on 2015-05-11 at aa7e554)
842 - + completion: remove credential helpers from porcelain commands
735
844 - The Git subcommand completion (in contrib/) listed credential
845 - helpers among candidates, which is not something the end user would
846 - invoke interatively.
736 +* nd/untracked-cache (2015-03-12) 24 commits
737 + (merged to 'next' on 2015-05-19 at 26e619b)
738 + + git-status.txt: advertisement for untracked cache
739 + + untracked cache: guard and disable on system changes
740 + + mingw32: add uname()
741 + + t7063: tests for untracked cache
742 + + update-index: test the system before enabling untracked cache
743 + + update-index: manually enable or disable untracked cache
744 + + status: enable untracked cache
745 + + untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
746 + + untracked cache: mark index dirty if untracked cache is updated
747 + + untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
748 + + untracked cache: avoid racy timestamps
749 + + read-cache.c: split racy stat test to a separate function
750 + + untracked cache: invalidate at index addition or removal
751 + + untracked cache: load from UNTR index extension
752 + + untracked cache: save to an index extension
753 + + ewah: add convenient wrapper ewah_serialize_strbuf()
754 + + untracked cache: don't open non-existent .gitignore
755 + + untracked cache: mark what dirs should be recursed/saved
756 + + untracked cache: record/validate dir mtime and reuse cached output
757 + + untracked cache: make a wrapper around {open,read,close}dir()
758 + + untracked cache: invalidate dirs recursively if .gitignore changes
759 + + untracked cache: initial untracked cache validation
760 + + untracked cache: record .gitignore information and dir hierarchy
761 + + dir.c: optionally compute sha-1 of a .gitignore file
762
848 - Will merge to 'master' in the fourth batch.
763 + Teach the index to optionally remember already seen untracked files
764 + to speed up "git status" in a working tree with tons of cruft.
765
766 + Will cook in 'next'.
767
851 -* jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
852 - (merged to 'next' on 2015-05-11 at a52b711)
853 - + tests: skip dav http-push tests under NO_EXPAT=NoThanks
854 - + t/lib-httpd.sh: skip tests if NO_CURL is defined
768
856 - Test clean-up.
769 +* ld/p4-editor-multi-words (2015-05-20) 6 commits
770 + - SQUASH
771 + - git-p4: tests: use test-chmtime in place of touch
772 + - SQUASH
773 + - git-p4: fix handling of multi-word P4EDITOR
774 + - SQUASH
775 + - git-p4: add failing test for P4EDITOR handling
776
858 - Will merge to 'master' in the fourth batch.
777 + Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
778 + command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
779 + did not let the shell interpolate the contents of the environment
780 + variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
781 + Make it in line with the rest of Git, as well as with Perforce.
782
783
784 * pt/pull-tests (2015-05-18) 8 commits
@@ -877,25 +800,29 @@ of the repositories listed at
800 Still an early WIP
801
802
880 -* jk/at-push-sha1 (2015-05-03) 12 commits
803 +* jk/at-push-sha1 (2015-05-22) 16 commits
804 - for-each-ref: accept "%(push)" format
805 - for-each-ref: use skip_prefix instead of starts_with
806 - sha1_name: implement @{push} shorthand
807 - sha1_name: refactor interpret_upstream_mark
808 - sha1_name: refactor upstream_mark
809 - remote.c: add branch_get_push
810 + - remote.c: return upstream name from stat_tracking_info
811 + - remote.c: untangle error logic in branch_get_upstream
812 - remote.c: report specific errors from branch_get_upstream
813 - remote.c: introduce branch_get_upstream helper
814 + - remote.c: hoist read_config into remote_get_1
815 - remote.c: provide per-branch pushremote name
816 - remote.c: hoist branch.*.remote lookup out of remote_get_1
817 - remote.c: drop "remote" pointer from "struct branch"
818 + - remote.c: refactor setup of branch->merge list
819 - remote.c: drop default_remote_name variable
820
821 Introduce <branch>@{push} short-hand to denote the remote-tracking
822 branch that tracks the branch at the remote the <branch> would be
823 pushed to.
824
898 - Expecting a reroll ($gmane/268419, etc.).
825 + Will merge to 'next'.
826
827
828 * ee/clean-remove-dirs (2015-04-26) 5 commits