gitweb.git
Merge branch 'kb/name-hash'Junio C Hamano Mon, 1 Apr 2013 15:59:53 +0000 (08:59 -0700)

Merge branch 'kb/name-hash'

The code to keep track of what directory names are known to Git on
platforms with case insensitive filesystems can get confused upon
a hash collision between these pathnames and looped forever.

* kb/name-hash:
name-hash.c: fix endless loop with core.ignorecase=true

Merge branch 'jk/common-make-variables-export-safety'Junio C Hamano Mon, 1 Apr 2013 15:59:47 +0000 (08:59 -0700)

Merge branch 'jk/common-make-variables-export-safety'

Make the three variables safer to be exported to submakes by
ensuring that they are full paths so that they can be used as
installation location.

* jk/common-make-variables-export-safety:
Makefile: make mandir, htmldir and infodir absolute

Merge branch 'jk/pkt-line-cleanup'Junio C Hamano Mon, 1 Apr 2013 15:59:37 +0000 (08:59 -0700)

Merge branch 'jk/pkt-line-cleanup'

Clean up pkt-line API, implementation and its callers to make them
more robust.

* jk/pkt-line-cleanup:
do not use GIT_TRACE_PACKET=3 in tests
remote-curl: always parse incoming refs
remote-curl: move ref-parsing code up in file
remote-curl: pass buffer straight to get_remote_heads
teach get_remote_heads to read from a memory buffer
pkt-line: share buffer/descriptor reading implementation
pkt-line: provide a LARGE_PACKET_MAX static buffer
pkt-line: move LARGE_PACKET_MAX definition from sideband
pkt-line: teach packet_read_line to chomp newlines
pkt-line: provide a generic reading function with options
pkt-line: drop safe_write function
pkt-line: move a misplaced comment
write_or_die: raise SIGPIPE when we get EPIPE
upload-archive: use argv_array to store client arguments
upload-archive: do not copy repo name
send-pack: prefer prefixcmp over memcmp in receive_status
fetch-pack: fix out-of-bounds buffer offset in get_ack
upload-pack: remove packet debugging harness
upload-pack: do not add duplicate objects to shallow list
upload-pack: use get_sha1_hex to parse "shallow" lines

Merge branch 'bc/append-signed-off-by'Junio C Hamano Mon, 1 Apr 2013 15:59:23 +0000 (08:59 -0700)

Merge branch 'bc/append-signed-off-by'

Consolidate codepaths that inspect log-message-to-be and decide to
add a new Signed-off-by line in various commands.

* bc/append-signed-off-by:
git-commit: populate the edit buffer with 2 blank lines before s-o-b
Unify appending signoff in format-patch, commit and sequencer
format-patch: update append_signoff prototype
t4014: more tests about appending s-o-b lines
sequencer.c: teach append_signoff to avoid adding a duplicate newline
sequencer.c: teach append_signoff how to detect duplicate s-o-b
sequencer.c: always separate "(cherry picked from" from commit body
sequencer.c: require a conforming footer to be preceded by a blank line
sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
t/t3511: add some tests of 'cherry-pick -s' functionality
t/test-lib-functions.sh: allow to specify the tag name to test_commit
commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
sequencer.c: rework search for start of footer to improve clarity

Merge branch 'sr/am-show-final-message-in-applying... Junio C Hamano Mon, 1 Apr 2013 15:59:18 +0000 (08:59 -0700)

Merge branch 'sr/am-show-final-message-in-applying-indicator'

In addition to the case where the user edits the log message with
the "e)dit" option of "am -i", replace the "Applying: this patch"
message with the final log message contents after applymsg hook
munges it.

* sr/am-show-final-message-in-applying-indicator:
git-am: show the final log message on "Applying:" indicator

Merge branch 'rr/test-3200-style'Junio C Hamano Mon, 1 Apr 2013 15:59:14 +0000 (08:59 -0700)

Merge branch 'rr/test-3200-style'

Churns.

* rr/test-3200-style:
t3200 (branch): modernize style

Merge branch 'maint'Junio C Hamano Mon, 1 Apr 2013 02:27:54 +0000 (19:27 -0700)

Merge branch 'maint'

* maint:
cat-file: Fix an gcc -Wuninitialized warning
fast-import: Fix an gcc -Wuninitialized warning

cat-file: Fix an gcc -Wuninitialized warningRamsay Jones Tue, 26 Mar 2013 19:20:11 +0000 (19:20 +0000)

cat-file: Fix an gcc -Wuninitialized warning

After commit cbfd5e1c ("drop some obsolete "x = x" compiler warning
hacks", 21-03-2013) removed a gcc specific hack, older versions of
gcc now issue an "'contents' might be used uninitialized" warning.
In order to suppress the warning, we simply initialize the variable
to NULL in it's declaration.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-import: Fix an gcc -Wuninitialized warningRamsay Jones Tue, 26 Mar 2013 19:09:44 +0000 (19:09 +0000)

fast-import: Fix an gcc -Wuninitialized warning

Commit cbfd5e1c ("drop some obsolete "x = x" compiler warning hacks",
21-03-2013) removed a gcc hack that suppressed an "might be used
uninitialized" warning issued by older versions of gcc.

However, commit 3aa99df8 ('fast-import: clarify "inline" logic in
file_change_m', 21-03-2013) addresses an (almost) identical issue
(with very similar code), but includes additional code in it's
resolution. The solution used by this commit, unlike that used by
commit cbfd5e1c, also suppresses the -Wuninitialized warning on
older versions of gcc.

In order to suppress the warning (against the 'oe' symbol) in the
note_change_n() function, we adopt the same solution used by commit
3aa99df8.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'yd/use-test-config-unconfig'Junio C Hamano Thu, 28 Mar 2013 21:38:27 +0000 (14:38 -0700)

Merge branch 'yd/use-test-config-unconfig'

Bulk-update of the test suite.

* yd/use-test-config-unconfig:
t5520: use test_config to set/unset git config variables (leftover bits)
t7600: use test_config to set/unset git config variables
t7502: remove clear_config
t7502: use test_config to set/unset git config variables
t9500: use test_config to set/unset git config variables
t7508: use test_config to set/unset git config variables
t7500: use test_config to set/unset git config variables
t5541: use test_config to set/unset git config variables
t5520: use test_config to set/unset git config variables
t4202: use test_config/test_unconfig to set/unset git config variables
t4034: use test_config/test_unconfig to set/unset git config variables
t4304: use test_config to set/unset git config variables
t3400: use test_config to set/unset git config variables

Merge branch 'kk/revwalk-slop-too-many-commit-within... Junio C Hamano Thu, 28 Mar 2013 21:38:25 +0000 (14:38 -0700)

Merge branch 'kk/revwalk-slop-too-many-commit-within-a-second'

Allow the revision "slop" code to look deeper while commits with
exactly the same timestamps come next to each other (which can
often happen after a large "am" and "rebase" session).

* kk/revwalk-slop-too-many-commit-within-a-second:
Fix revision walk for commits with the same dates

Merge branch 'rr/tests-dedup-test-config'Junio C Hamano Thu, 28 Mar 2013 21:38:23 +0000 (14:38 -0700)

Merge branch 'rr/tests-dedup-test-config'

* rr/tests-dedup-test-config:
t4018,7810,7811: remove test_config() redefinition

Merge branch 'yd/doc-is-in-asciidoc'Junio C Hamano Thu, 28 Mar 2013 21:38:20 +0000 (14:38 -0700)

Merge branch 'yd/doc-is-in-asciidoc'

* yd/doc-is-in-asciidoc:
CodingGuidelines: our documents are in AsciiDoc

Merge branch 'yd/doc-merge-annotated-tag'Junio C Hamano Thu, 28 Mar 2013 21:38:17 +0000 (14:38 -0700)

Merge branch 'yd/doc-merge-annotated-tag'

Document the 1.7.9 feature to merge a signed tag and keep that in
the mergetag header in the resulting commit better.

* yd/doc-merge-annotated-tag:
Documentation: merging a tag is a special case

Merge branch 'jc/remove-treesame-parent-in-simplify... Junio C Hamano Thu, 28 Mar 2013 21:37:53 +0000 (14:37 -0700)

Merge branch 'jc/remove-treesame-parent-in-simplify-merges'

The --simplify-merges logic did not cull irrelevant parents from a
merge that is otherwise not interesting with respect to the paths
we are following.

This touches a fairly core part of the revision traversal
infrastructure; even though I think this change is correct, please
report immediately if you find any unintended side effect.

* jc/remove-treesame-parent-in-simplify-merges:
simplify-merges: drop merge from irrelevant side branch

Merge branch 'jk/checkout-attribute-lookup'Junio C Hamano Thu, 28 Mar 2013 21:37:46 +0000 (14:37 -0700)

Merge branch 'jk/checkout-attribute-lookup'

Codepath to stream blob object contents directly from the object
store to filesystem did not use the correct path to find conversion
filters when writing to temporary files.

* jk/checkout-attribute-lookup:
t2003: work around path mangling issue on Windows
entry: fix filter lookup
t2003: modernize style

Merge branch 'jk/difftool-dir-diff-edit-fix'Junio C Hamano Thu, 28 Mar 2013 21:37:22 +0000 (14:37 -0700)

Merge branch 'jk/difftool-dir-diff-edit-fix'

"git difftool --dir-diff" made symlinks to working tree files when
preparing a temporary directory structure, so that accidental edits
of these files in the difftool are reflected back to the working
tree, but the logic to decide when to do so was not quite right.

* jk/difftool-dir-diff-edit-fix:
difftool --dir-diff: symlink all files matching the working tree
difftool: avoid double slashes in symlink targets
git-difftool(1): fix formatting of --symlink description

Merge branch 'maint'Junio C Hamano Thu, 28 Mar 2013 21:34:55 +0000 (14:34 -0700)

Merge branch 'maint'

* maint:
git help config: s/insn/instruction/

Merge branch 'maint-1.8.1' into maintJunio C Hamano Thu, 28 Mar 2013 21:34:07 +0000 (14:34 -0700)

Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
git help config: s/insn/instruction/

git help config: s/insn/instruction/Matthias Krüger Wed, 27 Mar 2013 22:53:50 +0000 (23:53 +0100)

git help config: s/insn/instruction/

"insn" appears to be an in-code abbreviation and should not appear
in manual/help pages.

Signed-off-by: Matthias Krüger <matthias.krueger@famsik.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5520: use test_config to set/unset git config variable... Ramkumar Ramachandra Thu, 28 Mar 2013 12:40:19 +0000 (18:10 +0530)

t5520: use test_config to set/unset git config variables (leftover bits)

Configuration from test_config does not last beyond the end of the
current test assertion, making each test easier to think about in
isolation.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 27 Mar 2013 17:58:07 +0000 (10:58 -0700)

Merge branch 'maint'

* maint:
More fixes for 1.8.2.1
merge-tree: fix typo in merge-tree.c::unresolved
git-commit doc: describe use of multiple `-m` options
git-pull doc: fix grammo ("conflicts" is plural)

More fixes for 1.8.2.1Junio C Hamano Wed, 27 Mar 2013 17:57:57 +0000 (10:57 -0700)

More fixes for 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.8.1' into maintJunio C Hamano Wed, 27 Mar 2013 17:51:10 +0000 (10:51 -0700)

Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
merge-tree: fix typo in merge-tree.c::unresolved
git-commit doc: describe use of multiple `-m` options
git-pull doc: fix grammo ("conflicts" is plural)

merge-tree: fix typo in merge-tree.c::unresolvedJohn Keeping Wed, 27 Mar 2013 15:58:50 +0000 (15:58 +0000)

merge-tree: fix typo in merge-tree.c::unresolved

When calculating whether there is a d/f conflict, the calculation of
whether both sides are directories generates an incorrect references
mask because it does not use the loop index to set the correct bit.
Fix this typo.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-commit doc: describe use of multiple `-m` optionsChristian Helmuth Wed, 27 Mar 2013 14:19:35 +0000 (15:19 +0100)

git-commit doc: describe use of multiple `-m` options

The text is copied from Documentation/git-tag.txt.

Signed-off-by: Christian Helmuth <christian.helmuth@genode-labs.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-pull doc: fix grammo ("conflicts" is plural)Mihai Capotă Wed, 27 Mar 2013 11:04:51 +0000 (12:04 +0100)

git-pull doc: fix grammo ("conflicts" is plural)

Signed-off-by: Mihai Capotă <mihai@mihaic.ro>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' of git://git.bogomips.org/git-svnJunio C Hamano Wed, 27 Mar 2013 16:29:05 +0000 (09:29 -0700)

Merge branch 'master' of git://git.bogomips.org/git-svn

* 'master' of git://git.bogomips.org/git-svn:
git-svn: Support custom tunnel schemes instead of SSH only

Merge branch 'rs/archive-zip-raw-compression'Junio C Hamano Wed, 27 Mar 2013 16:28:53 +0000 (09:28 -0700)

Merge branch 'rs/archive-zip-raw-compression'

* rs/archive-zip-raw-compression:
archive-zip: use deflateInit2() to ask for raw compressed data

Merge branch 'ap/combine-diff-ignore-whitespace'Junio C Hamano Wed, 27 Mar 2013 16:28:50 +0000 (09:28 -0700)

Merge branch 'ap/combine-diff-ignore-whitespace'

Teach "diff --cc" output to honor options to ignore various forms
of whitespace changes.

* ap/combine-diff-ignore-whitespace:
Allow combined diff to ignore white-spaces

git-svn: Support custom tunnel schemes instead of SSH... Sebastian Schuberth Tue, 26 Mar 2013 21:24:38 +0000 (22:24 +0100)

git-svn: Support custom tunnel schemes instead of SSH only

This originates from an msysgit pull request, see:

https://github.com/msysgit/git/pull/58

Signed-off-by: Eric Wieser <wieser.eric@gmail.com>
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

More topics from the second batch for 1.8.3Junio C Hamano Tue, 26 Mar 2013 20:01:27 +0000 (13:01 -0700)

More topics from the second batch for 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/reflog-reverse-walk'Junio C Hamano Tue, 26 Mar 2013 20:15:56 +0000 (13:15 -0700)

Merge branch 'jc/reflog-reverse-walk'

An internal function used to implement "git checkout @{-1}" was
hard to use correctly.

* jc/reflog-reverse-walk:
refs.c: fix fread error handling
reflog: add for_each_reflog_ent_reverse() API
for_each_recent_reflog_ent(): simplify opening of a reflog file
for_each_reflog_ent(): extract a helper to process a single entry

Merge branch 'kb/p4merge'Junio C Hamano Tue, 26 Mar 2013 20:15:24 +0000 (13:15 -0700)

Merge branch 'kb/p4merge'

Adjust the order mergetools feeds the files to the p4merge backend
to match the p4 convention.

* kb/p4merge:
merge-one-file: force content conflict for "both sides added" case
git-merge-one-file: send "ERROR:" messages to stderr
git-merge-one-file: style cleanup
merge-one-file: remove stale comment
mergetools/p4merge: create a base if none available
mergetools/p4merge: swap LOCAL and REMOTE

Merge branch 'maint'Junio C Hamano Tue, 26 Mar 2013 20:14:45 +0000 (13:14 -0700)

Merge branch 'maint'

* maint:
More corrections for 1.8.2.1
Correct the docs about GIT_SSH.

More corrections for 1.8.2.1Junio C Hamano Tue, 26 Mar 2013 19:53:49 +0000 (12:53 -0700)

More corrections for 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.8.1' into maintJunio C Hamano Tue, 26 Mar 2013 20:14:11 +0000 (13:14 -0700)

Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
Correct the docs about GIT_SSH.

Merge branch 'we/submodule-update-prefix-output' into... Junio C Hamano Tue, 26 Mar 2013 19:44:26 +0000 (12:44 -0700)

Merge branch 'we/submodule-update-prefix-output' into maint

"git submodule update", when recursed into sub-submodules, did not
acccumulate the prefix paths.

* we/submodule-update-prefix-output:
submodule update: when using recursion, show full path

Merge branch 'jk/mailsplit-maildir-muttsort' into maintJunio C Hamano Tue, 26 Mar 2013 19:44:11 +0000 (12:44 -0700)

Merge branch 'jk/mailsplit-maildir-muttsort' into maint

Sort filenames read from the maildir/ in a way that is more likely
to sort messages in the order the writing MUA meant to, by sorting
numeric segment in numeric order and non-numeric segment in
alphabetical order.

* jk/mailsplit-maildir-muttsort:
mailsplit: sort maildir filenames more cleverly

Merge branch 'rs/zip-compresssed-size-with-export-subst... Junio C Hamano Tue, 26 Mar 2013 19:43:49 +0000 (12:43 -0700)

Merge branch 'rs/zip-compresssed-size-with-export-subst' into maint

When export-subst is used, "zip" output recorded incorrect
size of the file.

* rs/zip-compresssed-size-with-export-subst:
archive-zip: fix compressed size for stored export-subst files

Merge branch 'jk/utf-8-can-be-spelled-differently'... Junio C Hamano Tue, 26 Mar 2013 19:43:25 +0000 (12:43 -0700)

Merge branch 'jk/utf-8-can-be-spelled-differently' into maint

Some platforms and users spell UTF-8 differently; retry with the
most official "UTF-8" when the system does not understand the
user-supplied encoding name that are the common alternative
spellings of UTF-8.

* jk/utf-8-can-be-spelled-differently:
utf8: accept alternate spellings of UTF-8

Merge branch 'nd/branch-error-cases' into maintJunio C Hamano Tue, 26 Mar 2013 19:43:05 +0000 (12:43 -0700)

Merge branch 'nd/branch-error-cases' into maint

"git branch" had more cases where it did not bother to check
nonsense command line parameters.

* nd/branch-error-cases:
branch: segfault fixes and validation

Merge branch 'ap/maint-update-index-h-is-for-help'... Junio C Hamano Tue, 26 Mar 2013 19:42:42 +0000 (12:42 -0700)

Merge branch 'ap/maint-update-index-h-is-for-help' into maint

"git update-index -h" did not do the usual "-h(elp)" thing.

* ap/maint-update-index-h-is-for-help:
update-index: allow "-h" to also display options

Merge branch 'jc/perl-cat-blob' into maintJunio C Hamano Tue, 26 Mar 2013 19:42:24 +0000 (12:42 -0700)

Merge branch 'jc/perl-cat-blob' into maint

perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.

* jc/perl-cat-blob:
Git.pm: fix cat_blob crashes on large files

Merge branch 'ob/imap-send-ssl-verify' into maintJunio C Hamano Tue, 26 Mar 2013 19:41:59 +0000 (12:41 -0700)

Merge branch 'ob/imap-send-ssl-verify' into maint

Correctly connect to SSL/TLS sites that serve multiple hostnames on
a single IP by including Server Name Indication in the client-hello.

* ob/imap-send-ssl-verify:
imap-send: support Server Name Indication (RFC4366)

Merge branch 'nd/index-pack-l10n-buf-overflow' into... Junio C Hamano Tue, 26 Mar 2013 19:40:19 +0000 (12:40 -0700)

Merge branch 'nd/index-pack-l10n-buf-overflow' into maint

* nd/index-pack-l10n-buf-overflow:
index-pack: fix buffer overflow caused by translations

Merge branch 'jc/maint-push-refspec-default-doc' into... Junio C Hamano Tue, 26 Mar 2013 19:40:13 +0000 (12:40 -0700)

Merge branch 'jc/maint-push-refspec-default-doc' into maint

* jc/maint-push-refspec-default-doc:
Documentation/git-push: clarify the description of defaults

Merge branch 'wk/user-manual-literal-format' into maintJunio C Hamano Tue, 26 Mar 2013 19:40:11 +0000 (12:40 -0700)

Merge branch 'wk/user-manual-literal-format' into maint

* wk/user-manual-literal-format:
user-manual: Standardize backtick quoting

Merge branch 'gp/avoid-explicit-mention-of-dot-git... Junio C Hamano Tue, 26 Mar 2013 19:40:04 +0000 (12:40 -0700)

Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs' into maint

* gp/avoid-explicit-mention-of-dot-git-refs:
Fix ".git/refs" stragglers

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix... Junio C Hamano Tue, 26 Mar 2013 19:39:51 +0000 (12:39 -0700)

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix' into maint

In "git reflog expire", REACHABLE bit was not cleared from the
correct objects.

* jc/maint-reflog-expire-clean-mark-typofix:
reflog: fix typo in "reflog expire" clean-up codepath

Correct the docs about GIT_SSH.Dan Bornstein Thu, 21 Mar 2013 23:06:40 +0000 (23:06 +0000)

Correct the docs about GIT_SSH.

In particular, it can get called with four arguments if you happen to
be referring to a repo using the ssh:// scheme with a non-default port
number.

Signed-off-by: Dan Bornstein <danfuzz@milk.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Second wave of topics toward 1.8.3Junio C Hamano Mon, 25 Mar 2013 21:08:00 +0000 (14:08 -0700)

Second wave of topics toward 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/fully-peeled-packed-ref'Junio C Hamano Mon, 25 Mar 2013 21:01:07 +0000 (14:01 -0700)

Merge branch 'jk/fully-peeled-packed-ref'

Not that we do not actively encourage having annotated tags outside
refs/tags/ hierarchy, but they were not advertised correctly to the
ls-remote and fetch with recent version of Git.

* jk/fully-peeled-packed-ref:
pack-refs: add fully-peeled trait
pack-refs: write peeled entry for non-tags
use parse_object_or_die instead of die("bad object")
avoid segfaults on parse_object failure

Merge branch 'jk/fast-export-object-lookup'Junio C Hamano Mon, 25 Mar 2013 21:01:05 +0000 (14:01 -0700)

Merge branch 'jk/fast-export-object-lookup'

* jk/fast-export-object-lookup:
fast-export: do not load blob objects twice
fast-export: rename handle_object function

Merge branch 'jk/peel-ref'Junio C Hamano Mon, 25 Mar 2013 21:01:02 +0000 (14:01 -0700)

Merge branch 'jk/peel-ref'

Recent optimization broke shallow clones.

* jk/peel-ref:
upload-pack: load non-tip "want" objects from disk
upload-pack: make sure "want" objects are parsed
upload-pack: drop lookup-before-parse optimization

Merge branch 'lf/setup-prefix-pathspec'Junio C Hamano Mon, 25 Mar 2013 21:01:00 +0000 (14:01 -0700)

Merge branch 'lf/setup-prefix-pathspec'

"git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
instead the parser kept reading beyond the end of the string.

* lf/setup-prefix-pathspec:
setup.c: check that the pathspec magic ends with ")"
setup.c: stop prefix_pathspec() from looping past the end of string

Merge branch 'ph/tag-force-no-warn-on-creation'Junio C Hamano Mon, 25 Mar 2013 21:00:57 +0000 (14:00 -0700)

Merge branch 'ph/tag-force-no-warn-on-creation'

"git tag -f <tag>" always said "Updated tag '<tag>'" even when
creating a new tag (i.e. not overwriting nor updating).

* ph/tag-force-no-warn-on-creation:
tag: --force does not have to warn when creating tags

Merge branch 'mg/unsigned-time-t'Junio C Hamano Mon, 25 Mar 2013 21:00:56 +0000 (14:00 -0700)

Merge branch 'mg/unsigned-time-t'

A few workarounds for systems with unsigned time_t.

* mg/unsigned-time-t:
Fix time offset calculation in case of unsigned time_t
date.c: fix unsigned time_t comparison

Merge branch 'jk/suppress-clang-warning'Junio C Hamano Mon, 25 Mar 2013 21:00:54 +0000 (14:00 -0700)

Merge branch 'jk/suppress-clang-warning'

* jk/suppress-clang-warning:
fix clang -Wtautological-compare with unsigned enum

Merge branch 'pw/p4-symlinked-root'Junio C Hamano Mon, 25 Mar 2013 21:00:49 +0000 (14:00 -0700)

Merge branch 'pw/p4-symlinked-root'

"git p4" did not behave well when the path to the root of the P4
client was not its real path.

* pw/p4-symlinked-root:
git p4: avoid expanding client paths in chdir
git p4 test: should honor symlink in p4 client root
git p4 test: make sure P4CONFIG relative path works

Merge branch 'jk/empty-archive'Junio C Hamano Mon, 25 Mar 2013 21:00:48 +0000 (14:00 -0700)

Merge branch 'jk/empty-archive'

"git archive" reports a failure when asked to create an archive out
of an empty tree. It would be more intuitive to give an empty
archive back in such a case.

* jk/empty-archive:
archive: handle commits with an empty tree
test-lib: factor out $GIT_UNZIP setup

Merge branch 'ks/rfc2047-one-char-at-a-time'Junio C Hamano Mon, 25 Mar 2013 21:00:46 +0000 (14:00 -0700)

Merge branch 'ks/rfc2047-one-char-at-a-time'

When "format-patch" quoted a non-ascii strings on the header files,
it incorrectly applied rfc2047 and chopped a single character in
the middle of it.

* ks/rfc2047-one-char-at-a-time:
format-patch: RFC 2047 says multi-octet character may not be split

Merge branch 'jk/alias-in-bare'Junio C Hamano Mon, 25 Mar 2013 21:00:44 +0000 (14:00 -0700)

Merge branch 'jk/alias-in-bare'

An aliased command spawned from a bare repository that does not say
it is bare with "core.bare = yes" is treated as non-bare by mistake.

* jk/alias-in-bare:
setup: suppress implicit "." work-tree for bare repos
environment: add GIT_PREFIX to local_repo_env
cache.h: drop LOCAL_REPO_ENV_SIZE

Merge branch 'jc/push-follow-tag'Junio C Hamano Mon, 25 Mar 2013 21:00:40 +0000 (14:00 -0700)

Merge branch 'jc/push-follow-tag'

The new "--follow-tags" option tells "git push" to push relevant
annotated tags when pushing branches out.

* jc/push-follow-tag:
push: --follow-tags
commit.c: use clear_commit_marks_many() in in_merge_bases_many()
commit.c: add in_merge_bases_many()
commit.c: add clear_commit_marks_many()

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix'Junio C Hamano Mon, 25 Mar 2013 21:00:39 +0000 (14:00 -0700)

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix'

In "git reflog expire", REACHABLE bit was not cleared from the
correct objects.

* jc/maint-reflog-expire-clean-mark-typofix:
reflog: fix typo in "reflog expire" clean-up codepath

Merge branch 'ap/maint-diff-rename-avoid-overlap'Junio C Hamano Mon, 25 Mar 2013 21:00:37 +0000 (14:00 -0700)

Merge branch 'ap/maint-diff-rename-avoid-overlap'

The logic used by "git diff -M --stat" to shorten the names of
files before and after a rename did not work correctly when the
common prefix and suffix between the two filenames overlapped.

* ap/maint-diff-rename-avoid-overlap:
tests: make sure rename pretty print works
diff: prevent pprint_rename from underrunning input
diff: Fix rename pretty-print when suffix and prefix overlap

Merge branch 'jl/submodule-deinit'Junio C Hamano Mon, 25 Mar 2013 21:00:29 +0000 (14:00 -0700)

Merge branch 'jl/submodule-deinit'

There was no Porcelain way to say "I no longer am interested in
this submodule", once you express your interest in a submodule with
"submodule init". "submodule deinit" is the way to do so.

* jl/submodule-deinit:
submodule: add 'deinit' command

Merge branch 'jc/describe'Junio C Hamano Mon, 25 Mar 2013 21:00:23 +0000 (14:00 -0700)

Merge branch 'jc/describe'

The "--match=<pattern>" option of "git describe", when used with
"--all" to allow refs that are not annotated tags to be used as a
base of description, did not restrict the output from the command
to those that match the given pattern.

We may want to have a looser matching that does not restrict to tags,
but that can be done as a follow-up topic; this step is purely a bugfix.

* jc/describe:
describe: --match=<pattern> must limit the refs even when used with --all

Merge branch 'pe/pull-rebase-v-q'Junio C Hamano Mon, 25 Mar 2013 20:58:34 +0000 (13:58 -0700)

Merge branch 'pe/pull-rebase-v-q'

Teach "git pull --rebase" to pass "-v/-q" command line options to
underlying "git rebase".

* pe/pull-rebase-v-q:
pull: Apply -q and -v options to rebase mode as well

Merge branch 'maint'Junio C Hamano Mon, 25 Mar 2013 20:52:25 +0000 (13:52 -0700)

Merge branch 'maint'

* maint:
Start preparing for 1.8.2.1
transport.c: help gcc 4.6.3 users by squelching compiler warning

Start preparing for 1.8.2.1Junio C Hamano Mon, 25 Mar 2013 20:51:13 +0000 (13:51 -0700)

Start preparing for 1.8.2.1

... at the same time, preparation for 1.8.1.6 also has started ;-)

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/graph-c-expose-symbols-for-cgit' into... Junio C Hamano Mon, 25 Mar 2013 20:48:39 +0000 (13:48 -0700)

Merge branch 'jk/graph-c-expose-symbols-for-cgit' into maint

In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.

* jk/graph-c-expose-symbols-for-cgit:
Revert "graph.c: mark private file-scope symbols as static"

Merge branch 'maint-1.8.1' into maintJunio C Hamano Mon, 25 Mar 2013 20:46:42 +0000 (13:46 -0700)

Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
bundle: Add colons to list headings in "verify"
bundle: Fix "verify" output if history is complete
Documentation: filter-branch env-filter example
git-filter-branch.txt: clarify ident variables usage
git-compat-util.h: Provide missing netdb.h definitions
describe: Document --match pattern format
Documentation/githooks: Explain pre-rebase parameters
update-index: list supported idx versions and their features
diff-options: unconfuse description of --color
read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
index-format.txt: mention of v4 is missing in some places

Merge branch 'lf/bundle-verify-list-prereqs' into maint... Junio C Hamano Mon, 25 Mar 2013 20:46:02 +0000 (13:46 -0700)

Merge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1

"git bundle verify" did not say "records a complete history" for a
bundle that does not have any prerequisites.

* lf/bundle-verify-list-prereqs:
bundle: Add colons to list headings in "verify"
bundle: Fix "verify" output if history is complete

Merge branch 'tk/doc-filter-branch' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:45:53 +0000 (13:45 -0700)

Merge branch 'tk/doc-filter-branch' into maint-1.8.1

Add an example use of "--env-filter" in "filter-branch"
documentation.

* tk/doc-filter-branch:
Documentation: filter-branch env-filter example
git-filter-branch.txt: clarify ident variables usage

Merge branch 'dm/ni-maxhost-may-be-missing' into maint... Junio C Hamano Mon, 25 Mar 2013 20:45:42 +0000 (13:45 -0700)

Merge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1

Some sources failed to compile on systems that lack NI_MAXHOST in
their system header.

* dm/ni-maxhost-may-be-missing:
git-compat-util.h: Provide missing netdb.h definitions

Merge branch 'gp/describe-match-uses-glob-pattern'... Junio C Hamano Mon, 25 Mar 2013 20:45:33 +0000 (13:45 -0700)

Merge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1

The "--match=<pattern>" argument "git describe" takes uses glob
pattern but it wasn't obvious from the documentation.

* gp/describe-match-uses-glob-pattern:
describe: Document --match pattern format

Merge branch 'nd/doc-index-format' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:45:26 +0000 (13:45 -0700)

Merge branch 'nd/doc-index-format' into maint-1.8.1

The v4 index format was not documented.

* nd/doc-index-format:
update-index: list supported idx versions and their features
read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
index-format.txt: mention of v4 is missing in some places

Merge branch 'wk/doc-pre-rebase' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:45:14 +0000 (13:45 -0700)

Merge branch 'wk/doc-pre-rebase' into maint-1.8.1

The arguments given to pre-rebase hook were not documented.

* wk/doc-pre-rebase:
Documentation/githooks: Explain pre-rebase parameters

Merge branch 'jc/color-diff-doc' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:44:53 +0000 (13:44 -0700)

Merge branch 'jc/color-diff-doc' into maint-1.8.1

The "--color=<when>" argument to the commands in the diff family
was described poorly.

* jc/color-diff-doc:
diff-options: unconfuse description of --color

merge-one-file: force content conflict for "both sides... Junio C Hamano Mon, 25 Mar 2013 17:05:13 +0000 (10:05 -0700)

merge-one-file: force content conflict for "both sides added" case

Historically, we tried to be lenient to "both sides added, slightly
differently" case and as long as the files can be merged using a
made-up common ancestor cleanly, since f7d24bbefb06 (merge with
/dev/null as base, instead of punting O==empty case, 2005-11-07).

This was later further refined to use a better made-up common file
with fd66dbf5297a (merge-one-file: use empty- or common-base
condintionally in two-stage merge., 2005-11-10), but the spirit has
been the same.

But the original fix in f7d24bbefb06 to avoid punting on "both sides
added" case had a code to unconditionally error out the merge. When
this triggers, even though the content-level merge can be done
cleanly, we end up not saying "content conflict" in the message, but
still issue the error message, showing "ERROR: in <pathname>".

Move that "always fail for add/add conflict" logic a bit higher to
fix this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

transport.c: help gcc 4.6.3 users by squelching compile... Junio C Hamano Mon, 25 Mar 2013 19:51:50 +0000 (12:51 -0700)

transport.c: help gcc 4.6.3 users by squelching compiler warning

To a human reader, it is quite obvious that cmp is assigned before
it is used, but gcc 4.6.3 that ships with Ubuntu 12.04 is among
those that do not get this right.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-merge-one-file: send "ERROR:" messages to stderrKevin Bracey Sun, 24 Mar 2013 12:26:24 +0000 (14:26 +0200)

git-merge-one-file: send "ERROR:" messages to stderr

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-merge-one-file: style cleanupKevin Bracey Sun, 24 Mar 2013 12:26:23 +0000 (14:26 +0200)

git-merge-one-file: style cleanup

Update style to match Documentation/CodingGuidelines.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-one-file: remove stale commentJunio C Hamano Mon, 25 Mar 2013 17:48:24 +0000 (10:48 -0700)

merge-one-file: remove stale comment

The "funny filename" comment was from b539c5e8fbd3 (git-merge-one:
new merge world order., 2005-12-07) where the removed code just
before that new comment ended with:

merge "$4" "$orig" "$src2"

(yes, we used to use "merge" program from the RCS suite). The
comment refers to one of the bad side effect the old code used to
have and warns against such a practice, i.e. it was talking about
the code that no longer existed.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7600: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:12 +0000 (22:06 +0100)

t7600: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Tests are modified to assume default configuration at entry,
and to reset the modified configuration variables at the end.

Test 'merge log message' was relying on the presence of option `--no-ff`
in the configuration. With the option, git show -s --pretty=format:%b HEAD
produces an empty line and without the option, it produces an empty file.
The test is modified to check with and without `--no-ff` option.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7502: remove clear_configYann Droneaud Sun, 24 Mar 2013 21:06:14 +0000 (22:06 +0100)

t7502: remove clear_config

Using test_config ensure the configuration variable are removed
at the end of the test, there's no need to remove variable
at the beginning of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7502: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:10 +0000 (22:06 +0100)

t7502: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9500: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:13 +0000 (22:06 +0100)

t9500: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7508: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:11 +0000 (22:06 +0100)

t7508: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7500: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:09 +0000 (22:06 +0100)

t7500: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5541: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:08 +0000 (22:06 +0100)

t5541: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5520: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:07 +0000 (22:06 +0100)

t5520: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4202: use test_config/test_unconfig to set/unset git... Yann Droneaud Sun, 24 Mar 2013 21:06:06 +0000 (22:06 +0100)

t4202: use test_config/test_unconfig to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Additionally, instead of
git config <key> ""
or
git config --unset <key>
uses
test_unconfig <key>
The latter doesn't failed if <key> is not defined.

Tests are modified to assume correct (default) configuration at entry,
and to reset the modified configuration variables at the end.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4034: use test_config/test_unconfig to set/unset git... Yann Droneaud Sun, 24 Mar 2013 21:06:05 +0000 (22:06 +0100)

t4034: use test_config/test_unconfig to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Additionally, instead of
git config <key> ""
or
git config --unset <key>
uses
test_unconfig <key>
The latter doesn't failed if <key> is not defined.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4304: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:04 +0000 (22:06 +0100)

t4304: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Tests are modified to assume correct (default) configuration at entry,
and to reset the modified configuration variables at the end.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3400: use test_config to set/unset git config variablesYann Droneaud Sun, 24 Mar 2013 21:06:03 +0000 (22:06 +0100)

t3400: use test_config to set/unset git config variables

Instead of using construct such as:
test_when_finished "git config --unset <key>"
git config <key> <value>
uses
test_config <key> <value>
The latter takes care of removing <key> at the end of the test.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs.c: fix fread error handlingJohn Keeping Sat, 23 Mar 2013 17:16:46 +0000 (17:16 +0000)

refs.c: fix fread error handling

fread returns the number of items read, with no special error return.

Commit 98f85ff (reflog: add for_each_reflog_ent_reverse() API -
2013-03-08) introduced a call to fread which checks for an error with
"nread < 0" which is tautological since nread is unsigned. The correct
check in this case (which tries to read a single item) is "nread != 1".

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix revision walk for commits with the same datesKacper Kornet Fri, 22 Mar 2013 18:38:19 +0000 (19:38 +0100)

Fix revision walk for commits with the same dates

Logic in still_interesting function allows to stop the commits
traversing if the oldest processed commit is not older then the
youngest commit on the list to process and the list contains only
commits marked as not interesting ones. It can be premature when dealing
with a set of coequal commits. For example git rev-list A^! --not B
provides wrong answer if all commits in the range A..B had the same
commit time and there are more then 7 of them.

To fix this problem the relevant part of the logic in still_interesting
is changed to: the walk can be stopped if the oldest processed commit is
younger then the youngest commit on the list to processed.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: merging a tag is a special caseJunio C Hamano Thu, 21 Mar 2013 21:57:48 +0000 (22:57 +0100)

Documentation: merging a tag is a special case

When asking Git to merge a tag (such as a signed tag or annotated tag),
it will always create a merge commit even if fast-forward was possible.
It's like having --no-ff present on the command line.

It's a difference from the default behavior described in git-merge.txt.
It should be documented as an exception of "FAST-FORWARD MERGE" section
and "--ff" option description.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>