What's cooking (2015/05 #05)

Junio C Hamano committed May 19, 2015 at 14:21 UTC 8254a60a5ef408f4b879b3adeebe1a5c0c79d9de
1 file changed +489 -579
whats-cooking.txt
+489 -579
@@ -1,19 +1,21 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2015, #04; Mon, 11)
4 -X-master-at: c518059b263bb506b96a0ae90c4d40408c760cb0
5 -X-next-at: 91e4f9ead74701a5690c950e19c8b631ee8c7a4b
3 +Subject: What's cooking in git.git (May 2015, #05; Tue, 19)
4 +X-master-at: 6c1249c503f39ca45ca5b183527b22192cdaf7a7
5 +X-next-at: 3179493ddf99afea85d647dbfa9ebe48a70b9cc0
6
7 -What's cooking in git.git (May 2015, #04; Mon, 11)
7 +What's cooking in git.git (May 2015, #05; Tue, 19)
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 -Git 2.3.8 has been tagged; it contains Linus's favorite fix for "git
15 -commit --date=now", among other things, and it will be the last for
16 -2.3.x series for now.
14 +The "untracked cache" series is in 'next', to give it a wider
15 +exposure. I do not use it personally, but it is meant to make life
16 +easier for those with large amount of untracked cruft in their
17 +working trees. Please try it out and report successes (and of
18 +course breakages, too).
19
20 You can find the changes described here in the integration branches
21 of the repositories listed at
@@ -23,443 +25,451 @@ of the repositories listed at
25 --------------------------------------------------
26 [Graduated to "master"]
27
26 -* ep/do-not-feed-a-pointer-to-array-size (2015-05-05) 1 commit
27 - (merged to 'next' on 2015-05-07 at 64d9a20)
28 - + git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
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
30 - Catch a programmer mistake to feed a pointer not an array to
31 - ARRAY_SIZE() macro, by using a couple of GCC extensions.
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
34 -* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit
35 - (merged to 'next' on 2015-05-05 at 1eb279f)
36 - + daemon: unbreak NO_IPV6 build regression
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
38 - "git daemon" fails to build from the source under NO_IPV6
39 - configuration (regression in 2.4).
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
42 -* jc/hash-object (2015-05-05) 4 commits
43 - (merged to 'next' on 2015-05-07 at 9b81a06)
44 - + write_sha1_file(): do not use a separate sha1[] array
45 - + t1007: add hash-object --literally tests
46 - + hash-object --literally: fix buffer overrun with extra-long object type
47 - + git-hash-object.txt: document --literally option
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
49 - "hash-object --literally" introduced in v2.2 was not prepared to
50 - take a really long object type name.
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
53 -* jc/plug-fmt-merge-msg-leak (2015-04-20) 1 commit
54 - (merged to 'next' on 2015-05-05 at bd94828)
55 - + fmt-merge-msg: plug small leak of commit buffer
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
57 - Originally merged to 'next' on 2015-04-21
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
60 -* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit
61 - (merged to 'next' on 2015-05-07 at 849a24d)
62 - + filter-branch: avoid passing commit message through sed
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
64 - "filter-branch" corrupted commit log message that ends with an
65 - incomplete line on platforms with some "sed" implementations that
66 - munge such a line. Work it around by avoiding to use "sed".
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
69 -* jk/reading-packed-refs (2015-04-16) 9 commits
70 - (merged to 'next' on 2015-05-05 at 89b5694)
71 - + t1430: add another refs-escape test
72 - + read_packed_refs: avoid double-checking sane refs
73 - + strbuf_getwholeline: use getdelim if it is available
74 - + strbuf_getwholeline: avoid calling strbuf_grow
75 - + strbuf_addch: avoid calling strbuf_grow
76 - + config: use getc_unlocked when reading from file
77 - + strbuf_getwholeline: use getc_unlocked
78 - + git-compat-util: add fallbacks for unlocked stdio
79 - + strbuf_getwholeline: use getc macro
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
81 - Originally merged to 'next' on 2015-04-21
107
83 - An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
84 - to read packed-refs file revealed that the former is unacceptably
85 - inefficient.
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
88 -* jk/rebase-quiet-noop (2015-04-28) 1 commit
89 - (merged to 'next' on 2015-05-05 at 82780b9)
90 - + rebase: silence "git checkout" for noop rebase
119
92 - "git rebase --quiet" was not quite quiet when there is nothing to
93 - do.
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
96 -* jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
97 - (merged to 'next' on 2015-05-05 at a8de68e)
98 - + sha1_file: squelch "packfile cannot be accessed" warnings
128
100 - Originally merged to 'next' on 2015-04-21
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
103 -* jk/still-interesting (2015-04-17) 1 commit
104 - (merged to 'next' on 2015-05-05 at 6a5c89c)
105 - + limit_list: avoid quadratic behavior from still_interesting
139
107 - Originally merged to 'next' on 2015-04-21
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
109 - "git rev-list --objects $old --not --all" to see if everything that
110 - is reachable from $old is already connected to the existing refs
111 - was very inefficient.
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
114 -* jn/clean-use-error-not-fprintf-on-stderr (2015-05-04) 1 commit
115 - (merged to 'next' on 2015-05-05 at 12391f1)
116 - + config: use error() instead of fprintf(stderr, ...)
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
118 - Some error messages in "git config" were emitted without calling
119 - the usual error() facility.
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
162
122 -* ld/p4-case-fold (2015-04-28) 1 commit
123 - (merged to 'next' on 2015-05-05 at 03ecbd0)
124 - + git-p4: add failing tests for case-folding p4d
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.
171
172
127 -* lm/squelch-bg-progress (2015-04-15) 2 commits
128 - (merged to 'next' on 2015-05-05 at a2fe74d)
129 - + compat/mingw: stubs for getpgid() and tcgetpgrp()
130 - + progress: no progress in background
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
176
132 - Originally merged to 'next' on 2015-04-21
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.
179
134 - Many long-running operations show progress eye-candy, even when
135 - they are later backgrounded. Hide the eye-candy when the process
136 - is sent to the background instead.
180
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
184
139 -* ls/p4-changes-block-size (2015-04-20) 1 commit
140 - (merged to 'next' on 2015-05-05 at 92596d4)
141 - + git-p4: use -m when running p4 changes
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.
188
143 - Originally merged to 'next' on 2015-04-21
189 +--------------------------------------------------
190 +[New Topics]
191
145 - "git p4" learned "--changes-block-size <n>" to read the changes in
146 - chunks from Perforce, instead of making one call to "p4 changes"
147 - that may trigger "too many rows scanned" error from Perforce.
192 +* ja/tutorial-asciidoctor-fix (2015-05-12) 1 commit
193 + (merged to 'next' on 2015-05-19 at f15d940)
194 + + doc: fix unmatched code fences
195
196 + A literal block in the tutorial had lines with unequal lengths to
197 + delimit it from the rest of the document, which choke GitHub's
198 + AsciiDoc renderer.
199
150 -* mm/add-p-split-error (2015-04-16) 5 commits
151 - (merged to 'next' on 2015-05-05 at c556011)
152 - + stash -p: demonstrate failure of split with mixed y/n
153 - + t3904-stash-patch: factor PERL prereq at the top of the file
154 - + t3904-stash-patch: fix test description
155 - + add -p: demonstrate failure when running 'edit' after a split
156 - + t3701-add-interactive: simplify code
200 + Will merge to 'master'.
201
158 - Originally merged to 'next' on 2015-04-23
202
160 - When "add--interactive" splits a hunk into two overlapping hunks
161 - and then let the user choose only one, it sometimes feeds an
162 - incorrect patch text to "git apply". Add tests to demonstrate
163 - this.
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
165 - I have a slight suspicion that this may be $gmane/87202 coming back
166 - and biting us (I seem to have said "let's run with this and see
167 - what happens" back then).
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
170 -* nd/multiple-work-trees (2015-03-31) 41 commits
171 - (merged to 'next' on 2015-05-05 at 0f04a1c)
172 - + prune --worktrees: fix expire vs worktree existence condition
173 - + t1501: fix test with split index
174 - + t2026: fix broken &&-chain
175 - + t2026 needs procondition SANITY
176 - + git-checkout.txt: a note about multiple checkout support for submodules
177 - + checkout: add --ignore-other-wortrees
178 - + checkout: pass whole struct to parse_branchname_arg instead of individual flags
179 - + git-common-dir: make "modules/" per-working-directory directory
180 - + checkout: do not fail if target is an empty directory
181 - + t2025: add a test to make sure grafts is working from a linked checkout
182 - + checkout: don't require a work tree when checking out into a new one
183 - + git_path(): keep "info/sparse-checkout" per work-tree
184 - + count-objects: report unused files in $GIT_DIR/worktrees/...
185 - + gc: support prune --worktrees
186 - + gc: factor out gc.pruneexpire parsing code
187 - + gc: style change -- no SP before closing parenthesis
188 - + checkout: clean up half-prepared directories in --to mode
189 - + checkout: reject if the branch is already checked out elsewhere
190 - + prune: strategies for linked checkouts
191 - + checkout: support checking out into a new working directory
192 - + use new wrapper write_file() for simple file writing
193 - + wrapper.c: wrapper to open a file, fprintf then close
194 - + setup.c: support multi-checkout repo setup
195 - + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
196 - + setup.c: convert check_repository_format_gently to use strbuf
197 - + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
198 - + setup.c: convert is_git_directory() to use strbuf
199 - + git-stash: avoid hardcoding $GIT_DIR/logs/....
200 - + *.sh: avoid hardcoding $GIT_DIR/hooks/...
201 - + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
202 - + $GIT_COMMON_DIR: a new environment variable
203 - + commit: use SEQ_DIR instead of hardcoding "sequencer"
204 - + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
205 - + reflog: avoid constructing .lock path with git_path
206 - + *.sh: respect $GIT_INDEX_FILE
207 - + git_path(): be aware of file relocation in $GIT_DIR
208 - + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
209 - + path.c: rename vsnpath() to do_git_path()
210 - + git_snpath(): retire and replace with strbuf_git_path()
211 - + path.c: make get_pathname() call sites return const char *
212 - + path.c: make get_pathname() return strbuf instead of static buffer
213
214 - Originally merged to 'next' on 2015-04-02
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
218
216 - A replacement for contrib/workdir/git-new-workdir that does not
217 - rely on symbolic links and make sharing of objects and refs safer
218 - by making the borrowee and borrowers aware of each other.
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.
225
226 + Will merge to 'next'.
227
221 -* nd/slim-index-pack-memory-usage (2015-04-18) 2 commits
222 - (merged to 'next' on 2015-05-05 at 42bd845)
223 - + index-pack: kill union delta_base to save memory
224 - + index-pack: reduce object_entry size to save memory
228
226 - Originally merged to 'next' on 2015-04-21
229 +* jk/add-e-kill-editor (2015-05-12) 1 commit
230 + (merged to 'next' on 2015-05-19 at 9e01174)
231 + + add: check return value of launch_editor
232
228 - Memory usage of "git index-pack" has been trimmed by tens of
229 - per-cent.
233 + "git add -e" did not allow the user to abort the operation by
234 + killing the editor.
235
236 + Will merge to 'master'.
237
232 -* pt/credential-xdg (2015-03-25) 4 commits
233 - (merged to 'next' on 2015-05-05 at 0d6711f)
234 - + t0302: "unreadable" test needs POSIXPERM
235 - + t0302: test credential-store support for XDG_CONFIG_HOME
236 - + git-credential-store: support XDG_CONFIG_HOME
237 - + git-credential-store: support multiple credential files
238 - (this branch is used by pt/xdg-config-path.)
238
240 - Originally merged to 'next' on 2015-03-25
239 +* jk/asciidoc-markup-fix (2015-05-14) 9 commits
240 + (merged to 'next' on 2015-05-19 at df0c63e)
241 + + doc: convert AsciiDoc {?foo} to ifdef::foo[]
242 + + doc: put example URLs and emails inside literal backticks
243 + + doc: drop backslash quoting of some curly braces
244 + + doc: convert \--option to --option
245 + + doc/add: reformat `--edit` option
246 + + doc: fix length of underlined section-title
247 + + doc: fix hanging "+"-continuation
248 + + doc: fix unquoted use of "{type}"
249 + + doc: fix misrendering due to `single quote'
250
242 - Tweak the sample "store" backend of the credential helper to honor
243 - XDG configuration file locations when specified.
251 + Various documentation mark-up fixes to make the output more
252 + consistent in general and also make AsciiDoctor (an alternative
253 + formatter) happier.
254
255 + Will merge to 'master'.
256
246 -* pt/xdg-config-path (2015-05-06) 7 commits
247 - (merged to 'next' on 2015-05-07 at 38e7071)
248 - + path.c: remove home_config_paths()
249 - + git-config: replace use of home_config_paths()
250 - + git-commit: replace use of home_config_paths()
251 - + credential-store.c: replace home_config_paths() with xdg_config_home()
252 - + dir.c: replace home_config_paths() with xdg_config_home()
253 - + attr.c: replace home_config_paths() with xdg_config_home()
254 - + path.c: implement xdg_config_home()
255 - (this branch uses pt/credential-xdg.)
257
257 - Code clean-up for xdg configuration path support.
258 +* mh/ref-directory-file (2015-05-11) 18 commits
259 + (merged to 'next' on 2015-05-19 at 38eb122)
260 + + reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
261 + + ref_transaction_commit(): delete extra "the" from error message
262 + + ref_transaction_commit(): provide better error messages
263 + + rename_ref(): integrate lock_ref_sha1_basic() errors into ours
264 + + lock_ref_sha1_basic(): improve diagnostics for ref D/F conflicts
265 + + lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
266 + + verify_refname_available(): report errors via a "struct strbuf *err"
267 + + verify_refname_available(): rename function
268 + + refs: check for D/F conflicts among refs created in a transaction
269 + + ref_transaction_commit(): use a string_list for detecting duplicates
270 + + is_refname_available(): use dirname in first loop
271 + + struct nonmatching_ref_data: store a refname instead of a ref_entry
272 + + report_refname_conflict(): inline function
273 + + entry_matches(): inline function
274 + + is_refname_available(): convert local variable "dirname" to strbuf
275 + + is_refname_available(): avoid shadowing "dir" variable
276 + + is_refname_available(): revamp the comments
277 + + t1404: new tests of ref D/F conflicts within transactions
278 +
279 + The ref API did not handle cases where 'refs/heads/xyzzy/frotz' is
280 + removed at the same time as 'refs/heads/xyzzy' is added (or vice
281 + versa) very well.
282
283 + Will merge to 'master'.
284
260 -* sb/prefix-path-free-results (2015-05-05) 1 commit
261 - (merged to 'next' on 2015-05-07 at 64f15a8)
262 - + prefix_path(): unconditionally free results in the callers
285
264 - Code clean-up (not a leak-fix).
286 +* dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
287 + - clean: only lstat files in pathspec
288
289 + "git clean pathspec..." tried to lstat(2) and complain even for
290 + paths outside the given pathspec.
291
267 -* sg/complete-decorate-full-not-long (2015-05-03) 1 commit
268 - (merged to 'next' on 2015-05-07 at 2beb429)
269 - + completion: fix and update 'git log --decorate=' options
270 -
271 - The completion for "log --decorate=" parameter value was incorrect.
292 + Will merge to 'next'.
293
294
274 -* sg/completion-no-redundant-all-command-list (2015-05-03) 1 commit
275 - (merged to 'next' on 2015-05-07 at 00b4bd9)
276 - + completion: remove redundant __git_compute_all_commands() call
295 +* jh/filter-empty-contents (2015-05-18) 1 commit
296 + - sha1_file: pass empty buffer to index empty file
297
278 - Code simplification.
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?
303
304 + Will merge to 'next'.
305
281 -* tb/blame-resurrect-convert-to-git (2015-05-03) 1 commit
282 - (merged to 'next' on 2015-05-05 at 8e1974e)
283 - + blame: CRLF in the working tree and LF in the repo
306
285 - Some time ago, "git blame" (incorrectly) lost the convert_to_git()
286 - call when synthesizing a fake "tip" commit that represents the
287 - state in the working tree, which broke folks who record the history
288 - with LF line ending to make their project portabile across
289 - platforms while terminating lines in their working tree files with
290 - CRLF for their platform.
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
310
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).
315
293 -* tb/t0027-crlf (2015-04-25) 3 commits
294 - (merged to 'next' on 2015-05-05 at 36accbb)
295 - + t0027: Add repoMIX and LF_nul
296 - + t0027: support NATIVE_CRLF platforms
297 - + t0027: cleanup: rename functions; avoid non-leading TABs
316 + Will merge to 'next'.
317
299 - Originally merged to 'next' on 2015-04-21
318
301 - More line-ending tests.
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
322
323 + "git rerere forget" in a repository without rerere enabled gave a
324 + cryptic error message; it should be a silent no-op instead.
325
304 -* va/fix-git-p4-tests (2015-04-28) 1 commit
305 - (merged to 'next' on 2015-05-05 at 795e858)
306 - + git-p4: t9814: prevent --chain-lint failure
326 + Will merge to 'master'.
327
328
309 -* va/p4-client-path (2015-04-23) 2 commits
310 - (merged to 'next' on 2015-05-05 at 852facc)
311 - + git-p4: improve client path detection when branches are used
312 - + t9801: check git-p4's branch detection with client spec enabled
329 +* lm/squelch-bg-progress (2015-05-19) 1 commit
330 + - progress: treat "no terminal" as being in the foreground
331
314 - Originally merged to 'next' on 2015-04-23
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'.
336
316 - git p4 attempts to better handle branches in Perforce.
337 + Will merge to 'next'.
338
318 ---------------------------------------------------
319 -[New Topics]
339
321 -* dl/branch-error-message (2015-05-06) 1 commit
322 - (merged to 'next' on 2015-05-11 at ed947ab)
323 - + branch: do not call a "remote-tracking branch" a "remote branch"
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
344
325 - Error messages from "git branch" called remote-tracking branches as
326 - "remote branches".
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.
348
349 Will merge to 'master'.
350
351
331 -* dl/subtree-push-no-squash (2015-05-07) 1 commit
332 - (merged to 'next' on 2015-05-11 at 74d07ca)
333 - + contrib/subtree: there's no push --squash
352 +* mh/clone-verbosity-fix (2015-05-19) 1 commit
353 + - clone: call transport_set_verbosity before anything else on the newly created transport
354
335 - "git subtree" script (in contrib/) does not have --squash option
336 - when pushing, but the documentation and help text pretended as if
337 - it did.
355 + Git 2.4 broke setting verbosity and progress levels on "git clone"
356 + with native transports.
357
339 - Will merge to 'master'.
358 + Will merge to 'next'.
359
360
342 -* ld/p4-editor-multi-words (2015-05-07) 2 commits
343 - - git-p4: fix handling of multi-word P4EDITOR
344 - - git-p4: add failing test for P4EDITOR handling
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
364
346 - Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
347 - command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
348 - did not let the shell interpolate the contents of the environment
349 - variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
350 - Make it in line with the rest of Git, as well as with Perforce.
365 + Instead of dying immediately upon failing to obtain a lock, retry
366 + after a short while with backoff.
367
352 - Reported to break some tests that assume the non-interpolating
353 - behaviour that need to be fixed.
368 + Will merge to 'next'.
369
370
356 -* dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
357 - (merged to 'next' on 2015-05-11 at 36d4f0e)
358 - + contrib/subtree: portability fix for string printing
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
375
360 - "git subtree" script (in contrib/) used "echo -n" to produce
361 - progress messages in a non-portable way.
376 + Clarify that "log --raw" and "log --format=raw" are unrelated
377 + concepts.
378
363 - Will merge to 'master'.
379 + Will merge to 'next' after squashing the fixup.
380
381
366 -* ls/http-ssl-cipher-list (2015-05-08) 1 commit
367 - (merged to 'next' on 2015-05-11 at 55764ce)
368 - + http: add support for specifying an SSL cipher list
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"
386
370 - Introduce http.<url>.SSLCipherList configuration variable to tweak
371 - the list of cipher suite to be used with libcURL when talking with
372 - https:// sites.
387 + Doc consistency updates. I am not sure if this is unifying in the
388 + right direction, though.
389
374 - Will merge to 'master'.
390
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
394
377 -* ps/bundle-verify-arg (2015-05-08) 1 commit
378 - (merged to 'next' on 2015-05-11 at 9f1b1ae)
379 - + bundle: verify arguments more strictly
395 + The pull.ff configuration was supposed to override the merge.ff
396 + configuration, but it didn't.
397
381 - "git bundle verify" did not diagnose extra parameters on the
382 - command line.
398 + Will merge to 'next'.
399
384 - Will merge to 'master'.
400
401 +* pt/pull-log-n (2015-05-18) 1 commit
402 + - pull: handle --log=<n>
403
387 -* sg/help-subcommands (2015-05-08) 1 commit
388 - (merged to 'next' on 2015-05-11 at 91e4f9e)
389 - + command-list.txt: fix whitespace inconsistency
404 + "git pull --log" and "git pull --no-log" worked as expected, but
405 + "git pull --log=20" did not.
406
391 - A preparatory clean-up step.
407 + Will merge to 'next'.
408
393 - Will merge to 'master'.
409
410 +* pt/pull-tags-error-diag (2015-05-14) 1 commit
411 + - pull: remove --tags error in no merge candidates case
412
396 -* mh/ref-directory-file-2 (2015-05-10) 19 commits
397 - - SQUASH???
398 - - reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
399 - - ref_transaction_commit(): delete extra "the" from error message
400 - - ref_transaction_commit(): provide better error messages
401 - - rename_ref(): integrate lock_ref_sha1_basic() errors into ours
402 - - lock_ref_sha1_basic(): improve diagnostics for D/F conflicts
403 - - lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
404 - - verify_refname_available(): report errors via a "struct strbuf *err"
405 - - verify_refname_available(): rename function
406 - - refs: check for D/F conflicts among refs processed in a transaction
407 - - ref_transaction_commit(): use a string_list for detecting duplicates
408 - - is_refname_available(): use dirname in first loop
409 - - struct nonmatching_ref_data: store a refname instead of a ref_entry
410 - - report_refname_conflict(): inline function
411 - - entry_matches(): inline function
412 - - is_refname_available(): convert local variable "dirname" to strbuf
413 - - is_refname_available(): avoid shadowing "dir" variable
414 - - is_refname_available(): explain the reason for an early exit
415 - - t1404: new tests of D/F conflicts within ref transactions
416 - (this branch uses mh/write-refs-sooner-2.2, mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.)
417 -
418 - A reroll is posted, but haven't got a chance to pick it up yet.
419 -
420 -
421 -* mh/write-refs-sooner-2.2 (2015-05-10) 8 commits
422 - - ref_transaction_commit(): fix atomicity and avoid fd exhaustion
423 - - ref_transaction_commit(): remove the local flags variable
424 - - ref_transaction_commit(): inline call to write_ref_sha1()
425 - - rename_ref(): inline calls to write_ref_sha1() from this function
426 - - commit_ref_update(): new function, extracted from write_ref_sha1()
427 - - write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
428 - - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
429 - - update-ref: test handling large transactions properly
430 - (this branch is used by mh/ref-directory-file-2, mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.)
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.
416
432 - Multi-ref transaction support we merged a few releases ago
433 - unnecessarily kept many file descriptors open, risking to fail with
434 - resource exhaustion.
417 + Will merge to 'next'.
418
419
437 -* mh/write-refs-sooner-2.3 (2015-05-10) 1 commit
438 - - Merge branch 'mh/write-refs-sooner' into mh/write-refs-sooner-2.3
439 - (this branch is used by mh/ref-directory-file-2 and mh/write-refs-sooner-2.4; uses mh/write-refs-sooner-2.2.)
420 +* rs/plug-leak-in-pack-bitmaps (2015-05-19) 1 commit
421 + - pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps
422
441 - Multi-ref transaction support we merged a few releases ago
442 - unnecessarily kept many file descriptors open, risking to fail with
443 - resource exhaustion. This is for 2.3.x track.
423 + The code to memoise recently used pack bitmaps were totally broken.
424
425 + Will merge to 'next'.
426
446 -* mh/write-refs-sooner-2.4 (2015-05-10) 1 commit
447 - - Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4
448 - (this branch is used by mh/ref-directory-file-2; uses mh/write-refs-sooner-2.2 and mh/write-refs-sooner-2.3.)
427
450 - Multi-ref transaction support we merged a few releases ago
451 - unnecessarily kept many file descriptors open, risking to fail with
452 - resource exhaustion. This is for 2.4.x track.
428 +* sb/t1020-cleanup (2015-05-18) 1 commit
429 + - subdirectory tests: code cleanup, uncomment test
430
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.
434
455 -* sb/ref-lock-lose-lock-fd (2015-05-10) 1 commit
456 - - refs.c: remove lock_fd from struct ref_lock
435 + Will merge to 'next'.
436
458 - The refs API uses ref_lock struct which had its own "int fd", even
459 - though the same file descriptor was in the lock struct it contains.
460 - Clean-up the code to lose this redundant field.
437
462 - Will merge to 'next'.
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
442 +
443 + Code clean-up for completion script (in contrib/).
444 +
445 + Will merge to 'master'.
446 +
447 +
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.)
455 +
456 + Group list of commands shown by "git help" along the workflow
457 + elements to help early learners.
458 +
459 +
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
463 +
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.
468 +
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.
473
474 --------------------------------------------------
475 [Stalled]
@@ -599,39 +609,11 @@ of the repositories listed at
609 Expecting a reroll.
610
611
602 -* nd/untracked-cache (2015-03-12) 24 commits
603 - - git-status.txt: advertisement for untracked cache
604 - - untracked cache: guard and disable on system changes
605 - - mingw32: add uname()
606 - - t7063: tests for untracked cache
607 - - update-index: test the system before enabling untracked cache
608 - - update-index: manually enable or disable untracked cache
609 - - status: enable untracked cache
610 - - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
611 - - untracked cache: mark index dirty if untracked cache is updated
612 - - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
613 - - untracked cache: avoid racy timestamps
614 - - read-cache.c: split racy stat test to a separate function
615 - - untracked cache: invalidate at index addition or removal
616 - - untracked cache: load from UNTR index extension
617 - - untracked cache: save to an index extension
618 - - ewah: add convenient wrapper ewah_serialize_strbuf()
619 - - untracked cache: don't open non-existent .gitignore
620 - - untracked cache: mark what dirs should be recursed/saved
621 - - untracked cache: record/validate dir mtime and reuse cached output
622 - - untracked cache: make a wrapper around {open,read,close}dir()
623 - - untracked cache: invalidate dirs recursively if .gitignore changes
624 - - untracked cache: initial untracked cache validation
625 - - untracked cache: record .gitignore information and dir hierarchy
626 - - dir.c: optionally compute sha-1 of a .gitignore file
627 -
628 - Need extra sets of eyes to review this.
629 -
630 -
612 * nd/pathspec-strip-fix (2015-04-18) 1 commit
613 - pathspec: adjust prefixlen after striping trailing slash
614
615 Does not quite fix ($gmane/267614).
616 + Will discard.
617
618
619 * jc/diff-b-m (2015-02-23) 5 commits
@@ -705,6 +687,156 @@ of the repositories listed at
687 --------------------------------------------------
688 [Cooking]
689
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.
719 +
720 + Will cook in 'next'.
721 +
722 +
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"
726 +
727 + Error messages from "git branch" called remote-tracking branches as
728 + "remote branches".
729 +
730 + Will merge to 'master' in the fourth batch.
731 +
732 +
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
736 +
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.
740 +
741 + Will merge to 'master' in the fourth batch.
742 +
743 +
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
748 +
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.
754 +
755 +
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
759 +
760 + "git subtree" script (in contrib/) used "echo -n" to produce
761 + progress messages in a non-portable way.
762 +
763 + Will merge to 'master' in the fourth batch.
764 +
765 +
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
769 +
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.
773 +
774 + Will merge to 'master' in the fourth batch.
775 +
776 +
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
780 +
781 + "git bundle verify" did not diagnose extra parameters on the
782 + command line.
783 +
784 + Will merge to 'master' in the fourth batch.
785 +
786 +
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.)
791 +
792 + A preparatory clean-up step.
793 +
794 + Will merge to 'master' in the fourth batch.
795 +
796 +
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.)
807 +
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.
811 +
812 +
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.)
816 +
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.
820 +
821 +
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.)
834 +
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.
838 +
839 +
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
@@ -713,7 +845,7 @@ of the repositories listed at
845 helpers among candidates, which is not something the end user would
846 invoke interatively.
847
716 - Will merge to 'master'.
848 + Will merge to 'master' in the fourth batch.
849
850
851 * jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
@@ -723,38 +855,20 @@ of the repositories listed at
855
856 Test clean-up.
857
726 - Will merge to 'master'.
858 + Will merge to 'master' in the fourth batch.
859
860
729 -* nd/dwim-wildcards-as-pathspecs (2015-05-03) 1 commit
730 - (merged to 'next' on 2015-05-07 at 8176de7)
731 - + pathspec: avoid the need of "--" when wildcard is used
732 -
733 - A heuristic to help the "git <cmd> <revs> <pathspec>" command line
734 - convention to catch mistyped paths is to make sure all the non-rev
735 - parameters in the later part of the command line are names of the
736 - files in the working tree, but that means "git grep $str -- \*.c"
737 - must always be disambiguated with "--", because nobody sane will
738 - create a file whose name literally is asterisk-dot-see. Loosen the
739 - heuristic to declare that with a wildcard string the user likely
740 - meant to give us a pathspec.
741 -
742 - Will merge to 'master' in the third batch.
743 -
744 -
745 -* pt/pull-tests (2015-05-03) 7 commits
861 +* pt/pull-tests (2015-05-18) 8 commits
862 + - t5520: check reflog action in fast-forward merge
863 - t5521: test --dry-run does not make any changes
864 - t5520: test --rebase failure on unborn branch with index
865 - t5520: test --rebase with multiple branches
866 - t5520: test work tree fast-forward when fetch updates head
867 - t5520: test for failure if index has unresolved entries
751 - - t5520: implement tests for no merge candidates cases
752 - - t5520: test pulling multiple branches into an empty repository
753 -
754 - Add more test coverage to "git pull". This conflicts slightly with
755 - a new test jc/merge topic adds, but resolution is fairly trivial.
868 + - t5520: test no merge candidates cases
869 + - t5520: prevent field splitting in content comparisons
870
757 - Expecting a reroll ($gmane/268391).
871 + Add more test coverage to "git pull".
872
873
874 * jc/clone-bundle (2015-04-30) 1 commit
@@ -784,16 +898,6 @@ of the repositories listed at
898 Expecting a reroll ($gmane/268419, etc.).
899
900
787 -* ph/rebase-i-redo (2015-04-29) 1 commit
788 - (merged to 'next' on 2015-05-07 at 8fc1f52)
789 - + rebase -i: redo tasks that die during cherry-pick
790 -
791 - "git rebase -i" moved the "current" command from "todo" to "done" a
792 - bit too prematurely, losing a step when a "pick" did not even start.
793 -
794 - Will merge to 'master' in the third batch.
795 -
796 -
901 * ee/clean-remove-dirs (2015-04-26) 5 commits
902 - clean: improve performance when removing lots of directories
903 - p7300: add performance tests for clean
@@ -808,83 +912,8 @@ of the repositories listed at
912 Waiting for a reroll.
913
914
811 -* jc/gitignore-precedence (2015-04-22) 1 commit
812 - (merged to 'next' on 2015-05-05 at 6ef85da)
813 - + ignore: info/exclude should trump core.excludesfile
814 -
815 - core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
816 - to be overridden by repository-specific .git/info/exclude file, but
817 - the order was swapped from the beginning. This belatedly fixes it.
818 -
819 - Will merge to 'master' in the third batch.
820 -
821 -
822 -* jk/git-no-more-argv0-path-munging (2015-04-22) 1 commit
823 - (merged to 'next' on 2015-05-05 at b3f9a45)
824 - + stop putting argv[0] dirname at front of PATH
825 -
826 - We have prepended $GIT_EXEC_PATH and the path "git" is installed in
827 - (typically "/usr/bin") to $PATH when invoking subprograms and hooks
828 - for almost eternity, but the original use case the latter tried to
829 - support was semi-bogus (i.e. install git to /opt/foo/git and run it
830 - without having /opt/foo on $PATH), and more importantly it has
831 - become less and less relevant as Git grew more mainstream (i.e. the
832 - users would _want_ to have it on their $PATH). Stop prepending the
833 - path in which "git" is installed to users' $PATH, as that would
834 - interfere the command search order people depend on (e.g. they may
835 - not like versions of programs that are unrelated to Git in /usr/bin
836 - and want to override them by having different ones in /usr/local/bin
837 - and have the latter directory earlier in their $PATH).
838 -
839 - Will merge to 'master' in the third batch.
840 -
841 -
842 -* jk/stash-require-clean-index (2015-04-22) 3 commits
843 - (merged to 'next' on 2015-05-05 at b5f6c32)
844 - + stash: require a clean index to apply
845 - + t3903: avoid applying onto dirty index
846 - + t3903: stop hard-coding commit sha1s
847 -
848 - "git stash pop/apply" forgot to make sure that not just the working
849 - tree is clean but also the index is clean. The latter is important
850 - as a stash application can conflict and the index will be used for
851 - conflict resolution.
852 -
853 - Will merge to 'master' in the third batch.
854 -
855 -
856 -* jc/merge (2015-04-29) 15 commits
857 - (merged to 'next' on 2015-05-07 at 1c56512)
858 - + merge: deprecate 'git merge <message> HEAD <commit>' syntax
859 - + merge: handle FETCH_HEAD internally
860 - + merge: decide if we auto-generate the message early in collect_parents()
861 - + merge: make collect_parents() auto-generate the merge message
862 - + merge: extract prepare_merge_message() logic out
863 - + merge: narrow scope of merge_names
864 - + merge: split reduce_parents() out of collect_parents()
865 - + merge: clarify collect_parents() logic
866 - + merge: small leakfix and code simplification
867 - + merge: do not check argc to determine number of remote heads
868 - + merge: clarify "pulling into void" special case
869 - + t5520: test pulling an octopus into an unborn branch
870 - + t5520: style fixes
871 - + merge: simplify code flow
872 - + merge: test the top-level merge driver
873 - (this branch is used by jc/merge-drop-old-syntax.)
874 -
875 - "git merge FETCH_HEAD" learned that the previous "git fetch" could
876 - be to create an Octopus merge, i.e. recording multiple branches
877 - that are not marked as "not-for-merge"; this allows us to lose an
878 - old style invocation "git merge <msg> HEAD $commits..." in the
879 - implementation of "git pull" script; the old style syntax can now
880 - be deprecated.
881 -
882 - Will merge to 'master' in the third batch.
883 -
884 -
915 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
916 - merge: drop 'git merge <message> HEAD <commit>' syntax
887 - (this branch uses jc/merge.)
917
918 Stop supporting "git merge <messsage> HEAD <commit>" syntax that
919 has been deprecated since October 2007.
@@ -892,127 +921,8 @@ of the repositories listed at
921 Will merge to 'next' and keep there during the 2.5 cycle.
922
923
895 -* jk/test-chain-lint (2015-04-28) 2 commits
896 - (merged to 'next' on 2015-05-05 at e6f0290)
897 - + test-lib: turn on GIT_TEST_CHAIN_LINT by default
898 - + t7502-commit.sh: fix a broken and-chain
899 -
900 - Developer support to automatically detect broken &&-chain in the
901 - test scripts is now turned on by default.
902 -
903 - Will merge to 'master' in the third batch.
904 -
905 -
906 -* bc/connect-plink (2015-04-28) 3 commits
907 - (merged to 'next' on 2015-05-05 at 9def2e1)
908 - + connect: improve check for plink to reduce false positives
909 - + t5601: fix quotation error leading to skipped tests
910 - + connect: simplify SSH connection code path
911 -
912 - The connection initiation code for "ssh" transport tried to absorb
913 - differences between the stock "ssh" and Putty-supplied "plink" and
914 - its derivatives, but the logic to tell that we are using "plink"
915 - variants were too loose and falsely triggered when "plink" appeared
916 - anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
917 -
918 - Will merge to 'master' in the third batch.
919 -
920 -
921 -* jc/test-prereq-validate (2015-04-28) 1 commit
922 - (merged to 'next' on 2015-05-05 at a30464c)
923 - + test: validate prerequistes syntax
924 -
925 - Help us to find broken test script that splits the body part of the
926 - test by mistaken use of wrong kind of quotes.
927 -
928 - Will merge to 'master' in the third batch.
929 -
930 -
931 -* fg/document-commit-message-stripping (2015-04-27) 1 commit
932 - (merged to 'next' on 2015-05-05 at 1892a99)
933 - + Documentation: clarify how "git commit" cleans up the edited log message
934 -
935 - Will merge to 'master' in the third batch.
936 -
937 -
924 * ah/usage-strings (2015-05-03) 2 commits
925 - branch: fix funny-sounding error message
926 - blame, log: format usage strings similarly to those in documentation
927
928 A few usage string updates. The tip one still needs work.
943 -
944 -
945 -* kn/cat-file-literally (2015-05-06) 4 commits
946 - - t1006: add tests for git cat-file --allow-unknown-type
947 - - cat-file: teach cat-file a '--allow-unknown-type' option
948 - - cat-file: make the options mutually exclusive
949 - - sha1_file: support reading from a loose object of unknown type
950 -
951 - Add the "--allow-unknown-type" option to "cat-file" to allow
952 - inspecting loose objects of an experimental or a broken type.
953 -
954 - Will merge to 'next'.
955 -
956 -
957 -* nd/diff-i-t-a (2015-03-23) 1 commit
958 - (merged to 'next' on 2015-05-05 at cba9cd9)
959 - + diff-lib.c: adjust position of i-t-a entries in diff
960 -
961 - Originally merged to 'next' on 2015-03-24
962 -
963 - After "git add -N", the path appeared in output of "git diff HEAD"
964 - and "git diff --cached HEAD", leading "git status" to classify it
965 - as "Changes to be committed". Such a path, however, is not yet to
966 - be scheduled to be committed. "git diff" showed the change to the
967 - path as modification, not as a "new file", in the header of its
968 - output.
969 -
970 - Treat such paths as "yet to be added to the index but Git already
971 - know about them"; "git diff HEAD" and "git diff --cached HEAD"
972 - should not talk about them, and "git diff" should show them as new
973 - files yet to be added to the index.
974 -
975 - Will merge to 'master' in the third batch.
976 -
977 ---------------------------------------------------
978 -[Discarded]
979 -
980 -
981 -* mh/ref-directory-file (2015-05-05) 19 commits
982 - . SQUASH???
983 - . reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
984 - . ref_transaction_commit(): delete extra "the" from error message
985 - . ref_transaction_commit(): provide better error messages
986 - . rename_ref(): integrate lock_ref_sha1_basic() errors into ours
987 - . lock_ref_sha1_basic(): improve diagnostics for D/F conflicts
988 - . lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
989 - . verify_refname_available(): report errors via a "struct strbuf *err"
990 - . verify_refname_available(): rename function
991 - . refs: check for D/F conflicts among refs processed in a transaction
992 - . ref_transaction_commit(): use a string_list for detecting duplicates
993 - . is_refname_available(): use dirname in first loop
994 - . struct nonmatching_ref_data: store a refname instead of a ref_entry
995 - . report_refname_conflict(): inline function
996 - . entry_matches(): inline function
997 - . is_refname_available(): convert local variable "dirname" to strbuf
998 - . is_refname_available(): avoid shadowing "dir" variable
999 - . is_refname_available(): explain the reason for an early exit
1000 - . t1404: new tests of D/F conflicts within ref transactions
1001 - (this branch uses mh/ref-lock-avoid-running-out-of-fds.)
1002 -
1003 - Reroll posted, but didn't have time to pick it up.
1004 -
1005 -
1006 -
1007 -* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits
1008 - . ref_transaction_commit(): only keep one lockfile open at a time
1009 - . ref_transaction_commit(): remove the local flags variables
1010 - . write_ref_sha1(): inline function at callers
1011 - . commit_ref_update(): new function, extracted from write_ref_sha1()
1012 - . write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
1013 - . refs.c: remove lock_fd from struct ref_lock
1014 - . t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
1015 - . update-ref: test handling large transactions properly
1016 - (this branch is used by mh/ref-directory-file.)
1017 -
1018 - Superseded by mh/write-refs-sooner* series.