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.