git.git
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 11 Feb 2013 04:40:44 +0000 (20:40 -0800)]
Merge branch 'maint'

* maint:
  user-manual: Rewrite git-gc section for automatic packing
  user-manual: Fix 'you - Git' -> 'you--Git' typo
  user-manual: Fix 'http' -> 'HTTP' typos
  user-manual: Fix 'both: so' -> 'both; so' typo

11 years agouser-manual: Rewrite git-gc section for automatic packing
W. Trevor King [Sun, 10 Feb 2013 15:10:27 +0000 (10:10 -0500)]
user-manual: Rewrite git-gc section for automatic packing

This should have happened back in 2007, when `git gc` learned about
auto (e9831e8, git-gc --auto: add documentation, 2007-09-17).

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agouser-manual: Fix 'you - Git' -> 'you--Git' typo
W. Trevor King [Sun, 10 Feb 2013 15:10:39 +0000 (10:10 -0500)]
user-manual: Fix 'you - Git' -> 'you--Git' typo

Use an em-dash, not a hyphen, to join these clauses.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agouser-manual: Fix 'http' -> 'HTTP' typos
W. Trevor King [Sun, 10 Feb 2013 15:10:37 +0000 (10:10 -0500)]
user-manual: Fix 'http' -> 'HTTP' typos

HTTP is an acronym which has not (yet) made the transition to word
status (unlike "laser", probably because lasers are inherently cooler
than HTTP ;).

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'sp/smart-http-content-type-check'
Junio C Hamano [Mon, 11 Feb 2013 04:35:23 +0000 (20:35 -0800)]
Merge branch 'sp/smart-http-content-type-check'

The smart HTTP clients forgot to verify the content-type that comes
back from the server side to make sure that the request is being
handled properly.

* sp/smart-http-content-type-check:
  http_request: reset "type" strbuf before adding
  t5551: fix expected error output
  Verify Content-Type from smart HTTP servers

11 years agouser-manual: Fix 'both: so' -> 'both; so' typo
W. Trevor King [Sun, 10 Feb 2013 15:10:36 +0000 (10:10 -0500)]
user-manual: Fix 'both: so' -> 'both; so' typo

The clause "so `git log ...` will return no commits..." is
independent, not a description of "both", so a semicolon is more
appropriate.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Junio C Hamano [Sat, 9 Feb 2013 21:43:39 +0000 (13:43 -0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate "reset" as "neu setzen"
  l10n: de.po: translate "revision" consistently as "Revision"
  l10n: de.po: translate 11 new messages
  l10n: zh_CN.po: 800+ new translations on command usages
  l10n: Update Swedish translation (1983t0f0u)
  l10n: vi.po: updated Vietnamese translation
  l10n: Update git.pot (11 new, 7 removed messages)
  l10n: de.po: fix some minor issues

11 years agoMerge branch 'jc/combine-diff-many-parents'
Junio C Hamano [Fri, 8 Feb 2013 23:29:07 +0000 (15:29 -0800)]
Merge branch 'jc/combine-diff-many-parents'

We used to have an arbitrary 32 limit for combined diff input,
resulting in incorrect number of leading colons shown when showing
the "--raw --cc" output.

* jc/combine-diff-many-parents:
  t4038: add tests for "diff --cc --raw <trees>"
  combine-diff: lift 32-way limit of combined diff

11 years agoMerge branch 'jk/apply-similaritly-parsing'
Junio C Hamano [Fri, 8 Feb 2013 23:29:02 +0000 (15:29 -0800)]
Merge branch 'jk/apply-similaritly-parsing'

Make sure the similarity value shown in the "apply --summary"
output is sensible, even when the input had a bogus value.

* jk/apply-similaritly-parsing:
  builtin/apply: tighten (dis)similarity index parsing

11 years agoMerge branch 'mk/tcsh-complete-only-known-paths'
Junio C Hamano [Fri, 8 Feb 2013 23:28:51 +0000 (15:28 -0800)]
Merge branch 'mk/tcsh-complete-only-known-paths'

The "complete with known paths only" update to completion scripts
returns directory names without trailing slash to compensate the
addition of '/' done by bash that reads from our completion result.
tcsh completion code that reads from our internal completion result
does not add '/', so let it ask our complletion code to keep the '/'
at the end.

* mk/tcsh-complete-only-known-paths:
  completion: handle path completion and colon for tcsh script

11 years agoMerge branch 'mp/complete-paths'
Junio C Hamano [Fri, 8 Feb 2013 23:28:42 +0000 (15:28 -0800)]
Merge branch 'mp/complete-paths'

The completion script used to let the default completer to suggest
pathnames, which gave too many irrelevant choices (e.g. "git add"
would not want to add an unmodified path).  Teach it to use a more
git-aware logic to enumerate only relevant ones.

* mp/complete-paths:
  git-completion.bash: add support for path completion

11 years agoMerge branch 'ct/autoconf-htmldir'
Junio C Hamano [Fri, 8 Feb 2013 23:28:37 +0000 (15:28 -0800)]
Merge branch 'ct/autoconf-htmldir'

The autoconf subsystem passed --mandir down to generated
config.mak.autogen but forgot to do the same for --htmldir.

* ct/autoconf-htmldir:
  Honor configure's htmldir switch

11 years agol10n: de.po: translate "reset" as "neu setzen"
Ralf Thielow [Mon, 28 Jan 2013 18:24:42 +0000 (19:24 +0100)]
l10n: de.po: translate "reset" as "neu setzen"

According to the glossary, "reset" should be
translated as "neu setzen" but in a couple of
messages we've translated it as "zurücksetzen".
This fixes that.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
11 years agol10n: de.po: translate "revision" consistently as "Revision"
Ralf Thielow [Mon, 28 Jan 2013 17:24:14 +0000 (18:24 +0100)]
l10n: de.po: translate "revision" consistently as "Revision"

In the current German translation, the word "revision" was
translated as both "Version" (translation of "commit") and
"Revision". Since a revision in Git is not necessarily a
commit, we should not translate it with the same word in
order to give the user an idea that it's not necessarily
the same. After this commit, "revision" is consistently
translated as "Revision".

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
11 years agol10n: de.po: translate 11 new messages
Ralf Thielow [Sun, 27 Jan 2013 12:43:46 +0000 (13:43 +0100)]
l10n: de.po: translate 11 new messages

Translate 11 new messages came from git.pot update
in 46bc403 (l10n: Update git.pot (11 new, 7 removed
messages)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>
11 years agol10n: zh_CN.po: 800+ new translations on command usages
Wang Sheng [Wed, 30 Jan 2013 09:23:08 +0000 (17:23 +0800)]
l10n: zh_CN.po: 800+ new translations on command usages

Most of the 800+ new translations are contributed by Wang Sheng.
So he is a zh_CN l10n maintainer for Git now.

Also fixed translations for some terms, such as blob, dangling.

Signed-off-by: Wang Sheng <wangsheng2008love@163.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Thu, 7 Feb 2013 23:25:06 +0000 (15:25 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSync with 1.8.1.3
Junio C Hamano [Thu, 7 Feb 2013 23:21:49 +0000 (15:21 -0800)]
Sync with 1.8.1.3

11 years agoGit 1.8.1.3
Junio C Hamano [Thu, 7 Feb 2013 23:21:10 +0000 (15:21 -0800)]
Git 1.8.1.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'mz/pick-unborn' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:16:04 +0000 (15:16 -0800)]
Merge branch 'mz/pick-unborn' into maint

"git cherry-pick" did not replay a root commit to an unborn branch.

* mz/pick-unborn:
  learn to pick/revert into unborn branch
  tests: move test_cmp_rev to test-lib-functions

11 years agoMerge branch 'nd/fix-perf-parameters-in-tests' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:16:00 +0000 (15:16 -0800)]
Merge branch 'nd/fix-perf-parameters-in-tests' into maint

* nd/fix-perf-parameters-in-tests:
  test-lib.sh: unfilter GIT_PERF_*

11 years agoMerge branch 'jc/do-not-let-random-file-interfere-with-completion-tests' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:15:23 +0000 (15:15 -0800)]
Merge branch 'jc/do-not-let-random-file-interfere-with-completion-tests' into maint

Scripts to test bash completion was inherently flaky as it was
affected by whatever random things the user may have on $PATH.

* jc/do-not-let-random-file-interfere-with-completion-tests:
  t9902: protect test from stray build artifacts

11 years agoMerge branch 'ft/transport-report-segv' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:15:08 +0000 (15:15 -0800)]
Merge branch 'ft/transport-report-segv' into maint

A failure to push due to non-ff while on an unborn branch
dereferenced a NULL pointer when showing an error message.

* ft/transport-report-segv:
  push: fix segfault when HEAD points nowhere

11 years agoMerge branch 'sb/gpg-plug-fd-leak' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:14:54 +0000 (15:14 -0800)]
Merge branch 'sb/gpg-plug-fd-leak' into maint

We forgot to close the file descriptor reading from "gpg" output,
killing "git log --show-signature" on a long history.

* sb/gpg-plug-fd-leak:
  gpg: close stderr once finished with it in verify_signed_buffer()

11 years agoMerge branch 'jc/fake-ancestor-with-non-blobs' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:14:22 +0000 (15:14 -0800)]
Merge branch 'jc/fake-ancestor-with-non-blobs' into maint

Rebasing the history of superproject with change in the submodule
has been broken since v1.7.12.

* jc/fake-ancestor-with-non-blobs:
  apply: diagnose incomplete submodule object name better
  apply: simplify build_fake_ancestor()
  git-am: record full index line in the patch used while rebasing

11 years agoMerge branch 'jn/auto-depend-workaround-buggy-ccache' into maint
Junio C Hamano [Thu, 7 Feb 2013 23:13:34 +0000 (15:13 -0800)]
Merge branch 'jn/auto-depend-workaround-buggy-ccache' into maint

Buggy versions of ccache broke the auto-generation of dependencies.

* jn/auto-depend-workaround-buggy-ccache:
  Makefile: explicitly set target name for autogenerated dependencies

11 years agoMerge branch 'da/mergetool-docs'
Junio C Hamano [Thu, 7 Feb 2013 22:42:08 +0000 (14:42 -0800)]
Merge branch 'da/mergetool-docs'

Build on top of the clean-up done by jk/mergetool and automatically
generate the list of mergetool and difftool backends the build
supports to be included in the documentation.

* da/mergetool-docs:
  doc: generate a list of valid merge tools
  mergetool--lib: list user configured tools in '--tool-help'
  mergetool--lib: add functions for finding available tools
  mergetool--lib: improve the help text in guess_merge_tool()
  mergetool--lib: simplify command expressions

11 years agoMerge branch 'ss/mergetools-tortoise'
Junio C Hamano [Thu, 7 Feb 2013 22:42:01 +0000 (14:42 -0800)]
Merge branch 'ss/mergetools-tortoise'

Update mergetools to work better with newer merge helper tortoise ships.

* ss/mergetools-tortoise:
  mergetools: teach tortoisemerge to handle filenames with SP correctly
  mergetools: support TortoiseGitMerge

11 years agoMerge branch 'jk/mergetool'
Junio C Hamano [Thu, 7 Feb 2013 22:41:57 +0000 (14:41 -0800)]
Merge branch 'jk/mergetool'

Cleans up mergetool/difftool combo.

* jk/mergetool:
  mergetools: simplify how we handle "vim" and "defaults"
  mergetool--lib: don't call "exit" in setup_tool
  mergetool--lib: improve show_tool_help() output
  mergetools/vim: remove redundant diff command
  git-difftool: use git-mergetool--lib for "--tool-help"
  git-mergetool: don't hardcode 'mergetool' in show_tool_help
  git-mergetool: remove redundant assignment
  git-mergetool: move show_tool_help to mergetool--lib

11 years agoMerge branch 'jk/doc-makefile-cleanup'
Junio C Hamano [Thu, 7 Feb 2013 22:41:51 +0000 (14:41 -0800)]
Merge branch 'jk/doc-makefile-cleanup'

* jk/doc-makefile-cleanup:
  Documentation/Makefile: clean up MAN*_TXT lists

11 years agoMerge branch 'jk/remote-helpers-doc'
Junio C Hamano [Thu, 7 Feb 2013 22:41:45 +0000 (14:41 -0800)]
Merge branch 'jk/remote-helpers-doc'

"git help remote-helpers" did not work; 'remote-helpers' is not
a subcommand name but a concept, so its documentation should have
been in gitremote-helpers, not git-remote-helpers.

* jk/remote-helpers-doc:
  Rename {git- => git}remote-helpers.txt

11 years agoMerge branch 'sb/run-command-fd-error-reporting'
Junio C Hamano [Thu, 7 Feb 2013 22:41:42 +0000 (14:41 -0800)]
Merge branch 'sb/run-command-fd-error-reporting'

* sb/run-command-fd-error-reporting:
  run-command: be more informative about what failed

11 years agoMerge branch 'nd/branch-error-cases'
Junio C Hamano [Thu, 7 Feb 2013 22:41:38 +0000 (14:41 -0800)]
Merge branch 'nd/branch-error-cases'

Fix various error messages and conditions in "git branch", e.g. we
advertised "branch -d/-D" to remove one or more branches but actually
implemented removal of zero or more branches---request to remove no
branches was not rejected.

* nd/branch-error-cases:
  branch: let branch filters imply --list
  docs: clarify git-branch --list behavior
  branch: mark more strings for translation
  branch: give a more helpful message on redundant arguments
  branch: reject -D/-d without branch name

11 years agoMerge branch 'sb/gpg-i18n'
Junio C Hamano [Thu, 7 Feb 2013 22:41:34 +0000 (14:41 -0800)]
Merge branch 'sb/gpg-i18n'

* sb/gpg-i18n:
  gpg: allow translation of more error messages

11 years agoMerge branch 'jk/python-styles'
Junio C Hamano [Thu, 7 Feb 2013 22:41:31 +0000 (14:41 -0800)]
Merge branch 'jk/python-styles'

* jk/python-styles:
  CodingGuidelines: add Python coding guidelines

11 years agoMerge branch 'ab/gitweb-use-same-scheme'
Junio C Hamano [Thu, 7 Feb 2013 22:41:24 +0000 (14:41 -0800)]
Merge branch 'ab/gitweb-use-same-scheme'

Avoid mixed contents on a page coming via http and https when
gitweb is hosted on a https server.

* ab/gitweb-use-same-scheme:
  gitweb: refer to picon/gravatar images over the same scheme

11 years agohttp_request: reset "type" strbuf before adding
Jeff King [Wed, 6 Feb 2013 10:39:52 +0000 (05:39 -0500)]
http_request: reset "type" strbuf before adding

Callers may pass us a strbuf which we use to record the
content-type of the response. However, we simply appended to
it rather than overwriting its contents, meaning that cruft
in the strbuf gave us a bogus type. E.g., the multiple
requests triggered by http_request could yield a type like
"text/plainapplication/x-git-receive-pack-advertisement".

Reported-by: Michael Schubert <mschub@elegosoft.com>
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.2
Junio C Hamano [Wed, 6 Feb 2013 00:20:16 +0000 (16:20 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jn/auto-depend-workaround-buggy-ccache'
Junio C Hamano [Wed, 6 Feb 2013 00:13:52 +0000 (16:13 -0800)]
Merge branch 'jn/auto-depend-workaround-buggy-ccache'

An age-old workaround to prevent buggy versions of ccache from
breaking the auto-generation of dependencies, which unfortunately
is still relevant because some people use ancient distros.

* jn/auto-depend-workaround-buggy-ccache:
  Makefile: explicitly set target name for autogenerated dependencies

11 years agoMerge branch 'ta/doc-no-small-caps'
Junio C Hamano [Wed, 6 Feb 2013 00:13:32 +0000 (16:13 -0800)]
Merge branch 'ta/doc-no-small-caps'

Update documentation to change "GIT" which was a poor-man's small
caps to "Git".  The latter was the intended spelling.

Also change "git" spelled in all-lowercase to "Git" when it refers
to the system as the whole or the concept it embodies, as opposed to
the command the end users would type.

* ta/doc-no-small-caps:
  Documentation: StGit is the right spelling, not StGIT
  Documentation: describe the "repository" in repository-layout
  Documentation: add a description for 'gitfile' to glossary
  Documentation: do not use undefined terms git-dir and git-file
  Documentation: the name of the system is 'Git', not 'git'
  Documentation: avoid poor-man's small caps GIT

11 years agoMerge branch 'jc/fake-ancestor-with-non-blobs'
Junio C Hamano [Wed, 6 Feb 2013 00:13:11 +0000 (16:13 -0800)]
Merge branch 'jc/fake-ancestor-with-non-blobs'

Rebasing the history of superproject with change in the submodule
was broken since v1.7.12.

* jc/fake-ancestor-with-non-blobs:
  apply: diagnose incomplete submodule object name better
  apply: simplify build_fake_ancestor()
  git-am: record full index line in the patch used while rebasing

11 years agoMerge branch 'sb/gpg-plug-fd-leak'
Junio C Hamano [Wed, 6 Feb 2013 00:12:43 +0000 (16:12 -0800)]
Merge branch 'sb/gpg-plug-fd-leak'

We forgot to close the file descriptor reading from "gpg" output,
killing "git log --show-signature" on a long history.

* sb/gpg-plug-fd-leak:
  gpg: close stderr once finished with it in verify_signed_buffer()

11 years agoMerge branch 'ft/transport-report-segv'
Junio C Hamano [Wed, 6 Feb 2013 00:12:32 +0000 (16:12 -0800)]
Merge branch 'ft/transport-report-segv'

A failure to push due to non-ff while on an unborn branch
dereferenced a NULL pointer when showing an error message.

* ft/transport-report-segv:
  push: fix segfault when HEAD points nowhere

11 years agot4038: add tests for "diff --cc --raw <trees>"
John Keeping [Tue, 5 Feb 2013 21:39:49 +0000 (21:39 +0000)]
t4038: add tests for "diff --cc --raw <trees>"

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot5551: fix expected error output
Junio C Hamano [Tue, 5 Feb 2013 00:21:42 +0000 (16:21 -0800)]
t5551: fix expected error output

We should probably get rid of the check of message instead, but in
the meantime this should do.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Mon, 4 Feb 2013 18:44:26 +0000 (10:44 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 4 Feb 2013 18:26:11 +0000 (10:26 -0800)]
Merge branch 'maint'

* maint:
  Start preparing for 1.8.1.3

11 years agoMerge branch 'jk/remote-helpers-in-python-3'
Junio C Hamano [Mon, 4 Feb 2013 18:25:34 +0000 (10:25 -0800)]
Merge branch 'jk/remote-helpers-in-python-3'

Prepare remote-helper test written in Python to be run with Python3.

* jk/remote-helpers-in-python-3:
  git_remote_helpers: remove GIT-PYTHON-VERSION upon "clean"
  git-remote-testpy: fix path hashing on Python 3
  git-remote-testpy: call print as a function
  git-remote-testpy: don't do unbuffered text I/O
  git-remote-testpy: hash bytes explicitly
  svn-fe: allow svnrdump_sim.py to run with Python 3
  git_remote_helpers: use 2to3 if building with Python 3
  git_remote_helpers: force rebuild if python version changes
  git_remote_helpers: fix input when running under Python 3
  git_remote_helpers: allow building with Python 3

11 years agoMerge branch 'pw/git-p4-on-cygwin'
Junio C Hamano [Mon, 4 Feb 2013 18:25:30 +0000 (10:25 -0800)]
Merge branch 'pw/git-p4-on-cygwin'

Improve "git p4" on Cygwin.

* pw/git-p4-on-cygwin: (21 commits)
  git p4: introduce gitConfigBool
  git p4: avoid shell when calling git config
  git p4: avoid shell when invoking git config --get-all
  git p4: avoid shell when invoking git rev-list
  git p4: avoid shell when mapping users
  git p4: disable read-only attribute before deleting
  git p4 test: use test_chmod for cygwin
  git p4: cygwin p4 client does not mark read-only
  git p4 test: avoid wildcard * in windows
  git p4 test: use LineEnd unix in windows tests too
  git p4 test: newline handling
  git p4: scrub crlf for utf16 files on windows
  git p4: remove unreachable windows \r\n conversion code
  git p4 test: translate windows paths for cygwin
  git p4 test: start p4d inside its db dir
  git p4 test: use client_view in t9806
  git p4 test: avoid loop in client_view
  git p4 test: use client_view to build the initial client
  git p4: generate better error message for bad depot path
  git p4: remove unused imports
  ...

11 years agoMerge branch 'jk/read-commit-buffer-data-after-free'
Junio C Hamano [Mon, 4 Feb 2013 18:25:18 +0000 (10:25 -0800)]
Merge branch 'jk/read-commit-buffer-data-after-free'

Clarify the ownership rule for commit->buffer field, which some
callers incorrectly accessed without making sure it is populated.

* jk/read-commit-buffer-data-after-free:
  logmsg_reencode: lazily load missing commit buffers
  logmsg_reencode: never return NULL
  commit: drop useless xstrdup of commit message

11 years agoMerge branch 'mm/add-u-A-sans-pathspec'
Junio C Hamano [Mon, 4 Feb 2013 18:25:13 +0000 (10:25 -0800)]
Merge branch 'mm/add-u-A-sans-pathspec'

Forbid "git add -u" and "git add -A" without pathspec run from a
subdirectory, to train people to type "." (or ":/") to make the
choice of default does not matter.

* mm/add-u-A-sans-pathspec:
  add: warn when -u or -A is used without pathspec

11 years agoMerge branch 'jc/push-reject-reasons'
Junio C Hamano [Mon, 4 Feb 2013 18:25:04 +0000 (10:25 -0800)]
Merge branch 'jc/push-reject-reasons'

Improve error and advice messages given locally when "git push"
refuses when it cannot compute fast-forwardness by separating these
cases from the normal "not a fast-forward; merge first and push
again" case.

* jc/push-reject-reasons:
  push: finishing touches to explain REJECT_ALREADY_EXISTS better
  push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
  push: further simplify the logic to assign rejection reason
  push: further clean up fields of "struct ref"

11 years agoMerge branch 'jk/config-parsing-cleanup'
Junio C Hamano [Mon, 4 Feb 2013 18:24:50 +0000 (10:24 -0800)]
Merge branch 'jk/config-parsing-cleanup'

Configuration parsing for tar.* configuration variables were
broken. Introduce a new config-keyname parser API to make the
callers much less error prone.

* jk/config-parsing-cleanup:
  reflog: use parse_config_key in config callback
  help: use parse_config_key for man config
  submodule: simplify memory handling in config parsing
  submodule: use parse_config_key when parsing config
  userdiff: drop parse_driver function
  convert some config callbacks to parse_config_key
  archive-tar: use parse_config_key when parsing config
  config: add helper function for parsing key names

11 years agoMerge branch 'jc/custom-comment-char'
Junio C Hamano [Mon, 4 Feb 2013 18:23:49 +0000 (10:23 -0800)]
Merge branch 'jc/custom-comment-char'

Allow a configuration variable core.commentchar to customize the
character used to comment out the hint lines in the edited text from
the default '#'.

* jc/custom-comment-char:
  Allow custom "comment char"

11 years agoVerify Content-Type from smart HTTP servers
Shawn Pearce [Thu, 31 Jan 2013 21:02:07 +0000 (13:02 -0800)]
Verify Content-Type from smart HTTP servers

Before parsing a suspected smart-HTTP response verify the returned
Content-Type matches the standard. This protects a client from
attempting to process a payload that smells like a smart-HTTP
server response.

JGit has been doing this check on all responses since the dawn of
time. I mistakenly failed to include it in git-core when smart HTTP
was introduced. At the time I didn't know how to get the Content-Type
from libcurl. I punted, meant to circle back and fix this, and just
plain forgot about it.

Signed-off-by: Shawn Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoStart preparing for 1.8.1.3
Junio C Hamano [Mon, 4 Feb 2013 18:21:10 +0000 (10:21 -0800)]
Start preparing for 1.8.1.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'bc/git-p4-for-python-2.4' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:04:57 +0000 (10:04 -0800)]
Merge branch 'bc/git-p4-for-python-2.4' into maint

* bc/git-p4-for-python-2.4:
  INSTALL: git-p4 does not support Python 3
  git-p4.py: support Python 2.4
  git-p4.py: support Python 2.5

11 years agoMerge branch 'nd/edit-branch-desc-while-detached' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:04:44 +0000 (10:04 -0800)]
Merge branch 'nd/edit-branch-desc-while-detached' into maint

Attempt to "branch --edit-description" an existing branch, while
being on a detached HEAD, errored out.

* nd/edit-branch-desc-while-detached:
  branch: no detached HEAD check when editing another branch's description

11 years agoMerge branch 'jn/do-not-drop-username-when-reading-from-etc-mailname' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:04:26 +0000 (10:04 -0800)]
Merge branch 'jn/do-not-drop-username-when-reading-from-etc-mailname' into maint

We used to stuff "user@" and then append what we read from
/etc/mailname to come up with a default e-mail ident, but a bug lost
the "user@" part.

* jn/do-not-drop-username-when-reading-from-etc-mailname:
  ident: do not drop username when reading from /etc/mailname

11 years agoMerge branch 'jk/cvsimport-does-not-work-with-cvsps3' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:04:22 +0000 (10:04 -0800)]
Merge branch 'jk/cvsimport-does-not-work-with-cvsps3' into maint

* jk/cvsimport-does-not-work-with-cvsps3:
  git-cvsimport.txt: cvsps-2 is deprecated

11 years agoMerge branch 'dl/am-hg-locale' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:04:10 +0000 (10:04 -0800)]
Merge branch 'dl/am-hg-locale' into maint

"git am" did not parse datestamp correctly from Hg generated patch,
when it is run in a locale outside C (or en)

* dl/am-hg-locale:
  am: invoke perl's strftime in C locale

11 years agoMerge branch 'jc/help' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:04:06 +0000 (10:04 -0800)]
Merge branch 'jc/help' into maint

* jc/help:
  help: include <common-cmds.h> only in one file

11 years agoMerge branch 'jc/merge-blobs' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:03:41 +0000 (10:03 -0800)]
Merge branch 'jc/merge-blobs' into maint

* jc/merge-blobs:
  Makefile: Replace merge-file.h with merge-blobs.h in LIB_H
  merge-tree: fix d/f conflicts
  merge-tree: add comments to clarify what these functions are doing
  merge-tree: lose unused "resolve_directories"
  merge-tree: lose unused "flags" from merge_list
  Which merge_file() function do you mean?

11 years agoMerge branch 'jc/doc-maintainer' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:03:35 +0000 (10:03 -0800)]
Merge branch 'jc/doc-maintainer' into maint

* jc/doc-maintainer:
  howto/maintain: document "### match next" convention in jch/pu branch
  howto/maintain: mark titles for asciidoc
  Documentation: update "howto maintain git"

11 years agoMerge branch 'bc/fix-array-syntax-for-3.0-in-completion-bash' into maint
Junio C Hamano [Mon, 4 Feb 2013 18:03:13 +0000 (10:03 -0800)]
Merge branch 'bc/fix-array-syntax-for-3.0-in-completion-bash' into maint

Command line completion code was inadvertently made incompatible with
older versions of bash by using a newer array notation.

* bc/fix-array-syntax-for-3.0-in-completion-bash:
  git-completion.bash: replace zsh notation that breaks bash 3.X

11 years agocompletion: handle path completion and colon for tcsh script
Marc Khouzam [Sat, 2 Feb 2013 19:43:25 +0000 (19:43 +0000)]
completion: handle path completion and colon for tcsh script

Recent enhancements to git-completion.bash provide intelligent path
completion for git commands.  Such completions do not provide the
'/' at the end of directories for recent versions of bash; instead,
bash itself will add the trailing slash to directories to the result
provided by git-completion.bash.  However, the completion for tcsh
uses the result of the bash completion script directly, so it either
needs to add the necessary slash itself, or needs to ask the bash
script to keep the trailing slash.

Adding the slash itself is difficult because we have to check the
each path in the output of the bash script to see if it is meant to
be a directory or something else.  For example, assuming there is a
directory named 'commit' in the current directory, then, when
completing

  git add commit<tab>

we would need to add a slash, but for

  git help commit<tab>

we should not.

Figuring out such differences would require adding much intelligence
to the tcsh completion script.  Instead, it is simpler to ask the
bash script to keep the trailing slash.  This patch does this.

Also, tcsh does not handle the colon as a completion separator so we
remove it from the list of separators.

Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
11 years agobuiltin/apply: tighten (dis)similarity index parsing
John Keeping [Sun, 3 Feb 2013 14:37:11 +0000 (14:37 +0000)]
builtin/apply: tighten (dis)similarity index parsing

This was prompted by an incorrect warning issued by clang [1], and a
suggestion by Linus to restrict the range to check for values greater
than INT_MAX since these will give bogus output after casting to int.

In fact the (dis)similarity index is a percentage, so reject values
greater than 100.

[1] http://article.gmane.org/gmane.comp.version-control.git/213857

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agocombine-diff: lift 32-way limit of combined diff
Junio C Hamano [Sun, 3 Feb 2013 21:08:18 +0000 (13:08 -0800)]
combine-diff: lift 32-way limit of combined diff

The "raw" format of combine-diff output is supposed to have as many
colons as there are parents at the beginning, then blob modes for
these parents, and then object names for these parents.

We weren't however prepared to handle a more than 32-way merge and
did not show the correct number of colons in such a case.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodoc: generate a list of valid merge tools
David Aguilar [Mon, 28 Jan 2013 00:52:26 +0000 (16:52 -0800)]
doc: generate a list of valid merge tools

Use the show_tool_names() function to build lists of all
the built-in tools supported by difftool and mergetool.
This frees us from needing to update the documentation
whenever a new tool is added.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agomergetool--lib: list user configured tools in '--tool-help'
John Keeping [Wed, 30 Jan 2013 19:55:46 +0000 (19:55 +0000)]
mergetool--lib: list user configured tools in '--tool-help'

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agomergetool--lib: add functions for finding available tools
David Aguilar [Mon, 28 Jan 2013 00:52:25 +0000 (16:52 -0800)]
mergetool--lib: add functions for finding available tools

Refactor show_tool_help() so that the tool-finding logic is broken out
into a separate show_tool_names() function.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoHonor configure's htmldir switch
Christoph J. Thompson [Sat, 2 Feb 2013 21:25:11 +0000 (22:25 +0100)]
Honor configure's htmldir switch

Honor autoconf's --htmldir switch. This allows relocating HTML docs
straight from the configure script.

Signed-off-by: Christoph J. Thompson <cjsthompson@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMakefile: explicitly set target name for autogenerated dependencies
Jonathan Nieder [Fri, 18 Nov 2011 23:23:24 +0000 (17:23 -0600)]
Makefile: explicitly set target name for autogenerated dependencies

"gcc -MF depfile -MMD -MP -c -o path/to/file.o" produces a makefile
snippet named "depfile" describing what files are needed to build the
target given by "-o".  When ccache versions before v3.0pre0~187 (Fix
handling of the -MD and -MDD options, 2009-11-01) run, they execute

gcc -MF depfile -MMD -MP -E

instead to get the final content for hashing.  Notice that the "-c -o"
combination is replaced by "-E".  The result is a target name without
a leading path.

Thus when building git with such versions of ccache with
COMPUTE_HEADER_DEPENDENCIES enabled, the generated makefile snippets
define dependencies for the wrong target:

$ make builtin/add.o
GIT_VERSION = 1.7.8.rc3
    * new build flags or prefix
    CC builtin/add.o
$ head -1 builtin/.depend/add.o.d
add.o: builtin/add.c cache.h git-compat-util.h compat/bswap.h strbuf.h \

After a change in a header file, object files in a subdirectory are
not automatically rebuilt by "make":

$ touch cache.h
$ make builtin/add.o
$

Luckily we can prevent trouble by explicitly supplying the name of the
target to ccache and gcc, using the -MQ option.  Do so.

Reported-and-tested-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Reported-by: : 허종만 <jongman.heo@samsung.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agomergetools: teach tortoisemerge to handle filenames with SP correctly
Sven Strickroth [Fri, 1 Feb 2013 20:16:30 +0000 (21:16 +0100)]
mergetools: teach tortoisemerge to handle filenames with SP correctly

TortoiseGitMerge, unlike TortoiseMerge, can be told to handle paths
with spaces in them by using -option "$FILE" (not -option:"$FILE",
which does not work for such paths) syntax.

This change was necessary because of MSYS path mangling [1], the ":"
after the "base" etc. arguments to TortoiseMerge caused the whole
argument instead of just the file name to be quoted in case of file
names with spaces. So TortoiseMerge was passed

    "-base:new file.txt"

instead of

    -base:"new file.txt"

(including the quotes). To work around this, TortoiseGitMerge does not
require the ":" after the arguments anymore which fixes handling file
names with spaces [2] (as written above).

[1] http://www.mingw.org/wiki/Posix_path_conversion
[2] https://github.com/msysgit/msysgit/issues/57

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Reported-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoRename {git- => git}remote-helpers.txt
John Keeping [Thu, 31 Jan 2013 21:59:50 +0000 (21:59 +0000)]
Rename {git- => git}remote-helpers.txt

When looking up a topic via "git help <topic>", git-help prepends "git-"
to topics that are the names of commands (either builtin or found on the
path) and "git" (no hyphen) to any other topic name.

"git-remote-helpers" is not the name of a command, so "git help
remote-helpers" looks for "gitremote-helpers" and does not find it.

Fix this by renaming "git-remote-helpers.txt" to
"gitremote-helpers.txt".

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agorun-command: be more informative about what failed
Stephen Boyd [Thu, 31 Jan 2013 02:01:05 +0000 (18:01 -0800)]
run-command: be more informative about what failed

While debugging an error with verify_signed_buffer() the error
messages from run-command weren't very useful:

 error: cannot create pipe for gpg: Too many open files
 error: could not run gpg.

because they didn't indicate *which* pipe couldn't be created.

Print which pipe failed to be created in the error message so we
can more easily debug similar problems in the future.

For example, the above error now prints:

 error: cannot create standard error pipe for gpg: Too many open files
 error: could not run gpg.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: StGit is the right spelling, not StGIT
Thomas Ackermann [Fri, 1 Feb 2013 18:08:56 +0000 (19:08 +0100)]
Documentation: StGit is the right spelling, not StGIT

They refer themselves as such at https://gna.org/projects/stgit/

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: describe the "repository" in repository-layout
Junio C Hamano [Fri, 1 Feb 2013 19:26:35 +0000 (11:26 -0800)]
Documentation: describe the "repository" in repository-layout

Update the introductory part and concisely explain how gitfile is
handled, what it is used for and for what effect.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: add a description for 'gitfile' to glossary
Thomas Ackermann [Fri, 1 Feb 2013 18:11:24 +0000 (19:11 +0100)]
Documentation: add a description for 'gitfile' to glossary

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: do not use undefined terms git-dir and git-file
Thomas Ackermann [Fri, 1 Feb 2013 18:07:56 +0000 (19:07 +0100)]
Documentation: do not use undefined terms git-dir and git-file

We will add gitfile to the glossary in a separate commit.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: the name of the system is 'Git', not 'git'
Thomas Ackermann [Mon, 21 Jan 2013 19:17:53 +0000 (20:17 +0100)]
Documentation: the name of the system is 'Git', not 'git'

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: avoid poor-man's small caps GIT
Thomas Ackermann [Mon, 21 Jan 2013 19:16:20 +0000 (20:16 +0100)]
Documentation: avoid poor-man's small caps GIT

In the earlier days, we used to spell the name of the system as GIT,
to simulate as if it were typeset with capital G and IT in small
caps.  Later we stopped doing so at around 1.6.5 days.

Let's stop doing so throughout the documentation.  The name to refer
to the whole system (and the concept it embodies) is "Git"; the
command end-users type is "git".  And document this in the coding
guideline.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Fri, 1 Feb 2013 20:52:08 +0000 (12:52 -0800)]
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'nd/edit-branch-desc-while-detached'
Junio C Hamano [Fri, 1 Feb 2013 20:40:52 +0000 (12:40 -0800)]
Merge branch 'nd/edit-branch-desc-while-detached'

Attempt to "branch --edit-description" an existing branch, while
being on a detached HEAD, errored out.

* nd/edit-branch-desc-while-detached:
  branch: no detached HEAD check when editing another branch's description

11 years agoMerge branch 'jk/gc-auto-after-fetch'
Junio C Hamano [Fri, 1 Feb 2013 20:40:16 +0000 (12:40 -0800)]
Merge branch 'jk/gc-auto-after-fetch'

Help "fetch only" repositories that do not trigger "gc --auto"
often enough.

* jk/gc-auto-after-fetch:
  fetch-pack: avoid repeatedly re-scanning pack directory
  fetch: run gc --auto after fetching

11 years agoMerge branch 'bc/git-p4-for-python-2.4'
Junio C Hamano [Fri, 1 Feb 2013 20:40:10 +0000 (12:40 -0800)]
Merge branch 'bc/git-p4-for-python-2.4'

With small updates to remove dependency on newer features of
Python, keep git-p4 usable with older Python.

* bc/git-p4-for-python-2.4:
  INSTALL: git-p4 does not support Python 3
  git-p4.py: support Python 2.4
  git-p4.py: support Python 2.5

11 years agoMerge branch 'jn/do-not-drop-username-when-reading-from-etc-mailname'
Junio C Hamano [Fri, 1 Feb 2013 20:40:05 +0000 (12:40 -0800)]
Merge branch 'jn/do-not-drop-username-when-reading-from-etc-mailname'

We used to stuff "user@" and then append what we read from
/etc/mailname to come up with a default e-mail ident, but a bug
lost the "user@" part.  This is to fix it.

* jn/do-not-drop-username-when-reading-from-etc-mailname:
  ident: do not drop username when reading from /etc/mailname

11 years agoMerge branch 'jk/cvsimport-does-not-work-with-cvsps3'
Junio C Hamano [Fri, 1 Feb 2013 20:39:59 +0000 (12:39 -0800)]
Merge branch 'jk/cvsimport-does-not-work-with-cvsps3'

Warn people that other tools are more recommendable over
cvsimport+cvsps2 combo when doing a one-shot import, and cvsimport
will not work with cvsps3.

* jk/cvsimport-does-not-work-with-cvsps3:
  git-cvsimport.txt: cvsps-2 is deprecated

11 years agoMerge branch 'jc/do-not-let-random-file-interfere-with-completion-tests'
Junio C Hamano [Fri, 1 Feb 2013 20:39:46 +0000 (12:39 -0800)]
Merge branch 'jc/do-not-let-random-file-interfere-with-completion-tests'

Scripts to test bash completion was inherently flaky as it was
affected by whatever random things the user may have on $PATH.

* jc/do-not-let-random-file-interfere-with-completion-tests:
  t9902: protect test from stray build artifacts

11 years agoMerge branch 'as/test-cleanup'
Junio C Hamano [Fri, 1 Feb 2013 20:39:42 +0000 (12:39 -0800)]
Merge branch 'as/test-cleanup'

* as/test-cleanup:
  t7102 (reset): don't hardcode SHA-1 in expected outputs

11 years agoMerge branch 'jc/no-git-config-in-clone'
Junio C Hamano [Fri, 1 Feb 2013 20:39:36 +0000 (12:39 -0800)]
Merge branch 'jc/no-git-config-in-clone'

We stopped paying attention to $GIT_CONFIG environment that points
at a single configuration file from any command other than "git config"
quite a while ago, but "git clone" internally set, exported, and
then unexported the variable during its operation unnecessarily.

* jc/no-git-config-in-clone:
  clone: do not export and unexport GIT_CONFIG

11 years agoMerge branch 'nd/fetch-depth-is-broken'
Junio C Hamano [Fri, 1 Feb 2013 20:39:24 +0000 (12:39 -0800)]
Merge branch 'nd/fetch-depth-is-broken'

"git fetch --depth" was broken in at least three ways.  The
resulting history was deeper than specified by one commit, it was
unclear how to wipe the shallowness of the repository with the
command, and documentation was misleading.

* nd/fetch-depth-is-broken:
  fetch: elaborate --depth action
  upload-pack: fix off-by-one depth calculation in shallow clone
  fetch: add --unshallow for turning shallow repo into complete one

11 years agoDocumentation/Makefile: clean up MAN*_TXT lists
Jeff King [Fri, 1 Feb 2013 19:41:14 +0000 (14:41 -0500)]
Documentation/Makefile: clean up MAN*_TXT lists

We keep a list of the various files that end up as man1,
man5, etc. Let's break these single-line lists into sorted
multi-line lists, which makes diffs that touch them much
easier to read.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoapply: diagnose incomplete submodule object name better
Junio C Hamano [Fri, 1 Feb 2013 03:33:27 +0000 (19:33 -0800)]
apply: diagnose incomplete submodule object name better

"git am -3" uses this function to build a tree that records how the
preimage the patch was created from would have looked like.  An
abbreviated object name on the index line is ordinarily sufficient
for us to figure out the object name the preimage tree would have
contained, but a change to a submodule by definition shows an object
name of a submodule commit which our repository should not have, and
get_sha1_blob() is not an appropriate way to read it (or get_sha1()
for that matter).

Use get_sha1_hex() and complain if we do not find a full object name
there.

We could read from the payload part of the patch to learn the full
object name of the commit, but the primary user "git rebase" has
been fixed to give us a full object name, so this should suffice
for now.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoapply: simplify build_fake_ancestor()
Junio C Hamano [Fri, 1 Feb 2013 03:19:44 +0000 (19:19 -0800)]
apply: simplify build_fake_ancestor()

The local variable sha1_ptr in the build_fake_ancestor() function
used to either point at the null_sha1[] (if the ancestor did not
have the path) or at sha1[] (if we read the object name into the
local array), but 7a98869 (apply: get rid of --index-info in favor
of --build-fake-ancestor, 2007-09-17) made the "missing in the
ancestor" case unnecessary, hence sha1_ptr, when used, always points
at the local array.

Get rid of the unneeded variable, and restructure the if/else
cascade a bit to make it easier to read.  There should be no
behaviour change.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-am: record full index line in the patch used while rebasing
Junio C Hamano [Fri, 1 Feb 2013 03:26:21 +0000 (19:26 -0800)]
git-am: record full index line in the patch used while rebasing

Earlier, a230949 (am --rebasing: get patch body from commit, not
from mailbox, 2012-06-26) learned to regenerate patch body from the
commit object while rebasing, instead of reading from the rebase-am
front-end.  While doing so, it used "git diff-tree" but without
giving it the "--full-index" option.

This does not matter for in-repository objects; during rebasing, any
abbreviated object name should uniquely identify them.

But we may be rebasing a commit that contains a change to a gitlink,
in which case we usually should not have the object (it names a
commit in the submodule).  A full object name is necessary to later
reconstruct a fake ancestor index for them.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agobranch: let branch filters imply --list
Jeff King [Thu, 31 Jan 2013 06:46:11 +0000 (01:46 -0500)]
branch: let branch filters imply --list

Currently, a branch filter like `--contains`, `--merged`, or
`--no-merged` is ignored when we are not in listing mode.
For example:

  git branch --contains=foo bar

will create the branch "bar" from the current HEAD, ignoring
the `--contains` argument entirely. This is not very
helpful. There are two reasonable behaviors for git here:

  1. Flag an error; the arguments do not make sense.

  2. Implicitly go into `--list` mode

This patch chooses the latter, as it is more convenient, and
there should not be any ambiguity with attempting to create
a branch; using `--contains` and not wanting to list is
nonsensical.

That leaves the case where an explicit modification option
like `-d` is given.  We already catch the case where
`--list` is given alongside `-d` and flag an error. With
this patch, we will also catch the use of `--contains` and
other filter options alongside `-d`.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodocs: clarify git-branch --list behavior
Jeff King [Thu, 31 Jan 2013 06:45:46 +0000 (01:45 -0500)]
docs: clarify git-branch --list behavior

It was not clear from the "description" section of git-branch(1)
that using a <pattern> meant that you _had_ to use the --list
option. Let's clarify that, and while we're at it, reword some
clunky and ambiguous sentences.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogpg: close stderr once finished with it in verify_signed_buffer()
Stephen Boyd [Thu, 31 Jan 2013 18:18:40 +0000 (10:18 -0800)]
gpg: close stderr once finished with it in verify_signed_buffer()

Failing to close the stderr pipe in verify_signed_buffer() causes
git to run out of file descriptors if there are many calls to
verify_signed_buffer(). An easy way to trigger this is to run

 git log --show-signature --merges | grep "key"

on the linux kernel git repo. Eventually it will fail with

 error: cannot create pipe for gpg: Too many open files
 error: could not run gpg.

Close the stderr pipe so that this can't happen.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogpg: allow translation of more error messages
Stephen Boyd [Thu, 31 Jan 2013 02:01:06 +0000 (18:01 -0800)]
gpg: allow translation of more error messages

Mark these strings for translation so that error messages are
printed in the user's language of choice.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>