git
8 years agoMerge branch 'sg/completion-no-column'
Junio C Hamano [Mon, 21 Dec 2015 18:59:06 +0000 (10:59 -0800)] 
Merge branch 'sg/completion-no-column'

The completion script (in contrib/) used to list "git column"
(which is not an end-user facing command) as one of the choices

* sg/completion-no-column:
  completion: remove 'git column' from porcelain commands

8 years agoMerge branch 'mc/push-recurse-submodules-config'
Junio C Hamano [Mon, 21 Dec 2015 18:59:05 +0000 (10:59 -0800)] 
Merge branch 'mc/push-recurse-submodules-config'

Add new config to avoid typing "--recurse-submodules" on each push.

* mc/push-recurse-submodules-config:
  push: follow the "last one wins" convention for --recurse-submodules
  push: test that --recurse-submodules on command line overrides config
  push: add recurseSubmodules config option

8 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Mon, 21 Dec 2015 16:56:16 +0000 (08:56 -0800)] 
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: sv.po: Update Swedish translation (311t)
  gitk: Let .bleft.mid widgets 'breathe'
  gitk: Match ttk fonts to gitk fonts
  gitk: Update revision date in Japanese PO file
  gitk: Update "Language:" header
  gitk: Improve translation message
  gitk: Remove unused line
  gitk: Update year
  gitk: Change last translator line
  gitk: Update fuzzy messages
  gitk: Update Japanese translation
  gitk: Fix translation around copyright sign
  gitk: Update Japanese translation
  gitk: Fix wrong translation
  gitk: Translate Japanese catalog
  gitk: Translate more to Japanese catalog
  gitk: Update Japanese message catalog
  gitk: Re-sync line number in Japanese message catalogue
  gitk: Color name update

8 years agoMerge branch 'ja.po' of https://github.com/qykth-git/gitk
Paul Mackerras [Sat, 19 Dec 2015 02:33:16 +0000 (13:33 +1100)] 
Merge branch 'ja.po' of https://github.com/qykth-git/gitk

8 years agoMerge branch 'color-fix' of https://github.com/qykth-git/gitk
Paul Mackerras [Sat, 19 Dec 2015 02:29:35 +0000 (13:29 +1100)] 
Merge branch 'color-fix' of https://github.com/qykth-git/gitk

8 years agoMerge branch 'fr/rebase-i-continue-preserve-options'
Junio C Hamano [Wed, 16 Dec 2015 22:42:52 +0000 (14:42 -0800)] 
Merge branch 'fr/rebase-i-continue-preserve-options'

"git rebase -i" started with merge strategy options did not
propagate them upon "git rebase --continue".

* fr/rebase-i-continue-preserve-options:
  rebase -i: remember merge options beyond continue actions

8 years agoMerge branch 'maint'
Junio C Hamano [Wed, 16 Dec 2015 22:40:30 +0000 (14:40 -0800)] 
Merge branch 'maint'

* maint:
  credential-store: don't pass strerror to die_errno()

8 years agoMerge branch 'sg/lock-file-commit-error' into maint
Junio C Hamano [Wed, 16 Dec 2015 18:27:22 +0000 (10:27 -0800)] 
Merge branch 'sg/lock-file-commit-error' into maint

* sg/lock-file-commit-error:
  credential-store: don't pass strerror to die_errno()

8 years agocredential-store: don't pass strerror to die_errno()
SZEDER Gábor [Wed, 16 Dec 2015 11:22:55 +0000 (12:22 +0100)] 
credential-store: don't pass strerror to die_errno()

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoGit 2.7-rc1 v2.7.0-rc1
Junio C Hamano [Tue, 15 Dec 2015 17:47:11 +0000 (09:47 -0800)] 
Git 2.7-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with maint
Junio C Hamano [Tue, 15 Dec 2015 17:45:06 +0000 (09:45 -0800)] 
Sync with maint

8 years agoUpdate draft release notes to 2.6.5
Junio C Hamano [Tue, 15 Dec 2015 17:43:01 +0000 (09:43 -0800)] 
Update draft release notes to 2.6.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'dt/fsck-verify-pack-error' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:42:16 +0000 (09:42 -0800)] 
Merge branch 'dt/fsck-verify-pack-error' into maint

The exit code of git-fsck didnot reflect some types of errors found
in packed objects, which has been corrected.

* dt/fsck-verify-pack-error:
  verify_pack: do not ignore return value of verification function

8 years agoMerge branch 'ep/ident-with-getaddrinfo' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:42:01 +0000 (09:42 -0800)] 
Merge branch 'ep/ident-with-getaddrinfo' into maint

A fix-up for recent topic.

* ep/ident-with-getaddrinfo:
  ident: fix undefined variable when NO_IPV6 is set
  ident.c: add support for IPv6

8 years agoMerge branch 'ls/p4-keep-empty-commits' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:34:18 +0000 (09:34 -0800)] 
Merge branch 'ls/p4-keep-empty-commits' into maint

"git p4" used to import Perforce CLs that touch only paths outside
the client spec as empty commits.  It has been corrected to ignore
them instead, with a new configuration git-p4.keepEmptyCommits as a
backward compatibility knob.

* ls/p4-keep-empty-commits:
  git-p4: add option to keep empty commits

8 years agoMerge branch 'jk/send-email-complete-aliases'
Junio C Hamano [Tue, 15 Dec 2015 17:33:19 +0000 (09:33 -0800)] 
Merge branch 'jk/send-email-complete-aliases'

A fix-up for recent topic.

* jk/send-email-complete-aliases:
  completion: fix completing unstuck email alias arguments

8 years agoMerge branch 'ep/ident-with-getaddrinfo'
Junio C Hamano [Tue, 15 Dec 2015 17:33:19 +0000 (09:33 -0800)] 
Merge branch 'ep/ident-with-getaddrinfo'

A fix-up for recent topic.

* ep/ident-with-getaddrinfo:
  ident: fix undefined variable when NO_IPV6 is set

8 years agoMerge branch 'jk/prune-mtime' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:27:11 +0000 (09:27 -0800)] 
Merge branch 'jk/prune-mtime' into maint

The helper used to iterate over loose object directories to prune
stale objects did not closedir() immediately when it is done with a
directory--a callback such as the one used for "git prune" may want
to do rmdir(), but it would fail on open directory on platforms
such as WinXP.

* jk/prune-mtime:
  prune: close directory earlier during loose-object directory traversal

8 years agoMerge branch 'ls/p4-keep-empty-commits'
Junio C Hamano [Tue, 15 Dec 2015 16:02:18 +0000 (08:02 -0800)] 
Merge branch 'ls/p4-keep-empty-commits'

"git p4" used to import Perforce CLs that touch only paths outside
the client spec as empty commits.  It has been corrected to ignore
them instead, with a new configuration git-p4.keepEmptyCommits as a
backward compatibility knob.

* ls/p4-keep-empty-commits:
  git-p4: add option to keep empty commits

8 years agoMerge branch 'jk/prune-mtime'
Junio C Hamano [Tue, 15 Dec 2015 16:02:13 +0000 (08:02 -0800)] 
Merge branch 'jk/prune-mtime'

The helper used to iterate over loose object directories to prune
stale objects did not closedir() immediately when it is done with a
directory--a callback such as the one used for "git prune" may want
to do rmdir(), but it would fail on open directory on platforms
such as WinXP.

* jk/prune-mtime:
  prune: close directory earlier during loose-object directory traversal

8 years agocompletion: fix completing unstuck email alias arguments
SZEDER Gábor [Sat, 12 Dec 2015 00:18:18 +0000 (01:18 +0100)] 
completion: fix completing unstuck email alias arguments

Completing unstuck form of email aliases doesn't quite work:

  $ git send-email --to <TAB>
  alice   bob     cecil
  $ git send-email --to a<TAB>
  alice   bob     cecil

While listing email aliases works as expected, the second case should
just complete to 'alice', but it keeps offering all email aliases
instead.

The cause for this behavior is that in this case we mistakenly tell
__gitcomp() explicitly that the current word to be completed is empty,
while in reality it is not.  As a result __gitcomp() doesn't filter
out non-matching aliases, so all aliases end up being offered over and
over again.

Fix this by not passing the current word to be completed to
__gitcomp() and letting it go the default route and grab it from the
'$cur' variable.  Don't pass empty prefix either, because it's assumed
to be empty when unspecified, so it's not necessary.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoident: fix undefined variable when NO_IPV6 is set
Jeff King [Mon, 14 Dec 2015 20:52:41 +0000 (15:52 -0500)] 
ident: fix undefined variable when NO_IPV6 is set

Commit 00bce77 (ident.c: add support for IPv6, 2015-11-27)
moved the "gethostbyname" call out of "add_domainname" and
into the helper function "canonical_name". But when moving
the code, it forgot that the "buf" variable is passed as
"host" in the helper.

Reported-by: johan defries <johandefries@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogitk: sv.po: Update Swedish translation (311t)
Peter Krefting [Fri, 11 Dec 2015 08:49:21 +0000 (09:49 +0100)] 
gitk: sv.po: Update Swedish translation (311t)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Let .bleft.mid widgets 'breathe'
Giuseppe Bilotta [Tue, 8 Dec 2015 07:05:51 +0000 (08:05 +0100)] 
gitk: Let .bleft.mid widgets 'breathe'

The widgets on top of the diff window are very tightly packed. Make
them breathe a little by adding an 'i'-spaced padding between them.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Match ttk fonts to gitk fonts
Giuseppe Bilotta [Tue, 8 Dec 2015 07:05:50 +0000 (08:05 +0100)] 
gitk: Match ttk fonts to gitk fonts

The fonts set in setoptions aren't consistently picked up by ttk, which
uses its own predefined fonts. This is noticeable when switching
between using and not using ttk with custom fonts or in HiDPI settings
(where the default TTK fonts do _not_ respect tk sclaing).

Fix by mapping the ttk fontset to the one used by gitk internally.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agorebase -i: remember merge options beyond continue actions
Fabian Ruch [Fri, 11 Dec 2015 20:30:36 +0000 (21:30 +0100)] 
rebase -i: remember merge options beyond continue actions

If the user explicitly specified a merge strategy or strategy
options, continue to use that strategy/option after
"rebase --continue".  Add a test of the corrected behavior.

If --merge is specified or implied by -s or -X, then "strategy and
"strategy_opts" are set to values from which "strategy_args" can be
derived; otherwise they are set to empty strings.  Either way,
their values are propagated from one step of an interactive rebase
to the next via state files.

"do_merge", on the other hand, is *not* propagated to later steps of
an interactive rebase.  Therefore, making the initialization of
"strategy_args" conditional on "do_merge" being set prevents later
steps of an interactive rebase from setting it correctly.

Luckily, we don't need the "do_merge" guard at all.  If the rebase
was started without --merge, then "strategy" and "strategy_opts"
are both the empty string, which results in "strategy_args" also
being set to the empty string, which is just what we want in that
situation.  So remove the "do_merge" guard and derive
"strategy_args" from "strategy" and "strategy_opts" every time.

Reported-by: Diogo de Campos <campos@esss.com.br>
Signed-off-by: Fabian Ruch <bafain@gmail.com>
Helped-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agocompletion: remove 'git column' from porcelain commands
SZEDER Gábor [Fri, 11 Dec 2015 12:05:00 +0000 (13:05 +0100)] 
completion: remove 'git column' from porcelain commands

'git column' is an internal helper, so it should not be offered on
'git <TAB>' along with porcelain commands.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoUpdate release notes to 2.7
Junio C Hamano [Fri, 11 Dec 2015 18:45:44 +0000 (10:45 -0800)] 
Update release notes to 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'maint'
Junio C Hamano [Fri, 11 Dec 2015 19:19:43 +0000 (11:19 -0800)] 
Merge branch 'maint'

* maint:
  Prepare for 2.6.5

8 years agoPrepare for 2.6.5
Junio C Hamano [Fri, 11 Dec 2015 19:17:47 +0000 (11:17 -0800)] 
Prepare for 2.6.5

This back-merges hopefully the last batch of trivially correct fixes
to the 2.6.x maintenance track from the master branch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:38 +0000 (11:14 -0800)] 
Merge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting' into maint

mark_tree_uninteresting() has code to handle the case where it gets
passed a NULL pointer in its 'tree' parameter, but the function had
'object = &tree->object' assignment before checking if tree is
NULL.  This gives a compiler an excuse to declare that tree will
never be NULL and apply a wrong optimization.  Avoid it.

* sn/null-pointer-arith-in-mark-tree-uninteresting:
  revision.c: fix possible null pointer arithmetic

8 years agoMerge branch 'sg/lock-file-commit-error' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:18 +0000 (11:14 -0800)] 
Merge branch 'sg/lock-file-commit-error' into maint

Cosmetic improvement to lock-file error messages.

* sg/lock-file-commit-error:
  Make error message after failing commit_lock_file() less confusing

8 years agoMerge branch 'cb/t3404-shellquote' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:18 +0000 (11:14 -0800)] 
Merge branch 'cb/t3404-shellquote' into maint

* cb/t3404-shellquote:
  t3404: fix quoting of redirect for some versions of bash

8 years agoMerge branch 'sb/doc-submodule-sync-recursive' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:17 +0000 (11:14 -0800)] 
Merge branch 'sb/doc-submodule-sync-recursive' into maint

* sb/doc-submodule-sync-recursive:
  document submodule sync --recursive

8 years agoMerge branch 'nd/doc-check-ref-format-typo' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:15 +0000 (11:14 -0800)] 
Merge branch 'nd/doc-check-ref-format-typo' into maint

* nd/doc-check-ref-format-typo:
  git-check-ref-format.txt: typo, s/avoids/avoid/

8 years agoMerge branch 'rs/show-branch-argv-array' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:13 +0000 (11:14 -0800)] 
Merge branch 'rs/show-branch-argv-array' into maint

Code simplification.

* rs/show-branch-argv-array:
  show-branch: use argv_array for default arguments

8 years agoMerge branch 'rs/pop-commit' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:12 +0000 (11:14 -0800)] 
Merge branch 'rs/pop-commit' into maint

Code simplification.

* rs/pop-commit:
  use pop_commit() for consuming the first entry of a struct commit_list

8 years agoMerge branch 'as/subtree-with-spaces' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:11 +0000 (11:14 -0800)] 
Merge branch 'as/subtree-with-spaces' into maint

Update "git subtree" (in contrib/) so that it can take whitespaces
in the pathnames, not only in the in-tree pathname but the name of
the directory that the repository is in.

* as/subtree-with-spaces:
  contrib/subtree: respect spaces in a repository path
  t7900-subtree: test the "space in a subdirectory name" case

8 years agoMerge branch 'jk/test-lint-forbid-when-finished-in-subshell' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:09 +0000 (11:14 -0800)] 
Merge branch 'jk/test-lint-forbid-when-finished-in-subshell' into maint

Because "test_when_finished" in our test framework queues the
clean-up tasks to be done in a shell variable, it should not be
used inside a subshell.  Add a mechanism to allow 'bash' to catch
such uses, and fix the ones that were found.

* jk/test-lint-forbid-when-finished-in-subshell:
  test-lib-functions: detect test_when_finished in subshell
  t7800: don't use test_config in a subshell
  test-lib-functions: support "test_config -C <dir> ..."
  t5801: don't use test_when_finished in a subshell
  t7610: don't use test_config in a subshell

8 years agoMerge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting'
Junio C Hamano [Fri, 11 Dec 2015 18:41:01 +0000 (10:41 -0800)] 
Merge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting'

mark_tree_uninteresting() has code to handle the case where it gets
passed a NULL pointer in its 'tree' parameter, but the function had
'object = &tree->object' assignment before checking if tree is
NULL.  This gives a compiler an excuse to declare that tree will
never be NULL and apply a wrong optimization.  Avoid it.

* sn/null-pointer-arith-in-mark-tree-uninteresting:
  revision.c: fix possible null pointer arithmetic

8 years agoMerge branch 'sb/doc-submodule-sync-recursive'
Junio C Hamano [Fri, 11 Dec 2015 18:40:59 +0000 (10:40 -0800)] 
Merge branch 'sb/doc-submodule-sync-recursive'

* sb/doc-submodule-sync-recursive:
  document submodule sync --recursive

8 years agoMerge branch 'cb/t3404-shellquote'
Junio C Hamano [Fri, 11 Dec 2015 18:40:57 +0000 (10:40 -0800)] 
Merge branch 'cb/t3404-shellquote'

* cb/t3404-shellquote:
  t3404: fix quoting of redirect for some versions of bash

8 years agoMerge branch 'sg/lock-file-commit-error'
Junio C Hamano [Fri, 11 Dec 2015 18:40:54 +0000 (10:40 -0800)] 
Merge branch 'sg/lock-file-commit-error'

Cosmetic improvement to lock-file error messages.

* sg/lock-file-commit-error:
  Make error message after failing commit_lock_file() less confusing

8 years agoGit 2.7-rc0 v2.7.0-rc0
Junio C Hamano [Thu, 10 Dec 2015 20:59:37 +0000 (12:59 -0800)] 
Git 2.7-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with maint
Junio C Hamano [Thu, 10 Dec 2015 20:45:17 +0000 (12:45 -0800)] 
Sync with maint

* maint:
  Documentation/git-update-index: add missing opts to synopsis

8 years agoUpdate release notes to 2.7
Junio C Hamano [Thu, 10 Dec 2015 20:43:52 +0000 (12:43 -0800)] 
Update release notes to 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'nd/doc-check-ref-format-typo'
Junio C Hamano [Thu, 10 Dec 2015 20:36:15 +0000 (12:36 -0800)] 
Merge branch 'nd/doc-check-ref-format-typo'

* nd/doc-check-ref-format-typo:
  git-check-ref-format.txt: typo, s/avoids/avoid/

8 years agoMerge branch 'bc/object-id'
Junio C Hamano [Thu, 10 Dec 2015 20:36:13 +0000 (12:36 -0800)] 
Merge branch 'bc/object-id'

More transition from "unsigned char[40]" to "struct object_id".

This needed a few merge fixups, but is mostly disentangled from other
topics.

* bc/object-id:
  remote: convert functions to struct object_id
  Remove get_object_hash.
  Convert struct object to object_id
  Add several uses of get_object_hash.
  object: introduce get_object_hash macro.
  ref_newer: convert to use struct object_id
  push_refs_with_export: convert to struct object_id
  get_remote_heads: convert to struct object_id
  parse_fetch: convert to use struct object_id
  add_sought_entry_mem: convert to struct object_id
  Convert struct ref to use object_id.
  sha1_file: introduce has_object_file helper.

8 years agoMerge branch 'dt/fsck-verify-pack-error'
Junio C Hamano [Thu, 10 Dec 2015 20:36:12 +0000 (12:36 -0800)] 
Merge branch 'dt/fsck-verify-pack-error'

The exit code of git-fsck didnot reflect some types of errors found
in packed objects, which has been corrected.

* dt/fsck-verify-pack-error:
  verify_pack: do not ignore return value of verification function

8 years agoMerge branch 'ls/travis-yaml'
Junio C Hamano [Thu, 10 Dec 2015 20:36:12 +0000 (12:36 -0800)] 
Merge branch 'ls/travis-yaml'

The necessary infrastructure to build topics using the free Travis
CI has been added. Developers forking from this topic (and enabling
Travis) can do their own builds, and we can turn on auto-builds for
git/git (including build-status for pull requests that people
open).

* ls/travis-yaml:
  Add Travis CI support

8 years agoDocumentation/git-update-index: add missing opts to synopsis
Christian Couder [Wed, 25 Nov 2015 09:30:02 +0000 (10:30 +0100)] 
Documentation/git-update-index: add missing opts to synopsis

Split index related options should appear in the 'SYNOPSIS'
section.

These options are already documented in the 'OPTIONS' section.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogit-p4: add option to keep empty commits
Lars Schneider [Tue, 8 Dec 2015 09:36:22 +0000 (10:36 +0100)] 
git-p4: add option to keep empty commits

A changelist that contains only excluded files due to a client spec was
imported as an empty commit. Fix that issue by ignoring these commits.
Add option "git-p4.keepEmptyCommits" to make the previous behavior
available.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Helped-by: Pete Harlan
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'ep/ident-with-getaddrinfo'
Junio C Hamano [Tue, 8 Dec 2015 22:14:50 +0000 (14:14 -0800)] 
Merge branch 'ep/ident-with-getaddrinfo'

A build without NO_IPv6 used to use gethostbyname() when guessing
user's hostname, instead of getaddrinfo() that is used in other
codepaths in such a build.

* ep/ident-with-getaddrinfo:
  ident.c: add support for IPv6

8 years agoMerge branch 'ls/test-must-fail-sigpipe'
Junio C Hamano [Tue, 8 Dec 2015 22:14:49 +0000 (14:14 -0800)] 
Merge branch 'ls/test-must-fail-sigpipe'

Fix some racy client/server tests by treating SIGPIPE the same as a
normal non-zero exit.

* ls/test-must-fail-sigpipe:
  add "ok=sigpipe" to test_must_fail and use it to fix flaky tests
  implement test_might_fail using a refactored test_must_fail

8 years agoMerge branch 'dt/refs-backend-pre-vtable'
Junio C Hamano [Tue, 8 Dec 2015 22:14:49 +0000 (14:14 -0800)] 
Merge branch 'dt/refs-backend-pre-vtable'

Code preparation for pluggable ref backends.

* dt/refs-backend-pre-vtable:
  refs: break out ref conflict checks
  files_log_ref_write: new function
  initdb: make safe_create_dir public
  refs: split filesystem-based refs code into a new file
  refs/refs-internal.h: new header file
  refname_is_safe(): improve docstring
  pack_if_possible_fn(): use ref_type() instead of is_per_worktree_ref()
  copy_msg(): rename to copy_reflog_msg()
  verify_refname_available(): new function
  verify_refname_available(): rename function

8 years agoSync with 2.6.4
Junio C Hamano [Tue, 8 Dec 2015 22:13:52 +0000 (14:13 -0800)] 
Sync with 2.6.4

8 years agoGit 2.6.4 v2.6.4
Junio C Hamano [Tue, 8 Dec 2015 22:07:30 +0000 (14:07 -0800)] 
Git 2.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'rs/status-detached-head-memcmp' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:11:32 +0000 (14:11 -0800)] 
Merge branch 'rs/status-detached-head-memcmp' into maint

Fix some string-matching corner cases when digging in the reflog for
"git status".

* rs/status-detached-head-memcmp:
  wt-status: correct and simplify check for detached HEAD

8 years agoMerge branch 'ad/sha1-update-chunked' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:03 +0000 (14:05 -0800)] 
Merge branch 'ad/sha1-update-chunked' into maint

Apple's common crypto implementation of SHA1_Update() does not take
more than 4GB at a time, and we now have a compile-time workaround
for it.

* ad/sha1-update-chunked:
  sha1: allow limiting the size of the data passed to SHA1_Update()
  sha1: provide another level of indirection for the SHA-1 functions

8 years agoMerge branch 'sg/bash-prompt-dirty-orphan' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:02 +0000 (14:05 -0800)] 
Merge branch 'sg/bash-prompt-dirty-orphan' into maint

Produce correct "dirty" marker for shell prompts, even when we
are on an orphan or an unborn branch.

* sg/bash-prompt-dirty-orphan:
  bash prompt: indicate dirty index even on orphan branches
  bash prompt: remove a redundant 'git diff' option
  bash prompt: test dirty index and worktree while on an orphan branch

8 years agoMerge branch 'jk/interpret-trailers-outside-a-repository' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:02 +0000 (14:05 -0800)] 
Merge branch 'jk/interpret-trailers-outside-a-repository' into maint

Allow "git interpret-trailers" to run outside of a Git repository.

* jk/interpret-trailers-outside-a-repository:
  interpret-trailers: allow running outside a repository

8 years agoMerge branch 'jk/rebase-no-autostash' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:00 +0000 (14:05 -0800)] 
Merge branch 'jk/rebase-no-autostash' into maint

There was no way to defeat a configured rebase.autostash variable
from the command line, as "git rebase --no-autostash" was missing.

* jk/rebase-no-autostash:
  Documentation/git-rebase: fix --no-autostash formatting
  rebase: support --no-autostash

8 years agorevision.c: fix possible null pointer arithmetic
Stefan Naewe [Sat, 5 Dec 2015 15:27:24 +0000 (16:27 +0100)] 
revision.c: fix possible null pointer arithmetic

mark_tree_uninteresting() dereferences a tree pointer before
checking if the pointer is valid. Fix that by doing the check first.

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agot3404: fix quoting of redirect for some versions of bash
Charles Bailey [Wed, 2 Dec 2015 20:50:07 +0000 (20:50 +0000)] 
t3404: fix quoting of redirect for some versions of bash

As CodingGuidelines says, some versions of bash errors out when
$variable substitution is used as the target for redirection without
being quoted (even though POSIX may not require such a quote).

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogit-check-ref-format.txt: typo, s/avoids/avoid/
Nguyễn Thái Ngọc Duy [Fri, 4 Dec 2015 18:09:32 +0000 (19:09 +0100)] 
git-check-ref-format.txt: typo, s/avoids/avoid/

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agodocument submodule sync --recursive
Stefan Beller [Thu, 3 Dec 2015 20:41:02 +0000 (12:41 -0800)] 
document submodule sync --recursive

The git-submodule(1) is inconsistent. In the synopsis, it says:

       git submodule [--quiet] sync [--recursive] [--] [<path>...]

The description of the sync does not mention --recursive, and the
description of --recursive says that it is only available for foreach,
update and status.

The option was introduced (82f49f294c, Teach --recursive to submodule
sync, 2012-10-26) a while ago, so let's document it, too.

Reported-by: Per Cederqvist <cederp@opera.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agopush: follow the "last one wins" convention for --recurse-submodules
Mike Crowe [Thu, 3 Dec 2015 13:10:35 +0000 (13:10 +0000)] 
push: follow the "last one wins" convention for --recurse-submodules

Use the "last one wins" convention for --recurse-submodules rather
than treating conflicting options as an error.

Also, fix the declaration of the file-scope recurse_submodules
global variable to put it on a separate line.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agopush: test that --recurse-submodules on command line overrides config
Mike Crowe [Thu, 3 Dec 2015 13:10:34 +0000 (13:10 +0000)] 
push: test that --recurse-submodules on command line overrides config

t5531 only checked that the push.recurseSubmodules config option was
overridden by passing --recurse-submodules=check on the command
line.  Add new tests for overriding with --recurse-submodules=no,
--no-recurse-submodules and --recurse-submodules=push too.

Also correct minor typo in test commit message.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with maint
Junio C Hamano [Fri, 4 Dec 2015 19:39:56 +0000 (11:39 -0800)] 
Sync with maint

* maint:
  Prepare for 2.6.4

8 years agoPrepare for 2.6.4
Junio C Hamano [Fri, 4 Dec 2015 19:39:19 +0000 (11:39 -0800)] 
Prepare for 2.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'da/difftool' into maint
Junio C Hamano [Fri, 4 Dec 2015 19:34:24 +0000 (11:34 -0800)] 
Merge branch 'da/difftool' into maint

The code to prepare the working tree side of temporary directory
for the "dir-diff" feature forgot that symbolic links need not be
copied (or symlinked) to the temporary area, as the code already
special cases and overwrites them.  Besides, it was wrong to try
computing the object name of the target of symbolic link, which may
not even exist or may be a directory.

* da/difftool:
  difftool: ignore symbolic links in use_wt_file

8 years agoMerge branch 'dk/gc-idx-wo-pack' into maint
Junio C Hamano [Fri, 4 Dec 2015 19:33:07 +0000 (11:33 -0800)] 
Merge branch 'dk/gc-idx-wo-pack' into maint

Having a leftover .idx file without corresponding .pack file in
the repository hurts performance; "git gc" learned to prune them.

We may want to do the same for .bitmap (and notice but not prune
.keep) without corresponding .pack, but that can be a separate
topic.

* dk/gc-idx-wo-pack:
  gc: remove garbage .idx files from pack dir
  t5304: test cleaning pack garbage
  prepare_packed_git(): refactor garbage reporting in pack directory

8 years agoRelNotes update for 2.7
Junio C Hamano [Fri, 4 Dec 2015 19:31:28 +0000 (11:31 -0800)] 
RelNotes update for 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'sg/bash-prompt-dirty-orphan'
Junio C Hamano [Fri, 4 Dec 2015 19:19:12 +0000 (11:19 -0800)] 
Merge branch 'sg/bash-prompt-dirty-orphan'

Produce correct "dirty" marker for shell prompts, even when we
are on an orphan or an unborn branch.

* sg/bash-prompt-dirty-orphan:
  bash prompt: indicate dirty index even on orphan branches
  bash prompt: remove a redundant 'git diff' option
  bash prompt: test dirty index and worktree while on an orphan branch

8 years agoMerge branch 'np/credential-cache-sighup'
Junio C Hamano [Fri, 4 Dec 2015 19:19:11 +0000 (11:19 -0800)] 
Merge branch 'np/credential-cache-sighup'

Workaround for using credential-cache with emacs.

* np/credential-cache-sighup:
  credential-cache: new option to ignore sighup

8 years agoMerge branch 'rs/parseopt-short-help'
Junio C Hamano [Fri, 4 Dec 2015 19:19:11 +0000 (11:19 -0800)] 
Merge branch 'rs/parseopt-short-help'

Make "-h" command line option work more consistently in all commands.

* rs/parseopt-short-help:
  show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP
  grep: stop using PARSE_OPT_NO_INTERNAL_HELP
  parse-options: allow -h as a short option
  parse-options: inline parse_options_usage() at its only remaining caller
  parse-options: deduplicate parse_options_usage() calls

8 years agoMerge branch 'jk/send-email-complete-aliases'
Junio C Hamano [Fri, 4 Dec 2015 19:19:10 +0000 (11:19 -0800)] 
Merge branch 'jk/send-email-complete-aliases'

Teach send-email to dump mail aliases, so that we can do tab completion
on the command line.

* jk/send-email-complete-aliases:
  completion: add support for completing email aliases
  sendemail: teach git-send-email to dump alias names

8 years agoMerge branch 'jk/filter-branch-no-index'
Junio C Hamano [Fri, 4 Dec 2015 19:19:10 +0000 (11:19 -0800)] 
Merge branch 'jk/filter-branch-no-index'

Speed up filter-branch for cases where we only care about rewriting
commits, not tree data.

* jk/filter-branch-no-index:
  filter-branch: skip index read/write when possible

8 years agoMerge branch 'ad/sha1-update-chunked'
Junio C Hamano [Fri, 4 Dec 2015 19:19:09 +0000 (11:19 -0800)] 
Merge branch 'ad/sha1-update-chunked'

Apple's common crypto implementation of SHA1_Update() does not take
more than 4GB at a time, and we now have a compile-time workaround
for it.

* ad/sha1-update-chunked:
  sha1: allow limiting the size of the data passed to SHA1_Update()
  sha1: provide another level of indirection for the SHA-1 functions

8 years agoMerge branch 'mk/blame-first-parent'
Jeff King [Tue, 1 Dec 2015 23:54:58 +0000 (18:54 -0500)] 
Merge branch 'mk/blame-first-parent'

Regression fix for a topic already in master.

* mk/blame-first-parent:
  blame: fix object casting regression

8 years agoMerge branch 'jk/send-email-ca-path'
Jeff King [Tue, 1 Dec 2015 23:54:54 +0000 (18:54 -0500)] 
Merge branch 'jk/send-email-ca-path'

Use a safer behavior when we hit errors verifying remote certificates.

* jk/send-email-ca-path:
  send-email: die if CA path doesn't exist

8 years agoMerge branch 'rs/fsck-nul-header'
Jeff King [Tue, 1 Dec 2015 23:54:47 +0000 (18:54 -0500)] 
Merge branch 'rs/fsck-nul-header'

Fsck did not correctly detect a NUL-truncated header in a tag.

* rs/fsck-nul-header:
  fsck: treat a NUL in a tag header as an error
  t1450: add tests for NUL in headers of commits and tags

8 years agoMerge branch 'ls/p4-test-timeouts'
Jeff King [Tue, 1 Dec 2015 23:54:40 +0000 (18:54 -0500)] 
Merge branch 'ls/p4-test-timeouts'

Work around some test flakiness with p4d.

* ls/p4-test-timeouts:
  git-p4: add trap to kill p4d on test exit
  git-p4: add p4d timeout in tests
  git-p4: retry kill/cleanup operations in tests with timeout

8 years agoMerge branch 'js/test-modernize-t9300'
Jeff King [Tue, 1 Dec 2015 23:54:37 +0000 (18:54 -0500)] 
Merge branch 'js/test-modernize-t9300'

Clean up style in an ancient test.

* js/test-modernize-t9300:
  modernize t9300: move test preparations into test_expect_success
  modernize t9300: mark here-doc words to ignore tab indentation
  modernize t9300: use test_when_finished for clean-up
  modernize t9300: wrap lines after &&
  modernize t9300: use test_must_be_empty
  modernize t9300: use test_must_fail
  modernize t9300: single-quote placement and indentation

8 years agoMerge branch 'jk/send-email-expand-paths'
Jeff King [Tue, 1 Dec 2015 23:54:34 +0000 (18:54 -0500)] 
Merge branch 'jk/send-email-expand-paths'

Expand paths in some send-email config variables.

* jk/send-email-expand-paths:
  send-email: expand path in sendemail.smtpsslcertpath config

8 years agoMerge branch 'dg/subtree-test-cleanup'
Jeff King [Tue, 1 Dec 2015 23:54:31 +0000 (18:54 -0500)] 
Merge branch 'dg/subtree-test-cleanup'

Test cleanups for the subtree project.

* dg/subtree-test-cleanup:
  contrib/subtree: Handle '--prefix' argument with a slash appended
  contrib/subtree: Make each test self-contained
  contrib/subtree: Add split tests
  contrib/subtree: Add merge tests
  contrib/subtree: Add tests for subtree add
  contrib/subtree: Add test for missing subtree
  contrib/subtree: Clean and refactor test code

8 years agoMerge branch 'dt/http-range'
Jeff King [Tue, 1 Dec 2015 23:54:28 +0000 (18:54 -0500)] 
Merge branch 'dt/http-range'

Portability fix for a topic already in 'master'.

* dt/http-range:
  http: fix some printf format warnings

8 years agoverify_pack: do not ignore return value of verification function
David Turner [Mon, 30 Nov 2015 22:47:42 +0000 (17:47 -0500)] 
verify_pack: do not ignore return value of verification function

In verify_pack, a caller-supplied verification function is called.
The function returns an int.  If that return value is non-zero,
verify_pack should fail.

The only caller of verify_pack is in builtin/fsck.c, whose verify_fn
returns a meaningful error code (which was then ignored).  Now, fsck
might return a different error code (with more detail).  This would
happen in the unlikely event that a commit or tree that is a valid git
object but not a valid instance of its type gets into a pack.

Signed-off-by: David Turner <dturner@twopensource.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoMake error message after failing commit_lock_file() less confusing
SZEDER Gábor [Mon, 30 Nov 2015 11:40:53 +0000 (12:40 +0100)] 
Make error message after failing commit_lock_file() less confusing

The error message after a failing commit_lock_file() call sometimes
looks like this, causing confusion:

  $ git remote add remote git@server.com/repo.git
  error: could not commit config file .git/config
  # Huh?!
  # I didn't want to commit anything, especially not my config file!

While in the narrow context of the lockfile module using the verb
'commit' in the error message makes perfect sense, in the broader
context of git the word 'commit' already has a very specific meaning,
hence the confusion.

Reword these error messages to say "could not write" instead of "could
not commit".

While at it, include strerror in the error messages after writing the
config file or the credential store fails to provide some information
about the cause of the failure, and update the style of the error
message after writing the reflog fails to match surrounding error
messages (i.e. no '' around the pathname and no () around the error
description).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoMerge branch 'maint'
Jeff King [Tue, 1 Dec 2015 22:32:38 +0000 (17:32 -0500)] 
Merge branch 'maint'

* maint:
  http: treat config options sslCAPath and sslCAInfo as paths
  Documentation/diff: give --word-diff-regex=. example
  filter-branch: deal with object name vs. pathname ambiguity in tree-filter
  check-ignore: correct documentation about output
  git-p4: clean up after p4 submit failure
  git-p4: work with a detached head
  git-p4: add option to system() to return subshell status
  git-p4: add failing test for submit from detached head
  remote-http(s): support SOCKS proxies
  t5813: avoid creating urls that break on cygwin
  Escape Git's exec path in contrib/rerere-train.sh script
  allow hooks to ignore their standard input stream
  rebase-i-exec: Allow space in SHELL_PATH
  Documentation: make environment variable formatting more consistent

8 years agoMerge branch 'eg/p4-submit-catch-failure' into maint
Jeff King [Tue, 1 Dec 2015 22:24:20 +0000 (17:24 -0500)] 
Merge branch 'eg/p4-submit-catch-failure' into maint

Just like the working tree is cleaned up when the user cancelled
submission in P4Submit.applyCommit(), clean up the mess if "p4
submit" fails.

* eg/p4-submit-catch-failure:
  git-p4: clean up after p4 submit failure

8 years agoMerge branch 'dk/check-ignore-docs' into maint
Jeff King [Tue, 1 Dec 2015 22:21:31 +0000 (17:21 -0500)] 
Merge branch 'dk/check-ignore-docs' into maint

Documentation clarification for "check-ignore" without "--verbose".

* dk/check-ignore-docs:
  check-ignore: correct documentation about output

8 years agoMerge branch 'ld/p4-detached-head' into maint
Jeff King [Tue, 1 Dec 2015 22:21:29 +0000 (17:21 -0500)] 
Merge branch 'ld/p4-detached-head' into maint

Make git-p4 work on a detached head.

* ld/p4-detached-head:
  git-p4: work with a detached head
  git-p4: add option to system() to return subshell status
  git-p4: add failing test for submit from detached head

8 years agoMerge branch 'sg/filter-branch-dwim-ambiguity' into maint
Jeff King [Tue, 1 Dec 2015 22:21:17 +0000 (17:21 -0500)] 
Merge branch 'sg/filter-branch-dwim-ambiguity' into maint

Fix for a corner case in filter-branch.

* sg/filter-branch-dwim-ambiguity:
  filter-branch: deal with object name vs. pathname ambiguity in tree-filter

8 years agoMerge branch 'mg/doc-word-diff-example' into maint
Jeff King [Tue, 1 Dec 2015 22:21:11 +0000 (17:21 -0500)] 
Merge branch 'mg/doc-word-diff-example' into maint

* mg/doc-word-diff-example:
  Documentation/diff: give --word-diff-regex=. example

8 years agoMerge branch 'cb/ssl-config-pathnames' into maint
Jeff King [Tue, 1 Dec 2015 22:21:01 +0000 (17:21 -0500)] 
Merge branch 'cb/ssl-config-pathnames' into maint

Allow tilde-expansion in some http config variables.

* cb/ssl-config-pathnames:
  http: treat config options sslCAPath and sslCAInfo as paths

8 years agoMerge branch 'dk/t5813-unc-paths' into maint
Jeff King [Tue, 1 Dec 2015 22:20:52 +0000 (17:20 -0500)] 
Merge branch 'dk/t5813-unc-paths' into maint

Test portability fix for a topic in v2.6.1.

* dk/t5813-unc-paths:
  t5813: avoid creating urls that break on cygwin

8 years agoMerge branch 'dk/rerere-train-quoting' into maint
Jeff King [Tue, 1 Dec 2015 22:20:46 +0000 (17:20 -0500)] 
Merge branch 'dk/rerere-train-quoting' into maint

Fix shell quoting in contrib script.

* dk/rerere-train-quoting:
  Escape Git's exec path in contrib/rerere-train.sh script

8 years agoMerge branch 'cb/hook-sigpipe' into maint
Jeff King [Tue, 1 Dec 2015 22:19:52 +0000 (17:19 -0500)] 
Merge branch 'cb/hook-sigpipe' into maint

We now consistently allow all hooks to ignore their standard input,
rather than having git complain of SIGPIPE.

* cb/hook-sigpipe:
  allow hooks to ignore their standard input stream

8 years agoMerge branch 'fm/shell-path-whitespace' into maint
Jeff King [Tue, 1 Dec 2015 22:19:37 +0000 (17:19 -0500)] 
Merge branch 'fm/shell-path-whitespace' into maint

Portability fix for Windows, which may rewrite $SHELL variable using
non-POSIX paths.

* fm/shell-path-whitespace:
  rebase-i-exec: Allow space in SHELL_PATH