OSDN Git Service

git-core/git.git
11 years agot3200: test --set-upstream-to with bogus refs
Jeff King [Tue, 2 Apr 2013 19:02:53 +0000 (15:02 -0400)]
t3200: test --set-upstream-to with bogus refs

These tests pass with the current code, but let's make sure
we don't accidentally break the behavior in the future.

Note that our tests expect failure when we try to set the
upstream to or from a missing branch. Technically we are
just munging config here, so we do not need the refs to
exist. But seeing that they do exist is a good check that
the user has not made a typo.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.3
Junio C Hamano [Tue, 2 Apr 2013 22:14:26 +0000 (15:14 -0700)]
Update draft release notes to 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jk/config-with-empty-section'
Junio C Hamano [Tue, 2 Apr 2013 22:10:53 +0000 (15:10 -0700)]
Merge branch 'jk/config-with-empty-section'

Document that "git config --unset" does not remove an empty section
head after removing the last variable in a section, and adding a
new variable does not try to reuse a leftover empty section head.

* jk/config-with-empty-section:
  t1300: document some aesthetic failures of the config editor

11 years agoMerge branch 'js/log-gpg'
Junio C Hamano [Tue, 2 Apr 2013 22:10:49 +0000 (15:10 -0700)]
Merge branch 'js/log-gpg'

Teach "show/log" honor gpg.program configuration just like other
parts of the code that use GnuPG.

* js/log-gpg:
  log: read gpg settings for signed commit verification

11 years agoMerge branch 'tr/log-tree-optim'
Junio C Hamano [Tue, 2 Apr 2013 22:10:46 +0000 (15:10 -0700)]
Merge branch 'tr/log-tree-optim'

Optimize "log" that shows the difference between the parent and the
child.

* tr/log-tree-optim:
  Avoid loading commits twice in log with diffs

11 years agoMerge branch 'tb/cygwin-shared-repository'
Junio C Hamano [Tue, 2 Apr 2013 22:09:54 +0000 (15:09 -0700)]
Merge branch 'tb/cygwin-shared-repository'

Cygwin port has a faster-but-lying lstat(2) emulation whose
incorrectness does not matter in practice except for a few
codepaths, and setting permission bits to directories is a codepath
that needs to use a more correct one.

* tb/cygwin-shared-repository:
  Make core.sharedRepository work under cygwin 1.7

11 years agoMerge branch 'sw/safe-create-leading-dir-race'
Junio C Hamano [Tue, 2 Apr 2013 22:09:48 +0000 (15:09 -0700)]
Merge branch 'sw/safe-create-leading-dir-race'

* sw/safe-create-leading-dir-race:
  safe_create_leading_directories: fix race that could give a false negative

11 years agoMerge branch 'bk/document-commit-tree-S'
Junio C Hamano [Tue, 2 Apr 2013 22:09:43 +0000 (15:09 -0700)]
Merge branch 'bk/document-commit-tree-S'

* bk/document-commit-tree-S:
  commit-tree: document -S option consistently

11 years agoMerge branch 'jk/no-more-self-assignment'
Junio C Hamano [Tue, 2 Apr 2013 22:09:35 +0000 (15:09 -0700)]
Merge branch 'jk/no-more-self-assignment'

This started as a topic to reduce "type var = var" self assignment
tricks that were used to squelch "variable used uninitialized perhaps?"
warning from some compilers, but resulted in rewriting logic with
a version that is simpler and easier to understand for humans.

* jk/no-more-self-assignment:
  match-trees: simplify score_trees() using tree_entry()
  submodule: clarify logic in show_submodule_summary

11 years agoUpdate draft release notes to 1.8.3
Junio C Hamano [Mon, 1 Apr 2013 16:13:31 +0000 (09:13 -0700)]
Update draft release notes to 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 1 Apr 2013 16:23:30 +0000 (09:23 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.8.2.1

11 years agoUpdate draft release notes to 1.8.2.1
Junio C Hamano [Mon, 1 Apr 2013 16:23:05 +0000 (09:23 -0700)]
Update draft release notes to 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'ap/maint-diff-rename-avoid-overlap' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:46 +0000 (09:19 -0700)]
Merge branch 'ap/maint-diff-rename-avoid-overlap' into maint

* 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

11 years agoMerge branch 'rr/tests-dedup-test-config' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:41 +0000 (09:19 -0700)]
Merge branch 'rr/tests-dedup-test-config' into maint

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

11 years agoMerge branch 'yd/doc-is-in-asciidoc' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:40 +0000 (09:19 -0700)]
Merge branch 'yd/doc-is-in-asciidoc' into maint

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

11 years agoMerge branch 'yd/doc-merge-annotated-tag' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:37 +0000 (09:19 -0700)]
Merge branch 'yd/doc-merge-annotated-tag' into maint

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

11 years agoMerge branch 'tb/document-status-u-tradeoff' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:30 +0000 (09:19 -0700)]
Merge branch 'tb/document-status-u-tradeoff' into maint

* tb/document-status-u-tradeoff:
  status: advise to consider use of -u when read_directory takes too long
  git status: document trade-offs in choosing parameters to the -u option

11 years agoMerge branch 'da/downcase-u-in-usage' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:04 +0000 (09:19 -0700)]
Merge branch 'da/downcase-u-in-usage' into maint

* da/downcase-u-in-usage:
  contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
  contrib/examples/git-remote.perl: use a lowercase "usage:" string
  tests: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  Documentation/user-manual.txt: use a lowercase "usage:" string
  templates/hooks--update.sample: use a lowercase "usage:" string
  contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
  contrib/examples: use a lowercase "usage:" string
  contrib/fast-import/import-zips.py: use spaces instead of tabs
  contrib/fast-import/import-zips.py: fix broken error message
  contrib/fast-import: use a lowercase "usage:" string
  contrib/credential: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsexportcommit: use a lowercase "usage:" string
  git-archimport: use a lowercase "usage:" string
  git-merge-one-file: use a lowercase "usage:" string
  git-relink: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  git-sh-setup: use a lowercase "usage:" string

11 years agoMerge branch 'nd/index-pack-threaded-fixes'
Junio C Hamano [Mon, 1 Apr 2013 16:06:23 +0000 (09:06 -0700)]
Merge branch 'nd/index-pack-threaded-fixes'

"index-pack --verify-stat" used a few counters outside protection
of mutex, possibly showing incorrect numbers.

* nd/index-pack-threaded-fixes:
  index-pack: guard nr_resolved_deltas reads by lock
  index-pack: protect deepest_delta in multithread code

11 years agoMerge branch 'jk/index-pack-correct-depth-fix'
Junio C Hamano [Mon, 1 Apr 2013 16:06:19 +0000 (09:06 -0700)]
Merge branch 'jk/index-pack-correct-depth-fix'

"index-pack --fix-thin" used uninitialize value to compute delta
depths of objects it appends to the resulting pack.

* jk/index-pack-correct-depth-fix:
  index-pack: always zero-initialize object_entry list

11 years agoMerge branch 'jn/push-tests'
Junio C Hamano [Mon, 1 Apr 2013 16:06:15 +0000 (09:06 -0700)]
Merge branch 'jn/push-tests'

Update t5516 with style fixes.

* jn/push-tests:
  push test: rely on &&-chaining instead of 'if bad; then echo Oops; fi'
  push test: simplify check of push result
  push test: use test_config when appropriate

11 years agoMerge branch 'nd/branch-show-rebase-bisect-state'
Junio C Hamano [Mon, 1 Apr 2013 16:05:45 +0000 (09:05 -0700)]
Merge branch 'nd/branch-show-rebase-bisect-state'

Add a bit more information to "git status" during a rebase/bisect
session.

* nd/branch-show-rebase-bisect-state:
  status, branch: fix the misleading "bisecting" message
  branch: show more information when HEAD is detached
  status: show more info than "currently not on any branch"
  wt-status: move wt_status_get_state() out to wt_status_print()
  wt-status: split wt_status_state parsing function out
  wt-status: move strbuf into read_and_strip_branch()

11 years agoMerge branch 'jc/nobody-sets-src-peer-ref'
Junio C Hamano [Mon, 1 Apr 2013 16:05:35 +0000 (09:05 -0700)]
Merge branch 'jc/nobody-sets-src-peer-ref'

Dead code removal.

* jc/nobody-sets-src-peer-ref:
  match_push_refs(): nobody sets src->peer_ref anymore

11 years agoMerge branch 'jc/remove-export-from-config-mak-in'
Junio C Hamano [Mon, 1 Apr 2013 16:00:01 +0000 (09:00 -0700)]
Merge branch 'jc/remove-export-from-config-mak-in'

Stop exporting mandir that used to be exported only when
config.mak.autogen was used.  It would have broken installation of
manpages (but not other documentation formats).

* jc/remove-export-from-config-mak-in:
  Fix `make install` when configured with autoconf
  Makefile: do not export mandir/htmldir/infodir
  config.mak.in: remove unused definitions

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge branch 'sr/am-show-final-message-in-applying-indicator'
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

11 years agoMerge 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

11 years agoMerge 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

11 years agocat-file: Fix an gcc -Wuninitialized warning
Ramsay 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>
11 years agofast-import: Fix an gcc -Wuninitialized warning
Ramsay 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>
11 years agot1300: document some aesthetic failures of the config editor
Jeff King [Fri, 29 Mar 2013 19:51:55 +0000 (15:51 -0400)]
t1300: document some aesthetic failures of the config editor

The config-editing code used by "git config var value" is
built around the regular config callback parser, whose only
triggerable item is an actual key. As a result, it does not
know anything about section headers, which can result in
unnecessarily ugly output:

  1. When we delete the last key in a section, we should be
     able to delete the section header.

  2. When we add a key into a section, we should be able to
     reuse the same section header, even if that section did
     not have any keys in it already.

Unfortunately, fixing these is not trivial with the current
code. It would involve the config parser recording and
passing back information on each item it finds, including
headers, keys, and even comments (or even better, generating
an actual in-memory parse-tree).

Since these behaviors do not cause any functional problems
(i.e., the resulting config parses as expected, it is just
uglier than one would like), fixing them can wait until
somebody feels like substantially refactoring the parsing
code. In the meantime, let's document them as known issues
with some tests.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge 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

11 years agoMerge branch 'kk/revwalk-slop-too-many-commit-within-a-second'
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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge branch 'jc/remove-treesame-parent-in-simplify-merges'
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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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/

11 years agoMerge branch 'maint-1.8.1' into maint
Junio 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/

11 years agogit 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>
11 years agot5520: use test_config to set/unset git config variables (leftover bits)
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>
11 years agoAvoid loading commits twice in log with diffs
Thomas Rast [Thu, 28 Mar 2013 08:19:34 +0000 (09:19 +0100)]
Avoid loading commits twice in log with diffs

If you run a log with diffs (such as -p, --raw, --stat etc.) the
current code ends up loading many objects twice.  For example, for
'log -3000 -p' my instrumentation said the objects loaded more than
once are distributed as follows:

  2008 blob
  2103 commit
  2678 tree

Fixing blobs and trees will be harder, because those are really used
within the diff engine and need some form of caching.

However, fixing the commits is easy at least at the band-aid level.
They are triggered by log_tree_diff() invoking diff_tree_sha1() on
commits, which duly loads the specified object to dereference it to a
tree.  Since log_tree_diff() knows that it works with commits and they
must have trees, we can simply pass through the trees.

We add some parse_commit() calls.  The ones for the parents are
required; we do not know at this stage if they have been looked at.
The one for the commit itself is pure paranoia, but has about the same
cost as an assertion on commit->object.parsed.

This has a quite dramatic effect on log --raw, though only a
negligible impact on log -p:

Test                      this tree         HEAD
--------------------------------------------------------------------
4000.2: log --raw -3000   0.50(0.43+0.06)   0.54(0.46+0.06) +7.0%***
4000.3: log -p -3000      2.34(2.20+0.13)   2.37(2.22+0.13) +1.2%
--------------------------------------------------------------------
Significance hints:  '.' 0.1  '*' 0.05  '**' 0.01  '***' 0.001

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agolog: read gpg settings for signed commit verification
Jacob Sarvis [Wed, 27 Mar 2013 15:13:39 +0000 (10:13 -0500)]
log: read gpg settings for signed commit verification

"show --show-signature" and "log --show-signature" do not read the
gpg.program setting from git config, even though, commit signing,
tag signing, and tag verification honor it.

Signed-off-by: Jacob Sarvis <jsarvis@openspan.com>
Signed-off-by: Hans Brigman <hbrigman@openspan.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge 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)

11 years agoMore fixes for 1.8.2.1
Junio 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>
11 years agoMerge branch 'maint-1.8.1' into maint
Junio 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)

11 years agomerge-tree: fix typo in merge-tree.c::unresolved
John 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>
11 years agogit-commit doc: describe use of multiple `-m` options
Christian 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>
11 years agogit-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>
11 years agoMerge branch 'master' of git://git.bogomips.org/git-svn
Junio 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

11 years agoMerge 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

11 years agoMerge 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

11 years agogit-svn: Support custom tunnel schemes instead of SSH only
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>
11 years agosafe_create_leading_directories: fix race that could give a false negative
Steven Walter [Sun, 17 Mar 2013 14:09:27 +0000 (10:09 -0400)]
safe_create_leading_directories: fix race that could give a false negative

If two processes are racing to create the same directory tree, they
will both see that the directory doesn't exist, both try to mkdir(),
and one of them will fail.  This is okay, as we only care that the
directory gets created.  So, we add a check for EEXIST from mkdir,
and continue when the directory exists, taking the same codepath as
the case where the earlier stat() succeeds and finds a directory.

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMore topics from the second batch for 1.8.3
Junio 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>
11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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.

11 years agoMore corrections for 1.8.2.1
Junio 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>
11 years agoMerge branch 'maint-1.8.1' into maint
Junio 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.

11 years agoMerge branch 'we/submodule-update-prefix-output' into maint
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

11 years agoMerge branch 'jk/mailsplit-maildir-muttsort' into maint
Junio 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

11 years agoMerge branch 'rs/zip-compresssed-size-with-export-subst' into maint
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

11 years agoMerge branch 'jk/utf-8-can-be-spelled-differently' into maint
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

11 years agoMerge branch 'nd/branch-error-cases' into maint
Junio 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

11 years agoMerge branch 'ap/maint-update-index-h-is-for-help' into maint
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

11 years agoMerge branch 'jc/perl-cat-blob' into maint
Junio 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

11 years agoMerge branch 'ob/imap-send-ssl-verify' into maint
Junio 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)

11 years agoMerge branch 'nd/index-pack-l10n-buf-overflow' into maint
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

11 years agoMerge branch 'jc/maint-push-refspec-default-doc' into maint
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

11 years agoMerge branch 'wk/user-manual-literal-format' into maint
Junio 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

11 years agoMerge branch 'gp/avoid-explicit-mention-of-dot-git-refs' into maint
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

11 years agoMerge branch 'jc/maint-reflog-expire-clean-mark-typofix' into maint
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

11 years agoCorrect 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>
11 years agocommit-tree: document -S option consistently
Brad King [Mon, 25 Mar 2013 21:00:07 +0000 (17:00 -0400)]
commit-tree: document -S option consistently

Commit ba3c69a9 (commit: teach --gpg-sign option, 2011-10-05) added the
-S option but documented it in the command usage without indicating that
the value is optional and forgot to mention it in the manpage.  Later
commit 098bbdc3 (Add -S, --gpg-sign option to manpage of "git commit",
2012-10-21) documented the option in the porcelain manpage.

Use wording from the porcelain manpage to document the option in the
plumbing manpage.  Also update the commit-tree usage summary to indicate
that the -S value is optional to be consistent with the manpage and with
the implementation.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMake core.sharedRepository work under cygwin 1.7
Torsten Bögershausen [Sat, 23 Mar 2013 12:40:29 +0000 (13:40 +0100)]
Make core.sharedRepository work under cygwin 1.7

When core.sharedRepository is used, set_shared_perm() in path.c
needs lstat() to return the correct POSIX permissions.

The default for cygwin is core.ignoreCygwinFSTricks = false, which
means that the fast implementation in do_stat() is used instead of
lstat().

lstat() under cygwin uses the Windows security model to implement
POSIX-like permissions.  The user, group or everyone bits can be set
individually.

do_stat() simplifes the file permission bits, and may return a wrong
value.  The read-only attribute of a file is used to calculate the
permissions, resulting in either rw-r--r-- or r--r--r--

One effect of the simplified do_stat() is that t1301 fails.

Add a function cygwin_get_st_mode_bits() which returns the POSIX
permissions.  When not compiling for cygwin, true_mode_bits() in
path.c is used.

Side note:

t1301 passes under cygwin 1.5.

The "user write" bit is synchronized with the "read only" attribute
of a file:

    $ chmod 444 x
    $ attrib x
    A    R     C:\temp\pt\x

    cygwin 1.7 would show
    A          C:\temp\pt\x

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSecond wave of topics toward 1.8.3
Junio 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>
11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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()

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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

11 years agoMerge 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