gitweb.git
imap-send: move #ifdef aroundJunio C Hamano Fri, 15 Feb 2013 20:32:19 +0000 (12:32 -0800)

imap-send: move #ifdef around

Instead of adding an early return to the inside of the
ssl_socket_connect() function for NO_OPENSSL compilation, split it
into a separate stub function.

No functional change, but the next change to extend ssl_socket_connect()
will become easier to read this way.

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

Merge branch 'jc/mention-tracking-for-pull-default'Junio C Hamano Tue, 19 Feb 2013 00:05:02 +0000 (16:05 -0800)

Merge branch 'jc/mention-tracking-for-pull-default'

We stopped mentioning `tracking` is a deprecated but supported
synonym for `upstream` in pull.default even though we have no
intention of removing the support for it.

* jc/mention-tracking-for-pull-default:
doc: mention tracking for pull.default

Merge branch 'mm/config-intro-in-git-doc'Junio C Hamano Tue, 19 Feb 2013 00:04:58 +0000 (16:04 -0800)

Merge branch 'mm/config-intro-in-git-doc'

* mm/config-intro-in-git-doc:
git.txt: update description of the configuration mechanism

RelNotes 1.8.2: push-simple will not be in effect in... Junio C Hamano Mon, 18 Feb 2013 23:59:33 +0000 (15:59 -0800)

RelNotes 1.8.2: push-simple will not be in effect in this release

Also migration path for the default behaviour of "git add -u/-A" run
in a subdirectory is worth mentioning.

Both pointed out by Matthieu Moy.

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

shell-prompt: clean up nested if-thenMartin Erik Werner Mon, 18 Feb 2013 22:59:03 +0000 (23:59 +0100)

shell-prompt: clean up nested if-then

Minor clean up of if-then nesting in checks for environment variables
and config options. No functional changes.

Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual: typofix (ofthe->of the)Junio C Hamano Mon, 18 Feb 2013 20:43:00 +0000 (12:43 -0800)

user-manual: typofix (ofthe->of the)

Noticed by Drew Northup

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

Merge branch 'maint'Junio C Hamano Mon, 18 Feb 2013 08:50:33 +0000 (00:50 -0800)

Merge branch 'maint'

* maint:
user-manual: use -o latest.tar.gz to create a gzipped tarball
user-manual: use 'git config --global user.*' for setup
user-manual: mention 'git remote add' for remote branch config
user-manual: give 'git push -f' as an alternative to +master
user-manual: use 'remote add' to setup push URLs

user-manual: use -o latest.tar.gz to create a gzipped... W. Trevor King Mon, 18 Feb 2013 00:16:01 +0000 (19:16 -0500)

user-manual: use -o latest.tar.gz to create a gzipped tarball

This functionality was introduced by 0e804e09 (archive: provide
builtin .tar.gz filter, 2011-07-21) for v1.7.7.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual: use 'git config --global user.*' for setupW. Trevor King Mon, 18 Feb 2013 00:15:58 +0000 (19:15 -0500)

user-manual: use 'git config --global user.*' for setup

A simple command line call is easier than spawning an editor,
especially for folks new to ideas like the "command line" and "text
editors". This is also the approach suggested by 'git commit' if you
try and commit without having configured user.name or user.email.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual: mention 'git remote add' for remote branch... W. Trevor King Mon, 18 Feb 2013 00:15:56 +0000 (19:15 -0500)

user-manual: mention 'git remote add' for remote branch config

I hardly ever setup remote.<name>.url using 'git config'. While it
may be instructive to do so, we should also point out 'git remote
add'.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual: give 'git push -f' as an alternative to... W. Trevor King Mon, 18 Feb 2013 00:15:55 +0000 (19:15 -0500)

user-manual: give 'git push -f' as an alternative to +master

This mirrors existing language in the description of 'git fetch'.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual: use 'remote add' to setup push URLsW. Trevor King Mon, 18 Feb 2013 00:15:53 +0000 (19:15 -0500)

user-manual: use 'remote add' to setup push URLs

There is no need to use here documents to setup this configuration.
It is easier, less confusing, and more robust to use `git remote add`
directly.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://github.com/git-l10n/git-poJunio C Hamano Mon, 18 Feb 2013 08:01:12 +0000 (00:01 -0800)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: zh_CN.po: translate 35 new messages
l10n: vi.po: update new strings (2004t0u0f)
l10n: Update git.pot (35 new, 14 removed messages)

l10n: zh_CN.po: translate 35 new messagesJiang Xin Thu, 14 Feb 2013 09:47:45 +0000 (17:47 +0800)

l10n: zh_CN.po: translate 35 new messages

Translate 35 new messages came from git.pot update in 9caaf23
(l10n: Update git.pot (35 new, 14 removed messages)).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Git 1.8.2-rc0 v1.8.2-rc0Junio C Hamano Sun, 17 Feb 2013 23:35:33 +0000 (15:35 -0800)

Git 1.8.2-rc0

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

Merge branch 'jc/hidden-refs'Junio C Hamano Sun, 17 Feb 2013 23:25:57 +0000 (15:25 -0800)

Merge branch 'jc/hidden-refs'

Allow the server side to redact the refs/ namespace it shows to the
client.

Will merge to 'master'.

* jc/hidden-refs:
upload/receive-pack: allow hiding ref hierarchies
upload-pack: simplify request validation
upload-pack: share more code

Merge branch 'mp/diff-algo-config'Junio C Hamano Sun, 17 Feb 2013 23:25:51 +0000 (15:25 -0800)

Merge branch 'mp/diff-algo-config'

Add diff.algorithm configuration so that the user does not type
"diff --histogram".

* mp/diff-algo-config:
diff: Introduce --diff-algorithm command line option
config: Introduce diff.algorithm variable
git-completion.bash: Autocomplete --minimal and --histogram for git-diff

Merge branch 'mw/bash-prompt-show-untracked-config'Junio C Hamano Sun, 17 Feb 2013 23:25:46 +0000 (15:25 -0800)

Merge branch 'mw/bash-prompt-show-untracked-config'

Allows skipping the untracked check GIT_PS1_SHOWUNTRACKEDFILES
asks for the git-prompt (in contrib/) per repository.

* mw/bash-prompt-show-untracked-config:
t9903: add extra tests for bash.showDirtyState
t9903: add tests for bash.showUntrackedFiles
shell prompt: add bash.showUntrackedFiles option

Merge branch 'jk/rebase-i-comment-char'Junio C Hamano Sun, 17 Feb 2013 23:25:19 +0000 (15:25 -0800)

Merge branch 'jk/rebase-i-comment-char'

Finishing touches to the earlier core.commentchar topic to cover
"rebase -i" as well.

* jk/rebase-i-comment-char:
rebase -i: respect core.commentchar

Merge branch 'jk/read-commit-buffer-data-after-free'Junio C Hamano Sun, 17 Feb 2013 23:23:20 +0000 (15:23 -0800)

Merge branch 'jk/read-commit-buffer-data-after-free'

"git log --grep=<pattern>" used to look for the pattern in literal
bytes of the commit log message and ignored the log-output encoding.

* jk/read-commit-buffer-data-after-free:
log: re-encode commit messages before grepping

l10n: vi.po: update new strings (2004t0u0f)Tran Ngoc Quan Sun, 17 Feb 2013 01:42:47 +0000 (08:42 +0700)

l10n: vi.po: update new strings (2004t0u0f)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

Update draft release notes to 1.8.2Junio C Hamano Fri, 15 Feb 2013 20:24:54 +0000 (12:24 -0800)

Update draft release notes to 1.8.2

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

git.txt: update description of the configuration mechanismMatthieu Moy Thu, 14 Feb 2013 15:36:54 +0000 (16:36 +0100)

git.txt: update description of the configuration mechanism

The old Git version where it appeared is now useful only to historians,
not to normal users. Also, the text was mentioning only the per-repo
config file, but this is a good place to teach that customization can
also be made per-user.

While at it, remove a now-defunct e-mail from an example.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'wk/man-deny-current-branch-is-default... Junio C Hamano Fri, 15 Feb 2013 00:06:29 +0000 (16:06 -0800)

Merge branch 'wk/man-deny-current-branch-is-default-these-days'

* wk/man-deny-current-branch-is-default-these-days:
user-manual: Update for receive.denyCurrentBranch=refuse

Merge branch 'mk/make-rm-depdirs-could-be-empty'Junio C Hamano Fri, 15 Feb 2013 00:06:24 +0000 (16:06 -0800)

Merge branch 'mk/make-rm-depdirs-could-be-empty'

"make COMPUTE_HEADER_DEPENDENCIES=no clean" would try to run "rm
-rf $(dep_dirs)" with an empty dep_dir, but some implementations of
"rm -rf" barf on an empty argument list.

* mk/make-rm-depdirs-could-be-empty:
Makefile: don't run "rm" without any files

Merge branch 'mm/config-local-completion'Junio C Hamano Fri, 15 Feb 2013 00:06:19 +0000 (16:06 -0800)

Merge branch 'mm/config-local-completion'

* mm/config-local-completion:
completion: support 'git config --local'

Merge branch 'ef/non-ascii-parse-options-error-diag'Junio C Hamano Fri, 15 Feb 2013 00:06:14 +0000 (16:06 -0800)

Merge branch 'ef/non-ascii-parse-options-error-diag'

* ef/non-ascii-parse-options-error-diag:
parse-options: report uncorrupted multi-byte options

Merge branch 'mk/old-expat'Junio C Hamano Fri, 15 Feb 2013 00:06:08 +0000 (16:06 -0800)

Merge branch 'mk/old-expat'

* mk/old-expat:
Allow building with xmlparse.h

Merge branch 'da/p4merge-mktemp-fix'Junio C Hamano Fri, 15 Feb 2013 00:05:56 +0000 (16:05 -0800)

Merge branch 'da/p4merge-mktemp-fix'

* da/p4merge-mktemp-fix:
p4merge: fix printf usage

Documentation/git-add: kill remaining <filepattern>Junio C Hamano Thu, 14 Feb 2013 23:51:43 +0000 (15:51 -0800)

Documentation/git-add: kill remaining <filepattern>

The merge at 5bf72ed2 missed another instance of <filepattern> that
we were converting to <pathspec>.

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

user-manual: Update for receive.denyCurrentBranch=refuseW. Trevor King Fri, 8 Feb 2013 17:04:20 +0000 (12:04 -0500)

user-manual: Update for receive.denyCurrentBranch=refuse

acd2a45 (Refuse updating the current branch in a non-bare repository
via push, 2009-02-11) changed the default to refuse such a push, but
it forgot to update the docs.

7d182f5 (Documentation: receive.denyCurrentBranch defaults to
'refuse', 2010-03-17) updated Documentation/config.txt, but forgot to
update the user manual.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.2Junio C Hamano Thu, 14 Feb 2013 18:43:07 +0000 (10:43 -0800)

Update draft release notes to 1.8.2

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

Merge branch 'jk/diff-graph-cleanup'Junio C Hamano Thu, 14 Feb 2013 18:29:59 +0000 (10:29 -0800)

Merge branch 'jk/diff-graph-cleanup'

Refactors a lot of repetitive code sequence from the graph drawing
code and adds it to the combined diff output.

* jk/diff-graph-cleanup:
combine-diff.c: teach combined diffs about line prefix
diff.c: use diff_line_prefix() where applicable
diff: add diff_line_prefix function
diff.c: make constant string arguments const
diff: write prefix to the correct file
graph: output padding for merge subsequent parents

Merge branch 'nd/status-show-in-progress'Junio C Hamano Thu, 14 Feb 2013 18:29:54 +0000 (10:29 -0800)

Merge branch 'nd/status-show-in-progress'

* nd/status-show-in-progress:
status: show the branch name if possible in in-progress info

Merge branch 'mm/remote-mediawiki-build'Junio C Hamano Thu, 14 Feb 2013 18:29:49 +0000 (10:29 -0800)

Merge branch 'mm/remote-mediawiki-build'

* mm/remote-mediawiki-build:
git-remote-mediawiki: use toplevel's Makefile
Makefile: make script-related rules usable from subdirectories

Merge branch 'bw/get-tz-offset-perl'Junio C Hamano Thu, 14 Feb 2013 18:29:44 +0000 (10:29 -0800)

Merge branch 'bw/get-tz-offset-perl'

* bw/get-tz-offset-perl:
cvsimport: format commit timestamp ourselves without using strftime
perl/Git.pm: fix get_tz_offset to properly handle DST boundary cases
Move Git::SVN::get_tz to Git::get_tz_offset

Merge branch 'al/mergetool-printf-fix'Junio C Hamano Thu, 14 Feb 2013 18:29:37 +0000 (10:29 -0800)

Merge branch 'al/mergetool-printf-fix'

* al/mergetool-printf-fix:
difftool--helper: fix printf usage
git-mergetool: print filename when it contains %

Merge branch 'jk/error-const-return'Junio C Hamano Thu, 14 Feb 2013 18:29:23 +0000 (10:29 -0800)

Merge branch 'jk/error-const-return'

* jk/error-const-return:
Use __VA_ARGS__ for all of error's arguments

Merge branch 'jx/utf8-printf-width'Junio C Hamano Thu, 14 Feb 2013 18:29:08 +0000 (10:29 -0800)

Merge branch 'jx/utf8-printf-width'

Use a new helper that prints a message and counts its display width
to align the help messages parse-options produces.

* jx/utf8-printf-width:
Add utf8_fprintf helper that returns correct number of columns

Merge branch 'mg/bisect-doc'Junio C Hamano Thu, 14 Feb 2013 18:29:01 +0000 (10:29 -0800)

Merge branch 'mg/bisect-doc'

* mg/bisect-doc:
git-bisect.txt: clarify that reset quits bisect

Merge branch 'tz/perl-styles'Junio C Hamano Thu, 14 Feb 2013 18:28:55 +0000 (10:28 -0800)

Merge branch 'tz/perl-styles'

Add coding guidelines for writing Perl scripts for Git.

* tz/perl-styles:
Update CodingGuidelines for Perl

Merge branch 'jc/extended-fake-ancestor-for-gitlink'Junio C Hamano Thu, 14 Feb 2013 18:28:48 +0000 (10:28 -0800)

Merge branch 'jc/extended-fake-ancestor-for-gitlink'

Instead of requiring the full 40-hex object names on the index
line, we can read submodule commit object names from the textual
diff when synthesizing a fake ancestore tree for "git am -3".

* jc/extended-fake-ancestor-for-gitlink:
apply: verify submodule commit object name better

Merge branch 'dg/subtree-fixes'Junio C Hamano Thu, 14 Feb 2013 18:28:26 +0000 (10:28 -0800)

Merge branch 'dg/subtree-fixes'

contrib/subtree updates, but here are only the ones that looked
ready. The remainder of the patches will have another day.

* dg/subtree-fixes:
contrib/subtree: make the manual directory if needed
contrib/subtree: honor DESTDIR
contrib/subtree: fix synopsis
contrib/subtree: better error handling for 'subtree add'
contrib/subtree: use %B for split subject/body
contrib/subtree: remove test number comments

l10n: Update git.pot (35 new, 14 removed messages)Jiang Xin Thu, 14 Feb 2013 06:49:45 +0000 (14:49 +0800)

l10n: Update git.pot (35 new, 14 removed messages)

L10n for git 1.8.2 round 2: Generate po/git.pot from v1.8.1.3-568-g5bf72.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

t9903: add extra tests for bash.showDirtyStateMartin Erik Werner Wed, 13 Feb 2013 20:58:19 +0000 (21:58 +0100)

t9903: add extra tests for bash.showDirtyState

Add 3 extra tests for the bash.showDirtyState config option; the
tests now cover all combinations of the shell var being set/unset
and the config option being missing/enabled/disabled, given a dirty
file.

Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9903: add tests for bash.showUntrackedFilesMartin Erik Werner Wed, 13 Feb 2013 20:58:18 +0000 (21:58 +0100)

t9903: add tests for bash.showUntrackedFiles

Add 4 tests for the bash.showUntrackedFiles config option, covering
all combinations of the shell var being set/unset and the config
option being enabled/disabled (the other 2 cases, missing config
with and without shell variable, are already covered by existing
tests).

Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: don't run "rm" without any filesMatt Kraai Wed, 13 Feb 2013 15:57:48 +0000 (07:57 -0800)

Makefile: don't run "rm" without any files

When COMPUTE_HEADER_DEPENDENCIES is set to "auto" and the compiler
does not support it, $(dep_dirs) becomes empty. "make clean" runs
"rm -rf $(dep_dirs)", which can fail in such a case.

Signed-off-by: Matt Kraai <matt.kraai@amo.abbott.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

shell prompt: add bash.showUntrackedFiles optionMartin Erik Werner Wed, 13 Feb 2013 11:01:58 +0000 (12:01 +0100)

shell prompt: add bash.showUntrackedFiles option

Add a config option 'bash.showUntrackedFiles' which allows enabling
the prompt showing untracked files on a per-repository basis. This is
useful for some repositories where the 'git ls-files ...' command may
take a long time.

Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 12 Feb 2013 20:23:12 +0000 (12:23 -0800)

Merge branch 'maint'

* maint:
Replace filepattern with pathspec for consistency

rebase -i: respect core.commentcharJohn Keeping Mon, 11 Feb 2013 23:08:04 +0000 (23:08 +0000)

rebase -i: respect core.commentchar

Commit eff80a9 (Allow custom "comment char") introduced a custom comment
character for commit messages but did not teach git-rebase--interactive
to use it.

Change git-rebase--interactive to read core.commentchar and use its
value when generating commit messages and for the command list.

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

combine-diff.c: teach combined diffs about line prefixJohn Keeping Thu, 7 Feb 2013 20:15:28 +0000 (20:15 +0000)

combine-diff.c: teach combined diffs about line prefix

When running "git log --graph --cc -p" the diff output for merges is not
indented by the graph structure, unlike the diffs of non-merge commits
(added in commit 7be5761 - diff.c: Output the text graph padding before
each diff line).

Fix this by teaching the combined diff code to output diff_line_prefix()
before each line.

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

diff.c: use diff_line_prefix() where applicableJohn Keeping Thu, 7 Feb 2013 20:15:27 +0000 (20:15 +0000)

diff.c: use diff_line_prefix() where applicable

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

diff: add diff_line_prefix functionJohn Keeping Thu, 7 Feb 2013 20:15:26 +0000 (20:15 +0000)

diff: add diff_line_prefix function

This is a helper function to call the diff output_prefix function and
return its value as a C string, allowing us to greatly simplify
everywhere that needs to get the output prefix.

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

diff.c: make constant string arguments constJohn Keeping Thu, 7 Feb 2013 20:15:25 +0000 (20:15 +0000)

diff.c: make constant string arguments const

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

diff: write prefix to the correct fileJohn Keeping Thu, 7 Feb 2013 20:15:24 +0000 (20:15 +0000)

diff: write prefix to the correct file

Write the prefix for an output line to the same file as the actual
content.

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

completion: support 'git config --local'Matthieu Moy Tue, 12 Feb 2013 12:20:42 +0000 (13:20 +0100)

completion: support 'git config --local'

This needs to be done in two places: __git_config_get_set_variables to
allow clever completion of "git config --local --get foo<tab>", and
_git_config to allow "git config --loc<tab>" to complete to --local.

While we're there, change the order of options in the code to match
git-config.txt.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Replace filepattern with pathspec for consistencyMatthieu Moy Tue, 12 Feb 2013 09:24:44 +0000 (10:24 +0100)

Replace filepattern with pathspec for consistency

pathspec is the most widely used term, and is the one defined in
gitglossary.txt. <filepattern> was used only in the synopsys for git-add
and git-commit, and in git-add.txt. Get rid of it.

This patch is obtained with by running:

perl -pi -e 's/filepattern/pathspec/' `git grep -l filepattern`

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-options: report uncorrupted multi-byte optionsErik Faye-Lund Mon, 11 Feb 2013 23:13:48 +0000 (00:13 +0100)

parse-options: report uncorrupted multi-byte options

Because our command-line parser considers only one byte at the time
for short-options, we incorrectly report only the first byte when
multi-byte input was provided. This makes user-errors slightly
awkward to diagnose for instance under UTF-8 locale and non-English
keyboard layouts.

Report the whole argument-string when a non-ASCII short-option is
detected.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Improved-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Allow building with xmlparse.hMatt Kraai Mon, 11 Feb 2013 22:03:45 +0000 (14:03 -0800)

Allow building with xmlparse.h

expat 1.1 and 1.2 provide xmlparse.h instead of expat.h. Include the
former on systems that define the EXPAT_NEEDS_XMLPARSE_H variable and
define that variable on QNX systems, which ship with expat 1.1.

Signed-off-by: Matt Kraai <matt.kraai@amo.abbott.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

log: re-encode commit messages before greppingJeff King Mon, 11 Feb 2013 20:59:58 +0000 (15:59 -0500)

log: re-encode commit messages before grepping

If you run "git log --grep=foo", we will run your regex on
the literal bytes of the commit message. This can provide
confusing results if the commit message is not in the same
encoding as your grep expression (or worse, you have commits
in multiple encodings, in which case your regex would need
to be written to match either encoding). On top of this, we
might also be grepping in the commit's notes, which are
already re-encoded, potentially leading to grepping in a
buffer with mixed encodings concatenated. This is insanity,
but most people never noticed, because their terminal and
their commit encodings all match.

Instead, let's massage the to-be-grepped commit into a
standardized encoding. There is not much point in adding a
flag for "this is the encoding I expect my grep pattern to
match"; the only sane choice is for it to use the log output
encoding. That is presumably what the user's terminal is
using, and it means that the patterns found by the grep will
match the output produced by git.

As a bonus, this fixes a potential segfault in commit_match
when commit->buffer is NULL, as we now build on logmsg_reencode,
which handles reading the commit buffer from disk if
necessary. The segfault can be triggered with:

git commit -m 'text1' --allow-empty
git commit -m 'text2' --allow-empty
git log --graph --no-walk --grep 'text2'

which arguably does not make any sense (--graph inherently
wants a connected history, and by --no-walk the command line
is telling us to show discrete points in history without
connectivity), and we probably should forbid the
combination, but that is a separate issue.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add utf8_fprintf helper that returns correct number... Jiang Xin Sat, 9 Feb 2013 06:31:09 +0000 (14:31 +0800)

Add utf8_fprintf helper that returns correct number of columns

Since command usages can be translated, they may include utf-8
encoded strings, and the output in console may not align well any
more. This is because strlen() is different from strwidth() on utf-8
strings.

A wrapper utf8_fprintf() can help to return the correct number of
columns required.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Reviewed-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-bisect.txt: clarify that reset quits bisectMichael J Gruber Mon, 11 Feb 2013 08:35:04 +0000 (09:35 +0100)

git-bisect.txt: clarify that reset quits bisect

"reset" can be easily misunderstood as resetting a bisect session to its
start without finishing it. Clarify that it actually quits the bisect
session.

Reported-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.2Junio C Hamano Mon, 11 Feb 2013 04:47:28 +0000 (20:47 -0800)

Update draft release notes to 1.8.2

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

Merge 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

user-manual: Rewrite git-gc section for automatic packingW. 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>

user-manual: Fix 'you - Git' -> 'you--Git' typoW. 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>

user-manual: Fix 'http' -> 'HTTP' typosW. 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>

Merge 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

user-manual: Fix 'both: so' -> 'both; so' typoW. 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>

p4merge: fix printf usageDavid Aguilar Sun, 10 Feb 2013 01:21:25 +0000 (17:21 -0800)

p4merge: fix printf usage

Do not use a random string as if it is a format string for printf
when showing it literally; instead feed it to '%s' format.

Reported-by: Asheesh Laroia <asheesh@asheesh.org>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

difftool--helper: fix printf usageDavid Aguilar Sun, 10 Feb 2013 01:21:25 +0000 (17:21 -0800)

difftool--helper: fix printf usage

Do not use a random string as if it is a format string for printf
when showing it literally; instead feed it to '%s' format.

Reported-by: Asheesh Laroia <asheesh@asheesh.org>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cvsimport: format commit timestamp ourselves without... Ben Walton Sat, 9 Feb 2013 21:46:58 +0000 (21:46 +0000)

cvsimport: format commit timestamp ourselves without using strftime

Some implementations of strftime(3) lack support for "%z". Also
there is no need for %s in git-cvsimport as the supplied time is
already in seconds since the epoch.

For %z, use the function get_tz_offset provided by Git.pm instead.

Signed-off-by: Ben Walton <bdwalton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

perl/Git.pm: fix get_tz_offset to properly handle DST... Ben Walton Sat, 9 Feb 2013 21:46:57 +0000 (21:46 +0000)

perl/Git.pm: fix get_tz_offset to properly handle DST boundary cases

When passed a local time that was on the boundary of a DST change,
get_tz_offset returned a GMT offset that was incorrect (off by one
hour). This is because the time was converted to GMT and then back to
a time stamp via timelocal() which cannot disambiguate boundary cases
as noted in its documentation.

Modify this algorithm, using an approach suggested in

http://article.gmane.org/gmane.comp.version-control.git/213871

to first convert the timestamp in question to two broken down forms
with localtime() and gmtime(), and then compute what timestamps
these two broken down forms would represent in GMT (i.e. a timezone
that does not have DST issues) by applying timegm() on them. The
difference between the resulting timestamps is the timezone offset.

This avoids the ambigious conversion and allows a correct time to be
returned on every occassion.

Signed-off-by: Ben Walton <bdwalton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Move Git::SVN::get_tz to Git::get_tz_offsetBen Walton Sat, 9 Feb 2013 21:46:56 +0000 (21:46 +0000)

Move Git::SVN::get_tz to Git::get_tz_offset

This function has utility outside of the SVN module for any routine
that needs the equivalent of GNU strftime's %z formatting option.
Move it to the top-level Git.pm so that non-SVN modules don't need to
import the SVN module to use it.

The rename makes the purpose of the function clearer.

Signed-off-by: Ben Walton <bdwalton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' of git://github.com/git-l10n... 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

git-mergetool: print filename when it contains %Asheesh Laroia Fri, 8 Feb 2013 01:16:24 +0000 (17:16 -0800)

git-mergetool: print filename when it contains %

If git-mergetool was invoked with files with a percent sign (%) in
their names, it would print an error. For example, if you were
calling mergetool on a file called "%2F":

printf: %2F: invalid directive

Do not pass random string to printf as if it were a valid format.
Use format string "%s" and pass the string as data to be formatted
instead.

Signed-off-by: Asheesh Laroia <asheesh@asheesh.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: 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>

l10n: de.po: translate "revision" consistently as ... 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>

l10n: de.po: translate 11 new messagesRalf 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>

git-remote-mediawiki: use toplevel's MakefileMatthieu Moy Fri, 8 Feb 2013 17:31:17 +0000 (18:31 +0100)

git-remote-mediawiki: use toplevel's Makefile

This makes the Makefile simpler, while providing more features, and more
consistency (the exact same rules with the exact same configuration as
Git official commands are applied with the new version).

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: make script-related rules usable from subdire... Matthieu Moy Fri, 8 Feb 2013 17:31:16 +0000 (18:31 +0100)

Makefile: make script-related rules usable from subdirectories

Git's Makefile provides a few nice features for script build and
installation (substitute the first line with the right path, hardcode the
path to Git library, ...).

The Makefile already knows how to process files outside the toplevel
directory with e.g.

make SCRIPT_PERL=path/to/file.perl path/to/file

but we can make it simpler for callers by exposing build, install and
clean rules as .PHONY targets.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: zh_CN.po: 800+ new translations on command usagesWang 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>

Use __VA_ARGS__ for all of error's argumentsMatt Kraai Fri, 8 Feb 2013 15:09:28 +0000 (07:09 -0800)

Use __VA_ARGS__ for all of error's arguments

QNX 6.3.2 uses GCC 2.95.3 by default, and GCC 2.95.3 doesn't remove the
comma if the error macro's variable argument is left out.

Instead of testing for a sufficiently recent version of GCC, make
__VA_ARGS__ match all of the arguments.

Signed-off-by: Matt Kraai <matt.kraai@amo.abbott.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.2Junio 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>

Sync with 1.8.1.3Junio C Hamano Thu, 7 Feb 2013 23:21:49 +0000 (15:21 -0800)

Sync with 1.8.1.3

Git 1.8.1.3 v1.8.1.3Junio 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>

Merge branch 'mz/pick-unborn' into maintJunio 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

Merge branch 'nd/fix-perf-parameters-in-tests' into... 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_*

Merge branch 'jc/do-not-let-random-file-interfere-with... 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

Merge branch 'ft/transport-report-segv' into maintJunio 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

Merge branch 'sb/gpg-plug-fd-leak' into maintJunio 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()

Merge branch 'jc/fake-ancestor-with-non-blobs' into... 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

Merge branch 'jn/auto-depend-workaround-buggy-ccache... 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

Merge 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

Merge 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