gitweb.git
rebase -i: Add tests for "--edit-todo"Andrew Wong Tue, 18 Sep 2012 01:28:10 +0000 (21:28 -0400)

rebase -i: Add tests for "--edit-todo"

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i: Teach "--edit-todo" actionAndrew Wong Tue, 18 Sep 2012 01:28:09 +0000 (21:28 -0400)

rebase -i: Teach "--edit-todo" action

This allows users to edit the todo file while they're stopped in the
middle of an interactive rebase. When this action is executed, all
comments from the original todo file are stripped, and new help messages
are appended to the end.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i: Refactor help messages for todo fileAndrew Wong Tue, 18 Sep 2012 01:28:08 +0000 (21:28 -0400)

rebase -i: Refactor help messages for todo file

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase usage: subcommands can not be combined with -iMartin von Zweigbergk Tue, 18 Sep 2012 01:28:07 +0000 (21:28 -0400)

rebase usage: subcommands can not be combined with -i

Since 95135b0 (rebase: stricter check of standalone sub command,
2011-02-06), git-rebase has not allowed to use -i together with e.g.
--continue. Yet, when rebase started using OPTIONS_SPEC in 45e2acf
(rebase: define options in OPTIONS_SPEC, 2011-02-28), the usage message
included

git-rebase [-i] --continue | --abort | --skip

Remove the "[-i]" from this line.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

The seventh batch for 1.8.0Junio C Hamano Mon, 17 Sep 2012 23:00:39 +0000 (16:00 -0700)

The seventh batch for 1.8.0

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

Merge branch 'maint'Junio C Hamano Mon, 17 Sep 2012 22:59:34 +0000 (15:59 -0700)

Merge branch 'maint'

* maint:
t/perf: add "trash directory" to .gitignore
Add missing -z to git check-attr usage text for consistency with man page
git-jump: ignore (custom) prefix in diff mode
Documentation: indent-with-non-tab uses "equivalent tabs" not 8
completion: add --no-edit to git-commit

Merge branch 'mh/fetch-filter-refs'Junio C Hamano Mon, 17 Sep 2012 22:58:49 +0000 (15:58 -0700)

Merge branch 'mh/fetch-filter-refs'

Code simplification and clarification.

* mh/fetch-filter-refs:
test-string-list.c: Fix some sparse warnings
fetch-pack: eliminate spurious error messages
cmd_fetch_pack(): simplify computation of return value
fetch-pack: report missing refs even if no existing refs were received
cmd_fetch_pack(): return early if finish_connect() fails
filter_refs(): simplify logic
filter_refs(): build refs list as we go
filter_refs(): delete matched refs from sought list
fetch_pack(): update sought->nr to reflect number of unique entries
filter_refs(): do not check the same sought_pos twice
Change fetch_pack() and friends to take string_list arguments
fetch_pack(): reindent function decl and defn
Rename static function fetch_pack() to http_fetch_pack()
t5500: add tests of fetch-pack --all --depth=N $URL $REF
t5500: add tests of error output for missing refs

Merge branch 'nd/maint-diffstat-summary'Junio C Hamano Mon, 17 Sep 2012 22:57:22 +0000 (15:57 -0700)

Merge branch 'nd/maint-diffstat-summary'

Earlier we made the diffstat summary line that shows the number of
lines added/deleted localizable, but it was found irritating having
to see them in various languages on a list whose discussion language
is English.

The original had trivial thinko in reverting Q_(), which has been
fixed.

* nd/maint-diffstat-summary:
Revert diffstat back to English

Merge branch 'jk/config-warn-on-inaccessible-paths'Junio C Hamano Mon, 17 Sep 2012 22:55:41 +0000 (15:55 -0700)

Merge branch 'jk/config-warn-on-inaccessible-paths'

The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree. Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR are diagnosed.

* jk/config-warn-on-inaccessible-paths:
attr: failure to open a .gitattributes file is OK with ENOTDIR

Merge branch 'jw/doc-commit-title'Junio C Hamano Mon, 17 Sep 2012 22:53:39 +0000 (15:53 -0700)

Merge branch 'jw/doc-commit-title'

Update parts of document that talked about "first line of commit
log" to say "title of commit" with definition of what that "title"
is.

* jw/doc-commit-title:
Documentation: describe subject more precisely

Merge branch 'mh/string-list'Junio C Hamano Mon, 17 Sep 2012 22:53:31 +0000 (15:53 -0700)

Merge branch 'mh/string-list'

* mh/string-list:
api-string-list.txt: initialize the string_list the easy way
string_list: add a function string_list_longest_prefix()
string_list: add a new function, string_list_remove_duplicates()
string_list: add a new function, filter_string_list()
string_list: add two new functions for splitting strings
string_list: add function string_list_append_nodup()

Merge branch 'jc/maint-blame-no-such-path'Junio C Hamano Mon, 17 Sep 2012 22:52:32 +0000 (15:52 -0700)

Merge branch 'jc/maint-blame-no-such-path'

"git blame MAKEFILE" run in a history that has "Makefile" but not
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
confused on a case insensitive filesystem and failed to do so.

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

* jc/maint-blame-no-such-path:
blame: allow "blame file" in the middle of a conflicted merge
blame $path: avoid getting fooled by case insensitive filesystems

make poll() work on platforms that can't recv() on... Joachim Schmitz Mon, 17 Sep 2012 21:24:42 +0000 (23:24 +0200)

make poll() work on platforms that can't recv() on a non-socket

This way it just got added to gnulib too the other day.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

poll() exits too early with EFAULT if 1st arg is NULLJoachim Schmitz Mon, 17 Sep 2012 21:23:17 +0000 (23:23 +0200)

poll() exits too early with EFAULT if 1st arg is NULL

If poll() is used as a milli-second sleep, like in help.c, by passing a NULL
in the 1st and a 0 in the 2nd arg, it exits with EFAULT.

As per Paolo Bonzini, the original author, this is a bug and to be fixed
Like in this commit, which is not to exit if the 2nd arg is 0. It got fixed
In gnulib in the same manner the other day.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fix some win32 specific dependencies in poll.cJoachim Schmitz Mon, 17 Sep 2012 21:18:27 +0000 (23:18 +0200)

fix some win32 specific dependencies in poll.c

In order for non-win32 platforms to be able to use poll.c, #ifdef the
inclusion of two header files properly

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make poll available for other platforms lacking itJoachim Schmitz Mon, 17 Sep 2012 21:16:39 +0000 (23:16 +0200)

make poll available for other platforms lacking it

move poll.[ch] out of compat/win32/ into compat/poll/ and adjust
Makefile with the changed paths. Adding comments to Makefile about
how/when to enable it and add logic for this

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mailinfo: do not concatenate charset= attribute values... Junio C Hamano Mon, 17 Sep 2012 21:17:58 +0000 (14:17 -0700)

mailinfo: do not concatenate charset= attribute values from mime headers

"Content-type: text/plain; charset=UTF-8" header should not appear
twice in the input, but it is always better to gracefully deal with
such a case. The current code concatenates the value to the values
we have seen previously, producing nonsense such as "utf8UTF-8".

Instead of concatenating, forget the previous value and use the last
value we see.

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

t/perf: add "trash directory" to .gitignoreRamkumar Ramachandra Mon, 17 Sep 2012 17:06:18 +0000 (22:36 +0530)

t/perf: add "trash directory" to .gitignore

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

Add missing -z to git check-attr usage text for consist... Adam Spiers Mon, 17 Sep 2012 11:38:51 +0000 (12:38 +0100)

Add missing -z to git check-attr usage text for consistency with man page

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-jump: ignore (custom) prefix in diff modeMischa POSLAWSKY Mon, 17 Sep 2012 01:21:55 +0000 (03:21 +0200)

git-jump: ignore (custom) prefix in diff mode

Matching the default file prefix b/ does not yield any results if config
option diff.noprefix or diff.mnemonicprefix is enabled.

Signed-off-by: Mischa POSLAWSKY <git@shiar.nl>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: indent-with-non-tab uses "equivalent... Wesley J. Landaker Mon, 17 Sep 2012 14:22:15 +0000 (08:22 -0600)

Documentation: indent-with-non-tab uses "equivalent tabs" not 8

Update the documentation of the core.whitespace option
"indent-with-non-tab" to correctly reflect that it catches the use of
spaces instead of the equivalent tabs, rather than a fixed number.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: remove .git/CHERRY_PICK_HEAD after committingBeat Bolli Sat, 18 Aug 2012 20:28:00 +0000 (13:28 -0700)

git-gui: remove .git/CHERRY_PICK_HEAD after committing

Adding _git_ps1() to one's bash prompt displays various repo status
info after each command. After committing a git cherry-pick -n using
git-gui, the prompt still contains the "|CHERRY-PICKING" flag.

Delete the file causing this flag when cleaning up.

Signed-off-by: Beat Bolli <bbolli@ewanet.ch>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: Fix a loose/lose mistakeBeat Bolli Sat, 18 Aug 2012 20:24:00 +0000 (13:24 -0700)

git-gui: Fix a loose/lose mistake

Acked-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Beat Bolli <bbolli@ewanet.ch>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: Fix semi-working shortcuts for unstage and... Vitaly _Vi Shukela Fri, 14 Sep 2012 23:36:41 +0000 (02:36 +0300)

git-gui: Fix semi-working shortcuts for unstage and revert

Make Ctrl+U for unstaging and Ctrl+J for reverting selection behave
more like Ctrl+T for adding.

They were working only when one area was focused (diff or commit message),
now they should work everywhere.

Acked-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Vitaly _Vi Shukela <vi0oss@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

completion: add --no-edit to git-commitYacine Belkadi Sun, 16 Sep 2012 16:06:11 +0000 (18:06 +0200)

completion: add --no-edit to git-commit

Signed-off-by: Yacine Belkadi <yacine.belkadi.1@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add userdiff patterns for AdaAdrian Johnson Sun, 16 Sep 2012 03:54:15 +0000 (13:24 +0930)

Add userdiff patterns for Ada

Add Ada xfuncname and wordRegex patterns to the list of builtin
patterns.

Signed-off-by: Adrian Johnson <ajohnson@redneon.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: add submit --conflict option and config varaiablePete Wyckoff Sun, 9 Sep 2012 20:16:13 +0000 (16:16 -0400)

git-p4: add submit --conflict option and config varaiable

This allows specifying what to do when a conflict
happens when applying a commit to p4, automating the
interactive prompt.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: add submit --prepare-p4-only optionPete Wyckoff Sun, 9 Sep 2012 20:16:12 +0000 (16:16 -0400)

git p4: add submit --prepare-p4-only option

This option can be used to prepare the client workspace for
submission, only. It does not invoke the final "p4 submit".
A message describes how to proceed, either submitting the
changes or reverting.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: add submit --dry-run optionPete Wyckoff Sun, 9 Sep 2012 20:16:11 +0000 (16:16 -0400)

git p4: add submit --dry-run option

A new option, "git p4 submit --dry-run" can be used to verify
what commits and labels would be moved into p4.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: accept -v for --verbosePete Wyckoff Sun, 9 Sep 2012 20:16:10 +0000 (16:16 -0400)

git p4: accept -v for --verbose

The short form "-v" is common in many git commands as an
alias for "--verbose".

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: revert deleted files after submit cancelPete Wyckoff Sun, 9 Sep 2012 20:16:09 +0000 (16:16 -0400)

git p4: revert deleted files after submit cancel

The user can decide not to continue with a submission,
by not saving the p4 submit template, then answering "no" to
the "Submit anyway?" prompt. In this case, be sure to
return the p4 client to its initial state.

Deleted files were not reverted; fix this and test all cases.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: rearrange submit template constructionPete Wyckoff Sun, 9 Sep 2012 20:16:08 +0000 (16:16 -0400)

git p4: rearrange submit template construction

Put all items in order as they appear, and add comments.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: test clean-up after failed submit, fix added... Pete Wyckoff Sun, 9 Sep 2012 20:16:07 +0000 (16:16 -0400)

git p4: test clean-up after failed submit, fix added files

Test a variety of cases where a patch failed to apply to
p4 and had to be cleaned up.

If the patch failed to apply cleanly, do not try to remove
to-be-added files, as they have not really been added yet.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: standardize submit cancel due to unchanged... Pete Wyckoff Sun, 9 Sep 2012 20:16:06 +0000 (16:16 -0400)

git p4: standardize submit cancel due to unchanged template

When editing the submit template, if no change was made to it,
git p4 offers a prompt "Submit anyway?". Answering "no" cancels
the submit.

Previously, a "no" answer behaves like a "[s]kip" answer to the
failed-patch prompt, in that it proceeded to try to apply the
rest of the commits. Instead, put users back into the new
"[s]kip / [c]ontinue" loop so that they can decide. This makes
both cases of patch failure behave identically.

The return code of git p4 after a "no" answer is now the same
as that for a "skip" due to failed patch; update a test to
understand this.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: move conflict prompt into run, add [q]uit inputPete Wyckoff Sun, 9 Sep 2012 20:16:05 +0000 (16:16 -0400)

git p4: move conflict prompt into run, add [q]uit input

When applying a commit to the p4 workspace fails, a prompt
asks what to do next. This belongs up in run() instead
of in applyCommit(), where run() can notice, for instance,
that the prompt is unnecessary because this is the last commit.

Offer two options about how to continue at conflict: [s]kip or
[q]uit. Having an explicit "quit" option gives git p4 a chance
to clean up, show the applied-commit summary, and do tag export.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: remove submit failure options [a]pply and ... Pete Wyckoff Sun, 9 Sep 2012 20:16:04 +0000 (16:16 -0400)

git p4: remove submit failure options [a]pply and [w]rite

When a patch failed to apply, these interactive options offered
to:

1) apply the patch anyway, leaving reject (.rej) files around, or,
2) write the patch to a file (patch.txt)

In both cases it suggested to invoke "git p4 submit --continue",
an unimplemented option.

While manually fixing the rejects and submitting the result might
work, there are many steps that must be done to the job properly:

* apply patch
* invoke p4 add and delete
* change executable bits
* p4 sync -f renamed/copied files
* extract commit message into p4 change description and
move Jobs lines out of description section
* set changelist owner for --preserve-user

Plus the following manual sync/rebase will cause conflicts too,
which must be resolved once again.

Drop these workflows. Instead users should do a sync/rebase in
git, fix the conflicts there, and do a clean "git p4 submit".

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: gracefully fail if some commits could not be... Pete Wyckoff Sun, 9 Sep 2012 20:16:03 +0000 (16:16 -0400)

git p4: gracefully fail if some commits could not be applied

If a commit fails to apply cleanly to the p4 tree, an interactive
prompt asks what to do next. In all cases (skip, apply, write),
the behavior after the prompt had a few problems.

Change it so that it does not claim erroneously that all commits
were applied. Instead list the set of the patches under
consideration, and mark with an asterisk those that were
applied successfully. Like this example:

Applying 592f1f9 line5 in file1 will conflict
...
Unfortunately applying the change failed!
What do you want to do?
[s]kip this patch / [a]pply the patch forcibly and with .rej files / [w]rite the patch to a file (patch.txt) s
Skipping! Good luck with the next patches...
//depot/file1#4 - was edit, reverted
Applying b8db1c6 okay_commit_after_skip
...
Change 6 submitted.
Applied only the commits marked with '*':
592f1f9 line5 in file1 will conflict
* b8db1c6 okay_commit_after_skip

Do not try to sync and rebase unless all patches were applied.
If there was a conflict during the submit, there is sure to be one
at the rebase. Let the user to do the sync and rebase manually.

This changes how a couple tets in t9810-git-p4-rcs.sh behave:

- git p4 now does not leave files open and edited in the
client

- If a git commit contains a change to a file that was
deleted in p4, the test used to check that the sync/rebase
loop happened after the failure to apply the change. Since
now sync/rebase does not happen after failure, do not test
this. Normal rebase machinery, outside of git p4, will let
rebase --skip work.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4 test: remove bash-ism of combined export/assignmentPete Wyckoff Sun, 9 Sep 2012 20:16:02 +0000 (16:16 -0400)

git p4 test: remove bash-ism of combined export/assignment

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810-grep: test --all-match with multiple --grep and... Michael J Gruber Fri, 14 Sep 2012 09:46:43 +0000 (11:46 +0200)

t7810-grep: test --all-match with multiple --grep and --author options

The code used to have a bug that ignores "--all-match", that requires
all "--grep" to have matched, when "--author" or "--committer" was used.

Make sure the bug will not be reintroduced.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810-grep: test interaction of multiple --grep and... Michael J Gruber Fri, 14 Sep 2012 09:46:42 +0000 (11:46 +0200)

t7810-grep: test interaction of multiple --grep and --author options

There are tests for this interaction already. Restructure slightly and
avoid any claims about --all-match.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810-grep: test multiple --author with --all-matchMichael J Gruber Fri, 14 Sep 2012 09:46:41 +0000 (11:46 +0200)

t7810-grep: test multiple --author with --all-match

The "--all-match" option is about "--grep", and does not affect how
"--author" or "--committer" limitation is applied.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810-grep: test multiple --grep with and without ... Michael J Gruber Fri, 14 Sep 2012 09:46:40 +0000 (11:46 +0200)

t7810-grep: test multiple --grep with and without --all-match

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810-grep: bring log --grep tests in common formMichael J Gruber Fri, 14 Sep 2012 09:46:39 +0000 (11:46 +0200)

t7810-grep: bring log --grep tests in common form

The log --grep tests generate the expected out in different ways.
Make them all use command blocks so that subshells are avoided and the
expected output is easier to grasp visually.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep.c: mark private file-scope symbols as staticJunio C Hamano Sat, 15 Sep 2012 21:04:36 +0000 (14:04 -0700)

grep.c: mark private file-scope symbols as static

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

test-string-list.c: Fix some sparse warningsRamsay Jones Sat, 15 Sep 2012 16:18:42 +0000 (17:18 +0100)

test-string-list.c: Fix some sparse warnings

In particular, sparse complains as follows:

SP test-string-list.c
test-string-list.c:10:6: warning: symbol 'parse_string_list' was not \
declared. Should it be static?
test-string-list.c:18:6: warning: symbol 'write_list' was not \
declared. Should it be static?
test-string-list.c:25:6: warning: symbol 'write_list_compact' was not \
declared. Should it be static?
test-string-list.c:38:5: warning: symbol 'prefix_cb' was not \
declared. Should it be static?

In order to suppress the warnings, since the above symbols do not
need more than file scope, we simply include the static modifier
in their declaration.

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

sequencer.c: mark a private file-scope symbol as staticJunio C Hamano Sun, 16 Sep 2012 06:20:40 +0000 (23:20 -0700)

sequencer.c: mark a private file-scope symbol as static

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

ident.c: mark private file-scope symbols as staticJunio C Hamano Sun, 16 Sep 2012 05:50:09 +0000 (22:50 -0700)

ident.c: mark private file-scope symbols as static

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

trace.c: mark a private file-scope symbol as staticJunio C Hamano Sun, 16 Sep 2012 05:47:42 +0000 (22:47 -0700)

trace.c: mark a private file-scope symbol as static

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

wt-status.c: mark a private file-scope symbol as staticJunio C Hamano Sun, 16 Sep 2012 05:46:26 +0000 (22:46 -0700)

wt-status.c: mark a private file-scope symbol as static

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

read-cache.c: mark a private file-scope symbol as staticJunio C Hamano Sun, 16 Sep 2012 05:44:31 +0000 (22:44 -0700)

read-cache.c: mark a private file-scope symbol as static

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

strbuf.c: mark a private file-scope symbol as staticJunio C Hamano Sun, 16 Sep 2012 05:43:15 +0000 (22:43 -0700)

strbuf.c: mark a private file-scope symbol as static

Also remove an unused function.

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

sha1-array.c: mark a private file-scope symbol as staticJunio C Hamano Sun, 16 Sep 2012 05:39:43 +0000 (22:39 -0700)

sha1-array.c: mark a private file-scope symbol as static

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

symlinks.c: mark private file-scope symbols as staticJunio C Hamano Sun, 16 Sep 2012 05:38:28 +0000 (22:38 -0700)

symlinks.c: mark private file-scope symbols as static

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

notes.c: mark a private file-scope symbol as staticJunio C Hamano Sat, 15 Sep 2012 21:08:39 +0000 (14:08 -0700)

notes.c: mark a private file-scope symbol as static

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

rerere.c: mark private file-scope symbols as staticJunio C Hamano Sat, 15 Sep 2012 21:06:00 +0000 (14:06 -0700)

rerere.c: mark private file-scope symbols as static

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

graph.c: mark private file-scope symbols as staticJunio C Hamano Sat, 15 Sep 2012 21:02:52 +0000 (14:02 -0700)

graph.c: mark private file-scope symbols as static

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

diff.c: mark a private file-scope symbol as staticJunio C Hamano Sat, 15 Sep 2012 20:59:59 +0000 (13:59 -0700)

diff.c: mark a private file-scope symbol as static

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

commit.c: mark a file-scope private symbol as staticJunio C Hamano Sat, 15 Sep 2012 20:58:15 +0000 (13:58 -0700)

commit.c: mark a file-scope private symbol as static

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

builtin/notes.c: mark file-scope private symbols as... Junio C Hamano Sat, 15 Sep 2012 20:56:07 +0000 (13:56 -0700)

builtin/notes.c: mark file-scope private symbols as static

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

Draft release notes to 1.8.0Junio C Hamano Sat, 15 Sep 2012 04:44:37 +0000 (21:44 -0700)

Draft release notes to 1.8.0

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

Merge branch 'jc/ll-merge-binary-ours'Junio C Hamano Sat, 15 Sep 2012 04:39:56 +0000 (21:39 -0700)

Merge branch 'jc/ll-merge-binary-ours'

"git merge -Xtheirs" did not help content-level merge of binary
files; it should just take their version. Also "*.jpg binary" in
the attributes did not imply they should use the binary ll-merge
driver.

* jc/ll-merge-binary-ours:
ll-merge: warn about inability to merge binary files only when we can't
attr: "binary" attribute should choose built-in "binary" merge driver
merge: teach -Xours/-Xtheirs to binary ll-merge driver

Merge branch 'cn/branch-set-upstream-to'Junio C Hamano Sat, 15 Sep 2012 04:39:47 +0000 (21:39 -0700)

Merge branch 'cn/branch-set-upstream-to'

Finishing touches to the recently graduated topic to introduce
"git branch --set-upstream-to" option.

* cn/branch-set-upstream-to:
completion: complete branch name for "branch --set-upstream-to="
completion: add --set-upstream-to and --unset-upstream

Merge branch 'sl/autoconf'Junio C Hamano Sat, 15 Sep 2012 04:39:42 +0000 (21:39 -0700)

Merge branch 'sl/autoconf'

Reduces repetition in configure.ac.

* sl/autoconf:
build: don't duplicate substitution of make variables
build: improve GIT_CONF_SUBST signature

Merge branch 'dg/run-command-child-cleanup'Junio C Hamano Sat, 15 Sep 2012 04:39:37 +0000 (21:39 -0700)

Merge branch 'dg/run-command-child-cleanup'

The code to wait for subprocess and remove it from our internal queue
wasn't quite right.

* dg/run-command-child-cleanup:
run-command.c: fix broken list iteration in clear_child_for_cleanup

Merge branch 'jc/mailinfo-RE'Junio C Hamano Sat, 15 Sep 2012 04:39:27 +0000 (21:39 -0700)

Merge branch 'jc/mailinfo-RE'

We strip the prefix from "Re: subject" and also from a less common
"re: subject", but left even less common "RE: subject" intact.

* jc/mailinfo-RE:
mailinfo: strip "RE: " prefix

Merge branch 'maint'Junio C Hamano Sat, 15 Sep 2012 04:38:20 +0000 (21:38 -0700)

Merge branch 'maint'

Draft release notes to 1.7.12.1Junio C Hamano Sat, 15 Sep 2012 04:37:51 +0000 (21:37 -0700)

Draft release notes to 1.7.12.1

We are almost there...

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

Merge branch 'sb/send-email-reconfirm-fix' into maintJunio C Hamano Sat, 15 Sep 2012 04:32:07 +0000 (21:32 -0700)

Merge branch 'sb/send-email-reconfirm-fix' into maint

* sb/send-email-reconfirm-fix:
send-email: initial_to and initial_reply_to are both optional

Merge branch 'jc/send-email-reconfirm' into maintJunio C Hamano Sat, 15 Sep 2012 04:32:01 +0000 (21:32 -0700)

Merge branch 'jc/send-email-reconfirm' into maint

* jc/send-email-reconfirm:
send-email: validate & reconfirm interactive responses

Merge branch 'mz/cherry-pick-cmdline-order' into maintJunio C Hamano Sat, 15 Sep 2012 04:24:18 +0000 (21:24 -0700)

Merge branch 'mz/cherry-pick-cmdline-order' into maint

* mz/cherry-pick-cmdline-order:
cherry-pick/revert: respect order of revisions to pick
demonstrate broken 'git cherry-pick three one two'
teach log --no-walk=unsorted, which avoids sorting

Sync with 1.7.11.7Junio C Hamano Sat, 15 Sep 2012 04:20:40 +0000 (21:20 -0700)

Sync with 1.7.11.7

Git 1.7.11.7 v1.7.11.7Junio C Hamano Sat, 15 Sep 2012 03:57:23 +0000 (20:57 -0700)

Git 1.7.11.7

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

Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log... Junio C Hamano Sat, 15 Sep 2012 03:48:31 +0000 (20:48 -0700)

Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into maint-1.7.11

* jk/maint-quiet-is-synonym-to-s-in-log:
log: fix --quiet synonym for -s

Merge branch 'jc/maint-ident-missing-human-name' into... Junio C Hamano Sat, 15 Sep 2012 03:48:22 +0000 (20:48 -0700)

Merge branch 'jc/maint-ident-missing-human-name' into maint-1.7.11

* jc/maint-ident-missing-human-name:
split_ident_line(): make best effort when parsing author/committer line

Merge branch 'rj/test-regex' into maint-1.7.11Junio C Hamano Sat, 15 Sep 2012 03:46:39 +0000 (20:46 -0700)

Merge branch 'rj/test-regex' into maint-1.7.11

* rj/test-regex:
test-regex: Add a test to check for a bug in the regex routines

Merge branch 'da/gitk-reload-tag-contents' into maint... Junio C Hamano Sat, 15 Sep 2012 03:45:55 +0000 (20:45 -0700)

Merge branch 'da/gitk-reload-tag-contents' into maint-1.7.11

* da/gitk-reload-tag-contents:
gitk: Rename 'tagcontents' to 'cached_tagcontent'
gitk: Teach "Reread references" to reload tags
gitk: Avoid Meta1-F5

Merge branch 'jc/maint-checkout-fileglob-doc' into... Junio C Hamano Sat, 15 Sep 2012 03:45:03 +0000 (20:45 -0700)

Merge branch 'jc/maint-checkout-fileglob-doc' into maint-1.7.11

* jc/maint-checkout-fileglob-doc:
gitcli: contrast wildcard given to shell and to git
gitcli: formatting fix
Document file-glob for "git checkout -- '*.c'"

l10n: zh.CN.po: msgmerge git.pot (1142t195f630u)Jiang Xin Sat, 15 Sep 2012 03:17:00 +0000 (11:17 +0800)

l10n: zh.CN.po: msgmerge git.pot (1142t195f630u)

Update of zh_CN.po: 1142 translated, 195 fuzzy, and 630 untranslated
messages.

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

l10n: Update git.pot (825 new, 24 removed messages)Jiang Xin Sat, 15 Sep 2012 02:26:13 +0000 (10:26 +0800)

l10n: Update git.pot (825 new, 24 removed messages)

Generate po/git.pot from v1.7.12-437-g1084f with these i18n update(s):

* i18n: mark more index-pack strings for translation
* i18n: write-tree: mark parseopt strings for translation
* i18n: verify-tag: mark parseopt strings for translation
* i18n: verify-pack: mark parseopt strings for translation
* i18n: update-server-info: mark parseopt strings for translation
* i18n: update-ref: mark parseopt strings for translation
* i18n: update-index: mark parseopt strings for translation
* i18n: tag: mark parseopt strings for translation
* i18n: symbolic-ref: mark parseopt strings for translation
* i18n: show-ref: mark parseopt strings for translation
* i18n: show-branch: mark parseopt strings for translation
* i18n: shortlog: mark parseopt strings for translation
* i18n: rm: mark parseopt strings for translation
* i18n: revert, cherry-pick: mark parseopt strings for translation
* i18n: rev-parse: mark parseopt strings for translation
* i18n: reset: mark parseopt strings for translation
* i18n: rerere: mark parseopt strings for translation
* i18n: status: mark parseopt strings for translation
* i18n: replace: mark parseopt strings for translation
* i18n: remote: mark parseopt strings for translation
* i18n: read-tree: mark parseopt strings for translation
* i18n: push: mark parseopt strings for translation
* i18n: prune: mark parseopt strings for translation
* i18n: prune-packed: mark parseopt strings for translation
* i18n: pack-refs: mark parseopt strings for translation
* i18n: pack-objects: mark parseopt strings for translation
* i18n: notes: mark parseopt strings for translation
* i18n: name-rev: mark parseopt strings for translation
* i18n: mv: mark parseopt strings for translation
* i18n: mktree: mark parseopt strings for translation
* i18n: merge: mark parseopt strings for translation
* i18n: merge-file: mark parseopt strings for translation
* i18n: merge-base: mark parseopt strings for translation
* i18n: ls-tree: mark parseopt strings for translation
* i18n: ls-files: mark parseopt strings for translation
* i18n: log: mark parseopt strings for translation
* i18n: init-db: mark parseopt strings for translation
* i18n: help: mark parseopt strings for translation
* i18n: hash-object: mark parseopt strings for translation
* i18n: grep: mark parseopt strings for translation
* i18n: gc: mark parseopt strings for translation
* i18n: fsck: mark parseopt strings for translation
* i18n: format-patch: mark parseopt strings for translation
* i18n: for-each-ref: mark parseopt strings for translation
* i18n: fmt-merge-msg: mark parseopt strings for translation
* i18n: fetch: mark parseopt strings for translation
* i18n: fast-export: mark parseopt strings for translation
* i18n: describe: mark parseopt strings for translation
* i18n: config: mark parseopt strings for translation
* i18n: count-objects: mark parseopt strings for translation
* i18n: commit: mark parseopt strings for translation
* i18n: column: mark parseopt strings for translation
* i18n: clone: mark parseopt strings for translation
* i18n: clean: mark parseopt strings for translation
* i18n: cherry: mark parseopt strings for translation
* i18n: checkout: mark parseopt strings for translation
* i18n: checkout-index: mark parseopt strings for translation
* i18n: check-attr: mark parseopt strings for translation
* i18n: cat-file: mark parseopt strings for translation
* i18n: branch: mark parseopt strings for translation
* i18n: blame: mark parseopt strings for translation
* i18n: add: mark parseopt strings for translation
* i18n: bisect--helper: mark parseopt strings for translation
* i18n: archive: mark parseopt strings for translation
* i18n: mark "style" in OPT_COLUMN() for translation

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

Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the... Elia Pinto Fri, 14 Sep 2012 16:54:22 +0000 (09:54 -0700)

Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the test suite for detecting heap corruption

Recent versions of Linux libc (later than 5.4.23) and glibc (2.x)
include a malloc() implementation which is tunable via environment
variables. When MALLOC_CHECK_ is set, a special (less efficient)
implementation is used which is designed to be tolerant against
simple errors, such as double calls of free() with the same argument,
or overruns of a single byte (off-by-one bugs). When MALLOC_CHECK_
is set to 3, a diagnostic message is printed on stderr
and the program is aborted.

Setting the MALLOC_PERTURB_ environment variable causes the malloc
functions in libc to return memory which has been wiped and clear
memory when it is returned.
Of course this does not affect calloc which always does clear the memory.

The reason for this exercise is, of course, to find code which uses
memory returned by malloc without initializing it and code which uses
code after it is freed. valgrind can do this but it's costly to run.
The MALLOC_PERTURB_ exchanges the ability to detect problems in 100%
of the cases with speed.

The byte value used to initialize values returned by malloc is the byte
value of the environment value. The value used to clear memory is the
bitwise inverse. Setting MALLOC_PERTURB_ to zero disables the feature.

This technique can find hard to detect bugs.
It is therefore suggested to always use this flag (at least temporarily)
when testing out code or a new distribution.

But the test suite can use also valgrind(memcheck) via 'make valgrind'
or 'make GIT_TEST_OPTS="--valgrind"'.

Memcheck wraps client calls to malloc(), and puts a "red zone" on
each end of each block in order to detect access overruns.
Memcheck already detects double free() (up to the limit of the buffer
which remembers pending free()). Thus memcheck subsumes all the
documented coverage of MALLOC_CHECK_.

If MALLOC_CHECK_ is set non-zero when running memcheck, then the
overruns that might be detected by MALLOC_CHECK_ would be overruns
on the wrapped blocks which include the red zones. Thus MALLOC_CHECK_
would be checking memcheck, and not the client. This is not useful,
and actually is wasteful. The only possible [documented] advantage
of using MALLOC_CHECK_ and memcheck together, would be if MALLOC_CHECK_
detected duplicate free() in more cases than memcheck because memcheck's
buffer is too small.

Therefore we don't use MALLOC_CHECK_ and valgrind(memcheck) at the
same time.

Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: align per-ref summary report in UTF-8 localesNguyễn Thái Ngọc Duy Tue, 4 Sep 2012 10:39:35 +0000 (17:39 +0700)

fetch: align per-ref summary report in UTF-8 locales

fetch does printf("%-*s", width, "foo") where "foo" can be a utf-8
string, but width is in bytes, not columns. For ASCII it's fine as one
byte takes one column. For utf-8, this may result in misaligned ref
summary table.

Introduce gettext_width() function that returns the string length in
columns (currently only supports utf-8 locales). Make the code use
TRANSPORT_SUMMARY(x) where the length is compensated properly in
non-English locales.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

The sixth batch for 1.8.0Junio C Hamano Fri, 14 Sep 2012 19:34:11 +0000 (12:34 -0700)

The sixth batch for 1.8.0

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

Merge branch 'nd/checkout-option-parsing-fix'Junio C Hamano Fri, 14 Sep 2012 18:54:34 +0000 (11:54 -0700)

Merge branch 'nd/checkout-option-parsing-fix'

The option parsing of "git checkout" had error checking, dwim and
defaulting missing options, all mixed in the code, and issuing an
appropriate error message with useful context was getting harder.
Reorganize the code and allow giving a proper diagnosis when the
user says "git checkout -b -t foo bar" (e.g. "-t" is not a good name
for a branch).

* nd/checkout-option-parsing-fix:
checkout: reorder option handling
checkout: move more parameters to struct checkout_opts
checkout: pass "struct checkout_opts *" as const pointer

Merge branch 'mh/abspath'Junio C Hamano Fri, 14 Sep 2012 18:54:28 +0000 (11:54 -0700)

Merge branch 'mh/abspath'

* mh/abspath:
t0060: split absolute path test in two to exercise some of it on Windows
t0060: verify that real_path() removes extra slashes
real_path(): properly handle nonexistent top-level paths
t0060: verify that real_path() works correctly with absolute paths
real_path(): reject the empty string
t0060: verify that real_path() fails if passed the empty string
absolute_path(): reject the empty string
t0060: verify that absolute_path() fails if passed the empty string
t0060: move tests of real_path() from t0000 to here

Merge branch 'dj/fetch-all-tags'Junio C Hamano Fri, 14 Sep 2012 18:54:19 +0000 (11:54 -0700)

Merge branch 'dj/fetch-all-tags'

"git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
issue existed with "--tags", but combination "--all --tags" makes
much less sense than "--all --no-tags").

* dj/fetch-all-tags:
fetch --all: pass --tags/--no-tags through to each remote

Merge branch 'sn/ls-remote-get-url-doc'Junio C Hamano Fri, 14 Sep 2012 18:54:12 +0000 (11:54 -0700)

Merge branch 'sn/ls-remote-get-url-doc'

* sn/ls-remote-get-url-doc:
ls-remote: document the '--get-url' option

Merge branch 'nd/i18n-status'Junio C Hamano Fri, 14 Sep 2012 18:54:04 +0000 (11:54 -0700)

Merge branch 'nd/i18n-status'

* nd/i18n-status:
status: remove i18n legos

Merge branch 'rj/path-cleanup'Junio C Hamano Fri, 14 Sep 2012 18:53:53 +0000 (11:53 -0700)

Merge branch 'rj/path-cleanup'

* rj/path-cleanup:
Call mkpathdup() rather than xstrdup(mkpath(...))
Call git_pathdup() rather than xstrdup(git_path("..."))
path.c: Use vsnpath() in the implementation of git_path()
path.c: Don't discard the return value of vsnpath()
path.c: Remove the 'git_' prefix from a file scope function

Merge branch 'rj/tap-fix'Junio C Hamano Fri, 14 Sep 2012 18:53:45 +0000 (11:53 -0700)

Merge branch 'rj/tap-fix'

* rj/tap-fix:
test-lib.sh: Suppress the "passed all ..." message if no tests run
test-lib.sh: Add check for invalid use of 'skip_all' facility
test-lib.sh: Fix some shell coding style violations
t4016-*.sh: Skip all tests rather than each test
t3902-*.sh: Skip all tests rather than each test
t3300-*.sh: Fix a TAP parse error

log: document use of multiple commit limiting optionsJunio C Hamano Fri, 14 Sep 2012 01:54:30 +0000 (18:54 -0700)

log: document use of multiple commit limiting options

Generally speaking, using more options will further narrow the
selection, but there are a few exceptions. Document them.

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

log --grep/--author: honor --all-match honored for... Junio C Hamano Thu, 13 Sep 2012 23:26:57 +0000 (16:26 -0700)

log --grep/--author: honor --all-match honored for multiple --grep patterns

When we have both header expression (which has to be an OR node by
construction) and a pattern expression (which could be anything), we
create a new top-level OR node to bind them together, and the
resulting expression structure looks like this:

OR
/ \
/ \
pattern OR
/ \ / \
..... committer OR
/ \
author TRUE

The three elements on the top-level backbone that are inspected by
the "all-match" logic are "pattern", "committer" and "author". When
there are more than one elements in the "pattern", the top-level
node of the "pattern" part of the subtree is an OR, and that node is
inspected by "all-match".

The result ends up ignoring the "--all-match" given from the command
line. A match on either side of the pattern is considered a match,
hence:

git log --grep=A --grep=B --author=C --all-match

shows the same "authored by C and has either A or B" that is correct
only when run without "--all-match".

Fix this by turning the resulting expression around when "--all-match"
is in effect, like this:

OR
/ \
/ \
/ OR
committer / \
author \
pattern

The set of nodes on the top-level backbone in the resulting
expression becomes "committer", "author", and the nodes that are on
the top-level backbone of the "pattern" subexpression. This makes
the "all-match" logic inspect the same nodes in "pattern" as the
case without the author and/or the committer restriction, and makes
the earlier "log" example to show "authored by C and has A and has
B", which is what the command line expects.

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

grep: show --debug output only onceMichael J Gruber Fri, 14 Sep 2012 09:46:35 +0000 (11:46 +0200)

grep: show --debug output only once

When threaded grep is in effect, the patterns are duplicated and
recompiled for each thread. Avoid "--debug" output during the
recompilation so that the output is given once instead of "1+nthreads"
times.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: teach --debug option to dump the parse treeJunio C Hamano Thu, 13 Sep 2012 21:21:44 +0000 (14:21 -0700)

grep: teach --debug option to dump the parse tree

Our "grep" allows complex boolean expressions to be formed to match
each individual line with operators like --and, '(', ')' and --not.
Introduce the "--debug" option to show the parse tree to help people
who want to debug and enhance it.

Also "log" learns "--grep-debug" option to do the same. The command
line parser to the log family is a lot more limited than the general
"git grep" parser, but it has special handling for header matching
(e.g. "--author"), and a parse tree is valuable when working on it.

Note that "--all-match" is *not* any individual node in the parse
tree. It is an instruction to the evaluator to check all the nodes
in the top-level backbone have matched and reject a document as
non-matching otherwise.

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

cherry-pick: don't forget -s on failureMiklos Vajna Fri, 14 Sep 2012 06:52:03 +0000 (08:52 +0200)

cherry-pick: don't forget -s on failure

In case 'git cherry-pick -s <commit>' failed, the user had to use 'git
commit -s' (i.e. state the -s option again), which is easy to forget
about. Instead, write the signed-off-by line early, so plain 'git
commit' will have the same result.

Also update 'git commit -s', so that in case there is already a relevant
Signed-off-by line before the Conflicts: line, it won't add one more at
the end of the message. If there is no such line, then add it before the
the Conflicts: line.

Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert diffstat back to EnglishNguyễn Thái Ngọc Duy Thu, 13 Sep 2012 14:16:26 +0000 (21:16 +0700)

Revert diffstat back to English

This reverts the i18n part of 7f81463 (Use correct grammar in diffstat
summary line - 2012-02-01) but still keeps the grammar correctness for
English. It also reverts b354f11 (Fix tests under GETTEXT_POISON on
diffstat - 2012-08-27). The result is diffstat always in English
for all commands.

This helps stop users from accidentally sending localized
format-patch'd patches.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

attr: failure to open a .gitattributes file is OK with... Junio C Hamano Thu, 13 Sep 2012 19:40:39 +0000 (12:40 -0700)

attr: failure to open a .gitattributes file is OK with ENOTDIR

Often we consult an in-tree .gitattributes file that exists per
directory. Majority of directories do not usually have such a file,
and it is perfectly fine if we cannot open it because there is no
such file, but we do want to know when there is an I/O or permission
error. Earlier, we made the codepath warn when we fail to open it
for reasons other than ENOENT for that reason.

We however sometimes have to attempt to open the .gitattributes file
from a directory that does not exist in the commit that is currently
checked out. "git pack-objects" wants to know if a path is marked
with "-delta" attributes, and "git archive" wants to know about
export-ignore and export-subst attributes. Both commands may and do
need to ask the attributes system about paths in an arbitrary
commit. "git diff", after removing an entire directory, may want to
know textconv on paths that used to be in that directory.

Make sure we also ignore a failure to open per-directory attributes
file due to ENOTDIR.

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

Documentation: describe subject more preciselyJeremy White Thu, 13 Sep 2012 22:27:09 +0000 (17:27 -0500)

Documentation: describe subject more precisely

The discussion of email subject throughout the documentation is
misleading; it indicates that the first line will always become
the subject. In fact, the subject is generally all lines up until
the first full blank line.

This patch refines that, and makes more use of the concept of a
commit title, with the title being all text up to the first blank line.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://github.com/git-l10n/git-poJunio C Hamano Wed, 12 Sep 2012 23:14:14 +0000 (16:14 -0700)

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

* git://github.com/git-l10n/git-po:
l10n: Update Swedish translation (1166t0f0u)
l10n: vi.po: update to v1.7.12-146-g16d26
l10n: de.po: translate 2 new messages
l10n: zh_CN.po: translate 2 new messages
l10n: Update git.pot (2 new, 4 removed messages)
l10n: vi.po & TEAMS: review Vietnamese translation

l10n: Update Swedish translation (1166t0f0u)Peter Krefting Fri, 7 Sep 2012 09:10:23 +0000 (10:10 +0100)

l10n: Update Swedish translation (1166t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

Merge git://github.com/vnwildman/gitJiang Xin Wed, 12 Sep 2012 22:32:36 +0000 (06:32 +0800)

Merge git://github.com/vnwildman/git

* git://github.com/vnwildman/git:
l10n: vi.po: update to v1.7.12-146-g16d26