* What's cooking in git.git (Aug 2013, #06; Tue, 27)
@ 2013-08-27 19:22 Junio C Hamano
2013-08-27 20:51 ` Jeff King
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Junio C Hamano @ 2013-08-27 19:22 UTC (permalink / raw)
To: git
What's cooking in git.git (Aug 2013, #06; Tue, 27)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
Git 1.8.4 was tagged and released recently, and we will shortly go
into a new development cycle for the next one, likely to be 1.8.5.
In this issue of "What's cooking" report, I haven't started sifting
the topics, most of which are marked as "will cook in next", into
separate bins to indicate what order they would graduate yet. After
doing so, the tip of 'next' will be rewound, hopefully tomorrow but
it may slip by a day or so.
I expect this cycle to conclude at around the end of October, and we
will have another release by the end of the year. The first release
in the coming year may be named "Git 2.0" with the promised
compatibility breakages.
You can find the changes described here in the integration branches
of the repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
[New Topics]
* js/xread-in-full (2013-08-20) 1 commit
(merged to 'next' on 2013-08-20 at 95baa13)
+ stream_to_pack: xread does not guarantee to read all requested bytes
Originally merged to 'next' on 2013-08-20
A call to xread() was used without a loop around to cope with short
read in the codepath to stream new contents to a pack.
Will cook in 'next'.
* sb/mailmap-freeing-NULL-is-ok (2013-08-20) 1 commit
(merged to 'next' on 2013-08-20 at 303b16c)
+ mailmap: remove redundant check for freeing memory
Originally merged to 'next' on 2013-08-20
Will cook in 'next'.
* tg/index-struct-sizes (2013-08-20) 1 commit
(merged to 'next' on 2013-08-22 at df6b8e2)
+ read-cache: use fixed width integer types
Originally merged to 'next' on 2013-08-22
The code that reads from a region that mmaps an on-disk index
assumed that "int"/"short" are always 32/16 bits.
Will cook in 'next'.
* bc/completion-for-bash-3.0 (2013-08-22) 3 commits
(merged to 'next' on 2013-08-22 at 46c5bb2)
+ contrib/git-prompt.sh: handle missing 'printf -v' more gracefully
+ t9902-completion.sh: old Bash still does not support array+=('') notation
+ git-completion.bash: use correct Bash/Zsh array length syntax
Originally merged to 'next' on 2013-08-22
Some people still use rather old versions of bash, which cannot
grok some constructs like 'printf -v varname' the prompt and
completion code started to use recently.
Will cook in 'next'.
* bc/submodule-status-ignored (2013-08-20) 2 commits
(merged to 'next' on 2013-08-22 at 3dfd2a3)
+ submodule: don't print status output with ignore=all
+ submodule: fix confusing variable name
Originally merged to 'next' on 2013-08-22
Will cook in 'next'.
* jk/config-int-range-check (2013-08-21) 2 commits
(merged to 'next' on 2013-08-22 at 465efb3)
+ teach git-config to output large integers
+ config: properly range-check integer values
Originally merged to 'next' on 2013-08-22
"git config --int section.var 3g" should somehow diagnose that the
number does not fit in "int" (on 32-bit platforms anyway) but it
did not.
Will cook in 'next'.
* jk/duplicate-objects-in-packs (2013-08-24) 6 commits
- default pack.indexDuplicates to false
- index-pack: optionally reject packs with duplicate objects
- test index-pack on packs with recoverable delta cycles
- add tests for indexing packs with delta cycles
- sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
- test-sha1: add a binary output mode
A packfile that stores the same object more than once is broken and
will be rejected.
Will merge to 'next'.
* mm/mediawiki-dumb-push-fix (2013-08-21) 2 commits
- git-remote-mediawiki: add test and check Makefile targets
- git-remote-mediawiki: reset private ref after non-dumb push
Waiting for a reroll.
* rt/rebase-p-no-merge-summary (2013-08-21) 1 commit
(merged to 'next' on 2013-08-22 at 5310599)
+ rebase --preserve-merges: ignore "merge.log" config
Originally merged to 'next' on 2013-08-22
"git rebase -p" internally used the merge machinery, but when
rebasing, there should not be a need for merge summary.
Will cook in 'next'.
* rv/send-email-cache-generated-mid (2013-08-21) 2 commits
- git-send-email: Cache generated message-ids, use them when prompting
- git-send-email: add optional 'choices' parameter to the ask sub
* sp/clip-read-write-to-8mb (2013-08-20) 2 commits
(merged to 'next' on 2013-08-22 at 254e75d)
+ Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
+ xread, xwrite: limit size of IO to 8MB
Originally merged to 'next' on 2013-08-22
Send a large request to read(2)/write(2) as a smaller but still
reasonably large chunks, which would improve the latency when the
operation needs to be killed and incidentally works around broken
64-bit systems that cannot take a 2GB write or read in one go.
Will cook in 'next'.
* sp/doc-smart-http (2013-08-21) 1 commit
(merged to 'next' on 2013-08-22 at 4a16937)
+ Document the HTTP transport protocols
Originally merged to 'next' on 2013-08-22
Will cook in 'next'.
* dw/diff-no-index-doc (2013-08-22) 1 commit
- diff --no-index: clarify operation when not inside a repository
When the user types "git diff" outside a working tree, thinking he
is inside one, the current error message that is a single-liner
"usage: git diff --no-index <path> <path>" may not be sufficient to
make him realize the mistake. Add "Not a git repository" to the
error message when we fell into the "--no-index" mode without an
explicit command line option to instruct us to do so.
* sb/repack-in-c (2013-08-22) 3 commits
- repack: rewrite the shell script in C (squashing proposal)
- repack: retain the return value of pack-objects
- repack: rewrite the shell script in C
* ap/commit-author-mailmap (2013-08-24) 1 commit
- commit: search author pattern against mailmap
"git commit --author=$name", when $name is not in the canonical
"A. U. Thor <au.thor@example.xz>" format, looks for a matching name
from existing history, but did not consult mailmap to grab the
preferred author name.
Will merge to 'next'.
* hv/config-from-blob (2013-08-26) 1 commit
(merged to 'next' on 2013-08-27 at 7bc9019)
+ config: do not use C function names as struct members
Originally merged to 'next' on 2013-08-27
Portability fix.
Will merge to 'master', aiming to later apply to 1.8.4.x maintenance track.
* jk/mailmap-incomplete-line (2013-08-25) 2 commits
- mailmap: avoid allocation when reading from blob
- mailmap: handle mailmap blobs without trailing newlines
Will merge to 'next'.
* jk/write-broken-index-with-nul-sha1 (2013-08-26) 1 commit
- write_index: optionally allow broken null sha1s
Am I waiting for another reroll?
* kk/tests-with-no-perl (2013-08-24) 4 commits
- reset test: modernize style
- t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
- add -i test: use skip_all instead of repeated PERL prerequisite
- Make test "using invalid commit with -C" more strict
Am I waiting for another reroll?
* mm/fast-import-feature-doc (2013-08-25) 1 commit
- Documentation/fast-import: clarify summary for `feature` command
Will merge to 'next'.
* mm/remote-helpers-doc (2013-08-26) 1 commit
- Documentation/remote-helpers: document common use-case for private ref
Will merge to 'next'.
* mn/doc-pack-heu-remove-dead-pastebin (2013-08-23) 1 commit
- remove dead pastebin link from pack-heuristics document
Will merge to 'next'.
* nd/fetch-pack-shallow-fix (2013-08-25) 1 commit
(merged to 'next' on 2013-08-27 at 7c2a162)
+ fetch-pack: do not remove .git/shallow file when --depth is not specified
Originally merged to 'next' on 2013-08-27
Recent "short-cut clone connectivity check" topic broke a shallow
repository when a fetch operation tries to auto-follow tags.
Will merge to 'master', aiming to later apply to 1.8.4.x maintenance track.
* ta/user-manual (2013-08-24) 6 commits
- Remove irrelevant reference from "Tying it all together"
- Remove unnecessary historical note from "Object storage format"
- Simplify "How to make a commit"
- Use "git merge" instead of "git pull ."
- Use current output for "git repack"
- Call it "Git User Manual" and remove reference to very old Git version
Update the user's manual to more recent versions of Git.
I've picked up only the least questionable bits from a slightly
larger series.
* tb/precompose-autodetect-fix (2013-08-27) 1 commit
- Set core.precomposeunicode to true on e.g. HFS+
Will merge to 'next'.
--------------------------------------------------
[Stalled]
* rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
- ### DONTMERGE: needs better explanation on what config they need
- pack-refs.c: Add missing call to git_config()
- show-ref.c: Add missing call to git_config()
The changes themselves are probably good, but it is unclear what
basic setting needs to be read for which exact operation.
Waiting for clarification.
$gmane/228294
* jh/shorten-refname (2013-05-07) 4 commits
- t1514: refname shortening is done after dereferencing symbolic refs
- shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
- t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
- t1514: Add tests of shortening refnames in strict/loose mode
When remotes/origin/HEAD is not a symbolic ref, "rev-parse
--abbrev-ref remotes/origin/HEAD" ought to show "origin", not
"origin/HEAD", which is fixed with this series (if it is a symbolic
ref that points at remotes/origin/something, then it should show
"origin/something" and it already does).
Expecting a reroll, as an early part of a larger series.
$gmane/225137
* jk/list-objects-sans-blobs (2013-06-06) 4 commits
. archive: ignore blob objects when checking reachability
. list-objects: optimize "revs->blob_objects = 0" case
. upload-archive: restrict remote objects with reachability check
. clear parsed flag when we free tree buffers
Attempt to allow "archive --remote=$there $arbitrary_sha1" while
keeping the reachability safety.
Seems to break some tests in a trivial and obvious way.
* mg/more-textconv (2013-05-10) 7 commits
- grep: honor --textconv for the case rev:path
- grep: allow to use textconv filters
- t7008: demonstrate behavior of grep with textconv
- cat-file: do not die on --textconv without textconv filters
- show: honor --textconv for blobs
- diff_opt: track whether flags have been set explicitly
- t4030: demonstrate behavior of show with textconv
Make "git grep" and "git show" pay attention to --textconv when
dealing with blob objects.
I thought this was pretty well designed and executed, but it seems
there are some doubts on the list; kicked back to 'pu'.
* jc/format-patch (2013-04-22) 2 commits
- format-patch: --inline-single
- format-patch: rename "no_inline" field
A new option to send a single patch to the standard output to be
appended at the bottom of a message. I personally have no need for
this, but it was easy enough to cobble together. Tests, docs and
stripping out more MIMEy stuff are left as exercises to interested
parties.
Not ready for inclusion.
Will discard unless we hear from anybody who is interested in
tying its loose ends.
* jk/gitweb-utf8 (2013-04-08) 4 commits
- gitweb: Fix broken blob action parameters on blob/commitdiff pages
- gitweb: Don't append ';js=(0|1)' to external links
- gitweb: Make feed title valid utf8
- gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
Various fixes to gitweb.
Drew Northup volunteered to take a look into this.
$gmane/226216
* jc/show-branch (2013-06-07) 5 commits
- show-branch: use commit slab to represent bitflags of arbitrary width
- show-branch.c: remove "all_mask"
- show-branch.c: abstract out "flags" operation
- show-branch.c: lift all_mask/all_revs to a global static
- show-branch.c: update comment style
Waiting for the final step to lift the hard-limit before sending it out.
--------------------------------------------------
[Cooking]
* tf/gitweb-ss-tweak (2013-08-20) 4 commits
(merged to 'next' on 2013-08-22 at 3978368)
+ gitweb: make search help link less ugly
+ gitweb: omit the repository owner when it is unset
+ gitweb: vertically centre contents of page footer
+ gitweb: ensure OPML text fits inside its box
Originally merged to 'next' on 2013-08-22
Tweak Gitweb CSS to layout some elements better.
Will cook in 'next'.
* es/rebase-i-respect-core-commentchar (2013-08-18) 1 commit
(merged to 'next' on 2013-08-20 at 9f3d0c8)
+ rebase -i: fix cases ignoring core.commentchar
Originally merged to 'next' on 2013-08-20
Will cook in 'next'.
* jx/branch-vv-always-compare-with-upstream (2013-08-26) 2 commits
- status: always show tracking branch even no change
- branch: report invalid tracking branch as gone
"git branch -v -v" (and "git status") did not distinguish among a
branch that does not build on any other branch, a branch that is in
sync with the branch it builds on, and a branch that is configured
to build on some other branch that no longer exists.
Am I waiting for another reroll?
* nd/fetch-into-shallow (2013-08-18) 6 commits
- list-objects: mark more commits as edges in mark_edges_uninteresting
- list-objects: reduce one argument in mark_edges_uninteresting
- upload-pack: delegate rev walking in shallow fetch to pack-objects
- shallow: add setup_temporary_shallow()
- shallow: only add shallow graft points to new shallow file
- move setup_alternate_shallow and write_shallow_commits to shallow.c
When there is no sufficient overlap between old and new history
during a fetch into a shallow repository, we unnecessarily sent
objects the sending side knows the receiving end has.
Will merge to 'next'.
* sb/diff-delta-remove-needless-comparison (2013-08-18) 1 commit
(merged to 'next' on 2013-08-20 at c35730b)
+ create_delta_index: simplify condition always evaluating to true
Originally merged to 'next' on 2013-08-20
Will cook in 'next'.
* sg/bash-prompt-lf-in-cwd-test (2013-08-18) 1 commit
(merged to 'next' on 2013-08-20 at 5544f62)
+ bash prompt: test the prompt with newline in repository path
Originally merged to 'next' on 2013-08-20
Will cook in 'next'.
* jl/some-submodule-config-are-not-boolean (2013-08-19) 1 commit
(merged to 'next' on 2013-08-20 at 140c2e4)
+ avoid segfault on submodule.*.path set to an empty "true"
Originally merged to 'next' on 2013-08-20
Will cook in 'next'.
* jc/ls-files-killed-optim (2013-08-23) 4 commits
(merged to 'next' on 2013-08-27 at f7687d1)
+ dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
(merged to 'next' on 2013-08-20 at d4bf1ad)
+ t3010: update to demonstrate "ls-files -k" optimization pitfalls
+ ls-files -k: a directory only can be killed if the index has a non-directory
+ dir.c: use the cache_* macro to access the current index
Originally merged to 'next' on 2013-08-27
"git ls-files -k" needs to crawl only the part of the working tree
that may overlap the paths in the index to find killed files, but
shared code with the logic to find all the untracked files, which
made it unnecessarily inefficient.
Will cook in 'next'.
* es/blame-L-twice (2013-08-06) 16 commits
(merged to 'next' on 2013-08-08 at 9d6f821)
+ line-range: reject -L line numbers less than 1
+ t8001/t8002: blame: add tests of -L line numbers less than 1
+ line-range: teach -L^:RE to search from start of file
+ line-range: teach -L:RE to search from end of previous -L range
+ line-range: teach -L^/RE/ to search from start of file
+ line-range-format.txt: document -L/RE/ relative search
+ log: teach -L/RE/ to search from end of previous -L range
+ blame: teach -L/RE/ to search from end of previous -L range
+ line-range: teach -L/RE/ to search relative to anchor point
+ blame: document multiple -L support
+ t8001/t8002: blame: add tests of multiple -L options
+ blame: accept multiple -L ranges
+ blame: inline one-line function into its lone caller
+ range-set: publish API for re-use by git-blame -L
+ line-range-format.txt: clarify -L:regex usage form
+ git-log.txt: place each -L option variation on its own line
(this branch is used by es/contacts-blame-L-multi; uses es/blame-L-more.)
Originally merged to 'next' on 2013-08-08
Teaches "git blame" to take more than one -L ranges.
Will cook in 'next'.
* mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
(merged to 'next' on 2013-08-08 at bddff86)
+ die_with_status: use "printf '%s\n'", not "echo"
Originally merged to 'next' on 2013-08-08
Fixes a minor bug in "git rebase -i" (there could be others, as the
root cause is pretty generic) where the code feeds a random, data
dependeant string to 'echo' and expects it to come out literally.
Will cook in 'next'.
* tr/fd-gotcha-fixes (2013-08-06) 1 commit
(merged to 'next' on 2013-08-08 at f452c5b)
+ t0070: test that git_mkstemps correctly checks return value of open()
Originally merged to 'next' on 2013-08-08
Finishing touches to an earlier fix already in 'master'.
Will cook in 'next'.
* ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
(merged to 'next' on 2013-08-14 at cd963e3)
+ remote-hg: fix path when cloning with tilde expansion
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* es/rebase-i-no-abbrev (2013-08-25) 3 commits
(merged to 'next' on 2013-08-26 at 1c3d45d)
+ rebase -i: fix short SHA-1 collision
+ t3404: rebase -i: demonstrate short SHA-1 collision
+ t3404: make tests more self-contained
Originally merged to 'next' on 2013-08-26
Will cook in 'next'.
* fc/remote-hg-shared-setup (2013-08-11) 2 commits
(merged to 'next' on 2013-08-14 at aae6858)
+ remote-hg: add shared repo upgrade
+ remote-hg: ensure shared repo is initialized
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* jc/transport-do-not-use-connect-twice-in-fetch (2013-08-07) 5 commits
(merged to 'next' on 2013-08-20 at 5414722)
+ fetch: work around "transport-take-over" hack
+ fetch: refactor code that fetches leftover tags
+ fetch: refactor code that prepares a transport
+ fetch: rename file-scope global "transport" to "gtransport"
+ t5802: add test for connect helper
Originally merged to 'next' on 2013-08-20
The auto-tag-following code in "git fetch" tries to reuse the same
transport twice when the serving end does not cooperate and does
not give tags that point to commits that are asked for as part of
the primary transfer. Unfortunately, Git-aware transport helper
interface is not designed to be used more than once, hence this
does not work over smart-http transfer.
Will cook in 'next'.
* ks/p4-view-spec (2013-08-11) 3 commits
- WAITING FOR ACK
- git p4: implement view spec wildcards with "p4 where"
- git p4 test: sanitize P4CHARSET
Waiting for an ack.
* mm/war-on-whatchanged (2013-08-13) 2 commits
(merged to 'next' on 2013-08-14 at fe77c11)
+ whatchanged: document its historical nature
+ core-tutorial: trim the section on Inspecting Changes
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* nd/gc-lock-against-each-other (2013-08-09) 1 commit
(merged to 'next' on 2013-08-14 at 6999651)
+ gc: reject if another gc is running, unless --force is given
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* rt/doc-merge-file-diff3 (2013-08-09) 1 commit
(merged to 'next' on 2013-08-14 at 1e5847b)
+ Documentation/git-merge-file: document option "--diff3"
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* sb/misc-cleanup (2013-08-09) 3 commits
(merged to 'next' on 2013-08-14 at 9e7ff9a)
+ rm: remove unneeded null pointer check
+ diff: fix a possible null pointer dereference
+ diff: remove ternary operator evaluating always to true
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* aj/p4-symlink-lose-nl (2013-08-12) 1 commit
(merged to 'next' on 2013-08-14 at a4959b7)
+ git-p4: Fix occasional truncation of symlink contents.
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* es/contacts-blame-L-multi (2013-08-13) 3 commits
(merged to 'next' on 2013-08-14 at 551ed3d)
+ contacts: reduce git-blame invocations
+ contacts: gather all blame sources prior to invoking git-blame
+ contacts: validate hunk length earlier
(this branch uses es/blame-L-more and es/blame-L-twice.)
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* fc/unpack-trees-leakfix (2013-08-13) 1 commit
(merged to 'next' on 2013-08-14 at 989f329)
+ unpack-trees: plug a memory leak
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* nd/push-no-thin (2013-08-13) 1 commit
(merged to 'next' on 2013-08-14 at b2d0fa9)
+ push: respect --no-thin
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* sh/pull-rebase-preserve (2013-08-13) 1 commit
(merged to 'next' on 2013-08-14 at 99a85dd)
+ pull: Allow pull to preserve merges when rebasing.
Originally merged to 'next' on 2013-08-14
Will cook in 'next'.
* es/blame-L-more (2013-08-05) 11 commits
(merged to 'next' on 2013-08-06 at 2679f3e)
+ blame: reject empty ranges -L,+0 and -L,-0
+ t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
+ blame: reject empty ranges -LX,+0 and -LX,-0
+ t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
+ log: fix -L bounds checking bug
+ t4211: retire soon-to-be unimplementable tests
+ t4211: log: demonstrate -L bounds checking bug
+ blame: fix -L bounds checking bug
+ t8001/t8002: blame: add empty file & partial-line tests
+ t8001/t8002: blame: demonstrate -L bounds checking bug
+ t8001/t8002: blame: decompose overly-large test
(this branch is used by es/blame-L-twice and es/contacts-blame-L-multi.)
Originally merged to 'next' on 2013-08-06
More fixes to the code to parse the "-L" option in "log" and "blame".
Will cook in 'next'.
* jk/cat-file-batch-optim (2013-08-05) 1 commit
(merged to 'next' on 2013-08-06 at cd48621)
+ cat-file: only split on whitespace when %(rest) is used
Originally merged to 'next' on 2013-08-06
Rework the reverted change to `cat-file --batch-check`.
Will cook in 'next'.
* jn/post-receive-utf8 (2013-08-05) 3 commits
(merged to 'next' on 2013-08-20 at 1623e8f)
+ hooks/post-receive-email: set declared encoding to utf-8
+ hooks/post-receive-email: force log messages in UTF-8
+ hooks/post-receive-email: use plumbing instead of git log/show
Originally merged to 'next' on 2013-08-20
Update post-receive-email script to make sure the message contents
and pathnames are encoded consistently in UTF-8.
I have a feeling that it is a lost cause to solve the issue the
topic tries to address in general, because the patch text can have
payload in any encodings that are different from either the
pathnames or the log message. Patches that touch paths that use an
encoding that conflicts with the encoding of the payload and/or the
log message could be transferred with core.quotepath set and patch
generated as all binary, but that would be pretty much useless.
Will cook in 'next'.
* sb/parseopt-boolean-removal (2013-08-07) 9 commits
(merged to 'next' on 2013-08-08 at b138a2d)
+ revert: use the OPT_CMDMODE for parsing, reducing code
+ checkout-index: fix negations of even numbers of -n
+ config parsing options: allow one flag multiple times
+ hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
+ branch, commit, name-rev: ease up boolean conditions
+ checkout: remove superfluous local variable
+ log, format-patch: parsing uses OPT__QUIET
+ Replace deprecated OPT_BOOLEAN by OPT_BOOL
+ Remove deprecated OPTION_BOOLEAN for parsing arguments
(this branch uses jc/parseopt-command-modes.)
Originally merged to 'next' on 2013-08-08
Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary.
Will cook in 'next'.
* mb/docs-favor-en-us (2013-08-01) 1 commit
(merged to 'next' on 2013-08-06 at 763d868)
+ Provide some linguistic guidance for the documentation.
Originally merged to 'next' on 2013-08-06
Declare that the official grammar & spelling of the source of this
project is en_US, but strongly discourage patches only to "fix"
existing en_UK strings to avoid unnecessary churns.
Will cook in 'next'.
* jc/parseopt-command-modes (2013-07-30) 2 commits
(merged to 'next' on 2013-08-08 at 43abba9)
+ tag: use OPT_CMDMODE
+ parse-options: add OPT_CMDMODE()
(this branch is used by sb/parseopt-boolean-removal.)
Originally merged to 'next' on 2013-08-08
Many commands use --dashed-option as a operation mode selector
(e.g. "git tag --delete") that the user can use at most one
(e.g. "git tag --delete --verify" is a nonsense) and you cannot
negate (e.g. "git tag --no-delete" is a nonsense). Make it easier
for users of parse_options() to enforce these restrictions.
Will cook in 'next'.
* tr/log-full-diff-keep-true-parents (2013-08-05) 2 commits
(merged to 'next' on 2013-08-08 at 2fb633f)
+ log: use true parents for diff when walking reflogs
+ log: use true parents for diff even when rewriting
Originally merged to 'next' on 2013-08-08
Output from "git log --full-diff -- <pathspec>" looked strange,
because comparison was done with the previous ancestor that touched
the specified <pathspec>, causing the patches for paths outside the
pathspec to show more than the single commit has changed.
Tweak "git reflog -p" for the same reason using the same mechanism.
Will cook in 'next'.
* bc/unuse-packfile (2013-08-02) 2 commits
(merged to 'next' on 2013-08-06 at 01aa4fd)
+ Don't close pack fd when free'ing pack windows
+ sha1_file: introduce close_one_pack() to close packs on fd pressure
Originally merged to 'next' on 2013-08-06
Handle memory pressure and file descriptor pressure separately when
deciding to release pack windows to honor resource limits.
Will cook in 'next'.
* da/darwin (2013-08-05) 3 commits
(merged to 'next' on 2013-08-05 at 5c54cfa)
+ OS X: Fix redeclaration of die warning
+ Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
(merged to 'next' on 2013-08-01 at d151a94)
+ imap-send: use Apple's Security framework for base64 encoding
Originally merged to 'next' on 2013-08-05
Will cook in 'next'.
* nd/sq-quote-buf (2013-07-30) 3 commits
(merged to 'next' on 2013-08-01 at dc7934a)
+ quote: remove sq_quote_print()
+ tar-tree: remove dependency on sq_quote_print()
+ for-each-ref, quote: convert *_quote_print -> *_quote_buf
Originally merged to 'next' on 2013-08-01
Code simplification as a preparatory step to something larger.
Will cook in 'next'.
* jc/url-match (2013-08-09) 7 commits
(merged to 'next' on 2013-08-12 at 381d358)
+ builtin/config.c: compilation fix
(merged to 'next' on 2013-08-08 at c1ee470)
+ config: "git config --get-urlmatch" parses section.<url>.key
+ builtin/config: refactor collect_config()
+ config: parse http.<url>.<variable> using urlmatch
+ config: add generic callback wrapper to parse section.<url>.key
+ config: add helper to normalize and match URLs
+ http.c: fix parsing of http.sslCertPasswordProtected variable
Originally merged to 'next' on 2013-08-12
Allow section.<urlpattern>.var configuration variables to be
treated as a "virtual" section.var given a URL, and use the
mechanism to enhance http.* configuration variables.
This is a reroll of Kyle J. McKay's work.
Will cook in 'next'.
* jl/submodule-mv (2013-08-06) 5 commits
(merged to 'next' on 2013-08-08 at 1a57bdf)
+ rm: delete .gitmodules entry of submodules removed from the work tree
+ mv: update the path entry in .gitmodules for moved submodules
+ submodule.c: add .gitmodules staging helper functions
+ mv: move submodules using a gitfile
+ mv: move submodules together with their work trees
(this branch uses nd/magic-pathspec.)
Originally merged to 'next' on 2013-08-08
"git mv A B" when moving a submodule A does "the right thing",
inclusing relocating its working tree and adjusting the paths in
the .gitmodules file.
Will cook in 'next'.
* nd/clone-connectivity-shortcut (2013-07-23) 1 commit
(merged to 'next' on 2013-07-30 at 8d16721)
+ smart http: use the same connectivity check on cloning
Originally merged to 'next' on 2013-07-30
Will cook in 'next'.
* db/http-savecookies (2013-08-05) 2 commits
(merged to 'next' on 2013-08-05 at be6f3a3)
+ t5551: Remove header from curl cookie file
(merged to 'next' on 2013-07-30 at d2ad6e5)
+ http: add http.savecookies option to write out HTTP cookies
Originally merged to 'next' on 2013-08-05
Will cook in 'next'.
* sb/fsck-opt-bool (2013-07-29) 1 commit
(merged to 'next' on 2013-07-30 at 8a9964c)
+ fsck: Replace deprecated OPT_BOOLEAN by OPT_BOOL
Originally merged to 'next' on 2013-07-30
Will drop.
sb/parseopt-boolean-removal contains the moral equivalent of this
change.
* rr/feed-real-path-to-editor (2013-07-29) 1 commit
(merged to 'next' on 2013-07-30 at 72c9bcb)
+ editor: use canonicalized absolute path
Originally merged to 'next' on 2013-07-30
Will cook in 'next'.
* rj/doc-rev-parse (2013-07-22) 2 commits
(merged to 'next' on 2013-07-22 at 8188667)
+ rev-parse(1): logically group options
+ rev-parse: remove restrictions on some options
Originally merged to 'next' on 2013-07-22
Will cook in 'next'.
* jk/fast-import-empty-ls (2013-06-23) 4 commits
(merged to 'next' on 2013-07-22 at d26dab6)
+ fast-import: allow moving the root tree
+ fast-import: allow ls or filecopy of the root tree
+ fast-import: set valid mode on root tree in "ls"
+ t9300: document fast-import empty path issues
Originally merged to 'next' on 2013-07-22
Will cook in 'next'.
* jc/diff-filter-negation (2013-07-19) 6 commits
(merged to 'next' on 2013-07-22 at 80d167d)
+ diff: deprecate -q option to diff-files
+ diff: allow lowercase letter to specify what change class to exclude
+ diff: reject unknown change class given to --diff-filter
+ diff: preparse --diff-filter string argument
+ diff: factor out match_filter()
+ diff: pass the whole diff_options to diffcore_apply_filter()
(this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
Originally merged to 'next' on 2013-07-22
Teach "git diff --diff-filter" to express "I do not want to see
these classes of changes" more directly by listing only the
unwanted ones in lowercase (e.g. "--diff-filter=d" will show
everything but deletion) and deprecate "diff-files -q" which did
the same thing as "--diff-filter=d".
Will cook in 'next'.
* nd/magic-pathspec (2013-07-23) 48 commits
(merged to 'next' on 2013-07-23 at 784c3a1)
+ rm: do not set a variable twice without intermediate reading.
(merged to 'next' on 2013-07-22 at 39f7194)
+ t6131 - skip tests if on case-insensitive file system
+ parse_pathspec: accept :(icase)path syntax
+ pathspec: support :(glob) syntax
+ pathspec: make --literal-pathspecs disable pathspec magic
+ pathspec: support :(literal) syntax for noglob pathspec
+ kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
+ parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
+ parse_pathspec: make sure the prefix part is wildcard-free
+ rename field "raw" to "_raw" in struct pathspec
+ tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
+ remove match_pathspec() in favor of match_pathspec_depth()
+ remove init_pathspec() in favor of parse_pathspec()
+ remove diff_tree_{setup,release}_paths
+ convert common_prefix() to use struct pathspec
+ convert add_files_to_cache to take struct pathspec
+ convert {read,fill}_directory to take struct pathspec
+ convert refresh_index to take struct pathspec
+ convert report_path_error to take struct pathspec
+ checkout: convert read_tree_some to take struct pathspec
+ convert unmerge_cache to take struct pathspec
+ convert run_add_interactive to use struct pathspec
+ convert read_cache_preload() to take struct pathspec
+ line-log: convert to use parse_pathspec
+ reset: convert to use parse_pathspec
+ add: convert to use parse_pathspec
+ check-ignore: convert to use parse_pathspec
+ archive: convert to use parse_pathspec
+ ls-files: convert to use parse_pathspec
+ rm: convert to use parse_pathspec
+ checkout: convert to use parse_pathspec
+ rerere: convert to use parse_pathspec
+ status: convert to use parse_pathspec
+ commit: convert to use parse_pathspec
+ clean: convert to use parse_pathspec
+ guard against new pathspec magic in pathspec matching code
+ parse_pathspec: support prefixing original patterns
+ parse_pathspec: support stripping/checking submodule paths
+ parse_pathspec: support stripping submodule trailing slashes
+ parse_pathspec: add special flag for max_depth feature
+ convert some get_pathspec() calls to parse_pathspec()
+ parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
+ parse_pathspec: save original pathspec for reporting
+ add parse_pathspec() that converts cmdline args to struct pathspec
+ pathspec: add copy_pathspec
+ pathspec: i18n-ize error strings in pathspec parsing code
+ move struct pathspec and related functions to pathspec.[ch]
+ clean: remove unused variable "seen"
(this branch is used by jl/submodule-mv.)
Originally merged to 'next' on 2013-07-23
Use "struct pathspec" interface in more places, instead of array of
characters, the latter of which cannot express magic pathspecs
(e.g. ":(icase)makefile" that matches both Makefile and makefile).
Will cook in 'next'.
* jc/check-x-z (2013-07-11) 4 commits
(merged to 'next' on 2013-07-15 at 62751bc)
+ check-attr -z: a single -z should apply to both input and output
+ check-ignore -z: a single -z should apply to both input and output
+ check-attr: the name of the character is NUL, not NULL
+ check-ignore: the name of the character is NUL, not NULL
Originally merged to 'next' on 2013-07-15
"git check-ignore -z" applied the NUL termination to both its input
(with --stdin) and its output, but "git check-attr -z" ignored the
option on the output side.
This is potentially a backward incompatible fix. I am tempted to
merge this to and keep it in 'next' for a while to see if anybody
screams before deciding if we want to do anything to help existing
users (there may be none).
Will cook in 'next'.
* ms/fetch-prune-configuration (2013-07-18) 1 commit
(merged to 'next' on 2013-07-21 at 7ffb690)
+ fetch: make --prune configurable
Originally merged to 'next' on 2013-07-21
Allow fetch.prune and remote.*.prune configuration variables to be set,
and "git fetch" to behave as if "--prune" is given.
"git fetch" that honors remote.*.prune is fine, but I wonder if we
should somehow make "git push" aware of it as well. Perhaps
remote.*.prune should not be just a boolean, but a 4-way "none",
"push", "fetch", "both"?
Will cook in 'next'.
* km/svn-1.8-serf-only (2013-07-18) 3 commits
(merged to 'next' on 2013-07-19 at ab8d034)
+ Git.pm: revert _temp_cache use of temp_is_locked
(merged to 'next' on 2013-07-12 at 70e0b95)
+ git-svn: allow git-svn fetching to work using serf
+ Git.pm: add new temp_is_locked function
Originally merged to 'next' on 2013-07-19
Subversion 1.8.0 that was recently released breaks older subversion
clients coming over http/https in various ways.
Will cook in 'next'.
* tr/merge-recursive-index-only (2013-07-07) 3 commits
- merge-recursive: -Xindex-only to leave worktree unchanged
- merge-recursive: untangle double meaning of o->call_depth
- merge-recursive: remove dead conditional in update_stages()
Will hold, until we get any user.
* jc/push-cas (2013-08-02) 9 commits
(merged to 'next' on 2013-08-05 at 34f4cf3)
+ push: teach --force-with-lease to smart-http transport
+ send-pack: fix parsing of --force-with-lease option
(merged to 'next' on 2013-08-01 at a7604ee)
+ t5540/5541: smart-http does not support "--force-with-lease"
(merged to 'next' on 2013-07-23 at 72371b0)
+ t5533: test "push --force-with-lease"
+ push --force-with-lease: tie it all together
+ push --force-with-lease: implement logic to populate old_sha1_expect[]
+ remote.c: add command line option parser for "--force-with-lease"
+ builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
+ cache.h: move remote/connect API out of it
Originally merged to 'next' on 2013-08-05
Allow a safer "rewind of the remote tip" push than blind "--force",
by requiring that the overwritten remote ref to be unchanged since
the new history to replace it was prepared.
The machinery is more or less ready. The "--force" option is again
the big red button to override any safety, thanks to J6t's sanity
(the original round allowed --lockref to defeat --force).
The logic to choose the default implemented here is fragile
(e.g. "git fetch" after seeing a failure will update the
remote-tracking branch and will make the next "push" pass,
defeating the safety pretty easily). It is suitable only for the
simplest workflows, and it may hurt users more than it helps them.
Will cook in 'next'.
* jc/pull-training-wheel (2013-07-19) 1 commit
(merged to 'next' on 2013-07-22 at 748180e)
+ pull: require choice between rebase/merge on non-fast-forward pull
Originally merged to 'next' on 2013-07-22
Make "git pull" (without arguments that say what branch to
integrate from where) refuse with "it does not fast forward; choose
between 'pull --merge' and 'pull --rebase'".
See
http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
for full discussion.
Will cook in 'next'.
* jc/reflog-doc (2013-06-19) 1 commit
- setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
Document rules to use GIT_REFLOG_ACTION variable in the scripted
Porcelain. git-rebase--interactive locally violates this, but it
is a leaf user that does not call out to or dot-sources other
scripts, so fixing it is not all that urgent.
* jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
- git add: -u/-A now affects the entire working tree
Will cook in 'next' until Git 2.0.
* jc/core-checkstat-2.0 (2013-05-06) 1 commit
- core.statinfo: remove as promised in Git 2.0
Will cook in 'next' until Git 2.0.
* jc/push-2.0-default-to-simple (2013-06-18) 1 commit
- push: switch default from "matching" to "simple"
Will cook in 'next' until Git 2.0.
* jc/add-2.0-ignore-removal (2013-04-22) 1 commit
- git add <pathspec>... defaults to "-A"
Updated endgame for "git add <pathspec>" that defaults to "--all"
aka "--no-ignore-removal".
Will cook in 'next' until Git 2.0.
* jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
- diff: remove "diff-files -q" in a version of Git in a distant future
(this branch uses jc/diff-filter-negation.)
Will cook in 'next' until a distant future.
--------------------------------------------------
[Discarded]
* jh/remote-hg-fetch-fix (2013-07-25) 2 commits
(merged to 'next' on 2013-07-25 at 33161ad)
+ Revert "remotes-hg: bugfix for fetching non local remotes"
(merged to 'next' on 2013-07-24 at 9c96641)
+ remotes-hg: bugfix for fetching non local remotes
Originally merged to 'next' on 2013-07-25
Reverted.
Waiting for the final patch to replace, after discussion settles.
* km/http-curl-config-per-url (2013-07-31) 7 commits
(merged to 'next' on 2013-07-31 at e88aad5)
+ Revert km/http-curl-config-per-url in its entirety
(merged to 'next' on 2013-07-25 at 531e8cb)
+ docs: update http.<url>.* options documentation
(merged to 'next' on 2013-07-23 at f84689b)
+ config: allow http.<url>.* any user matching
+ tests: add new test for the url_normalize function
+ config: improve support for http.<url>.* settings
+ config: add support for http.<url>.* settings
+ http.c: fix parsing of http.sslCertPasswordProtected variable
Originally merged to 'next' on 2013-07-31
Reverted to be replaced with a reroll (jc/url-match topic).
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 19:22 What's cooking in git.git (Aug 2013, #06; Tue, 27) Junio C Hamano
@ 2013-08-27 20:51 ` Jeff King
2013-08-27 21:05 ` Junio C Hamano
2013-08-27 21:25 ` Antoine Pelisse
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Jeff King @ 2013-08-27 20:51 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Tue, Aug 27, 2013 at 12:22:30PM -0700, Junio C Hamano wrote:
> * jk/config-int-range-check (2013-08-21) 2 commits
> (merged to 'next' on 2013-08-22 at 465efb3)
> + teach git-config to output large integers
> + config: properly range-check integer values
>
> Originally merged to 'next' on 2013-08-22
>
> "git config --int section.var 3g" should somehow diagnose that the
> number does not fit in "int" (on 32-bit platforms anyway) but it
> did not.
>
> Will cook in 'next'.
I think Jonathan had some concerns about the test in the first one, and
there was an open question in the second of whether we wanted to add
something like --ulong, call it something more agnostic like
--file-size, or simply teach --int to use 64-bit integers everywhere for
simplicity.
Thoughts?
> * jk/mailmap-incomplete-line (2013-08-25) 2 commits
> - mailmap: avoid allocation when reading from blob
> - mailmap: handle mailmap blobs without trailing newlines
>
> Will merge to 'next'.
Did you want me to squash these? The second one more or less eradicates
the changes made to the first one. I mainly did them separately in case
we were going to only do the first half on maint.
> * jk/write-broken-index-with-nul-sha1 (2013-08-26) 1 commit
> - write_index: optionally allow broken null sha1s
>
> Am I waiting for another reroll?
Yep, just sent v3.
> [Stalled]
> [...]
> * jk/list-objects-sans-blobs (2013-06-06) 4 commits
> . archive: ignore blob objects when checking reachability
> . list-objects: optimize "revs->blob_objects = 0" case
> . upload-archive: restrict remote objects with reachability check
> . clear parsed flag when we free tree buffers
>
> Attempt to allow "archive --remote=$there $arbitrary_sha1" while
> keeping the reachability safety.
>
> Seems to break some tests in a trivial and obvious way.
You can probably discard this one (though you may want to take the
bottom as a separate cleanup). I think we decided that the right
strategy is to do the ":" split as we do now, but then do the normal
commit-level reachability check on the left-hand side. I just haven't
gotten around to writing the code yet.
-Peff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 20:51 ` Jeff King
@ 2013-08-27 21:05 ` Junio C Hamano
2013-08-27 21:48 ` Jeff King
0 siblings, 1 reply; 10+ messages in thread
From: Junio C Hamano @ 2013-08-27 21:05 UTC (permalink / raw)
To: Jeff King; +Cc: git
Jeff King <peff@peff.net> writes:
> On Tue, Aug 27, 2013 at 12:22:30PM -0700, Junio C Hamano wrote:
>
>> * jk/config-int-range-check (2013-08-21) 2 commits
>> (merged to 'next' on 2013-08-22 at 465efb3)
>> + teach git-config to output large integers
>> + config: properly range-check integer values
>>
>> Originally merged to 'next' on 2013-08-22
>>
>> "git config --int section.var 3g" should somehow diagnose that the
>> number does not fit in "int" (on 32-bit platforms anyway) but it
>> did not.
>>
>> Will cook in 'next'.
>
> I think Jonathan had some concerns about the test in the first one, and
> there was an open question in the second of whether we wanted to add
> something like --ulong, call it something more agnostic like
> --file-size, or simply teach --int to use 64-bit integers everywhere for
> simplicity.
>
> Thoughts?
Are the scripts that use "git config --<type>" expected to know the
representation type used by C binaries on the platform? If so,
letting them say "git config --ulong 3g" when setting a new value,
and "git config --ulong" when asking the current value with range
checking does make sense. When the underlying code uses "int" (as
opposed to "int32_t") to read the value for a variable on any
platform, then "git config --int 3g" that does not warn only because
it is running on 64-bit platform may not help very much. The users
can protect themselves by learning to use "config --int32 3g", but I
am not sure that is a sensible approach---rather, "config --int"
that makes sure that the current value or the value being set is
within range on any sensible platform may be a lot more user-friendly.
>> * jk/mailmap-incomplete-line (2013-08-25) 2 commits
>> - mailmap: avoid allocation when reading from blob
>> - mailmap: handle mailmap blobs without trailing newlines
>>
>> Will merge to 'next'.
>
> Did you want me to squash these? The second one more or less eradicates
> the changes made to the first one. I mainly did them separately in case
> we were going to only do the first half on maint.
Hmm, perhaps. Is reading mailmap from a blob commonly done and
deserves a maint update down for 1.8.3/1.8.2 series?
I'll be rewinding the 'next' soonish (either tomorrow or Thursday),
so I'll try to remember not to merge this (yet).
>> * jk/write-broken-index-with-nul-sha1 (2013-08-26) 1 commit
>> - write_index: optionally allow broken null sha1s
>>
>> Am I waiting for another reroll?
>
> Yep, just sent v3.
Thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 19:22 What's cooking in git.git (Aug 2013, #06; Tue, 27) Junio C Hamano
2013-08-27 20:51 ` Jeff King
@ 2013-08-27 21:25 ` Antoine Pelisse
2013-08-27 22:33 ` Junio C Hamano
2013-08-27 21:51 ` Junio C Hamano
2013-08-28 0:05 ` Kacper Kornet
3 siblings, 1 reply; 10+ messages in thread
From: Antoine Pelisse @ 2013-08-27 21:25 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Felipe Contreras, Joern Hees
On Tue, Aug 27, 2013 at 9:22 PM, Junio C Hamano <gitster@pobox.com> wrote:
> * jh/remote-hg-fetch-fix (2013-07-25) 2 commits
> (merged to 'next' on 2013-07-25 at 33161ad)
> + Revert "remotes-hg: bugfix for fetching non local remotes"
> (merged to 'next' on 2013-07-24 at 9c96641)
> + remotes-hg: bugfix for fetching non local remotes
>
> Originally merged to 'next' on 2013-07-25
>
> Reverted.
>
> Waiting for the final patch to replace, after discussion settles.
I think it has already been replaced by:
> * fc/remote-hg-shared-setup (2013-08-11) 2 commits
> (merged to 'next' on 2013-08-14 at aae6858)
> + remote-hg: add shared repo upgrade
> + remote-hg: ensure shared repo is initialized
>
> Originally merged to 'next' on 2013-08-14
>
> Will cook in 'next'.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 21:05 ` Junio C Hamano
@ 2013-08-27 21:48 ` Jeff King
2013-08-27 22:32 ` Junio C Hamano
2013-08-28 6:39 ` Johannes Sixt
0 siblings, 2 replies; 10+ messages in thread
From: Jeff King @ 2013-08-27 21:48 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jonathan Nieder, git
[+cc Jonathan]
On Tue, Aug 27, 2013 at 02:05:01PM -0700, Junio C Hamano wrote:
> >> * jk/config-int-range-check (2013-08-21) 2 commits
> [...]
> >
> > I think Jonathan had some concerns about the test in the first one, and
> > there was an open question in the second of whether we wanted to add
> > something like --ulong, call it something more agnostic like
> > --file-size, or simply teach --int to use 64-bit integers everywhere for
> > simplicity.
>
> Are the scripts that use "git config --<type>" expected to know the
> representation type used by C binaries on the platform?
I think that's an open question. My argument was that you would want to
be able to get the same range errors that git would see internally. So I
know that if "git config --ulong pack.packSizeLimit 10g" does not fail,
then pack-objects itself will be fine when reading the value. So if you
buy the argument that such a thing is useful, then:
1. We would want to keep the range checks we have for --int.
2. We would need new types to represent items beyond --int, and they
should match what git will do internally. You can call it --ulong,
or --uint64, or --file-size, or whatever you like, but --int does
not cut it.
The counterarguments I can see are:
1. Who cares? If you want to know whether pack-objects will choke on
your huge config value, then run pack-objects.
2. Such a check would involve knowing which type we use internally to
look at packSizeLimit, and that is utterly undocumented (and
subject to change; e.g., it seems kind of senseless that we have a
4G pack-size limit on 32-bit platforms, and we may want to fix
that).
So if you do not buy the argument that communicating git's internal
range checks is useful, then we can simply say "--int is magically long
on every platform, and you can use it for everything numeric". And
implement it with int64_t. You may be able to read or write some values
for certain keys that git will barf on internally, but that is git's
problem.
The one thing it doesn't get you is that you can currently set unsigned
values to "-1" in the config to have them treated as ULONG_MAX. This is
undocumented and as far as I know not used by anyone. But it would be
one place where the interpretation of "git config key" is not the same
as what git does internally, and you do not get a warning or death, but
rather you just get a completely different value.
I don't feel too strongly either way. I mostly kept the range checks for
--int because that is how the code already worked, and I assumed that
was what was desired. But given what I know of the history of the config
code, it is probably a completely random side effect of how it is
implemented. :)
I can try to prepare a series going in that direction (we still need to
fix the internal truncation that currently happens, though).
> >> * jk/mailmap-incomplete-line (2013-08-25) 2 commits
> >> - mailmap: avoid allocation when reading from blob
> >> - mailmap: handle mailmap blobs without trailing newlines
> >>
> >> Will merge to 'next'.
> >
> > Did you want me to squash these? The second one more or less eradicates
> > the changes made to the first one. I mainly did them separately in case
> > we were going to only do the first half on maint.
>
> Hmm, perhaps. Is reading mailmap from a blob commonly done and
> deserves a maint update down for 1.8.3/1.8.2 series?
Yes. The tip of jk/mailmap-from-blob turned on blob reading by default
in bare repositories. So if you have a .mailmap without a terminating
newline, "git shortlog" will segfault by default in a bare version of
your repository.
I do not know if it is so serious a fix that you need to go back to
v1.8.2 series, but I think it is definitely maint-worthy. I was worried
initially that the second part of the patch would involve too much
refactoring for maint, but it actually turned out pretty simple.
I'll prepare a squashed version that I think should be suitable for
maint.
-Peff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 19:22 What's cooking in git.git (Aug 2013, #06; Tue, 27) Junio C Hamano
2013-08-27 20:51 ` Jeff King
2013-08-27 21:25 ` Antoine Pelisse
@ 2013-08-27 21:51 ` Junio C Hamano
2013-08-28 0:05 ` Kacper Kornet
3 siblings, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2013-08-27 21:51 UTC (permalink / raw)
To: git
Junio C Hamano <gitster@pobox.com> writes:
> What's cooking in git.git (Aug 2013, #06; Tue, 27)
> --------------------------------------------------
>
> Here are the topics that have been cooking. Commits prefixed with
> '-' are only in 'pu' (proposed updates) while commits prefixed with
> '+' are in 'next'.
>
> Git 1.8.4 was tagged and released recently, and we will shortly go
> into a new development cycle for the next one, likely to be 1.8.5.
>
> In this issue of "What's cooking" report, I haven't started sifting
> the topics, most of which are marked as "will cook in next", into
> separate bins to indicate what order they would graduate yet. After
> doing so, the tip of 'next' will be rewound, hopefully tomorrow but
> it may slip by a day or so.
I am nominating the following topics to graduate to 'master' by the
end of this week (or in the middle of the next week at the latest).
Those graduating earlier than others are:
(1) trivially correct and safe;
(2) of minor impact and even if they are broken, no real harm will
be done; or
(3) touch parts of the system that are so important that we would
want to learn unforseen breakages sooner rather than later in
the cycle, and we have done sufficient reviews and testing on
'next' already.
The last category is of particular importance, as we seemed to have
seen a few regression reports _after_ topics that have been cooking
for a long time in 'next' graduated to 'master' during the latest
cycle. We need to recruit more people from minority platforms and
with various different workflows to test 'next' more, but that will
not happen overnight, so the next best thing we can do is to feed
topics that are reasonably well cooked in 'next' early to 'master'.
* nd/fetch-pack-shallow-fix (2013-08-25) 1 commit
(merged to 'next' on 2013-08-27 at 7c2a162)
+ fetch-pack: do not remove .git/shallow file when --depth is not specified
Recent "short-cut clone connectivity check" topic broke a shallow
repository when a fetch operation tries to auto-follow tags.
Will merge to 'master', aiming to later apply to 1.8.4.x maintenance track.
* hv/config-from-blob (2013-08-26) 1 commit
(merged to 'next' on 2013-08-27 at 7bc9019)
+ config: do not use C function names as struct members
Portability fix.
Will merge to 'master', aiming to later apply to 1.8.4.x maintenance track.
* rj/doc-rev-parse (2013-07-22) 2 commits
(merged to 'next' on 2013-07-22 at 8188667)
+ rev-parse(1): logically group options
+ rev-parse: remove restrictions on some options
Will merge to 'master'.
* mb/docs-favor-en-us (2013-08-01) 1 commit
(merged to 'next' on 2013-08-06 at 763d868)
+ Provide some linguistic guidance for the documentation.
Declare that the official grammar & spelling of the source of this
project is en_US, but strongly discourage patches only to "fix"
existing en_UK strings to avoid unnecessary churns.
Will merge to 'master'.
* nd/sq-quote-buf (2013-07-30) 3 commits
(merged to 'next' on 2013-08-01 at dc7934a)
+ quote: remove sq_quote_print()
+ tar-tree: remove dependency on sq_quote_print()
+ for-each-ref, quote: convert *_quote_print -> *_quote_buf
Code simplification as a preparatory step to something larger.
Will merge to 'master'.
* mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
(merged to 'next' on 2013-08-08 at bddff86)
+ die_with_status: use "printf '%s\n'", not "echo"
Fixes a minor bug in "git rebase -i" (there could be others, as the
root cause is pretty generic) where the code feeds a random, data
dependeant string to 'echo' and expects it to come out literally.
Will merge to 'master'.
* sb/parseopt-boolean-removal (2013-08-07) 9 commits
(merged to 'next' on 2013-08-08 at b138a2d)
+ revert: use the OPT_CMDMODE for parsing, reducing code
+ checkout-index: fix negations of even numbers of -n
+ config parsing options: allow one flag multiple times
+ hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
+ branch, commit, name-rev: ease up boolean conditions
+ checkout: remove superfluous local variable
+ log, format-patch: parsing uses OPT__QUIET
+ Replace deprecated OPT_BOOLEAN by OPT_BOOL
+ Remove deprecated OPTION_BOOLEAN for parsing arguments
(this branch uses jc/parseopt-command-modes.)
Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary.
Will merge to 'master'.
* ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
(merged to 'next' on 2013-08-14 at cd963e3)
+ remote-hg: fix path when cloning with tilde expansion
Will merge to 'master'.
* rt/doc-merge-file-diff3 (2013-08-09) 1 commit
(merged to 'next' on 2013-08-14 at 1e5847b)
+ Documentation/git-merge-file: document option "--diff3"
Will merge to 'master'.
* sb/misc-cleanup (2013-08-09) 3 commits
(merged to 'next' on 2013-08-14 at 9e7ff9a)
+ rm: remove unneeded null pointer check
+ diff: fix a possible null pointer dereference
+ diff: remove ternary operator evaluating always to true
Will merge to 'master'.
* mm/war-on-whatchanged (2013-08-13) 2 commits
(merged to 'next' on 2013-08-14 at fe77c11)
+ whatchanged: document its historical nature
+ core-tutorial: trim the section on Inspecting Changes
Will merge to 'master'.
* sb/diff-delta-remove-needless-comparison (2013-08-18) 1 commit
(merged to 'next' on 2013-08-20 at c35730b)
+ create_delta_index: simplify condition always evaluating to true
Will merge to 'master'.
* sg/bash-prompt-lf-in-cwd-test (2013-08-18) 1 commit
(merged to 'next' on 2013-08-20 at 5544f62)
+ bash prompt: test the prompt with newline in repository path
Will merge to 'master'.
* jl/some-submodule-config-are-not-boolean (2013-08-19) 1 commit
(merged to 'next' on 2013-08-20 at 140c2e4)
+ avoid segfault on submodule.*.path set to an empty "true"
Will merge to 'master'.
* sp/doc-smart-http (2013-08-21) 1 commit
(merged to 'next' on 2013-08-22 at 4a16937)
+ Document the HTTP transport protocols
Will merge to 'master'.
* bc/completion-for-bash-3.0 (2013-08-22) 3 commits
(merged to 'next' on 2013-08-22 at 46c5bb2)
+ contrib/git-prompt.sh: handle missing 'printf -v' more gracefully
+ t9902-completion.sh: old Bash still does not support array+=('') notation
+ git-completion.bash: use correct Bash/Zsh array length syntax
Some people still use rather old versions of bash, which cannot
grok some constructs like 'printf -v varname' the prompt and
completion code started to use recently.
Will merge to 'master'.
* km/svn-1.8-serf-only (2013-07-18) 3 commits
(merged to 'next' on 2013-07-19 at ab8d034)
+ Git.pm: revert _temp_cache use of temp_is_locked
(merged to 'next' on 2013-07-12 at 70e0b95)
+ git-svn: allow git-svn fetching to work using serf
+ Git.pm: add new temp_is_locked function
Subversion 1.8.0 that was recently released breaks older subversion
clients coming over http/https in various ways.
Will merge to 'master'.
* jc/check-x-z (2013-07-11) 4 commits
(merged to 'next' on 2013-07-15 at 62751bc)
+ check-attr -z: a single -z should apply to both input and output
+ check-ignore -z: a single -z should apply to both input and output
+ check-attr: the name of the character is NUL, not NULL
+ check-ignore: the name of the character is NUL, not NULL
"git check-ignore -z" applied the NUL termination to both its input
(with --stdin) and its output, but "git check-attr -z" ignored the
option on the output side.
This is potentially a backward incompatible fix. Let's see if
anybody screams before deciding if we want to do anything to help
existing users (there may be none).
Will merge to 'master'.
* rr/feed-real-path-to-editor (2013-07-29) 1 commit
(merged to 'next' on 2013-07-30 at 72c9bcb)
+ editor: use canonicalized absolute path
Will merge to 'master'.
* jk/fast-import-empty-ls (2013-06-23) 4 commits
(merged to 'next' on 2013-07-22 at d26dab6)
+ fast-import: allow moving the root tree
+ fast-import: allow ls or filecopy of the root tree
+ fast-import: set valid mode on root tree in "ls"
+ t9300: document fast-import empty path issues
Will merge to 'master'.
* da/darwin (2013-08-05) 3 commits
(merged to 'next' on 2013-08-05 at 5c54cfa)
+ OS X: Fix redeclaration of die warning
+ Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
(merged to 'next' on 2013-08-01 at d151a94)
+ imap-send: use Apple's Security framework for base64 encoding
Will merge to 'master'.
* bc/unuse-packfile (2013-08-02) 2 commits
(merged to 'next' on 2013-08-06 at 01aa4fd)
+ Don't close pack fd when free'ing pack windows
+ sha1_file: introduce close_one_pack() to close packs on fd pressure
Handle memory pressure and file descriptor pressure separately when
deciding to release pack windows to honor resource limits.
Will merge to 'master'.
* tr/fd-gotcha-fixes (2013-08-06) 1 commit
(merged to 'next' on 2013-08-08 at f452c5b)
+ t0070: test that git_mkstemps correctly checks return value of open()
Finishing touches to an earlier fix already in 'master'.
Will merge to 'master'.
* nd/gc-lock-against-each-other (2013-08-09) 1 commit
(merged to 'next' on 2013-08-14 at 6999651)
+ gc: reject if another gc is running, unless --force is given
Will merge to 'master'.
* fc/remote-hg-shared-setup (2013-08-11) 2 commits
(merged to 'next' on 2013-08-14 at aae6858)
+ remote-hg: add shared repo upgrade
+ remote-hg: ensure shared repo is initialized
Will merge to 'master'.
* aj/p4-symlink-lose-nl (2013-08-12) 1 commit
(merged to 'next' on 2013-08-14 at a4959b7)
+ git-p4: Fix occasional truncation of symlink contents.
Will merge to 'master'.
* fc/unpack-trees-leakfix (2013-08-13) 1 commit
(merged to 'next' on 2013-08-14 at 989f329)
+ unpack-trees: plug a memory leak
Will merge to 'master'.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 21:48 ` Jeff King
@ 2013-08-27 22:32 ` Junio C Hamano
2013-08-28 6:39 ` Johannes Sixt
1 sibling, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2013-08-27 22:32 UTC (permalink / raw)
To: Jeff King; +Cc: Jonathan Nieder, git
Jeff King <peff@peff.net> writes:
> I don't feel too strongly either way. I mostly kept the range checks for
> --int because that is how the code already worked, and I assumed that
> was what was desired. But given what I know of the history of the config
> code, it is probably a completely random side effect of how it is
> implemented. :)
;-)
> I can try to prepare a series going in that direction (we still need to
> fix the internal truncation that currently happens, though).
Yeah, allowing range checks to allow those who do set using "git
config" from the command line to protect themselves is in theory
a good idea, but in practice that means they need to know the
internal type (and they need to know to pass --int in the first
place), so it may be a losing proposition.
> I do not know if it is so serious a fix that you need to go back to
> v1.8.2 series, but I think it is definitely maint-worthy. I was worried
> initially that the second part of the patch would involve too much
> refactoring for maint, but it actually turned out pretty simple.
>
> I'll prepare a squashed version that I think should be suitable for
> maint.
Thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 21:25 ` Antoine Pelisse
@ 2013-08-27 22:33 ` Junio C Hamano
0 siblings, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2013-08-27 22:33 UTC (permalink / raw)
To: Antoine Pelisse; +Cc: git, Felipe Contreras, Joern Hees
Antoine Pelisse <apelisse@gmail.com> writes:
> On Tue, Aug 27, 2013 at 9:22 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> * jh/remote-hg-fetch-fix (2013-07-25) 2 commits
>> (merged to 'next' on 2013-07-25 at 33161ad)
>> + Revert "remotes-hg: bugfix for fetching non local remotes"
>> (merged to 'next' on 2013-07-24 at 9c96641)
>> + remotes-hg: bugfix for fetching non local remotes
>>
>> Originally merged to 'next' on 2013-07-25
>>
>> Reverted.
>>
>> Waiting for the final patch to replace, after discussion settles.
>
> I think it has already been replaced by:
Surely, of course. I think I just ignored the text altogether when
I moved it to the "discarded" section.
Thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 19:22 What's cooking in git.git (Aug 2013, #06; Tue, 27) Junio C Hamano
` (2 preceding siblings ...)
2013-08-27 21:51 ` Junio C Hamano
@ 2013-08-28 0:05 ` Kacper Kornet
3 siblings, 0 replies; 10+ messages in thread
From: Kacper Kornet @ 2013-08-28 0:05 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Jonathan Nieder
On Tue, Aug 27, 2013 at 12:22:30PM -0700, Junio C Hamano wrote:
> * kk/tests-with-no-perl (2013-08-24) 4 commits
> - reset test: modernize style
> - t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
> - add -i test: use skip_all instead of repeated PERL prerequisite
> - Make test "using invalid commit with -C" more strict
> Am I waiting for another reroll?
>From these four commits only the second and last one are from me and I'm
happy with their form as in pu (I see that you have already introduced
your improvement of "commit --allow-empty" to the last one). Unless
there are some remarks to them.
But I don't know what about Jonathan's commits.
As a matter of fact I have no idea how I even should reroll the topic
that includes commits with mixed authorship.
--
Kacper
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's cooking in git.git (Aug 2013, #06; Tue, 27)
2013-08-27 21:48 ` Jeff King
2013-08-27 22:32 ` Junio C Hamano
@ 2013-08-28 6:39 ` Johannes Sixt
1 sibling, 0 replies; 10+ messages in thread
From: Johannes Sixt @ 2013-08-28 6:39 UTC (permalink / raw)
To: Jeff King; +Cc: Junio C Hamano, Jonathan Nieder, git
Am 8/27/2013 23:48, schrieb Jeff King:
> The counterarguments I can see are:
>
> 1. Who cares? If you want to know whether pack-objects will choke on
> your huge config value, then run pack-objects.
>
> 2. Such a check would involve knowing which type we use internally to
> look at packSizeLimit, and that is utterly undocumented (and
> subject to change; e.g., it seems kind of senseless that we have a
> 4G pack-size limit on 32-bit platforms, and we may want to fix
> that).
>
> So if you do not buy the argument that communicating git's internal
> range checks is useful, then we can simply say "--int is magically long
> on every platform, and you can use it for everything numeric". And
> implement it with int64_t. You may be able to read or write some values
> for certain keys that git will barf on internally, but that is git's
> problem.
I'm in the camp of these (counter) arguments.
When my shell script asks for 'git config --int 3g', I expect to be
returned a positive 10-digit. What would I care which type Git or any
other tool is using internally? I only care whether my shell can work with
numbers that large. Or the next tool that I feed the number to. But that's
my business, not Git's.
> The one thing it doesn't get you is that you can currently set unsigned
> values to "-1" in the config to have them treated as ULONG_MAX. This is
> undocumented and as far as I know not used by anyone.
And it better stays that way. Magic numbers should be encoded with magic
strings in the config file.
-- Hannes
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-08-28 6:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-27 19:22 What's cooking in git.git (Aug 2013, #06; Tue, 27) Junio C Hamano
2013-08-27 20:51 ` Jeff King
2013-08-27 21:05 ` Junio C Hamano
2013-08-27 21:48 ` Jeff King
2013-08-27 22:32 ` Junio C Hamano
2013-08-28 6:39 ` Johannes Sixt
2013-08-27 21:25 ` Antoine Pelisse
2013-08-27 22:33 ` Junio C Hamano
2013-08-27 21:51 ` Junio C Hamano
2013-08-28 0:05 ` Kacper Kornet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).