What's cooking (2015/08 #02)

Junio C Hamano committed Aug 12, 2015 at 14:57 UTC 8409c9175abcd30a201db015b7a0cd12bd14bc2c
1 file changed +526 -772
whats-cooking.txt
+526 -772
@@ -1,30 +1,19 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Aug 2015, #01; Mon, 3)
4 -X-master-at: efc8a625e9b03e6f8ceed37ccd4b9167a7447e31
5 -X-next-at: f5e568e307909722237f3acc29e39e7d8dd1e7b9
3 +Subject: What's cooking in git.git (Aug 2015, #02; Wed, 12)
4 +X-master-at: 130be8eeb8b9b7c89751c3cab3bc54dc6f2d43e6
5 +X-next-at: dc45ae627aaa61b73b573b0f51469393f122b5f6
6
7 -What's cooking in git.git (Aug 2015, #01; Mon, 3)
7 +What's cooking in git.git (Aug 2015, #02; Wed, 12)
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 -Accumulated fixes went to a new maintenance release 2.4.8. The
15 -first batch of the post-2.5 development cycle has been merged to
16 -'master', and the tip of 'next' has been rewound.
17 -
18 -I've kicked a few topics out of 'next' back to 'pu' for now.
19 -
20 - - I think pt/am-builtin is more or less ready, but the fix to the
21 - issue that options given to 'git am' when restarting were
22 - rejected must be queued on that topic before we can start
23 - thinking of merging it to 'master' for the next release.
24 -
25 - - I think es/worktree-add and es/worktree-add-cleanup are good
26 - shape overall, but we probably would want to make them into a
27 - single topic.
14 +The second batch of topics have graduated to 'master'. Most
15 +notably, the rewritten "git am" is in. Also "worktree add" is
16 +getting improved.
17
18 You can find the changes described here in the integration branches
19 of the repositories listed at
@@ -34,456 +23,495 @@ of the repositories listed at
23 --------------------------------------------------
24 [Graduated to "master"]
25
37 -* as/sparse-checkout-removal (2015-07-21) 1 commit
38 - (merged to 'next' on 2015-07-21 at ab94680)
39 - + unpack-trees: don't update files with CE_WT_REMOVE set
26 +* ad/bisect-cleanup (2015-08-03) 6 commits
27 + (merged to 'next' on 2015-08-03 at 13b9314)
28 + + bisect: don't mix option parsing and non-trivial code
29 + + bisect: simplify the addition of new bisect terms
30 + + bisect: replace hardcoded "bad|good" by variables
31 + + Documentation/bisect: revise overall content
32 + + Documentation/bisect: move getting help section to the end
33 + + bisect: correction of typo
34 + (this branch is used by ad/bisect-terms.)
35 +
36 + Originally merged to 'next' on 2015-07-09
37 +
38 + Code and documentation clean-up to "git bisect".
39 +
40 +
41 +* dt/reflog-tests (2015-07-28) 2 commits
42 + (merged to 'next' on 2015-08-03 at 9d2fa1a)
43 + + tests: remove some direct access to .git/logs
44 + + t/t7509: remove unnecessary manipulation of reflog
45 +
46 + Tests that assume how reflogs are represented on the filesystem too
47 + much have been corrected.
48 +
49 +
50 +* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
51 + (merged to 'next' on 2015-08-03 at 5b0d620)
52 + + unpack-trees: populate cache-tree on successful merge
53 +
54 + The code to perform multi-tree merges has been taught to repopulate
55 + the cache-tree upon a successful merge into the index, so that
56 + subsequent "diff-index --cached" (hence "status") and "write-tree"
57 + (hence "commit") will go faster.
58 +
59 + The same logic in "git checkout" may now be removed, but that is a
60 + separate issue.
61 +
62 +
63 +* es/worktree-add (2015-07-20) 5 commits
64 + (merged to 'next' on 2015-08-03 at 9771a44)
65 + + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
66 + + Documentation/git-worktree: wordsmith worktree-related manpages
67 + + Documentation/config: fix stale "git prune --worktree" reference
68 + + Documentation/git-worktree: fix incorrect reference to file "locked"
69 + + Documentation/git-worktree: consistently use term "linked working tree"
70 + (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
71 +
72 + Originally merged to 'next' on 2015-07-20
73 +
74 + Remove remaining cruft from "git checkout --to", which
75 + transitioned to "git worktree add".
76 +
77 +
78 +* es/worktree-add-cleanup (2015-08-05) 25 commits
79 + (merged to 'next' on 2015-08-12 at 9168b42)
80 + + Documentation/git-worktree: fix duplicated 'from'
81 + + Documentation/config: mention "now" and "never" for 'expire' settings
82 + + Documentation/git-worktree: fix broken 'linkgit' invocation
83 + + checkout: drop intimate knowledge of newly created worktree
84 + + worktree: populate via "git reset --hard" rather than "git checkout"
85 + + worktree: avoid resolving HEAD unnecessarily
86 + + worktree: make setup of new HEAD distinct from worktree population
87 + + worktree: detect branch-name/detached and error conditions locally
88 + + worktree: add_worktree: construct worktree-population command locally
89 + + worktree: elucidate environment variables intended for child processes
90 + + worktree: make branch creation distinct from worktree population
91 + + worktree: add: suppress auto-vivication with --detach and no <branch>
92 + + worktree: make --detach mutually exclusive with -b/-B
93 + + worktree: introduce options container
94 + + worktree: simplify new branch (-b/-B) option checking
95 + + worktree: improve worktree setup message
96 + + branch: publish die_if_checked_out()
97 + + checkout: teach check_linked_checkout() about symbolic link HEAD
98 + + checkout: check_linked_checkout: simplify symref parsing
99 + + checkout: check_linked_checkout: improve "already checked out" aesthetic
100 + + checkout: generalize die_if_checked_out() branch name argument
101 + + checkout: die_if_checked_out: simplify strbuf management
102 + + checkout: improve die_if_checked_out() robustness
103 + + checkout: name check_linked_checkouts() more meaningfully
104 + + checkout: avoid resolving HEAD unnecessarily
105 + (this branch is used by dt/notes-multiple; uses es/worktree-add.)
106 +
107 + Originally merged to 'next' on 2015-07-29
108 +
109 + The "new-worktree-mode" hack in "checkout" that was added in
110 + nd/multiple-work-trees topic has been removed by updating the
111 + implementation of new "worktree add".
112 +
113 +
114 +* pt/am-builtin (2015-08-04) 46 commits
115 + (merged to 'next' on 2015-08-12 at 10d0c56)
116 + + git-am: add am.threeWay config variable
117 + + builtin-am: remove redirection to git-am.sh
118 + + builtin-am: check for valid committer ident
119 + + builtin-am: implement legacy -b/--binary option
120 + + builtin-am: implement -i/--interactive
121 + + builtin-am: support and auto-detect mercurial patches
122 + + builtin-am: support and auto-detect StGit series files
123 + + builtin-am: support and auto-detect StGit patches
124 + + builtin-am: rerere support
125 + + builtin-am: invoke post-applypatch hook
126 + + builtin-am: invoke pre-applypatch hook
127 + + builtin-am: invoke applypatch-msg hook
128 + + builtin-am: support automatic notes copying
129 + + builtin-am: invoke post-rewrite hook
130 + + builtin-am: implement -S/--gpg-sign, commit.gpgsign
131 + + builtin-am: implement --committer-date-is-author-date
132 + + builtin-am: implement --ignore-date
133 + + builtin-am: pass git-apply's options to git-apply
134 + + builtin-am: implement --[no-]scissors
135 + + builtin-am: support --keep-cr, am.keepcr
136 + + builtin-am: implement --[no-]message-id, am.messageid
137 + + builtin-am: implement -k/--keep, --keep-non-patch
138 + + builtin-am: implement -u/--utf8
139 + + builtin-am: handle stray state directory
140 + + builtin-am: bypass git-mailinfo when --rebasing
141 + + builtin-am: implement --rebasing mode
142 + + builtin-am: implement --3way
143 + + cache-tree: introduce write_index_as_tree()
144 + + builtin-am: implement -s/--signoff
145 + + builtin-am: exit with user friendly message on failure
146 + + builtin-am: implement -q/--quiet
147 + + builtin-am: reject patches when there's a session in progress
148 + + builtin-am: implement --abort
149 + + builtin-am: implement --skip
150 + + builtin-am: don't parse mail when resuming
151 + + builtin-am: implement --resolved/--continue
152 + + builtin-am: refuse to apply patches if index is dirty
153 + + builtin-am: implement committing applied patch
154 + + builtin-am: apply patch with git-apply
155 + + builtin-am: extract patch and commit info with git-mailinfo
156 + + builtin-am: auto-detect mbox patches
157 + + builtin-am: split out mbox/maildir patches with git-mailsplit
158 + + builtin-am: implement patch queue mechanism
159 + + builtin-am: implement skeletal builtin am
160 + + wrapper: implement xfopen()
161 + + wrapper: implement xopen()
162 + (this branch is used by pt/am-builtin-options.)
163 +
164 + Originally merged to 'next' on 2015-07-23
165 +
166 + Rewrite "am" in "C".
167 +
168
41 - "sparse checkout" misbehaved for a path that is excluded from the
42 - checkout when switching between branches that differ at the path.
169 +* sb/parse-options-codeformat (2015-07-29) 1 commit
170 + (merged to 'next' on 2015-08-03 at f81993b)
171 + + parse-options: align curly braces for all options
172
173
45 -* bc/gpg-verify-raw (2015-06-22) 7 commits
46 - (merged to 'next' on 2015-06-24 at 08a1164)
47 - + verify-tag: add option to print raw gpg status information
48 - + verify-commit: add option to print raw gpg status information
49 - + gpg: centralize printing signature buffers
50 - + gpg: centralize signature check
51 - + verify-commit: add test for exit status on untrusted signature
52 - + verify-tag: share code with verify-commit
53 - + verify-tag: add tests
174 +* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
175 + (merged to 'next' on 2015-08-03 at f5e568e)
176 + + add: remove dead code
177 +
178 +--------------------------------------------------
179 +[New Topics]
180
55 - "git verify-tag" and "git verify-commit" have been taught to share
56 - more code, and then learned to optionally show the verification
57 - message from the underlying GPG implementation.
181 +* bb/remote-get-url (2015-08-05) 1 commit
182 + - remote: add get-url subcommand
183
184 + "git remote" learned "get-url" subcommand to show the URL for a
185 + given remote name used for fetching and pushing.
186
60 -* cb/parse-magnitude (2015-06-22) 2 commits
61 - (merged to 'next' on 2015-06-24 at 2fd7205)
62 - + parse-options: move unsigned long option parsing out of pack-objects.c
63 - + test-parse-options: update to handle negative ints
187 + Waiting for a reroll.
188 + ($gmane/275401)
189
65 - Move machinery to parse human-readable scaled numbers like 1k, 4M,
66 - and 2G as an option parameter's value from pack-objects to
67 - parse-options API, to make it available to other codepaths.
190
191 +* cb/open-noatime-clear-errno (2015-08-12) 1 commit
192 + - git_open_noatime: return with errno=0 on success
193
70 -* cb/uname-in-untracked (2015-07-17) 1 commit
71 - (merged to 'next' on 2015-07-21 at d867af0)
72 - + untracked: fix detection of uname(2) failure
194 + When trying to see that an object does not exist, a state errno
195 + leaked from our "first try to open a packfile with O_NOATIME and
196 + then if it fails retry without it" logic on a system that refuses
197 + O_NOATIME. This confused us and caused us to die, saying that the
198 + packfile is unreadable, when we should have just reported that the
199 + object does not exist in that packfile to the caller.
200
74 - An experimental "untracked cache" feature used uname(2) in a
75 - slightly unportable way.
201 + Will merge to 'next'.
202
203
78 -* da/subtree-date-confusion (2015-07-23) 1 commit
79 - (merged to 'next' on 2015-07-29 at 01016b1)
80 - + contrib/subtree: ignore log.date configuration
204 +* jk/guess-repo-name-regression-fix (2015-08-10) 2 commits
205 + (merged to 'next' on 2015-08-12 at 4cba33c)
206 + + clone: use computed length in guess_dir_name
207 + + clone: add tests for output directory
208 + (this branch is used by ps/guess-repo-name-at-root.)
209
82 - "git subtree" (in contrib/) depended on "git log" output to be
83 - stable, which was a no-no. Apply a workaround to force a
84 - particular date format.
210 + "git clone $URL" in recent releases of Git contains a regression in
211 + the code that invents a new repository name incorrectly based on
212 + the $URL. This has been corrected.
213
214 + Will merge to 'master'.
215
87 -* db/send-pack-user-signingkey (2015-07-21) 1 commit
88 - (merged to 'next' on 2015-07-29 at b0d62e9)
89 - + builtin/send-pack.c: respect user.signingkey
216
91 - The low-level "git send-pack" did not honor 'user.signingkey'
92 - configuration variable when sending a signed-push.
217 +* ps/guess-repo-name-at-root (2015-08-10) 3 commits
218 + (merged to 'next' on 2015-08-12 at 088860f)
219 + + clone: abort if no dir name could be guessed
220 + + clone: do not use port number as dir name
221 + + clone: do not include authentication data in guessed dir
222 + (this branch uses jk/guess-repo-name-regression-fix.)
223
224 + "git clone $URL", when cloning from a site whose sole purpose is to
225 + host a single repository (hence, no path after <scheme>://<site>/),
226 + tried to use the site name as the new repository name, but did not
227 + remove username or password when <site> part was of the form
228 + <user>@<pass>:<host>. The code is taught to redact these.
229
95 -* dt/log-follow-config (2015-07-09) 1 commit
96 - (merged to 'next' on 2015-07-10 at b8fbb43)
97 - + log: add "log.follow" configuration variable
230 + Will merge to 'master'.
231
99 - Add a new configuration variable to enable "--follow" automatically
100 - when "git log" is run with one pathspec argument.
232
233 +* jk/notes-merge-config (2015-08-05) 4 commits
234 + - SQUASH???
235 + - notes: add notes.merge option to select default strategy
236 + - notes: add tests for --commit/--abort/--strategy exclusivity
237 + - notes: document cat_sort_uniq rewriteMode
238
103 -* dt/refs-backend-preamble (2015-07-21) 7 commits
104 - (merged to 'next' on 2015-07-23 at 9dac423)
105 - + git-stash: use update-ref --create-reflog instead of creating files
106 - + update-ref and tag: add --create-reflog arg
107 - + refs: add REF_FORCE_CREATE_REFLOG flag
108 - + git-reflog: add exists command
109 - + refs: new public ref function: safe_create_reflog
110 - + refs: break out check for reflog autocreation
111 - + refs.c: add err arguments to reflog functions
112 - (this branch is used by dt/refs-pseudo.)
239 + "git notes merge" can be told with "--strategy=<how>" option how to
240 + automatically handle conflicts; this can now be configured by
241 + setting notes.merge configuration variable.
242
114 - In preparation for allowing different "backends" to store the refs
115 - in a way different from the traditional "one ref per file in $GIT_DIR
116 - or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
117 - direct filesystem access to ref-like things like CHERRY_PICK_HEAD
118 - from scripts and programs.
243 + The last step to add more specific notes.$ref.merge looked
244 + questionable. What is queued is v3, v4 exists, but needs an
245 + update.
246
247 + Waiting for a reroll.
248 + ($gmane/275749)
249
121 -* ee/clean-remove-dirs (2015-06-26) 6 commits
122 - (merged to 'next' on 2015-06-29 at d595659)
123 - + read_gitfile_gently: fix use-after-free
124 - (merged to 'next' on 2015-06-24 at 7c27821)
125 - + clean: improve performance when removing lots of directories
126 - + p7300: add performance tests for clean
127 - + t7300: add tests to document behavior of clean and nested git
128 - + setup: sanity check file size in read_gitfile_gently
129 - + setup: add gentle version of read_gitfile
250
131 - Replace "is this subdirectory a separate repository that should not
132 - be touched?" check "git clean" does by checking if it has .git/HEAD
133 - using the submodule-related code with a more optimized check.
251 +* mk/submodule-gitdir-path (2015-08-05) 2 commits
252 + - path: implement common_dir handling in git_path_submodule()
253 + - submodule refactor: use git_path_submodule() in add_submodule_odb()
254
255 + The submodule code has been taught to work better with separate
256 + work trees created via "git worktree add".
257
136 -* es/doc-clean-outdated-tools (2015-07-28) 5 commits
137 - (merged to 'next' on 2015-07-29 at 6d80251)
138 - + Documentation/git-tools: retire manually-maintained list
139 - + Documentation/git-tools: drop references to defunct tools
140 - + Documentation/git-tools: fix item text formatting
141 - + Documentation/git-tools: improve discoverability of Git wiki
142 - + Documentation/git: drop outdated Cogito reference
258 + Waiting for a review.
259 + ($gmane/275340).
260
261
145 -* gp/status-rebase-i-info (2015-07-06) 4 commits
146 - (merged to 'next' on 2015-07-10 at b121298)
147 - + status: add new tests for status during rebase -i
148 - + status: give more information during rebase -i
149 - + status: differentiate interactive from non-interactive rebases
150 - + status: factor two rebase-related messages together
262 +* mm/pull-upload-pack (2015-07-30) 1 commit
263 + (merged to 'next' on 2015-08-12 at 14d2a52)
264 + + pull.sh: quote $upload_pack when passing it to git-fetch
265
152 - Teach "git status" to show a more detailed information regarding
153 - the "rebase -i" session in progress.
266 + "git pull" in recent releases of Git has a regression in the code
267 + that allows custom path to the --upload-pack=<program>. This has
268 + been corrected.
269
270 + Will merge to 'maint'.
271
156 -* gr/rebase-i-drop-warn (2015-06-30) 3 commits
157 - (merged to 'next' on 2015-07-15 at 6f4f2c8)
158 - + git rebase -i: add static check for commands and SHA-1
159 - + git rebase -i: warn about removed commits
160 - + git-rebase -i: add command "drop" to remove a commit
272 + Note that this is irrelevant for 'master' with "git pull" rewritten
273 + in C.
274
162 - Add "drop commit-object-name subject" command as another way to
163 - skip replaying of a commit in "rebase -i".
275
276 +* ps/t1509-chroot-test-fixup (2015-08-05) 2 commits
277 + (merged to 'next' on 2015-08-12 at 6d10ea5)
278 + + tests: fix cleanup after tests in t1509-root-worktree
279 + + tests: fix broken && chains in t1509-root-worktree
280
166 -* ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
167 - (merged to 'next' on 2015-07-17 at 7bb1674)
168 - + rev-parse --parseopt: allow [*=?!] in argument hints
281 + t1509 test that requires a dedicated VM environment had some
282 + bitrot, which has been corrected.
283
170 - The "rev-parse --parseopt" mode parsed the option specification
171 - and the argument hint in a strange way to allow '=' and other
172 - special characters in the option name while forbidding them from
173 - the argument hint. This made it impossible to define an option
174 - like "--pair <key>=<value>" with "pair=key=value" specification,
175 - which instead would have defined a "--pair=key <value>" option.
284 + Will merge to 'master'.
285
286
178 -* jc/commit-slab (2015-05-22) 1 commit
179 - (merged to 'next' on 2015-07-15 at 4c83475)
180 - + commit-slab: introduce slabname##_peek() function
181 -
182 - Memory use reduction when commit-slab facility is used to annotate
183 - sparsely (which is not recommended in the first place).
184 -
185 -
186 -* jk/cat-file-batch-all (2015-06-26) 8 commits
187 - (merged to 'next' on 2015-07-10 at 80200cc)
188 - + cat-file: sort and de-dup output of --batch-all-objects
189 - + cat-file: add --batch-all-objects option
190 - + cat-file: split batch_one_object into two stages
191 - + cat-file: stop returning value from batch_one_object
192 - + cat-file: add --buffer option
193 - + cat-file: move batch_options definition to top of file
194 - + cat-file: minor style fix in options list
195 - + Merge branch 'jk/maint-for-each-packed-object' into jk/cat-file-batch-all
196 -
197 - "cat-file" learned "--batch-all-objects" option to enumerate all
198 - available objects in the repository more quickly than "rev-list
199 - --all --objects" (the output includes unreachable objects, though).
200 -
201 -
202 -* jk/date-mode-format (2015-07-20) 4 commits
203 - (merged to 'next' on 2015-07-21 at 69f66be)
204 - + strbuf: make strbuf_addftime more robust
205 - (merged to 'next' on 2015-07-09 at a01bfc3)
206 - + introduce "format" date-mode
207 - + convert "enum date_mode" into a struct
208 - + show-branch: use DATE_RELATIVE instead of magic number
209 -
210 - Teach "git log" and friends a new "--date=format:..." option to
211 - format timestamps using system's strftime(3).
212 -
213 -
214 -* jk/pkt-log-pack (2015-06-16) 3 commits
215 - (merged to 'next' on 2015-07-10 at ba33212)
216 - + pkt-line: support tracing verbatim pack contents
217 - + pkt-line: tighten sideband PACK check when tracing
218 - + pkt-line: simplify starts_with checks in packet tracing
287 +* pt/am-builtin-options (2015-08-12) 3 commits
288 + (merged to 'next' on 2015-08-12 at e57f754)
289 + + am: let --signoff override --no-signoff
290 + + am: let command-line options override saved options
291 + + test_terminal: redirect child process' stdin to a pty
292
220 - Enhance packet tracing machinery to allow capturing an incoming
221 - pack data to a file for debugging.
222 -
223 -
224 -* jk/refspec-parse-wildcard (2015-07-27) 2 commits
225 - (merged to 'next' on 2015-07-29 at eb48d2f)
226 - + refs: loosen restriction on wildcard "*" refspecs
227 - + refs: cleanup comments regarding check_refname_component()
228 -
229 - Allow an asterisk as a substring (as opposed to the entirety) of
230 - a path component for both side of a refspec, e.g.
231 - "refs/heads/o*:refs/remotes/heads/i*".
232 -
233 -
234 -* js/fsck-opt (2015-06-23) 19 commits
235 - (merged to 'next' on 2015-07-10 at eb4da0a)
236 - + fsck: support ignoring objects in `git fsck` via fsck.skiplist
237 - + fsck: git receive-pack: support excluding objects from fsck'ing
238 - + fsck: introduce `git fsck --connectivity-only`
239 - + fsck: support demoting errors to warnings
240 - + fsck: document the new receive.fsck.<msg-id> options
241 - + fsck: allow upgrading fsck warnings to errors
242 - + fsck: optionally ignore specific fsck issues completely
243 - + fsck: disallow demoting grave fsck errors to warnings
244 - + fsck: add a simple test for receive.fsck.<msg-id>
245 - + fsck: make fsck_tag() warn-friendly
246 - + fsck: handle multiple authors in commits specially
247 - + fsck: make fsck_commit() warn-friendly
248 - + fsck: make fsck_ident() warn-friendly
249 - + fsck: report the ID of the error/warning
250 - + fsck (receive-pack): allow demoting errors to warnings
251 - + fsck: offer a function to demote fsck errors to warnings
252 - + fsck: provide a function to parse fsck message IDs
253 - + fsck: introduce identifiers for fsck messages
254 - + fsck: introduce fsck options
255 -
256 - Allow ignoring fsck errors on specific set of known-to-be-bad
257 - objects, and also tweaking warning level of various kinds of non
258 - critical breakages reported.
259 -
260 -
261 -* jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
262 - (merged to 'next' on 2015-07-29 at 227d0d9)
263 - + receive-pack: crash when checking with non-exist HEAD
264 -
265 - An attempt to delete a ref by pushing into a repositorywhose HEAD
266 - symbolic reference points at an unborn branch that cannot be
267 - created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
268 - points at refs/heads/a) failed.
269 -
270 -
271 -* kb/i18n-doc (2015-07-01) 1 commit
272 - (merged to 'next' on 2015-07-09 at a12c7b3)
273 - + Documentation/i18n.txt: clarify character encoding support
274 -
275 -
276 -* kn/for-each-ref (2015-08-03) 11 commits
277 - + ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
278 - + for-each-ref: introduce filter_refs()
279 - + ref-filter: move code from 'for-each-ref'
280 - + ref-filter: add 'ref-filter.h'
281 - + for-each-ref: rename variables called sort to sorting
282 - + for-each-ref: rename some functions and make them public
283 - + for-each-ref: introduce 'ref_array_clear()'
284 - + for-each-ref: introduce new structures for better organisation
285 - + for-each-ref: rename 'refinfo' to 'ref_array_item'
286 - + for-each-ref: clean up code
287 - + for-each-ref: extract helper functions out of grab_single_ref()
288 - (this branch is used by kn/for-each-tag-branch).
289 -
290 - GSoC project to rebuild ref listing by branch and tag based on the
291 - for-each-ref machinery. This is its first part.
292 -
293 -
294 -* kn/tag-doc-fix (2015-07-10) 1 commit
295 - (merged to 'next' on 2015-07-15 at 7bd6038)
296 - + Documentation/tag: remove double occurance of "<pattern>"
297 -
298 -
299 -* mh/fast-import-get-mark (2015-07-01) 1 commit
300 - (merged to 'next' on 2015-07-15 at 5e034b9)
301 - + fast-import: add a get-mark command
302 -
303 - "git fast-import" learned to respond to the get-mark command via
304 - its cat-blob-fd interface.
305 -
306 -
307 -* mh/fast-import-optimize-current-from (2015-07-13) 1 commit
308 - (merged to 'next' on 2015-07-15 at 2be8b1f)
309 - + fast-import: do less work when given "from" matches current branch head
310 -
311 - Often a fast-import stream builds a new commit on top of the
312 - previous commit it built, and it often unconditionally emits a
313 - "from" command to specify the first parent, which can be omitted in
314 - such a case. This caused fast-import to forget the tree of the
315 - previous commit and then re-read it from scratch, which was
316 - inefficient. Optimize for this common case.
317 -
318 -
319 -* mh/init-delete-refs-api (2015-06-22) 19 commits
320 - (merged to 'next' on 2015-07-10 at 121b26e)
321 - + delete_ref(): use the usual convention for old_sha1
322 - + cmd_update_ref(): make logic more straightforward
323 - + update_ref(): don't read old reference value before delete
324 - + check_branch_commit(): make first parameter const
325 - + refs.h: add some parameter names to function declarations
326 - + refs: move the remaining ref module declarations to refs.h
327 - + initial_ref_transaction_commit(): check for ref D/F conflicts
328 - + initial_ref_transaction_commit(): check for duplicate refs
329 - + refs: remove some functions from the module's public interface
330 - + initial_ref_transaction_commit(): function for initial ref creation
331 - + repack_without_refs(): make function private
332 - + prune_refs(): use delete_refs()
333 - + prune_remote(): use delete_refs()
334 - + delete_refs(): bail early if the packed-refs file cannot be rewritten
335 - + delete_refs(): make error message more generic
336 - + delete_refs(): new function for the refs API
337 - + delete_ref(): handle special case more explicitly
338 - + remove_branches(): remove temporary
339 - + delete_ref(): move declaration to refs.h
340 -
341 - Clean up refs API and make "git clone" less intimate with the
342 - implementation detail.
343 -
344 -
345 -* mh/replace-refs (2015-06-12) 1 commit
346 - (merged to 'next' on 2015-06-24 at cb13adf)
347 - + Allow to control where the replace refs are looked for
348 -
349 - Add an environment variable to tell Git to look into refs hierarchy
350 - other than refs/replace/ for the object replacement data.
351 -
352 -
353 -* mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
354 - (merged to 'next' on 2015-07-10 at ec383cd)
355 - + git-rebase--interactive.sh: add config option for custom instruction format
356 -
357 - "git rebase -i"'s list of todo is made configurable.
358 -
359 -
360 -* nd/export-worktree (2015-06-26) 1 commit
361 - (merged to 'next' on 2015-07-09 at 1581a9b)
362 - + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
363 -
364 - Running an aliased command from a subdirectory when the .git thing
365 - in the working tree is a gitfile pointing elsewhere did not work.
366 -
367 -
368 -* pt/am-foreign (2015-06-15) 5 commits
369 - (merged to 'next' on 2015-06-24 at 838c702)
370 - + am: teach mercurial patch parser how to read from stdin
371 - + am: use gmtime() to parse mercurial patch date
372 - + t4150: test applying StGit series
373 - + am: teach StGit patch parser how to read from stdin
374 - + t4150: test applying StGit patch
375 -
376 - Various enhancements around "git am" reading patches generated by
377 - foreign SCM.
378 -
379 -
380 -* pt/am-tests (2015-07-20) 12 commits
381 - (merged to 'next' on 2015-07-21 at 8d3d5f4)
382 - + t3901: test git-am encoding conversion
383 - + t3418: non-interactive rebase --continue with rerere enabled
384 - + t4150: tests for am --[no-]scissors
385 - + t4150: am with post-applypatch hook
386 - + t4150: am with pre-applypatch hook
387 - + t4150: am with applypatch-msg hook
388 - + t4150: am --resolved fails if index has unmerged entries
389 - + t4150: am --resolved fails if index has no changes
390 - + t4150: am refuses patches when paused
391 - + t4151: am --abort will keep dirty index intact
392 - + t4150: am fails if index is dirty
393 - + t4150: am.messageid really adds the message id
394 -
395 -
396 -* pt/pull-builtin (2015-06-18) 19 commits
397 - (merged to 'next' on 2015-07-10 at 07b1794)
398 - + pull: remove redirection to git-pull.sh
399 - + pull --rebase: error on no merge candidate cases
400 - + pull --rebase: exit early when the working directory is dirty
401 - + pull: configure --rebase via branch.<name>.rebase or pull.rebase
402 - + pull: teach git pull about --rebase
403 - + pull: set reflog message
404 - + pull: implement pulling into an unborn branch
405 - + pull: fast-forward working tree if head is updated
406 - + pull: check if in unresolved merge state
407 - + pull: support pull.ff config
408 - + pull: error on no merge candidates
409 - + pull: pass git-fetch's options to git-fetch
410 - + pull: pass git-merge's options to git-merge
411 - + pull: pass verbosity, --progress flags to fetch and merge
412 - + pull: implement fetch + merge
413 - + pull: implement skeletal builtin pull
414 - + argv-array: implement argv_array_pushv()
415 - + parse-options-cb: implement parse_opt_passthru_argv()
416 - + parse-options-cb: implement parse_opt_passthru()
417 - (this branch is used by kd/pull-rebase-autostash, pt/am-builtin and pt/am-builtin-fix.)
418 -
419 - Reimplement 'git pull' in C.
420 -
421 -
422 -* rl/send-email-aliases (2015-07-07) 10 commits
423 - (merged to 'next' on 2015-07-09 at c60553d)
424 - + send-email: suppress meaningless whitespaces in from field
425 - + send-email: allow multiple emails using --cc, --to and --bcc
426 - + send-email: consider quote as delimiter instead of character
427 - + send-email: reduce dependencies impact on parse_address_line
428 - + send-email: minor code refactoring
429 - + send-email: allow use of aliases in the From field of --compose mode
430 - + send-email: refactor address list process
431 - + t9001-send-email: refactor header variable fields replacement
432 - + send-email: allow aliases in patch header and command script outputs
433 - + t9001-send-email: move script creation in a setup test
434 -
435 - "git send-email" now performs alias-expansion on names that are
436 - given via --cccmd, etc.
437 -
438 - This round comes with a lot more enhanced e-mail address parser,
439 - which makes it a bit scary, but as long as it works as designed, it
440 - makes it wonderful ;-).
441 -
442 -
443 -* se/doc-checkout-ours-theirs (2015-07-12) 1 commit
444 - (merged to 'next' on 2015-07-21 at 5275f04)
445 - + checkout: document subtlety around --ours/--theirs
446 -
447 - A "rebase" replays changes of the local branch on top of something
448 - else, as such they are placed in stage #3 and referred to as
449 - "theirs", while the changes in the new base, typically a foreign
450 - work, are placed in stage #2 and referred to as "ours". Clarify
451 - the "checkout --ours/--theirs".
452 -
453 -
454 -* sg/bash-prompt-untracked-optim (2015-07-20) 2 commits
455 - (merged to 'next' on 2015-07-21 at e151fb7)
456 - + bash prompt: faster untracked status indicator with untracked directories
457 - + bash prompt: test untracked files status indicator with untracked dirs
458 -
459 - Optimize computation of untracked status indicator by bash prompt
460 - script (in contrib/).
461 -
462 -
463 -* zb/userdiff-fountain (2015-07-23) 1 commit
464 - (merged to 'next' on 2015-07-23 at e177995)
465 - + userdiff: add support for Fountain documents
466 -
467 - New userdiff pattern definition for fountain screenwriting markup
468 - format.
293 + After "git am --opt1" stops, running "git am --opt2" pays attention
294 + to "--opt2" only for the patch that caused the original invocation
295 + to stop.
296
470 ---------------------------------------------------
471 -[New Topics]
297 + Will merge to 'master'.
298
473 -* sb/check-return-from-read-ref (2015-08-03) 1 commit
474 - - transport-helper: die on errors reading refs.
299
476 - Will merge to 'next'.
300 +* sb/remove-get-pathspec (2015-08-03) 1 commit
301 + - builtin/mv: remove get_pathspec()
302 +
303 + Expecting a reroll.
304 + ($gmane/275224)
305 +
306 +
307 +* sb/submodule-helper (2015-08-07) 1 commit
308 + - submodule: implement `module_list` as a builtin helper
309 +
310 + The beginning of "git submodule" rewritten in C.
311 +
312 +
313 +* tb/complete-rebase-i-edit-todo (2015-08-05) 1 commit
314 + (merged to 'next' on 2015-08-12 at 9606c21)
315 + + completion: offer '--edit-todo' during interactive rebase
316 +
317 + The command-line completion script (in contrib/) has been updated.
318 +
319 + Will merge to 'master'.
320 +
321 +
322 +* dt/untracked-subdir (2015-08-07) 2 commits
323 + - DONTMERGE: wait for Duy to Ack or comment
324 + - untracked-cache: fix subdirectory handling
325 + (this branch uses dt/untracked-sparse.)
326 +
327 + Waiting for a review.
328 +
329 +
330 +* jk/test-with-x (2015-08-07) 2 commits
331 + (merged to 'next' on 2015-08-12 at 06576a1)
332 + + test-lib: disable trace when test is not verbose
333 + + test-lib: turn off "-x" tracing during chain-lint check
334 +
335 + Running tests with the "-x" option to make them verbose had some
336 + unpleasant interactions with other features of the test suite.
337 +
338 + Will merge to 'master'.
339 +
340 +
341 +* ad/cygwin-wants-rename (2015-08-07) 1 commit
342 + - config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
343 +
344 + Will hold.
345 + ($gmane/275680).
346 +
347 +
348 +* bc/connect-plink (2015-08-11) 1 commit
349 + - t5601-clone: remove broken and pointless check for plink.exe
350 +
351 + Test updates for Windows.
352 +
353 + Seems controversial.
354 + Will hold.
355 + for now ($gmane/275758).
356 +
357 +
358 +* ee/clean-remove-dirs (2015-08-11) 1 commit
359 + (merged to 'next' on 2015-08-12 at fc41b09)
360 + + t7300-clean: require POSIXPERM for chmod 0 test
361 +
362 + Test updates for Windows.
363 +
364 + Will merge to 'master'.
365 +
366 +
367 +* jc/finalize-temp-file (2015-08-10) 1 commit
368 + (merged to 'next' on 2015-08-12 at 6fe62fe)
369 + + sha1_file.c: rename move_temp_to_file() to finalize_object_file()
370 +
371 + Long overdue micro clean-up.
372 +
373 + Will merge to 'master'.
374 +
375 +
376 +* jk/git-path (2015-08-10) 16 commits
377 + (merged to 'next' on 2015-08-12 at 7ebe864)
378 + + memoize common git-path "constant" files
379 + + get_repo_path: refactor path-allocation
380 + + find_hook: keep our own static buffer
381 + + refs.c: remove_empty_directories can take a strbuf
382 + + refs.c: avoid git_path assignment in lock_ref_sha1_basic
383 + + refs.c: avoid repeated git_path calls in rename_tmp_log
384 + + refs.c: simplify strbufs in reflog setup and writing
385 + + path.c: drop git_path_submodule
386 + + refs.c: remove extra git_path calls from read_loose_refs
387 + + remote.c: drop extraneous local variable from migrate_file
388 + + prefer mkpathdup to mkpath in assignments
389 + + prefer git_pathdup to git_path in some possibly-dangerous cases
390 + + add_to_alternates_file: don't add duplicate entries
391 + + t5700: modernize style
392 + + cache.h: complete set of git_path_submodule helpers
393 + + cache.h: clarify documentation for git_path, et al
394 +
395 + git_path() and mkpath() are handy helper functions but it is easy
396 + to misuse, as the callers need to be careful to keep the number of
397 + active results below 4. Their uses have been reduced.
398 +
399 + Will merge to 'master'.
400 +
401 +
402 +* jk/long-error-messages (2015-08-11) 2 commits
403 + (merged to 'next' on 2015-08-12 at 36303cd)
404 + + vreportf: avoid intermediate buffer
405 + + vreportf: report to arbitrary filehandles
406 +
407 + The codepath to produce error messages had a hard-coded limit to
408 + the size of the message, primarily to avoid memory allocation while
409 + calling die().
410 +
411 + Will merge to 'master'.
412 +
413 +
414 +* nd/dwim-wildcards-as-pathspecs (2015-08-11) 1 commit
415 + (merged to 'next' on 2015-08-12 at bb73f4d)
416 + + t2019: skip test requiring '*' in a file name non Windows
417 +
418 + Test updates for Windows.
419 +
420 + Will merge to 'master'.
421
422 --------------------------------------------------
423 [Stalled]
424
425 +* nd/list-files (2015-02-09) 21 commits
426 + - t3080: tests for git-list-files
427 + - list-files: -M aka diff-cached
428 + - list-files -F: show submodules with the new indicator '&'
429 + - list-files: add -F/--classify
430 + - list-files: show directories as well as files
431 + - list-files: do not show duplicate cached entries
432 + - list-files: sort output and remove duplicates
433 + - list-files: add -t back
434 + - list-files: add -1 short for --no-column
435 + - list-files: add -R/--recursive short for --max-depth=-1
436 + - list-files: -u does not imply showing stages
437 + - list-files: make alias 'ls' default to 'list-files'
438 + - list-files: a user friendly version of ls-files and more
439 + - ls-files: support --max-depth
440 + - ls-files: add --column
441 + - ls-files: add --color to highlight file names
442 + - ls-files: buffer full item in strbuf before printing
443 + - ls_colors.c: highlight submodules like directories
444 + - ls_colors.c: add a function to color a file name
445 + - ls_colors.c: parse color.ls.* from config file
446 + - ls_colors.c: add $LS_COLORS parsing code
447 +
448 + A new "git list-files" Porcelain command, "ls-files" with bells and
449 + whistles.
450 +
451 + Reroll to base on wt-status work ($gmane/265142) has seen some
452 + positive discussions.
453 +
454 + Waiting for a further polished reroll ($gmane/265534).
455 +
456 +
457 +* mh/numparse (2015-03-19) 14 commits
458 + . diff_opt_parse(): use convert_i() when handling --abbrev=<num>
459 + . diff_opt_parse(): use convert_i() when handling "-l<num>"
460 + . opt_arg(): simplify pointer handling
461 + . opt_arg(): report errors parsing option values
462 + . opt_arg(): use convert_i() in implementation
463 + . opt_arg(): val is always non-NULL
464 + . builtin_diff(): detect errors when parsing --unified argument
465 + . handle_revision_opt(): use convert_ui() when handling "--abbrev="
466 + . strtoul_ui(), strtol_i(): remove functions
467 + . handle_revision_opt(): use convert_i() when handling "-<digit>"
468 + . handle_revision_opt(): use skip_prefix() in many places
469 + . write_subdirectory(): use convert_ui() for parsing mode
470 + . cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
471 + . numparse: new module for parsing integral numbers
472 +
473 + Many codepaths use unchecked use of strtol() and friends (or even
474 + worse, atoi()). Introduce a set of wrappers that try to be more
475 + careful.
476 +
477 + Expecting a reroll.
478 + ($gmane/268058).
479 +
480 +
481 +* kk/log-merges-config (2015-04-21) 5 commits
482 + - bash-completion: add support for git-log --merges= and log.merges
483 + - t4202-log: add tests for --merges=
484 + - Documentation: add git-log --merges= option and log.merges config. var
485 + - log: honor log.merges= option
486 + - revision: add --merges={show|only|hide} option
487 +
488 + "git log" (but not other commands in the "log" family) learned to
489 + pay attention to the log.merges configuration variable that can be
490 + set to "show" (the normal behaviour), "only" (hide non-merge
491 + commits), or "hide" (hide merge commits). --merges=(show|only|hide)
492 + can be used to override the setting from the command line.
493 +
494 + The documentation may need to be updated once more ($gmane/267250).
495 + Waiting for a reroll.
496 +
497 +
498 +* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
499 + - t/lib-git-svn: check same httpd module dirs as lib-httpd
500 + - t/lib-httpd: load mod_unixd
501 +
502 + This is the first two commits in a three-patch series $gmane/266962
503 +
504 + Expecting a reroll.
505 + with updated log message ($gmane/268061).
506 +
507 +
508 * bw/portability-solaris (2015-07-20) 3 commits
509 - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
510 - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
511 - tests: modify tr expressions so that xpg4/tr handles it on Solaris
512
486 - Needs another reroll? ($gmane/274296)
513 + Needs another reroll?
514 + ($gmane/274296)
515
516
517 * jc/clone-bundle (2015-04-30) 1 commit
@@ -493,17 +521,6 @@ of the repositories listed at
521 Still an early WIP.
522
523
496 -* jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
497 - - strbuf_read(): skip unnecessary strbuf_grow() at eof
498 -
499 - Avoid one extra iteration and strbuf_grow() of 8kB in
500 - strbuf_read().
501 -
502 - Looked reasonable; perhaps a log message clarification is needed.
503 -
504 - Expecting a reroll.
505 -
506 -
524 * mg/index-read-error-messages (2015-06-01) 2 commits
525 - messages: uniform error messages for index write
526 - show-index: uniform error messages for index read
@@ -521,7 +538,8 @@ of the repositories listed at
538 The gitmodules API accessed from the C code learned to cache stuff
539 lazily.
540
524 - Needs another reroll? ($gmane/273743).
541 + Needs another reroll?
542 + ($gmane/273743)
543
544
545 * jk/log-missing-default-HEAD (2015-06-03) 1 commit
@@ -565,36 +583,11 @@ of the repositories listed at
583 ($gmane/272180).
584
585
568 -* mh/tempfile (2015-06-10) 14 commits
569 - - credential-cache--daemon: use tempfile module
570 - - credential-cache--daemon: delete socket from main()
571 - - gc: use tempfile module to handle gc.pid file
572 - - lock_repo_for_gc(): compute the path to "gc.pid" only once
573 - - diff: use tempfile module
574 - - setup_temporary_shallow(): use tempfile module
575 - - write_shared_index(): use tempfile module
576 - - register_tempfile(): new function to handle an existing temporary file
577 - - tempfile: add several functions for creating temporary files
578 - - register_tempfile_object(): new function, extracted from create_tempfile()
579 - - commit_lock_file(): use get_locked_file_path()
580 - - lockfile: remove some redundant functions
581 - - tempfile: a new module for handling temporary files
582 - - Move lockfile API documentation to lockfile.h
583 -
584 - Rebuild "lockfile" API on top of a new "tempfile" API.
585 - This needs rerolling, to include "tempfile.h" in "lockfile.h", at
586 - least.
587 -
588 - Expecting a reroll.
589 - ($gmane/271353)
590 -
591 -
586 * ad/bisect-terms (2015-08-03) 4 commits
587 - bisect: allow setting any user-specified in 'git bisect start'
588 - bisect: add 'git bisect terms' to view the current terms
589 - bisect: add the terms old/new
590 - bisect: sanity check on terms
597 - (this branch uses ad/bisect-cleanup.)
591
592 The use of 'good/bad' in "git bisect" made it confusing to use when
593 hunting for a state change that is not a regression (e.g. bugfix).
@@ -620,102 +613,7 @@ of the repositories listed at
613 have a place to store the updated notes tree, iow, a ref).
614
615 Needs update to docs.
623 -
624 -
625 -* sg/config-name-only (2015-05-28) 3 commits
626 - - completion: use new 'git config' options to reliably list variable names
627 - - SQUASH
628 - - config: add options to list only variable names
629 -
630 - "git config --list" output was hard to parse when values consist of
631 - multiple lines. Introduce a way to show only the keys.
632 -
633 - Adding a single --name-only option may be a better way to go than
634 - adding two new options.
635 -
636 - Expecting a reroll.
637 -
638 -
639 -* kk/log-merges-config (2015-04-21) 5 commits
640 - - bash-completion: add support for git-log --merges= and log.merges
641 - - t4202-log: add tests for --merges=
642 - - Documentation: add git-log --merges= option and log.merges config. var
643 - - log: honor log.merges= option
644 - - revision: add --merges={show|only|hide} option
645 -
646 - "git log" (but not other commands in the "log" family) learned to
647 - pay attention to the log.merges configuration variable that can be
648 - set to "show" (the normal behaviour), "only" (hide non-merge
649 - commits), or "hide" (hide merge commits). --merges=(show|only|hide)
650 - can be used to override the setting from the command line.
651 -
652 - The documentation may need to be updated once more ($gmane/267250).
653 - Waiting for a reroll.
654 -
655 -
656 -* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
657 - - t/lib-git-svn: check same httpd module dirs as lib-httpd
658 - - t/lib-httpd: load mod_unixd
659 -
660 - This is the first two commits in a three-patch series $gmane/266962
661 - Will be rerolled.
662 - with updated log message ($gmane/268061).
663 -
664 -
665 -* mh/numparse (2015-03-19) 14 commits
666 - . diff_opt_parse(): use convert_i() when handling --abbrev=<num>
667 - . diff_opt_parse(): use convert_i() when handling "-l<num>"
668 - . opt_arg(): simplify pointer handling
669 - . opt_arg(): report errors parsing option values
670 - . opt_arg(): use convert_i() in implementation
671 - . opt_arg(): val is always non-NULL
672 - . builtin_diff(): detect errors when parsing --unified argument
673 - . handle_revision_opt(): use convert_ui() when handling "--abbrev="
674 - . strtoul_ui(), strtol_i(): remove functions
675 - . handle_revision_opt(): use convert_i() when handling "-<digit>"
676 - . handle_revision_opt(): use skip_prefix() in many places
677 - . write_subdirectory(): use convert_ui() for parsing mode
678 - . cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
679 - . numparse: new module for parsing integral numbers
680 -
681 - Many codepaths use unchecked use of strtol() and friends (or even
682 - worse, atoi()). Introduce a set of wrappers that try to be more
683 - careful.
684 -
685 - Expecting a reroll.
686 - ($gmane/268058).
687 -
688 -
689 -* nd/list-files (2015-02-09) 21 commits
690 - - t3080: tests for git-list-files
691 - - list-files: -M aka diff-cached
692 - - list-files -F: show submodules with the new indicator '&'
693 - - list-files: add -F/--classify
694 - - list-files: show directories as well as files
695 - - list-files: do not show duplicate cached entries
696 - - list-files: sort output and remove duplicates
697 - - list-files: add -t back
698 - - list-files: add -1 short for --no-column
699 - - list-files: add -R/--recursive short for --max-depth=-1
700 - - list-files: -u does not imply showing stages
701 - - list-files: make alias 'ls' default to 'list-files'
702 - - list-files: a user friendly version of ls-files and more
703 - - ls-files: support --max-depth
704 - - ls-files: add --column
705 - - ls-files: add --color to highlight file names
706 - - ls-files: buffer full item in strbuf before printing
707 - - ls_colors.c: highlight submodules like directories
708 - - ls_colors.c: add a function to color a file name
709 - - ls_colors.c: parse color.ls.* from config file
710 - - ls_colors.c: add $LS_COLORS parsing code
711 -
712 - A new "git list-files" Porcelain command, "ls-files" with bells and
713 - whistles.
714 -
715 - Reroll to base on wt-status work ($gmane/265142) has seen some
716 - positive discussions.
717 -
718 - Waiting for a further polished reroll ($gmane/265534).
616 + ($gmane/273928)
617
618
619 * jc/diff-b-m (2015-02-23) 5 commits
@@ -734,9 +632,9 @@ of the repositories listed at
632
633
634 * pw/remote-set-url-fetch (2014-11-26) 1 commit
737 - - remote: add --fetch and --both options to set-url
635 + . remote: add --fetch and --both options to set-url
636
739 - Expecting a reroll.
637 + Ejected.
638
639
640 * tr/remerge-diff (2014-11-10) 9 commits
@@ -781,70 +679,104 @@ of the repositories listed at
679 --------------------------------------------------
680 [Cooking]
681
784 -* dt/reflog-tests (2015-07-28) 2 commits
785 - (merged to 'next' on 2015-08-03 at 9d2fa1a)
786 - + tests: remove some direct access to .git/logs
787 - + t/t7509: remove unnecessary manipulation of reflog
682 +* sg/config-name-only (2015-08-10) 2 commits
683 + (merged to 'next' on 2015-08-12 at c658fe4)
684 + + completion: list variable names reliably with 'git config --name-only'
685 + + config: add '--name-only' option to list only variable names
686
789 - Tests that assume how reflogs are represented on the filesystem too
790 - much have been corrected.
687 + "git config --list" output was hard to parse when values consist of
688 + multiple lines. "--name-only" option is added to help this.
689
690 Will merge to 'master'.
691
692
795 -* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
796 - (merged to 'next' on 2015-08-03 at 5b0d620)
797 - + unpack-trees: populate cache-tree on successful merge
693 +* mh/tempfile (2015-08-12) 16 commits
694 + (merged to 'next' on 2015-08-12 at 80efcb7)
695 + + credential-cache--daemon: use tempfile module
696 + + credential-cache--daemon: delete socket from main()
697 + + gc: use tempfile module to handle gc.pid file
698 + + lock_repo_for_gc(): compute the path to "gc.pid" only once
699 + + diff: use tempfile module
700 + + setup_temporary_shallow(): use tempfile module
701 + + write_shared_index(): use tempfile module
702 + + register_tempfile(): new function to handle an existing temporary file
703 + + tempfile: add several functions for creating temporary files
704 + + prepare_tempfile_object(): new function, extracted from create_tempfile()
705 + + tempfile: a new module for handling temporary files
706 + + commit_lock_file(): use get_locked_file_path()
707 + + lockfile: add accessor get_lock_file_path()
708 + + lockfile: add accessors get_lock_file_fd() and get_lock_file_fp()
709 + + create_bundle(): duplicate file descriptor to avoid closing it twice
710 + + lockfile: move documentation to lockfile.h and lockfile.c
711 +
712 + The "lockfile" API has been rebuilt on top of a new "tempfile" API.
713
799 - The code to perform multi-tree merges has been taught to repopulate
800 - the cache-tree upon a successful merge into the index, so that
801 - subsequent "diff-index --cached" (hence "status") and "write-tree"
802 - (hence "commit") will go faster.
714 + Will merge to 'master'.
715
804 - The same logic in "git checkout" may now be removed, but that is a
805 - separate issue.
716 +
717 +* jh/strbuf-read-use-read-in-full (2015-08-10) 1 commit
718 + (merged to 'next' on 2015-08-12 at db16247)
719 + + strbuf_read(): skip unnecessary strbuf_grow() at eof
720 +
721 + strbuf_read() used to have one extra iteration (and an unnecessary
722 + strbuf_grow() of 8kB), which was eliminated.
723 +
724 + Will merge to 'master'.
725 +
726 +
727 +* sb/check-return-from-read-ref (2015-08-03) 1 commit
728 + (merged to 'next' on 2015-08-12 at 4a1c801)
729 + + transport-helper: die on errors reading refs.
730
731 Will merge to 'master'.
732
733
810 -* jk/negative-hiderefs (2015-07-28) 2 commits
811 - - refs: support negative transfer.hideRefs
812 - - docs/config.txt: reorder hideRefs config
734 +* jk/negative-hiderefs (2015-08-07) 2 commits
735 + (merged to 'next' on 2015-08-12 at bdc478d)
736 + + refs: support negative transfer.hideRefs
737 + + docs/config.txt: reorder hideRefs config
738
814 - Allow negative !ref entry in multi-value transfer.hideRefs
815 - configuration to say "don't hide this one".
739 + A negative !ref entry in multi-value transfer.hideRefs
740 + configuration can be used to say "don't hide this one".
741
817 - An update to test coming?
742 + Will merge to 'master'.
743
744
745 * mh/get-remote-group-fix (2015-07-28) 4 commits
821 - - get_remote_group(): use skip_prefix()
822 - - get_remote_group(): eliminate superfluous call to strcspn()
823 - - get_remote_group(): rename local variable "space" to "wordlen"
824 - - get_remote_group(): handle remotes with single-character names
746 + (merged to 'next' on 2015-08-12 at b77820e)
747 + + get_remote_group(): use skip_prefix()
748 + + get_remote_group(): eliminate superfluous call to strcspn()
749 + + get_remote_group(): rename local variable "space" to "wordlen"
750 + + get_remote_group(): handle remotes with single-character names
751
752 An off-by-one error made "git remote" to mishandle a remote with a
753 single letter nickname.
754
829 - Will merge to 'next'.
755 + Will merge to 'master'.
756
757
758 * ta/docfix-index-format-tech (2015-07-28) 1 commit
833 - - typofix for index-format.txt
759 + (merged to 'next' on 2015-08-12 at 662d88a)
760 + + typofix for index-format.txt
761
835 - Will merge to 'next'.
762 + Will merge to 'master'.
763
764
838 -* dt/notes-multiple (2015-08-03) 2 commits
839 - - notes: handle multiple worktrees
840 - - worktrees: add find_shared_symref
841 - (this branch uses es/worktree-add and es/worktree-add-cleanup.)
765 +* dt/notes-multiple (2015-08-11) 2 commits
766 + (merged to 'next' on 2015-08-12 at 0052055)
767 + + notes: handle multiple worktrees
768 + + worktrees: add find_shared_symref
769
843 - Forbid simultaneous "notes merge" to happen for the same ref in
844 - refs/notes/* when linked worktree is used.
770 + When linked worktree is used, simultaneous "notes merge" instances
771 + for the same ref in refs/notes/* are prevented from stomping on
772 + each other.
773 +
774 + Will merge to 'master'.
775
776
847 -* dt/refs-pseudo (2015-07-31) 5 commits
777 +* dt/refs-pseudo (2015-08-11) 6 commits
778 + (merged to 'next' on 2015-08-12 at 7078eb6)
779 + + pseudoref: check return values from read_ref()
780 (merged to 'next' on 2015-08-03 at 3eafd33)
781 + sequencer: replace write_cherry_pick_head with update_ref
782 + bisect: use update_ref
@@ -861,97 +793,22 @@ of the repositories listed at
793
794
795 * dt/untracked-sparse (2015-07-31) 1 commit
864 - - untracked-cache: support sparse checkout
796 + (merged to 'next' on 2015-08-12 at 234434d)
797 + + untracked-cache: support sparse checkout
798 + (this branch is used by dt/untracked-subdir.)
799
800 Allow untracked cache (experimental) to be used when sparse
801 checkout (experimental) is also in use.
802
869 -
870 -* pt/am-builtin-fix (2015-07-28) 1 commit
871 - - am: let command-line options override saved options
872 - (this branch uses pt/am-builtin.)
873 -
874 - With "git am --options" followed by "git am --other-options", the
875 - options given in a later invocation should override the initial
876 - options for a single invocation, but the rewritten "git am" didn't.
877 -
878 - Will merge into pt/am-builtin topic.
879 -
880 - Expecting a reroll.
881 -
882 -
883 -* sb/parse-options-codeformat (2015-07-29) 1 commit
884 - (merged to 'next' on 2015-08-03 at f81993b)
885 - + parse-options: align curly braces for all options
886 -
887 - Will merge to 'master'.
888 -
889 -
890 -* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
891 - (merged to 'next' on 2015-08-03 at f5e568e)
892 - + add: remove dead code
893 -
803 Will merge to 'master'.
804
805
806 * kd/pull-rebase-autostash (2015-07-22) 1 commit
898 - - pull: allow dirty tree when rebase.autostash enabled
899 -
900 - Teach "git pull --rebase" to pay attention to rebase.autostash
901 - configuration.
902 -
903 - Will merge to 'next'.
807 + (merged to 'next' on 2015-08-12 at de88e8e)
808 + + pull: allow dirty tree when rebase.autostash enabled
809
905 -
906 -* es/worktree-add (2015-07-20) 5 commits
907 - (merged to 'next' on 2015-08-03 at 9771a44)
908 - + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
909 - + Documentation/git-worktree: wordsmith worktree-related manpages
910 - + Documentation/config: fix stale "git prune --worktree" reference
911 - + Documentation/git-worktree: fix incorrect reference to file "locked"
912 - + Documentation/git-worktree: consistently use term "linked working tree"
913 - (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
914 -
915 - Originally merged to 'next' on 2015-07-20
916 -
917 - Remove remaining cruft from "git checkout --to", which
918 - transitioned to "git worktree add".
919 -
920 - Will merge to 'master'.
921 -
922 -
923 -* es/worktree-add-cleanup (2015-07-28) 24 commits
924 - - Documentation/config: mention "now" and "never" for 'expire' settings
925 - - Documentation/git-worktree: fix broken 'linkgit' invocation
926 - - checkout: drop intimate knowledge of newly created worktree
927 - - worktree: populate via "git reset --hard" rather than "git checkout"
928 - - worktree: avoid resolving HEAD unnecessarily
929 - - worktree: make setup of new HEAD distinct from worktree population
930 - - worktree: detect branch-name/detached and error conditions locally
931 - - worktree: add_worktree: construct worktree-population command locally
932 - - worktree: elucidate environment variables intended for child processes
933 - - worktree: make branch creation distinct from worktree population
934 - - worktree: add: suppress auto-vivication with --detach and no <branch>
935 - - worktree: make --detach mutually exclusive with -b/-B
936 - - worktree: introduce options container
937 - - worktree: simplify new branch (-b/-B) option checking
938 - - worktree: improve worktree setup message
939 - - branch: publish die_if_checked_out()
940 - - checkout: teach check_linked_checkout() about symbolic link HEAD
941 - - checkout: check_linked_checkout: simplify symref parsing
942 - - checkout: check_linked_checkout: improve "already checked out" aesthetic
943 - - checkout: generalize die_if_checked_out() branch name argument
944 - - checkout: die_if_checked_out: simplify strbuf management
945 - - checkout: improve die_if_checked_out() robustness
946 - - checkout: name check_linked_checkouts() more meaningfully
947 - - checkout: avoid resolving HEAD unnecessarily
948 - (this branch is used by dt/notes-multiple; uses es/worktree-add.)
949 -
950 - Originally merged to 'next' on 2015-07-29
951 -
952 - Remove the "new-worktree-mode" hack in "checkout" that was added in
953 - nd/multiple-work-trees topic by updating the implementation of new
954 - "worktree add".
810 + "git pull --rebase" has been taught to pay attention to
811 + rebase.autostash configuration.
812
813 Will merge to 'master'.
814
@@ -978,79 +835,6 @@ of the repositories listed at
835 series or two.
836
837
981 -* pt/am-builtin (2015-07-20) 46 commits
982 - - builtin-am: remove redirection to git-am.sh
983 - - builtin-am: check for valid committer ident
984 - - builtin-am: implement legacy -b/--binary option
985 - - builtin-am: implement -i/--interactive
986 - - builtin-am: support and auto-detect mercurial patches
987 - - builtin-am: support and auto-detect StGit series files
988 - - builtin-am: support and auto-detect StGit patches
989 - - builtin-am: rerere support
990 - - builtin-am: invoke post-applypatch hook
991 - - builtin-am: invoke pre-applypatch hook
992 - - builtin-am: invoke applypatch-msg hook
993 - - builtin-am: support automatic notes copying
994 - - builtin-am: invoke post-rewrite hook
995 - - builtin-am: implement -S/--gpg-sign, commit.gpgsign
996 - - builtin-am: implement --committer-date-is-author-date
997 - - builtin-am: implement --ignore-date
998 - - builtin-am: pass git-apply's options to git-apply
999 - - builtin-am: implement --[no-]scissors
1000 - - builtin-am: support --keep-cr, am.keepcr
1001 - - builtin-am: implement --[no-]message-id, am.messageid
1002 - - builtin-am: implement -k/--keep, --keep-non-patch
1003 - - builtin-am: implement -u/--utf8
1004 - - builtin-am: handle stray state directory
1005 - - builtin-am: bypass git-mailinfo when --rebasing
1006 - - builtin-am: implement --rebasing mode
1007 - - builtin-am: implement --3way, am.threeWay
1008 - - cache-tree: introduce write_index_as_tree()
1009 - - builtin-am: implement -s/--signoff
1010 - - builtin-am: exit with user friendly message on failure
1011 - - builtin-am: implement -q/--quiet
1012 - - builtin-am: reject patches when there's a session in progress
1013 - - builtin-am: implement --abort
1014 - - builtin-am: implement --skip
1015 - - builtin-am: don't parse mail when resuming
1016 - - builtin-am: implement --resolved/--continue
1017 - - builtin-am: refuse to apply patches if index is dirty
1018 - - builtin-am: implement committing applied patch
1019 - - builtin-am: apply patch with git-apply
1020 - - builtin-am: extract patch and commit info with git-mailinfo
1021 - - builtin-am: auto-detect mbox patches
1022 - - builtin-am: split out mbox/maildir patches with git-mailsplit
1023 - - builtin-am: implement patch queue mechanism
1024 - - builtin-am: implement skeletal builtin am
1025 - - wrapper: implement xfopen()
1026 - - wrapper: implement xopen()
1027 - - Merge branch 'pt/pull-builtin' into pt/am-builtin
1028 - (this branch is used by pt/am-builtin-fix.)
1029 -
1030 - Originally merged to 'next' on 2015-07-23
1031 -
1032 - Rewrite "am" in "C".
1033 -
1034 - Almost there.
1035 -
1036 -
1037 -* ad/bisect-cleanup (2015-08-03) 6 commits
1038 - (merged to 'next' on 2015-08-03 at 13b9314)
1039 - + bisect: don't mix option parsing and non-trivial code
1040 - + bisect: simplify the addition of new bisect terms
1041 - + bisect: replace hardcoded "bad|good" by variables
1042 - + Documentation/bisect: revise overall content
1043 - + Documentation/bisect: move getting help section to the end
1044 - + bisect: correction of typo
1045 - (this branch is used by ad/bisect-terms)
1046 -
1047 - Originally merged to 'next' on 2015-07-09
1048 -
1049 - Code and documentation clean-up to "git bisect".
1050 -
1051 - Will merge to 'master'.
1052 -
1053 -
838 * jc/rerere (2015-07-30) 21 commits
839 - rerere: un-nest merge() further
840 - rerere: use "struct rerere_id" instead of "char *" for conflict ID
@@ -1148,33 +932,3 @@ of the repositories listed at
932
933 Does not quite fix ($gmane/267614).
934 Will discard.
1151 -
1152 -
1153 -* mm/for-each-ref-fixup (2015-08-03) 11 commits
1154 - (merged to 'next' on 2015-08-03 at d9e94b9)
1155 - + for-each-ref: add '--contains' option
1156 - + ref-filter: implement '--contains' option
1157 - + parse-options.h: add macros for '--contains' option
1158 - + parse-option: rename parse_opt_with_commit()
1159 - + for-each-ref: add '--merged' and '--no-merged' options
1160 - + ref-filter: implement '--merged' and '--no-merged' options
1161 - + ref-filter: add parse_opt_merge_filter()
1162 - + for-each-ref: add '--points-at' option
1163 - + ref-filter: implement '--points-at' option
1164 - + tag: libify parse_opt_points_at()
1165 - + t6302: for-each-ref tests for ref-filter APIs
1166 -
1167 - Drop; has been squashed.
1168 -
1169 -
1170 -
1171 -* rj/bisect-terms-fixup (2015-08-03) 4 commits
1172 - - bisect: allow setting any user-specified in 'git bisect start'
1173 - - bisect: add 'git bisect terms' to view the current terms
1174 - - bisect: add the terms old/new
1175 - - bisect: sanity check on terms
1176 - (this branch uses ad/bisect-cleanup.)
1177 -
1178 - Will squash into ad/bisect-cleanup.
1179 -
1180 -