1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Apr 2013, #09; Fri, 26)
4 X-master-at: b75cdfaa882a00f2274e74b21c1a9927d184ed29
5 X-next-at: b1478c83563fcc2b22771ab08fa759a3972c365d
7 What's cooking in git.git (Apr 2013, #09; Fri, 26)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 The release candidate preview 1.8.3-rc0 has been tagged. I'd like to
15 see people focus on catching and fixing last minute regressions and
16 incompleteness in the topics that have already in 'master' for the
17 upcoming release. New topics that are not relevant for the goal to
18 release a regression-free and complete 1.8.3 may not be queued even
19 on 'pu' until final to reduce hassles on integration testing (I do
20 not mean that it is forbidden to work on and discussing new topics
21 on the list. It is just the patches won't be considered as formal
22 submission and they won't hit 'pu').
24 As to the topics still cooking on 'next', I unfortunately do not see
25 anything that I feel comfortable merging for 1.8.3; but I am open to
28 You can find the changes described here in the integration branches
29 of the repositories listed at
31 http://git-blame.blogspot.com/p/git-public-repositories.html
33 --------------------------------------------------
34 [Graduated to "master"]
36 * fc/remote-hg (2013-04-22) 16 commits
37 (merged to 'next' on 2013-04-25 at 152cb06)
38 + remote-hg: strip extra newline
39 + remote-hg: use marks instead of inlined files
40 + remote-hg: small performance improvement
41 + remote-hg: allow refs with spaces
42 + remote-hg: don't update bookmarks unnecessarily
43 + remote-hg: add support for schemes extension
44 + remote-hg: improve email sanitation
45 + remote-hg: add custom local tag write code
46 + remote-hg: write tags in the appropriate branch
47 + remote-hg: custom method to write tags
48 + remote-hg: add support for tag objects
49 + remote-hg: add branch_tip() helper
50 + remote-hg: properly mark branches up-to-date
51 + remote-hg: use python urlparse
52 + remote-hg: safer bookmark pushing
53 + remote-helpers: avoid has_key
55 Further updates to remote-hg (in contrib/).
58 * jc/add-ignore-removal (2013-04-22) 2 commits
59 (merged to 'next' on 2013-04-24 at c85c5a7)
60 + git add: rephrase -A/--no-all warning
61 + git add: --ignore-removal is a better named --no-all
62 (this branch is used by jc/add-2.0-ignore-removal.)
64 Introduce "--ignore-removal" as a synonym to "--no-all" for "git
65 add", and improve the 2.0 migration warning with it.
68 * jk/remote-helper-with-signed-tags (2013-04-15) 3 commits
69 (merged to 'next' on 2013-04-21 at 0231d45)
70 + transport-helper: add 'signed-tags' capability
71 + transport-helper: pass --signed-tags=warn-strip to fast-export
72 + fast-export: add --signed-tags=warn-strip mode
74 Allows remote-helpers to declare they can handle signed tags, and
75 issue a warning when using those that don't.
78 * jn/glossary-revision (2013-04-21) 1 commit
79 (merged to 'next' on 2013-04-24 at 70efbe7)
80 + glossary: a revision is just a commit
82 The wording for "revision" in the glossary wanted to say it refers
83 to "commit (noun) as a concept" but it was badly phrased.
85 This may need further updates to hint that in contexts where it is
86 clear, the word may refer to an object name, not necessarily a
87 commit. But the patch as-is is already an improvement.
90 * ph/rebase-original (2013-04-23) 1 commit
91 (merged to 'next' on 2013-04-24 at c643dcd)
92 + rebase: find orig_head unambiguously
95 * rr/shortlog-doc (2013-04-22) 8 commits
96 (merged to 'next' on 2013-04-25 at a95a3fc)
97 + builtin/shortlog.c: make usage string consistent with log
98 + builtin/log.c: make usage string consistent with doc
99 + git-shortlog.txt: make SYNOPSIS match log, update OPTIONS
100 + git-log.txt: rewrite note on why "--" may be required
101 + git-log.txt: generalize <since>..<until>
102 + git-log.txt: order OPTIONS properly; move <since>..<until>
103 + revisions.txt: clarify the .. and ... syntax
104 + git-shortlog.txt: remove (-h|--help) from OPTIONS
106 Update documentation for "log" and "shortlog".
109 * th/bisect-skipped-log (2013-04-23) 1 commit
110 (merged to 'next' on 2013-04-25 at 1de189b)
111 + bisect: Log possibly bad, skipped commits at bisection end
113 --------------------------------------------------
116 * kb/full-history-compute-treesame-carefully (2013-04-24) 2 commits
117 - t6012: update test for tweaked full-history traversal
118 - Make --full-history consider more merges
121 * tr/remote-tighten-commandline-parsing (2013-04-24) 3 commits
122 - remote: 'show' and 'prune' can take more than one remote
123 - remote: check for superfluous arguments in 'git remote add'
124 - remote: add a test for extra arguments, according to docs
126 Will merge to 'next'.
129 * zk/prompt-rebase-step (2013-04-25) 1 commit
130 (merged to 'next' on 2013-04-25 at a8264bf)
131 + bash-prompt.sh: show where rebase is at when stopped
134 * rr/pp-user-info-without-extra-allocation (2013-04-25) 3 commits
135 - pretty: remove intermediate strbufs from pp_user_info()
136 - pretty: simplify output line length calculation in pp_user_info()
137 - pretty: simplify input line length calculation in pp_user_info()
139 Will merge to 'next'.
141 --------------------------------------------------
144 * jc/format-patch (2013-04-22) 2 commits
145 - format-patch: --inline-single
146 - format-patch: rename "no_inline" field
148 A new option to send a single patch to the standard output to be
149 appended at the bottom of a message. I personally have no need for
150 this, but it was easy enough to cobble together. Tests, docs and
151 stripping out more MIMEy stuff are left as exercises to interested
154 Not ready for inclusion.
157 * jk/gitweb-utf8 (2013-04-08) 4 commits
158 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
159 - gitweb: Don't append ';js=(0|1)' to external links
160 - gitweb: Make feed title valid utf8
161 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
163 Various fixes to gitweb.
165 Waiting for a reroll after a review.
168 * jk/commit-info-slab (2013-04-19) 3 commits
169 - commit-slab: introduce a macro to define a slab for new type
170 - commit-slab: avoid large realloc
171 - commit: allow associating auxiliary info on-demand
172 (this branch is used by jc/show-branch.)
174 Technology demonstration to show a way we could use unbound number
175 of flag bits on commit objects.
178 * jn/config-ignore-inaccessible (2013-04-15) 1 commit
179 - config: allow inaccessible configuration under $HOME
181 When $HOME is misconfigured to point at an unreadable directory, we
182 used to complain and die. This loosens the check.
184 I do not think we agreed that this is a good idea, though.
186 --------------------------------------------------
189 * jh/checkout-auto-tracking (2013-04-21) 8 commits
190 (merged to 'next' on 2013-04-22 at 2356700)
191 + glossary: Update and rephrase the definition of a remote-tracking branch
192 + branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
193 + t9114.2: Don't use --track option against "svn-remote"-tracking branches
194 + t7201.24: Add refspec to keep --track working
195 + t3200.39: tracking setup should fail if there is no matching refspec.
196 + checkout: Use remote refspecs when DWIMming tracking branches
197 + t2024: Show failure to use refspec when DWIMming remote branch names
198 + t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
200 Updates "git checkout foo" that DWIMs the intended "upstream" and
201 turns it into "git checkout -t -b foo remotes/origin/foo" to
202 correctly take existing remote definitions into account. The
203 remote "origin" may be what uniquely map its own branch to
204 remotes/some/where/foo but that some/where may not be "origin".
209 * mg/more-textconv (2013-04-23) 7 commits
210 - git grep: honor textconv by default
211 - grep: honor --textconv for the case rev:path
212 - grep: allow to use textconv filters
213 - t7008: demonstrate behavior of grep with textconv
214 - cat-file: do not die on --textconv without textconv filters
215 - show: honor --textconv for blobs
216 - t4030: demonstrate behavior of show with textconv
218 Rerolled. I am not sure if I like "show <blob>" and "grep" that use
219 textconv by default, though.
222 * mh/multimail (2013-04-21) 1 commit
223 - git-multimail: a replacement for post-receive-email
225 Waiting for comments.
228 * jc/prune-all (2013-04-25) 4 commits
229 (merged to 'next' on 2013-04-26 at 97a7387)
230 + prune: introduce OPT_EXPIRY_DATE() and use it
231 (merged to 'next' on 2013-04-22 at b00ccf6)
232 + api-parse-options.txt: document "no-" for non-boolean options
233 + git-gc.txt, git-reflog.txt: document new expiry options
234 + date.c: add parse_expiry_date()
235 (this branch is tangled with mh/packed-refs-various.)
237 We used the approxidate() parser for "--expire=<timestamp>" options
238 of various commands, but it is better to treat --expire=all and
239 --expire=now a bit more specially than using the current timestamp.
240 Update "git gc" and "git reflog" with a new parsing function for
246 * as/check-ignore (2013-04-11) 5 commits
247 (merged to 'next' on 2013-04-21 at 7515aa8)
248 + Documentation: add caveats about I/O buffering for check-{attr,ignore}
249 + check-ignore: allow incremental streaming of queries via --stdin
250 + check-ignore: move setup into cmd_check_ignore()
251 + check-ignore: add -n / --non-matching option
252 + t0008: remove duplicated test fixture data
254 Enhance "check-ignore" (1.8.2 update) to work more like "check-attr"
257 Will wait for a follow-up.
260 The test in the second from the tip needs to be updated.
263 * mh/packed-refs-various (2013-04-24) 36 commits
264 - refs: handle the main ref_cache specially
265 - refs: change do_for_each_*() functions to take ref_cache arguments
266 - pack_one_ref(): do some cheap tests before a more expensive one
267 - pack_one_ref(): use write_packed_entry() to do the writing
268 - pack_one_ref(): use function peel_entry()
269 - refs: inline function do_not_prune()
270 - pack_refs(): change to use do_for_each_entry()
271 - refs: use same lock_file object for both ref-packing functions
272 - pack_one_ref(): rename "path" parameter to "refname"
273 - pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
274 - pack-refs: rename handle_one_ref() to pack_one_ref()
275 - refs: extract a function write_packed_entry()
276 - repack_without_ref(): write peeled refs in the rewritten file
277 - t3211: demonstrate loss of peeled refs if a packed ref is deleted
278 - refs: change how packed refs are deleted
279 - search_ref_dir(): return an index rather than a pointer
280 - repack_without_ref(): silence errors for dangling packed refs
281 - t3210: test for spurious error messages for dangling packed refs
282 - refs: change the internal reference-iteration API
283 - refs: extract a function peel_entry()
284 - peel_ref(): fix return value for non-peelable, not-current reference
285 - peel_object(): give more specific information in return value
286 - refs: extract function peel_object()
287 - refs: extract a function ref_resolves_to_object()
288 - repack_without_ref(): use function get_packed_ref()
289 - peel_ref(): use function get_packed_ref()
290 - get_packed_ref(): return a ref_entry
291 - do_for_each_ref_in_dirs(): remove dead code
292 - refs: define constant PEELED_LINE_LENGTH
293 - refs: document how current_ref is used
294 - refs: document do_for_each_ref() and do_one_ref()
295 - refs: document the fields of struct ref_value
296 - refs: document flags constants REF_*
297 (merged to 'next' on 2013-04-22 at b00ccf6)
298 + api-parse-options.txt: document "no-" for non-boolean options
299 + git-gc.txt, git-reflog.txt: document new expiry options
300 + date.c: add parse_expiry_date()
301 (this branch is tangled with jc/prune-all.)
303 Updates reading and updating packed-refs file, correcting corner
307 * fc/transport-helper-error-reporting (2013-04-25) 10 commits
308 (merged to 'next' on 2013-04-25 at 3358f1a)
309 + t5801: "VAR=VAL shell_func args" is forbidden
310 (merged to 'next' on 2013-04-22 at 5ba6467)
311 + transport-helper: update remote helper namespace
312 + transport-helper: trivial code shuffle
313 + transport-helper: warn when refspec is not used
314 + transport-helper: clarify pushing without refspecs
315 + transport-helper: update refspec documentation
316 + transport-helper: clarify *:* refspec
317 + transport-helper: improve push messages
318 + transport-helper: mention helper name when it dies
319 + transport-helper: report errors properly
321 Update transport helper to report errors and maintain ref hierarchy
322 used to keep track of remote helper state better.
324 J6t reports that the update to t5801 breaks on Windows by the
325 remote-testgit that is written in bash, and Windows port of bash
326 does not have process substitution so remote-testgit is unusable
330 * jk/submodule-subdirectory-ok (2013-04-24) 3 commits
331 (merged to 'next' on 2013-04-24 at 6306b29)
332 + submodule: fix quoting in relative_path()
333 (merged to 'next' on 2013-04-22 at f211e25)
334 + submodule: drop the top-level requirement
335 + rev-parse: add --prefix option
337 Allow various subcommands of "git submodule" to be run not from the
338 top of the working tree of the superproject.
343 * jl/submodule-mv (2013-04-23) 5 commits
344 (merged to 'next' on 2013-04-23 at c04f574)
345 + submodule.c: duplicate real_path's return value
346 (merged to 'next' on 2013-04-19 at 45ae3c9)
347 + rm: delete .gitmodules entry of submodules removed from the work tree
348 + Teach mv to update the path entry in .gitmodules for moved submodules
349 + Teach mv to move submodules using a gitfile
350 + Teach mv to move submodules together with their work trees
352 "git mv A B" when moving a submodule A does "the right thing",
353 inclusing relocating its working tree and adjusting the paths in
354 the .gitmodules file.
359 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
360 - git add: -u/-A now affects the entire working tree
362 Will cook in 'next' until Git 2.0.
365 * nd/magic-pathspecs (2013-03-31) 45 commits
366 . Rename field "raw" to "_raw" in struct pathspec
367 . pathspec: support :(glob) syntax
368 . pathspec: make --literal-pathspecs disable pathspec magic
369 . pathspec: support :(literal) syntax for noglob pathspec
370 . Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
371 . parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
372 . parse_pathspec: make sure the prefix part is wildcard-free
373 . tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
374 . Remove match_pathspec() in favor of match_pathspec_depth()
375 . Remove init_pathspec() in favor of parse_pathspec()
376 . Remove diff_tree_{setup,release}_paths
377 . Convert common_prefix() to use struct pathspec
378 . Convert add_files_to_cache to take struct pathspec
379 . Convert {read,fill}_directory to take struct pathspec
380 . Convert refresh_index to take struct pathspec
381 . Convert report_path_error to take struct pathspec
382 . checkout: convert read_tree_some to take struct pathspec
383 . Convert unmerge_cache to take struct pathspec
384 . Convert run_add_interactive to use struct pathspec
385 . Convert read_cache_preload() to take struct pathspec
386 . reset: convert to use parse_pathspec
387 . add: convert to use parse_pathspec
388 . check-ignore: convert to use parse_pathspec
389 . archive: convert to use parse_pathspec
390 . ls-files: convert to use parse_pathspec
391 . rm: convert to use parse_pathspec
392 . checkout: convert to use parse_pathspec
393 . rerere: convert to use parse_pathspec
394 . status: convert to use parse_pathspec
395 . commit: convert to use parse_pathspec
396 . clean: convert to use parse_pathspec
397 . Guard against new pathspec magic in pathspec matching code
398 . parse_pathspec: support prefixing original patterns
399 . parse_pathspec: support stripping/checking submodule paths
400 . parse_pathspec: support stripping submodule trailing slashes
401 . parse_pathspec: a special flag for max_depth feature
402 . Convert some get_pathspec() calls to parse_pathspec()
403 . parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
404 . parse_pathspec: save original pathspec for reporting
405 . Add parse_pathspec() that converts cmdline args to struct pathspec
406 . pathspec: add copy_pathspec
407 . pathspec: i18n-ize error strings in pathspec parsing code
408 . Move struct pathspec and related functions to pathspec.[ch]
409 . clean: remove unused variable "seen"
410 . setup.c: check that the pathspec magic ends with ")"
412 Migrate the rest of codebase to use "struct pathspec" more.
414 This has nasty conflicts with kb/status-ignored-optim-2,
415 as/check-ignore and tr/line-log; I've already asked Duy to hold
416 this and later rebase on top of them.
419 * tr/line-log (2013-04-22) 13 commits
420 (merged to 'next' on 2013-04-22 at 8f2c1de)
421 + git-log(1): remove --full-line-diff description
422 (merged to 'next' on 2013-04-21 at cd92620)
423 + line-log: fix documentation formatting
424 (merged to 'next' on 2013-04-15 at 504559e)
425 + log -L: improve comments in process_all_files()
426 + log -L: store the path instead of a diff_filespec
427 + log -L: test merge of parallel modify/rename
428 + t4211: pass -M to 'git log -M -L...' test
429 (merged to 'next' on 2013-04-05 at 5afb00c)
430 + log -L: fix overlapping input ranges
431 + log -L: check range set invariants when we look it up
432 (merged to 'next' on 2013-04-01 at 5be920c)
433 + Speed up log -L... -M
434 + log -L: :pattern:file syntax to find by funcname
435 + Implement line-history search (git log -L)
436 + Export rewrite_parents() for 'log -L'
442 * jc/push-2.0-default-to-simple (2013-04-03) 1 commit
443 - push: switch default from "matching" to "simple"
445 The early bits to adjust the tests have been merged to 'master'.
447 Will cook in 'next' until Git 2.0.
450 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
451 - git add <pathspec>... defaults to "-A"
453 Updated endgame for "git add <pathspec>" that defaults to "--all"
454 aka "--no-ignore-removal".
456 Will cook in 'next' until Git 2.0.