1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Aug 2013, #07; Wed, 28)
4 X-master-at: e230c568c4b9a991e3175e5f65171a566fd8e39c
5 X-next-at: 4ec6b414090cf91b9ca5200ee6921ae9a92582ff
7 What's cooking in git.git (Aug 2013, #07; Wed, 28)
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 tip of 'next' has been rewound. I ejected a handful of topics
15 that have been cooking there while rebuilding it, but it is not
16 because I found anything in them problematic, but merely because
17 they were young and I wanted to give their authors a chance to tweak
18 with a reroll instead of a set of follow-up patches. Unless I hear
19 otherwise in a few days, they will be merged back to 'next'.
21 By the way, the push that overrides the usual "must fast-forward"
22 was done using the "force-with-lease" option that has been cooking
26 $ anchor=$(git rev-parse --verify FETCH_HEAD)
27 $ for remote in ko repo gph github2
29 git push --force-with-lease=refs/heads/next:$anchor $remote next
32 I used to do this with just --force.
34 You can find the changes described here in the integration branches
35 of the repositories listed at
37 http://git-blame.blogspot.com/p/git-public-repositories.html
39 --------------------------------------------------
42 * cc/replace-with-the-same-type (2013-08-27) 5 commits
43 - Documentation/replace: add Creating Replacement Objects section
44 - t6050-replace: add test to clean up all the replace refs
45 - t6050-replace: test that objects are of the same type
46 - Documentation/replace: state that objects must be of the same type
47 - replace: forbid replacing an object with one of a different type
49 Using the replace mechanism to swap an object with another object
50 of a different type can introduce inconsistency (e.g. a tree
51 expects an object name to refer to a blob, but the blob object can
52 be mistakenly or maliciously replaced with an object with a
53 different type). Attempt to forbid such.
55 This may need to be given an escape hatch "--force", though.
58 * jx/clean-interactive (2013-08-28) 1 commit
59 - documentation: clarify notes for clean.requireForce
61 Finishing touches to update the document to adjust to a new option
62 "git clean" learned recently.
67 * mm/status-without-comment-char (2013-08-28) 3 commits
68 - SQUASH??? wt-status.c decl-after-stmt
69 - status: introduce status.displayCommentChar to disable display of #
70 - submodule: introduce --[no-]display-comment-char
72 Allow "git status" to omit the prefix to make its output a comment
73 in a commit log editor, which is not necessary for human
77 * xx/cleanup (2013-08-28) 1 commit
78 - builtin/stripspace.c: fix broken indentation
80 Will probably directly cherry-pick to 'maint' or 'master' and kill
83 --------------------------------------------------
86 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
87 - git-send-email: Cache generated message-ids, use them when prompting
88 - git-send-email: add optional 'choices' parameter to the ask sub
91 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
92 - ### DONTMERGE: needs better explanation on what config they need
93 - pack-refs.c: Add missing call to git_config()
94 - show-ref.c: Add missing call to git_config()
96 The changes themselves are probably good, but it is unclear what
97 basic setting needs to be read for which exact operation.
99 Waiting for clarification.
103 * jh/shorten-refname (2013-05-07) 4 commits
104 - t1514: refname shortening is done after dereferencing symbolic refs
105 - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
106 - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
107 - t1514: Add tests of shortening refnames in strict/loose mode
109 When remotes/origin/HEAD is not a symbolic ref, "rev-parse
110 --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
111 "origin/HEAD", which is fixed with this series (if it is a symbolic
112 ref that points at remotes/origin/something, then it should show
113 "origin/something" and it already does).
115 Expecting a reroll, as an early part of a larger series.
119 * jk/list-objects-sans-blobs (2013-06-06) 4 commits
120 . archive: ignore blob objects when checking reachability
121 . list-objects: optimize "revs->blob_objects = 0" case
122 . upload-archive: restrict remote objects with reachability check
123 . clear parsed flag when we free tree buffers
125 Attempt to allow "archive --remote=$there $arbitrary_sha1" while
126 keeping the reachability safety.
128 Seems to break some tests in a trivial and obvious way.
131 * mg/more-textconv (2013-05-10) 7 commits
132 - grep: honor --textconv for the case rev:path
133 - grep: allow to use textconv filters
134 - t7008: demonstrate behavior of grep with textconv
135 - cat-file: do not die on --textconv without textconv filters
136 - show: honor --textconv for blobs
137 - diff_opt: track whether flags have been set explicitly
138 - t4030: demonstrate behavior of show with textconv
140 Make "git grep" and "git show" pay attention to --textconv when
141 dealing with blob objects.
143 I thought this was pretty well designed and executed, but it seems
144 there are some doubts on the list; kicked back to 'pu'.
147 * jc/format-patch (2013-04-22) 2 commits
148 - format-patch: --inline-single
149 - format-patch: rename "no_inline" field
151 A new option to send a single patch to the standard output to be
152 appended at the bottom of a message. I personally have no need for
153 this, but it was easy enough to cobble together. Tests, docs and
154 stripping out more MIMEy stuff are left as exercises to interested
157 Not ready for inclusion.
159 Will discard unless we hear from anybody who is interested in
160 tying its loose ends.
163 * jk/gitweb-utf8 (2013-04-08) 4 commits
164 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
165 - gitweb: Don't append ';js=(0|1)' to external links
166 - gitweb: Make feed title valid utf8
167 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
169 Various fixes to gitweb.
171 Drew Northup volunteered to take a look into this.
175 * jc/show-branch (2013-06-07) 5 commits
176 - show-branch: use commit slab to represent bitflags of arbitrary width
177 - show-branch.c: remove "all_mask"
178 - show-branch.c: abstract out "flags" operation
179 - show-branch.c: lift all_mask/all_revs to a global static
180 - show-branch.c: update comment style
182 Waiting for the final step to lift the hard-limit before sending it out.
184 --------------------------------------------------
187 * js/xread-in-full (2013-08-20) 1 commit
188 - stream_to_pack: xread does not guarantee to read all requested bytes
190 Originally merged to 'next' on 2013-08-20
192 A call to xread() was used without a loop around to cope with short
193 read in the codepath to stream new contents to a pack.
195 Will merge to 'next'.
198 * sb/mailmap-freeing-NULL-is-ok (2013-08-20) 1 commit
199 - mailmap: remove redundant check for freeing memory
201 Originally merged to 'next' on 2013-08-20
203 Will merge to 'next'.
206 * tg/index-struct-sizes (2013-08-20) 1 commit
207 (merged to 'next' on 2013-08-28 at c815042)
208 + read-cache: use fixed width integer types
210 Originally merged to 'next' on 2013-08-22
212 The code that reads from a region that mmaps an on-disk index
213 assumed that "int"/"short" are always 32/16 bits.
215 Will merge to 'master' in the second batch.
218 * bc/completion-for-bash-3.0 (2013-08-22) 3 commits
219 (merged to 'next' on 2013-08-28 at fb87a84)
220 + contrib/git-prompt.sh: handle missing 'printf -v' more gracefully
221 + t9902-completion.sh: old Bash still does not support array+=('') notation
222 + git-completion.bash: use correct Bash/Zsh array length syntax
224 Originally merged to 'next' on 2013-08-22
226 Some people still use rather old versions of bash, which cannot
227 grok some constructs like 'printf -v varname' the prompt and
228 completion code started to use recently.
230 Will merge to 'master'.
233 * bc/submodule-status-ignored (2013-08-20) 2 commits
234 - submodule: don't print status output with ignore=all
235 - submodule: fix confusing variable name
237 Originally merged to 'next' on 2013-08-22
239 Will merge to 'next'.
242 * jk/config-int-range-check (2013-08-21) 2 commits
243 - teach git-config to output large integers
244 - config: properly range-check integer values
246 Originally merged to 'next' on 2013-08-22
248 "git config --int section.var 3g" should somehow diagnose that the
249 number does not fit in "int" (on 32-bit platforms anyway) but it
253 * jk/duplicate-objects-in-packs (2013-08-24) 6 commits
254 - default pack.indexDuplicates to false
255 - index-pack: optionally reject packs with duplicate objects
256 - test index-pack on packs with recoverable delta cycles
257 - add tests for indexing packs with delta cycles
258 - sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
259 - test-sha1: add a binary output mode
261 A packfile that stores the same object more than once is broken and
264 Will merge to 'next'.
267 * mm/mediawiki-dumb-push-fix (2013-08-21) 2 commits
268 - git-remote-mediawiki: add test and check Makefile targets
269 - git-remote-mediawiki: reset private ref after non-dumb push
271 Waiting for a reroll.
274 * rt/rebase-p-no-merge-summary (2013-08-21) 1 commit
275 - rebase --preserve-merges: ignore "merge.log" config
277 Originally merged to 'next' on 2013-08-22
279 "git rebase -p" internally used the merge machinery, but when
280 rebasing, there should not be a need for merge summary.
282 Will merge to 'next'.
285 * sp/clip-read-write-to-8mb (2013-08-20) 2 commits
286 (merged to 'next' on 2013-08-28 at c9840d7)
287 + Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
288 + xread, xwrite: limit size of IO to 8MB
290 Originally merged to 'next' on 2013-08-22
292 Send a large request to read(2)/write(2) as a smaller but still
293 reasonably large chunks, which would improve the latency when the
294 operation needs to be killed and incidentally works around broken
295 64-bit systems that cannot take a 2GB write or read in one go.
297 Will merge to 'master' in the second batch.
300 * sp/doc-smart-http (2013-08-21) 1 commit
301 (merged to 'next' on 2013-08-28 at 20a6877)
302 + Document the HTTP transport protocols
304 Originally merged to 'next' on 2013-08-22
306 Will merge to 'master'.
309 * dw/diff-no-index-doc (2013-08-28) 2 commits
310 - diff --no-index: describe in a separate paragraph
311 - diff --no-index: clarify operation when not inside a repository
313 When the user types "git diff" outside a working tree, thinking he
314 is inside one, the current error message that is a single-liner
315 "usage: git diff --no-index <path> <path>" may not be sufficient to
316 make him realize the mistake. Add "Not a git repository" to the
317 error message when we fell into the "--no-index" mode without an
318 explicit command line option to instruct us to do so.
321 * sb/repack-in-c (2013-08-22) 3 commits
322 - repack: rewrite the shell script in C (squashing proposal)
323 - repack: retain the return value of pack-objects
324 - repack: rewrite the shell script in C
327 * ap/commit-author-mailmap (2013-08-24) 1 commit
328 - commit: search author pattern against mailmap
330 "git commit --author=$name", when $name is not in the canonical
331 "A. U. Thor <au.thor@example.xz>" format, looks for a matching name
332 from existing history, but did not consult mailmap to grab the
333 preferred author name.
335 Will merge to 'next'.
338 * hv/config-from-blob (2013-08-26) 1 commit
339 (merged to 'next' on 2013-08-28 at 189c6c1)
340 + config: do not use C function names as struct members
344 Will merge to 'master', aiming to later apply to 1.8.4.x maintenance track.
347 * jk/mailmap-incomplete-line (2013-08-28) 1 commit
348 - mailmap: handle mailmap blobs without trailing newlines
350 Will merge to 'next' and later to 'master' and 'maint'.
353 * jk/write-broken-index-with-nul-sha1 (2013-08-26) 1 commit
354 - write_index: optionally allow broken null sha1s
356 Am I waiting for another reroll?
359 * kk/tests-with-no-perl (2013-08-24) 4 commits
360 - reset test: modernize style
361 - t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
362 - add -i test: use skip_all instead of repeated PERL prerequisite
363 - Make test "using invalid commit with -C" more strict
365 Some tests were not skipped under NO_PERL build.
367 Will merge to 'next'.
370 * mm/fast-import-feature-doc (2013-08-25) 1 commit
371 - Documentation/fast-import: clarify summary for `feature` command
373 Will merge to 'next'.
376 * mm/remote-helpers-doc (2013-08-26) 1 commit
377 - Documentation/remote-helpers: document common use-case for private ref
379 Will merge to 'next'.
382 * mn/doc-pack-heu-remove-dead-pastebin (2013-08-23) 1 commit
383 - remove dead pastebin link from pack-heuristics document
385 Will merge to 'next'.
388 * nd/fetch-pack-shallow-fix (2013-08-25) 1 commit
389 (merged to 'next' on 2013-08-28 at 6f5ed42)
390 + fetch-pack: do not remove .git/shallow file when --depth is not specified
392 Originally merged to 'next' on 2013-08-27
394 Recent "short-cut clone connectivity check" topic broke a shallow
395 repository when a fetch operation tries to auto-follow tags.
397 Will merge to 'master', aiming to later apply to 1.8.4.x maintenance track.
400 * ta/user-manual (2013-08-27) 11 commits
401 - "git prune" is safe
402 - Remove irrelevant reference from "Tying it all together"
403 - Remove unnecessary historical note from "Object storage format"
404 - Improve section "Merging multiple trees"
405 - Improve section "Manipulating branches"
406 - Simplify "How to make a commit"
407 - Fix some typos and improve wording
408 - Use "git merge" instead of "git pull ."
409 - Use current output for "git repack"
410 - Use current "detached HEAD" message
411 - Call it "Git User Manual" and remove reference to very old Git version
413 Update the user's manual to more recent versions of Git.
416 * tb/precompose-autodetect-fix (2013-08-27) 1 commit
417 - Set core.precomposeunicode to true on e.g. HFS+
419 Will merge to 'next'.
422 * tf/gitweb-ss-tweak (2013-08-20) 4 commits
423 - gitweb: make search help link less ugly
424 - gitweb: omit the repository owner when it is unset
425 - gitweb: vertically centre contents of page footer
426 - gitweb: ensure OPML text fits inside its box
428 Originally merged to 'next' on 2013-08-22
430 Tweak Gitweb CSS to layout some elements better.
432 Will merge to 'next'.
435 * es/rebase-i-respect-core-commentchar (2013-08-18) 1 commit
436 - rebase -i: fix cases ignoring core.commentchar
438 Originally merged to 'next' on 2013-08-20
440 Will merge to 'next'.
443 * jx/branch-vv-always-compare-with-upstream (2013-08-26) 2 commits
444 - status: always show tracking branch even no change
445 - branch: report invalid tracking branch as gone
447 "git branch -v -v" (and "git status") did not distinguish among a
448 branch that does not build on any other branch, a branch that is in
449 sync with the branch it builds on, and a branch that is configured
450 to build on some other branch that no longer exists.
452 Am I waiting for another reroll?
455 * nd/fetch-into-shallow (2013-08-28) 7 commits
456 - Add testcase for needless objects during a shallow fetch
457 - list-objects: mark more commits as edges in mark_edges_uninteresting
458 - list-objects: reduce one argument in mark_edges_uninteresting
459 - upload-pack: delegate rev walking in shallow fetch to pack-objects
460 - shallow: add setup_temporary_shallow()
461 - shallow: only add shallow graft points to new shallow file
462 - move setup_alternate_shallow and write_shallow_commits to shallow.c
464 When there is no sufficient overlap between old and new history
465 during a fetch into a shallow repository, we unnecessarily sent
466 objects the sending side knows the receiving end has.
468 Will merge to 'next'.
471 * sb/diff-delta-remove-needless-comparison (2013-08-18) 1 commit
472 (merged to 'next' on 2013-08-28 at ba09c3f)
473 + create_delta_index: simplify condition always evaluating to true
475 Originally merged to 'next' on 2013-08-20
477 Will merge to 'master'.
480 * sg/bash-prompt-lf-in-cwd-test (2013-08-18) 1 commit
481 (merged to 'next' on 2013-08-28 at eb449b5)
482 + bash prompt: test the prompt with newline in repository path
484 Originally merged to 'next' on 2013-08-20
486 Will merge to 'master'.
489 * jl/some-submodule-config-are-not-boolean (2013-08-19) 1 commit
490 (merged to 'next' on 2013-08-28 at 7fabc3e)
491 + avoid segfault on submodule.*.path set to an empty "true"
493 Originally merged to 'next' on 2013-08-20
495 Will merge to 'master'.
498 * jc/ls-files-killed-optim (2013-08-23) 4 commits
499 - dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
500 - t3010: update to demonstrate "ls-files -k" optimization pitfalls
501 - ls-files -k: a directory only can be killed if the index has a non-directory
502 - dir.c: use the cache_* macro to access the current index
504 Originally merged to 'next' on 2013-08-27
506 "git ls-files -k" needs to crawl only the part of the working tree
507 that may overlap the paths in the index to find killed files, but
508 shared code with the logic to find all the untracked files, which
509 made it unnecessarily inefficient.
511 Will merge to 'next'.
514 * es/blame-L-twice (2013-08-06) 16 commits
515 (merged to 'next' on 2013-08-28 at e83ae2e)
516 + line-range: reject -L line numbers less than 1
517 + t8001/t8002: blame: add tests of -L line numbers less than 1
518 + line-range: teach -L^:RE to search from start of file
519 + line-range: teach -L:RE to search from end of previous -L range
520 + line-range: teach -L^/RE/ to search from start of file
521 + line-range-format.txt: document -L/RE/ relative search
522 + log: teach -L/RE/ to search from end of previous -L range
523 + blame: teach -L/RE/ to search from end of previous -L range
524 + line-range: teach -L/RE/ to search relative to anchor point
525 + blame: document multiple -L support
526 + t8001/t8002: blame: add tests of multiple -L options
527 + blame: accept multiple -L ranges
528 + blame: inline one-line function into its lone caller
529 + range-set: publish API for re-use by git-blame -L
530 + line-range-format.txt: clarify -L:regex usage form
531 + git-log.txt: place each -L option variation on its own line
532 (this branch is used by es/contacts-blame-L-multi; uses es/blame-L-more.)
534 Originally merged to 'next' on 2013-08-08
536 Teaches "git blame" to take more than one -L ranges.
538 Will merge to 'master' in the second batch.
541 * mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
542 (merged to 'next' on 2013-08-28 at 86b300f)
543 + die_with_status: use "printf '%s\n'", not "echo"
545 Originally merged to 'next' on 2013-08-08
547 Fixes a minor bug in "git rebase -i" (there could be others, as the
548 root cause is pretty generic) where the code feeds a random, data
549 dependeant string to 'echo' and expects it to come out literally.
551 Will merge to 'master'.
554 * tr/fd-gotcha-fixes (2013-08-06) 1 commit
555 (merged to 'next' on 2013-08-28 at 5305271)
556 + t0070: test that git_mkstemps correctly checks return value of open()
558 Originally merged to 'next' on 2013-08-08
560 Finishing touches to an earlier fix already in 'master'.
562 Will merge to 'master'.
565 * ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
566 (merged to 'next' on 2013-08-28 at 9bfc430)
567 + remote-hg: fix path when cloning with tilde expansion
569 Originally merged to 'next' on 2013-08-14
571 Will merge to 'master'.
574 * es/rebase-i-no-abbrev (2013-08-25) 3 commits
575 - rebase -i: fix short SHA-1 collision
576 - t3404: rebase -i: demonstrate short SHA-1 collision
577 - t3404: make tests more self-contained
579 Originally merged to 'next' on 2013-08-26
581 Will merge to 'next'.
584 * fc/remote-hg-shared-setup (2013-08-11) 2 commits
585 (merged to 'next' on 2013-08-28 at 41ee3fe)
586 + remote-hg: add shared repo upgrade
587 + remote-hg: ensure shared repo is initialized
589 Originally merged to 'next' on 2013-08-14
591 Will merge to 'master'.
594 * jc/transport-do-not-use-connect-twice-in-fetch (2013-08-07) 5 commits
595 (merged to 'next' on 2013-08-28 at 2ed86df)
596 + fetch: work around "transport-take-over" hack
597 + fetch: refactor code that fetches leftover tags
598 + fetch: refactor code that prepares a transport
599 + fetch: rename file-scope global "transport" to "gtransport"
600 + t5802: add test for connect helper
602 Originally merged to 'next' on 2013-08-20
604 The auto-tag-following code in "git fetch" tries to reuse the same
605 transport twice when the serving end does not cooperate and does
606 not give tags that point to commits that are asked for as part of
607 the primary transfer. Unfortunately, Git-aware transport helper
608 interface is not designed to be used more than once, hence this
609 does not work over smart-http transfer.
611 Will merge to 'master' in the second batch.
614 * ks/p4-view-spec (2013-08-11) 3 commits
616 - git p4: implement view spec wildcards with "p4 where"
617 - git p4 test: sanitize P4CHARSET
622 * mm/war-on-whatchanged (2013-08-13) 2 commits
623 (merged to 'next' on 2013-08-28 at 25e9c18)
624 + whatchanged: document its historical nature
625 + core-tutorial: trim the section on Inspecting Changes
627 Originally merged to 'next' on 2013-08-14
629 Will merge to 'master'.
632 * nd/gc-lock-against-each-other (2013-08-09) 1 commit
633 (merged to 'next' on 2013-08-28 at 46e072b)
634 + gc: reject if another gc is running, unless --force is given
636 Originally merged to 'next' on 2013-08-14
638 Will merge to 'master'.
641 * rt/doc-merge-file-diff3 (2013-08-09) 1 commit
642 (merged to 'next' on 2013-08-28 at d6b8006)
643 + Documentation/git-merge-file: document option "--diff3"
645 Originally merged to 'next' on 2013-08-14
647 Will merge to 'master'.
650 * sb/misc-cleanup (2013-08-09) 3 commits
651 (merged to 'next' on 2013-08-28 at bc2045b)
652 + rm: remove unneeded null pointer check
653 + diff: fix a possible null pointer dereference
654 + diff: remove ternary operator evaluating always to true
656 Originally merged to 'next' on 2013-08-14
658 Will merge to 'master'.
661 * aj/p4-symlink-lose-nl (2013-08-12) 1 commit
662 (merged to 'next' on 2013-08-28 at 5ce9ceb)
663 + git-p4: Fix occasional truncation of symlink contents.
665 Originally merged to 'next' on 2013-08-14
667 Will merge to 'master'.
670 * es/contacts-blame-L-multi (2013-08-13) 3 commits
671 (merged to 'next' on 2013-08-28 at 24ff8b4)
672 + contacts: reduce git-blame invocations
673 + contacts: gather all blame sources prior to invoking git-blame
674 + contacts: validate hunk length earlier
675 (this branch uses es/blame-L-more and es/blame-L-twice.)
677 Originally merged to 'next' on 2013-08-14
679 Will merge to 'master' in the second batch.
682 * fc/unpack-trees-leakfix (2013-08-13) 1 commit
683 (merged to 'next' on 2013-08-28 at 3ad1f21)
684 + unpack-trees: plug a memory leak
686 Originally merged to 'next' on 2013-08-14
688 Will merge to 'master'.
691 * nd/push-no-thin (2013-08-13) 1 commit
692 - push: respect --no-thin
694 Originally merged to 'next' on 2013-08-14
696 Will merge to 'next'.
699 * sh/pull-rebase-preserve (2013-08-13) 1 commit
700 - pull: Allow pull to preserve merges when rebasing.
702 Originally merged to 'next' on 2013-08-14
704 Will merge to 'next'.
707 * es/blame-L-more (2013-08-05) 11 commits
708 (merged to 'next' on 2013-08-28 at b73cdc9)
709 + blame: reject empty ranges -L,+0 and -L,-0
710 + t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
711 + blame: reject empty ranges -LX,+0 and -LX,-0
712 + t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
713 + log: fix -L bounds checking bug
714 + t4211: retire soon-to-be unimplementable tests
715 + t4211: log: demonstrate -L bounds checking bug
716 + blame: fix -L bounds checking bug
717 + t8001/t8002: blame: add empty file & partial-line tests
718 + t8001/t8002: blame: demonstrate -L bounds checking bug
719 + t8001/t8002: blame: decompose overly-large test
720 (this branch is used by es/blame-L-twice and es/contacts-blame-L-multi.)
722 Originally merged to 'next' on 2013-08-06
724 More fixes to the code to parse the "-L" option in "log" and "blame".
726 Will merge to 'master' in the second batch.
729 * jk/cat-file-batch-optim (2013-08-05) 1 commit
730 (merged to 'next' on 2013-08-28 at 624e60d)
731 + cat-file: only split on whitespace when %(rest) is used
733 Originally merged to 'next' on 2013-08-06
735 Rework the reverted change to `cat-file --batch-check`.
737 Will merge to 'master' in the second batch.
740 * jn/post-receive-utf8 (2013-08-05) 3 commits
741 - hooks/post-receive-email: set declared encoding to utf-8
742 - hooks/post-receive-email: force log messages in UTF-8
743 - hooks/post-receive-email: use plumbing instead of git log/show
745 Originally merged to 'next' on 2013-08-20
747 Update post-receive-email script to make sure the message contents
748 and pathnames are encoded consistently in UTF-8.
750 I have a feeling that it is a lost cause to solve the issue the
751 topic tries to address in general, because the patch text can have
752 payload in any encodings that are different from either the
753 pathnames or the log message. Patches that touch paths that use an
754 encoding that conflicts with the encoding of the payload and/or the
755 log message could be transferred with core.quotepath set and patch
756 generated as all binary, but that would be pretty much useless.
758 Will merge to 'next'.
761 * sb/parseopt-boolean-removal (2013-08-07) 9 commits
762 (merged to 'next' on 2013-08-28 at 2f3f21f)
763 + revert: use the OPT_CMDMODE for parsing, reducing code
764 + checkout-index: fix negations of even numbers of -n
765 + config parsing options: allow one flag multiple times
766 + hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
767 + branch, commit, name-rev: ease up boolean conditions
768 + checkout: remove superfluous local variable
769 + log, format-patch: parsing uses OPT__QUIET
770 + Replace deprecated OPT_BOOLEAN by OPT_BOOL
771 + Remove deprecated OPTION_BOOLEAN for parsing arguments
772 (this branch uses jc/parseopt-command-modes.)
774 Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
775 OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
776 remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary.
778 Will merge to 'master'.
781 * mb/docs-favor-en-us (2013-08-01) 1 commit
782 (merged to 'next' on 2013-08-28 at 82910e5)
783 + Provide some linguistic guidance for the documentation.
785 Originally merged to 'next' on 2013-08-06
787 Declare that the official grammar & spelling of the source of this
788 project is en_US, but strongly discourage patches only to "fix"
789 existing en_UK strings to avoid unnecessary churns.
791 Will merge to 'master'.
794 * jc/parseopt-command-modes (2013-07-30) 2 commits
795 (merged to 'next' on 2013-08-28 at 738b399)
796 + tag: use OPT_CMDMODE
797 + parse-options: add OPT_CMDMODE()
798 (this branch is used by sb/parseopt-boolean-removal.)
800 Many commands use --dashed-option as a operation mode selector
801 (e.g. "git tag --delete") that the user can use at most one
802 (e.g. "git tag --delete --verify" is a nonsense) and you cannot
803 negate (e.g. "git tag --no-delete" is a nonsense). Make it easier
804 for users of parse_options() to enforce these restrictions.
806 Will merge to 'master'.
809 * tr/log-full-diff-keep-true-parents (2013-08-05) 2 commits
810 (merged to 'next' on 2013-08-28 at e86ec11)
811 + log: use true parents for diff when walking reflogs
812 + log: use true parents for diff even when rewriting
814 Originally merged to 'next' on 2013-08-08
816 Output from "git log --full-diff -- <pathspec>" looked strange,
817 because comparison was done with the previous ancestor that touched
818 the specified <pathspec>, causing the patches for paths outside the
819 pathspec to show more than the single commit has changed.
821 Tweak "git reflog -p" for the same reason using the same mechanism.
823 Will merge to 'master' in the second batch.
826 * bc/unuse-packfile (2013-08-02) 2 commits
827 (merged to 'next' on 2013-08-28 at 9029801)
828 + Don't close pack fd when free'ing pack windows
829 + sha1_file: introduce close_one_pack() to close packs on fd pressure
831 Originally merged to 'next' on 2013-08-06
833 Handle memory pressure and file descriptor pressure separately when
834 deciding to release pack windows to honor resource limits.
836 Will merge to 'master'.
839 * da/darwin (2013-08-05) 3 commits
840 (merged to 'next' on 2013-08-28 at 6e4c5ae)
841 + OS X: Fix redeclaration of die warning
842 + Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
843 + imap-send: use Apple's Security framework for base64 encoding
845 Originally merged to 'next' on 2013-08-05
847 Will merge to 'master'.
850 * nd/sq-quote-buf (2013-07-30) 3 commits
851 (merged to 'next' on 2013-08-28 at d0ffd55)
852 + quote: remove sq_quote_print()
853 + tar-tree: remove dependency on sq_quote_print()
854 + for-each-ref, quote: convert *_quote_print -> *_quote_buf
856 Originally merged to 'next' on 2013-08-01
858 Code simplification as a preparatory step to something larger.
860 Will merge to 'master'.
863 * jc/url-match (2013-08-09) 7 commits
864 (merged to 'next' on 2013-08-28 at 2a9fd23)
865 + builtin/config.c: compilation fix
866 + config: "git config --get-urlmatch" parses section.<url>.key
867 + builtin/config: refactor collect_config()
868 + config: parse http.<url>.<variable> using urlmatch
869 + config: add generic callback wrapper to parse section.<url>.key
870 + config: add helper to normalize and match URLs
871 + http.c: fix parsing of http.sslCertPasswordProtected variable
873 Originally merged to 'next' on 2013-08-12
875 Allow section.<urlpattern>.var configuration variables to be
876 treated as a "virtual" section.var given a URL, and use the
877 mechanism to enhance http.* configuration variables.
879 This is a reroll of Kyle J. McKay's work.
881 Will merge to 'master' in the second batch.
884 * jl/submodule-mv (2013-08-06) 5 commits
885 (merged to 'next' on 2013-08-28 at 4ec6b41)
886 + rm: delete .gitmodules entry of submodules removed from the work tree
887 + mv: update the path entry in .gitmodules for moved submodules
888 + submodule.c: add .gitmodules staging helper functions
889 + mv: move submodules using a gitfile
890 + mv: move submodules together with their work trees
891 (this branch uses nd/magic-pathspec.)
893 Originally merged to 'next' on 2013-08-08
895 "git mv A B" when moving a submodule A does "the right thing",
896 inclusing relocating its working tree and adjusting the paths in
897 the .gitmodules file.
899 Will merge to 'master' in the second batch.
902 * nd/clone-connectivity-shortcut (2013-07-23) 1 commit
903 (merged to 'next' on 2013-08-28 at d227f9f)
904 + smart http: use the same connectivity check on cloning
906 Originally merged to 'next' on 2013-07-30
908 Will merge to 'master' in the second batch.
911 * db/http-savecookies (2013-08-05) 2 commits
912 (merged to 'next' on 2013-08-28 at 22a8464)
913 + t5551: Remove header from curl cookie file
914 + http: add http.savecookies option to write out HTTP cookies
916 Originally merged to 'next' on 2013-08-05
918 Will merge to 'master' in the second batch.
921 * rr/feed-real-path-to-editor (2013-07-29) 1 commit
922 (merged to 'next' on 2013-08-28 at 7458fa4)
923 + editor: use canonicalized absolute path
925 Originally merged to 'next' on 2013-07-30
927 Will merge to 'master'.
930 * rj/doc-rev-parse (2013-07-22) 2 commits
931 (merged to 'next' on 2013-08-28 at 0fce928)
932 + rev-parse(1): logically group options
933 + rev-parse: remove restrictions on some options
935 Originally merged to 'next' on 2013-07-22
937 Will merge to 'master'.
940 * jk/fast-import-empty-ls (2013-06-23) 4 commits
941 (merged to 'next' on 2013-08-28 at 876a39d)
942 + fast-import: allow moving the root tree
943 + fast-import: allow ls or filecopy of the root tree
944 + fast-import: set valid mode on root tree in "ls"
945 + t9300: document fast-import empty path issues
947 Originally merged to 'next' on 2013-07-22
949 Will merge to 'master'.
952 * jc/diff-filter-negation (2013-07-19) 6 commits
953 (merged to 'next' on 2013-08-28 at 5cc7720)
954 + diff: deprecate -q option to diff-files
955 + diff: allow lowercase letter to specify what change class to exclude
956 + diff: reject unknown change class given to --diff-filter
957 + diff: preparse --diff-filter string argument
958 + diff: factor out match_filter()
959 + diff: pass the whole diff_options to diffcore_apply_filter()
960 (this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
962 Originally merged to 'next' on 2013-07-22
964 Teach "git diff --diff-filter" to express "I do not want to see
965 these classes of changes" more directly by listing only the
966 unwanted ones in lowercase (e.g. "--diff-filter=d" will show
967 everything but deletion) and deprecate "diff-files -q" which did
968 the same thing as "--diff-filter=d".
970 Will merge to 'master' in the second batch.
973 * nd/magic-pathspec (2013-07-23) 48 commits
974 (merged to 'next' on 2013-08-28 at 305c6e9)
975 + rm: do not set a variable twice without intermediate reading.
976 + t6131 - skip tests if on case-insensitive file system
977 + parse_pathspec: accept :(icase)path syntax
978 + pathspec: support :(glob) syntax
979 + pathspec: make --literal-pathspecs disable pathspec magic
980 + pathspec: support :(literal) syntax for noglob pathspec
981 + kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
982 + parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
983 + parse_pathspec: make sure the prefix part is wildcard-free
984 + rename field "raw" to "_raw" in struct pathspec
985 + tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
986 + remove match_pathspec() in favor of match_pathspec_depth()
987 + remove init_pathspec() in favor of parse_pathspec()
988 + remove diff_tree_{setup,release}_paths
989 + convert common_prefix() to use struct pathspec
990 + convert add_files_to_cache to take struct pathspec
991 + convert {read,fill}_directory to take struct pathspec
992 + convert refresh_index to take struct pathspec
993 + convert report_path_error to take struct pathspec
994 + checkout: convert read_tree_some to take struct pathspec
995 + convert unmerge_cache to take struct pathspec
996 + convert run_add_interactive to use struct pathspec
997 + convert read_cache_preload() to take struct pathspec
998 + line-log: convert to use parse_pathspec
999 + reset: convert to use parse_pathspec
1000 + add: convert to use parse_pathspec
1001 + check-ignore: convert to use parse_pathspec
1002 + archive: convert to use parse_pathspec
1003 + ls-files: convert to use parse_pathspec
1004 + rm: convert to use parse_pathspec
1005 + checkout: convert to use parse_pathspec
1006 + rerere: convert to use parse_pathspec
1007 + status: convert to use parse_pathspec
1008 + commit: convert to use parse_pathspec
1009 + clean: convert to use parse_pathspec
1010 + guard against new pathspec magic in pathspec matching code
1011 + parse_pathspec: support prefixing original patterns
1012 + parse_pathspec: support stripping/checking submodule paths
1013 + parse_pathspec: support stripping submodule trailing slashes
1014 + parse_pathspec: add special flag for max_depth feature
1015 + convert some get_pathspec() calls to parse_pathspec()
1016 + parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
1017 + parse_pathspec: save original pathspec for reporting
1018 + add parse_pathspec() that converts cmdline args to struct pathspec
1019 + pathspec: add copy_pathspec
1020 + pathspec: i18n-ize error strings in pathspec parsing code
1021 + move struct pathspec and related functions to pathspec.[ch]
1022 + clean: remove unused variable "seen"
1023 (this branch is used by jl/submodule-mv.)
1025 Originally merged to 'next' on 2013-07-23
1027 Use "struct pathspec" interface in more places, instead of array of
1028 characters, the latter of which cannot express magic pathspecs
1029 (e.g. ":(icase)makefile" that matches both Makefile and makefile).
1031 Will merge to 'master' in the second batch.
1034 * jc/check-x-z (2013-07-11) 4 commits
1035 (merged to 'next' on 2013-08-28 at a7670ce)
1036 + check-attr -z: a single -z should apply to both input and output
1037 + check-ignore -z: a single -z should apply to both input and output
1038 + check-attr: the name of the character is NUL, not NULL
1039 + check-ignore: the name of the character is NUL, not NULL
1041 Originally merged to 'next' on 2013-07-15
1043 "git check-ignore -z" applied the NUL termination to both its input
1044 (with --stdin) and its output, but "git check-attr -z" ignored the
1045 option on the output side.
1047 This is potentially a backward incompatible fix. Let's see if
1048 anybody screams before deciding if we want to do anything to help
1049 existing users (there may be none).
1051 Will merge to 'master'.
1054 * ms/fetch-prune-configuration (2013-07-18) 1 commit
1055 (merged to 'next' on 2013-08-28 at fa6ffc7)
1056 + fetch: make --prune configurable
1058 Originally merged to 'next' on 2013-07-21
1060 Allow fetch.prune and remote.*.prune configuration variables to be set,
1061 and "git fetch" to behave as if "--prune" is given.
1063 "git fetch" that honors remote.*.prune is fine, but I wonder if we
1064 should somehow make "git push" aware of it as well. Perhaps
1065 remote.*.prune should not be just a boolean, but a 4-way "none",
1066 "push", "fetch", "both"?
1068 Will merge to 'master' in the second batch.
1071 * km/svn-1.8-serf-only (2013-07-18) 3 commits
1072 (merged to 'next' on 2013-08-28 at 1119134)
1073 + Git.pm: revert _temp_cache use of temp_is_locked
1074 + git-svn: allow git-svn fetching to work using serf
1075 + Git.pm: add new temp_is_locked function
1077 Originally merged to 'next' on 2013-07-19
1079 Subversion 1.8.0 that was recently released breaks older subversion
1080 clients coming over http/https in various ways.
1082 Will merge to 'master'.
1085 * tr/merge-recursive-index-only (2013-07-07) 3 commits
1086 - merge-recursive: -Xindex-only to leave worktree unchanged
1087 - merge-recursive: untangle double meaning of o->call_depth
1088 - merge-recursive: remove dead conditional in update_stages()
1090 Will hold, until we get any user.
1093 * jc/push-cas (2013-08-02) 9 commits
1094 (merged to 'next' on 2013-08-28 at 784281f)
1095 + push: teach --force-with-lease to smart-http transport
1096 + send-pack: fix parsing of --force-with-lease option
1097 + t5540/5541: smart-http does not support "--force-with-lease"
1098 + t5533: test "push --force-with-lease"
1099 + push --force-with-lease: tie it all together
1100 + push --force-with-lease: implement logic to populate old_sha1_expect[]
1101 + remote.c: add command line option parser for "--force-with-lease"
1102 + builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
1103 + cache.h: move remote/connect API out of it
1105 Originally merged to 'next' on 2013-08-05
1107 Allow a safer "rewind of the remote tip" push than blind "--force",
1108 by requiring that the overwritten remote ref to be unchanged since
1109 the new history to replace it was prepared.
1111 The machinery is more or less ready. The "--force" option is again
1112 the big red button to override any safety, thanks to J6t's sanity
1113 (the original round allowed --lockref to defeat --force).
1115 The logic to choose the default implemented here is fragile
1116 (e.g. "git fetch" after seeing a failure will update the
1117 remote-tracking branch and will make the next "push" pass,
1118 defeating the safety pretty easily). It is suitable only for the
1119 simplest workflows, and it may hurt users more than it helps them.
1121 Will merge to 'master' in the second batch.
1124 * jc/pull-training-wheel (2013-07-19) 1 commit
1125 (merged to 'next' on 2013-08-28 at c39bd15)
1126 + pull: require choice between rebase/merge on non-fast-forward pull
1128 Originally merged to 'next' on 2013-07-22
1130 Make "git pull" (without arguments that say what branch to
1131 integrate from where) refuse with "it does not fast forward; choose
1132 between 'pull --merge' and 'pull --rebase'".
1136 http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
1137 http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
1139 for full discussion.
1141 Will merge to 'master' in the second batch.
1144 * jc/reflog-doc (2013-06-19) 1 commit
1145 - setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
1147 Document rules to use GIT_REFLOG_ACTION variable in the scripted
1148 Porcelain. git-rebase--interactive locally violates this, but it
1149 is a leaf user that does not call out to or dot-sources other
1150 scripts, so fixing it is not all that urgent.
1153 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
1154 - git add: -u/-A now affects the entire working tree
1156 Will cook in 'next' until Git 2.0.
1159 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
1160 - core.statinfo: remove as promised in Git 2.0
1162 Will cook in 'next' until Git 2.0.
1165 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
1166 - push: switch default from "matching" to "simple"
1168 Will cook in 'next' until Git 2.0.
1171 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
1172 - git add <pathspec>... defaults to "-A"
1174 Updated endgame for "git add <pathspec>" that defaults to "--all"
1175 aka "--no-ignore-removal".
1177 Will cook in 'next' until Git 2.0.
1180 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
1181 - diff: remove "diff-files -q" in a version of Git in a distant future
1182 (this branch uses jc/diff-filter-negation.)
1184 Will cook in 'next' until a distant future.
1186 --------------------------------------------------
1189 * jh/remote-hg-fetch-fix (2013-07-25) 2 commits
1190 . Revert "remotes-hg: bugfix for fetching non local remotes"
1191 . remotes-hg: bugfix for fetching non local remotes
1194 * km/http-curl-config-per-url (2013-07-31) 7 commits
1195 . Revert km/http-curl-config-per-url in its entirety
1196 . docs: update http.<url>.* options documentation
1197 . config: allow http.<url>.* any user matching
1198 . tests: add new test for the url_normalize function
1199 . config: improve support for http.<url>.* settings
1200 . config: add support for http.<url>.* settings
1201 . http.c: fix parsing of http.sslCertPasswordProtected variable
1203 Reverted to be replaced with a reroll (jc/url-match topic).
1206 * sb/fsck-opt-bool (2013-07-29) 1 commit
1207 . fsck: Replace deprecated OPT_BOOLEAN by OPT_BOOL
1209 sb/parseopt-boolean-removal contains the moral equivalent of this