gitweb.git
Git 1.7.10.2 v1.7.10.2Junio C Hamano Fri, 11 May 2012 18:25:28 +0000 (11:25 -0700)

Git 1.7.10.2

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

Merge branch 'jc/diff-algo-cleanup' into maintJunio C Hamano Fri, 11 May 2012 18:19:27 +0000 (11:19 -0700)

Merge branch 'jc/diff-algo-cleanup' into maint

* jc/diff-algo-cleanup:
xdiff: PATIENCE/HISTOGRAM are not independent option bits
xdiff: remove XDL_PATCH_* macros

Merge branch 'ct/advise-push-default' into maintJunio C Hamano Fri, 11 May 2012 18:18:43 +0000 (11:18 -0700)

Merge branch 'ct/advise-push-default' into maint

The cases "git push" fails due to non-ff can be broken into three
categories; each case is given a separate advise message.

By Christopher Tiwald (2) and Jeff King (1)
* ct/advise-push-default:
Fix httpd tests that broke when non-ff push advice changed
clean up struct ref's nonfastforward field
push: Provide situational hints for non-fast-forward errors

Merge branch 'js/fast-import-test-9300' into maintJunio C Hamano Fri, 11 May 2012 18:17:49 +0000 (11:17 -0700)

Merge branch 'js/fast-import-test-9300' into maint

By Johannes Sixt
* js/fast-import-test-9300:
t9300-fast-import: avoid 'exit' in test_expect_success snippets

Merge branch 'jk/repack-no-explode-objects-from-old... Junio C Hamano Fri, 11 May 2012 18:16:45 +0000 (11:16 -0700)

Merge branch 'jk/repack-no-explode-objects-from-old-pack' into maint

"git repack" used to write out unreachable objects as loose objects
when repacking, even if such loose objects will immediately pruned
due to its age.

By Jeff King
* jk/repack-no-explode-objects-from-old-pack:
gc: use argv-array for sub-commands
argv-array: add a new "pushl" method
argv-array: refactor empty_argv initialization
gc: do not explode objects which will be immediately pruned

Merge branch 'ah/maint-grep-double-init' into maintJunio C Hamano Fri, 11 May 2012 18:16:09 +0000 (11:16 -0700)

Merge branch 'ah/maint-grep-double-init' into maint

By Angus Hammond
* ah/maint-grep-double-init:
grep.c: remove redundant line of code

Merge branch 'fa/maint-config-doc' into maintJunio C Hamano Fri, 11 May 2012 18:15:53 +0000 (11:15 -0700)

Merge branch 'fa/maint-config-doc' into maint

By Florian Achleitner
* fa/maint-config-doc:
Documentation/git-config: describe and clarify "--local <file>" option

Merge branch 'rs/unpack-trees-leakfix' into maintJunio C Hamano Fri, 11 May 2012 18:15:10 +0000 (11:15 -0700)

Merge branch 'rs/unpack-trees-leakfix' into maint

By René Scharfe
* rs/unpack-trees-leakfix:
unpack-trees: plug minor memory leak
unpack-trees: don't perform any index operation if we're not merging

Merge branch 'sl/test-wc-l-line-count' into maintJunio C Hamano Fri, 11 May 2012 18:14:57 +0000 (11:14 -0700)

Merge branch 'sl/test-wc-l-line-count' into maint

By Stefano Lattarini
* sl/test-wc-l-line-count:
tests: modernise style: more uses of test_line_count

Merge branch 'rl/show-empty-prefix' into maintJunio C Hamano Fri, 11 May 2012 18:13:26 +0000 (11:13 -0700)

Merge branch 'rl/show-empty-prefix' into maint

Unlike "git rev-parse --show-cdup", "--show-prefix" did not give an
empty line when run at the top of the working tree.

By Ross Lagerwall
* rl/show-empty-prefix:
rev-parse --show-prefix: add in trailing newline

document submdule.$name.update=none option for gitmodulesHeiko Voigt Thu, 10 May 2012 18:59:04 +0000 (20:59 +0200)

document submdule.$name.update=none option for gitmodules

This option was not yet described in the gitmodules documentation. We
only described it in the 'git submodule' command documentation but
gitmodules is the more natural place to look.

A short reference in the 'git submodule' documentation should be
sufficient since the details can now be found in the documentation to
gitmodules.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.10.2Junio C Hamano Thu, 10 May 2012 17:45:42 +0000 (10:45 -0700)

Update draft release notes to 1.7.10.2

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

Merge branch 'mm/include-userpath' into maintJunio C Hamano Thu, 10 May 2012 17:33:05 +0000 (10:33 -0700)

Merge branch 'mm/include-userpath' into maint

By Jeff King
* mm/include-userpath:
config: expand tildes in include.path variable

Merge branch 'cc/fix-missing-va-end-in-revert' into... Junio C Hamano Thu, 10 May 2012 17:32:43 +0000 (10:32 -0700)

Merge branch 'cc/fix-missing-va-end-in-revert' into maint

By Christian Couder
* cc/fix-missing-va-end-in-revert:
revert: add missing va_end

Merge branch 'bw/test-fix-grep-gnuism' into maintJunio C Hamano Thu, 10 May 2012 17:32:15 +0000 (10:32 -0700)

Merge branch 'bw/test-fix-grep-gnuism' into maint

* bw/test-fix-grep-gnuism:
t9400: fix gnuism in grep

Merge branch 'jk/http-backend-keep-committer-ident... Junio C Hamano Thu, 10 May 2012 17:29:50 +0000 (10:29 -0700)

Merge branch 'jk/http-backend-keep-committer-ident-env' into maint

By Jeff King
* jk/http-backend-keep-committer-ident-env:
http-backend: respect existing GIT_COMMITTER_* variables

Conflicts:
t/t5541-http-push.sh

Merge branch 'nl/rebase-i-cheat-sheet' into maintJunio C Hamano Thu, 10 May 2012 17:29:14 +0000 (10:29 -0700)

Merge branch 'nl/rebase-i-cheat-sheet' into maint

* nl/rebase-i-cheat-sheet:
rebase -i: remind that the lines are top-to-bottom

Merge branch 'bw/submodule-sed-solaris' into maintJunio C Hamano Thu, 10 May 2012 17:27:58 +0000 (10:27 -0700)

Merge branch 'bw/submodule-sed-solaris' into maint

By Ben Walton
* bw/submodule-sed-solaris:
Avoid bug in Solaris xpg4/sed as used in submodule

Merge branch 'jk/maint-push-progress' into maintJunio C Hamano Thu, 10 May 2012 17:08:54 +0000 (10:08 -0700)

Merge branch 'jk/maint-push-progress' into maint

"git push" over smart-http lost progress output a few releases ago.

By Jeff King
* jk/maint-push-progress:
t5541: test more combinations of --progress
teach send-pack about --[no-]progress
send-pack: show progress when isatty(2)

Merge branch 'jc/rerere-train' into maintJunio C Hamano Thu, 10 May 2012 17:08:24 +0000 (10:08 -0700)

Merge branch 'jc/rerere-train' into maint

A contrib script "rerere-train" did not work out of the box unless user
futzed with her $PATH.

* jc/rerere-train:
contrib/rerere-train: use installed git-sh-setup

Merge branch 'lp/diffstat-with-graph' into maintJunio C Hamano Thu, 10 May 2012 17:06:52 +0000 (10:06 -0700)

Merge branch 'lp/diffstat-with-graph' into maint

"log --graph" was not very friendly with "--stat" option and its output
had line breaks at wrong places.

By Lucian Poston (5) and Zbigniew Jędrzejewski-Szmek (3)
* lp/diffstat-with-graph:
t4052: work around shells unable to set COLUMNS to 1
test-lib: skip test with COLUMNS=1 under mksh
Prevent graph_width of stat width from falling below min
t4052: Test diff-stat output with minimum columns
t4052: Adjust --graph --stat output for prefixes
Adjust stat width calculations to take --graph output into account
Add output_prefix_length to diff_options
t4052: test --stat output with --graph

Documentation/git-config: describe and clarify "--local... Florian Achleitner Sat, 5 May 2012 10:03:52 +0000 (12:03 +0200)

Documentation/git-config: describe and clarify "--local <file>" option

Describe config file selection in git-config. While the usage message of
git-config shows --local, the documentation page did not contain anything
about that.

Signed-off-by: Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start preparing for 1.7.10.2Junio C Hamano Mon, 7 May 2012 20:24:13 +0000 (13:24 -0700)

Start preparing for 1.7.10.2

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

Merge branch 'jk/maint-gitweb-test-use-sane-perl' into... Junio C Hamano Mon, 7 May 2012 20:17:31 +0000 (13:17 -0700)

Merge branch 'jk/maint-gitweb-test-use-sane-perl' into maint

When using a Perl script on a system where "perl" found on user's $PATH
could be ancient or otherwise broken, we allow builders to specify the
path to a good copy of Perl with $PERL_PATH. The gitweb test forgot to
use that Perl when running its test.

By Jeff King (1) and Zbigniew Jędrzejewski-Szmek (1)
* jk/maint-gitweb-test-use-sane-perl:
Consistently use perl from /usr/bin/ for scripts
t/gitweb-lib: use $PERL_PATH to run gitweb

Merge branch 'js/daemon-test-race-fix' into maintJunio C Hamano Mon, 7 May 2012 20:17:17 +0000 (13:17 -0700)

Merge branch 'js/daemon-test-race-fix' into maint

The test scaffolding for git-daemon was flaky.

By Johannes Sixt
* js/daemon-test-race-fix:
t5570: fix forwarding of git-daemon messages via cat

Merge branch 'jk/maint-config-bogus-section' into maintJunio C Hamano Mon, 7 May 2012 20:14:08 +0000 (13:14 -0700)

Merge branch 'jk/maint-config-bogus-section' into maint

"git config --rename-section" to rename an existing section into a bogus
one did not check the new name.

By Jeff King
* jk/maint-config-bogus-section:
config: reject bogus section names for --rename-section

Merge branch 'pw/t5800-import-race-fix' into maintJunio C Hamano Mon, 7 May 2012 20:13:55 +0000 (13:13 -0700)

Merge branch 'pw/t5800-import-race-fix' into maint

The test scaffolding for fast-import was flaky.

By Pete Wyckoff
* pw/t5800-import-race-fix:
git-remote-testgit: fix race when spawning fast-import

Merge branch 'rt/cherry-revert-conflict-summary' into... Junio C Hamano Mon, 7 May 2012 20:13:43 +0000 (13:13 -0700)

Merge branch 'rt/cherry-revert-conflict-summary' into maint

In the older days, the header "Conflicts:" in "cherry-pick" and "merge"
was separated by a blank line from the list of paths that follow for
readability, but when "merge" was rewritten in C, we lost it by
mistake. Remove the newline from "cherry-pick" to make them match again.

By Ralf Thielow
* rt/cherry-revert-conflict-summary:
sequencer: remove additional blank line

Merge branch 'cb/maint-report-mount-point-correctly... Junio C Hamano Mon, 7 May 2012 20:13:03 +0000 (13:13 -0700)

Merge branch 'cb/maint-report-mount-point-correctly-in-setup' into maint

The filesystem boundary was not correctly reported when .git directory
discovery stopped at a mount point.

By Clemens Buchacher
* cb/maint-report-mount-point-correctly-in-setup:
properly keep track of current working directory

grep.c: remove redundant line of codeAngus Hammond Sun, 6 May 2012 18:17:15 +0000 (19:17 +0100)

grep.c: remove redundant line of code

Signed-off-by: Angus Hammond <angusgh@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4 doc: fix formattingPete Wyckoff Sun, 6 May 2012 15:58:38 +0000 (11:58 -0400)

git p4 doc: fix formatting

Attach example sections to previous level of indenting.

Fix a trailing ::

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/merge-reduce-parents-early' into maintJunio C Hamano Thu, 3 May 2012 22:36:15 +0000 (15:36 -0700)

Merge branch 'jc/merge-reduce-parents-early' into maint

Octopus merge strategy did not reduce heads that are recorded in the final
commit correctly.

By Junio C Hamano (4) and Michał Kiedrowicz (1)
* jc/merge-reduce-parents-early:
fmt-merge-msg: discard needless merge parents
builtin/merge.c: reduce parents early
builtin/merge.c: collect other parents early
builtin/merge.c: remove "remoteheads" global variable
merge tests: octopus with redundant parents

Merge branch 'cb/cherry-pick-rev-path-confusion' into... Junio C Hamano Thu, 3 May 2012 22:35:19 +0000 (15:35 -0700)

Merge branch 'cb/cherry-pick-rev-path-confusion' into maint

The command line parser choked "git cherry-pick $name" when $name can be
both revision name and a pathname, even though $name can never be a path
in the context of the command.

By Clemens Buchacher
* cb/cherry-pick-rev-path-confusion:
cherry-pick: do not expect file arguments

Merge branch 'cb/http-multi-curl-auth' into maintJunio C Hamano Thu, 3 May 2012 22:34:51 +0000 (15:34 -0700)

Merge branch 'cb/http-multi-curl-auth' into maint

HTTP transport that requires authentication did not work correctly when
multiple connections are used simultaneously.

By Jeff King (3) and Clemens Buchacher (1)
* cb/http-multi-curl-auth:
http: use newer curl options for setting credentials
http: clean up leak in init_curl_http_auth
fix http auth with multiple curl handles
http auth fails with multiple curl handles

Merge branch 'mb/fetch-call-a-non-branch-a-ref' into... Junio C Hamano Thu, 3 May 2012 22:29:25 +0000 (15:29 -0700)

Merge branch 'mb/fetch-call-a-non-branch-a-ref' into maint

The report from "git fetch" said "new branch" even for a non branch ref.

By Marc Branchaud
* mb/fetch-call-a-non-branch-a-ref:
fetch: describe new refs based on where it came from
fetch: Give remote_ref to update_local_ref() as well

Merge branch 'rl/maint-stash-i18n-save-error' into... Junio C Hamano Thu, 3 May 2012 22:24:22 +0000 (15:24 -0700)

Merge branch 'rl/maint-stash-i18n-save-error' into maint

i18n marking for an error message for "git stash --notavalidoption"
was incorrect.

By Ross Lagerwall
* rl/maint-stash-i18n-save-error:
stash: use eval_gettextln correctly

Merge branch 'jm/maint-strncpy-diff-no-index' into... Junio C Hamano Thu, 3 May 2012 22:23:17 +0000 (15:23 -0700)

Merge branch 'jm/maint-strncpy-diff-no-index' into maint

"diff --no-index" codepath had a few places that used fixed-size
buffer and truncated paths that are too long.

By Jim Meyering (1) and Junio C Hamano (1)
* jm/maint-strncpy-diff-no-index:
diff --no-index: use strbuf for temporary pathnames
diff: avoid stack-buffer-read-overrun for very long name

Git 1.7.10.1 v1.7.10.1Junio C Hamano Wed, 2 May 2012 04:18:44 +0000 (21:18 -0700)

Git 1.7.10.1

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

Merge branch 'pw/fast-import-dataref-parsing' into... Junio C Hamano Wed, 2 May 2012 04:12:46 +0000 (21:12 -0700)

Merge branch 'pw/fast-import-dataref-parsing' into maint

The parser in "fast-import" did not diagnose ":9" style references that is
not followed by required SP/LF as an error.

By Pete Wyckoff
* pw/fast-import-dataref-parsing:
fast-import: tighten parsing of datarefs

Merge branch 'it/fetch-pack-many-refs' into maintJunio C Hamano Wed, 2 May 2012 04:12:36 +0000 (21:12 -0700)

Merge branch 'it/fetch-pack-many-refs' into maint

When "git fetch" encounters repositories with too many references, the
command line of "fetch-pack" that is run by a helper e.g. remote-curl, may
fail to hold all of them. Now such an internal invocation can feed the
references through the standard input of "fetch-pack".

By Ivan Todoroski
* it/fetch-pack-many-refs:
remote-curl: main test case for the OS command line overflow
fetch-pack: test cases for the new --stdin option
remote-curl: send the refs to fetch-pack on stdin
fetch-pack: new --stdin option to read refs from stdin

Conflicts:
t/t5500-fetch-pack.sh

Merge branch 'jl/maint-submodule-recurse-fetch' into... Junio C Hamano Wed, 2 May 2012 04:12:25 +0000 (21:12 -0700)

Merge branch 'jl/maint-submodule-recurse-fetch' into maint

"git fetch" that recurses into submodules on demand did not check if it
needs to go into submodules when non branches (most notably, tags) are
fetched.

By Jens Lehmann
* jl/maint-submodule-recurse-fetch:
submodules: recursive fetch also checks new tags for submodule commits

Merge branch 'jc/maint-blame-minimal' into maintJunio C Hamano Wed, 2 May 2012 04:11:49 +0000 (21:11 -0700)

Merge branch 'jc/maint-blame-minimal' into maint

"git blame" started missing quite a few changes from the origin since we
stopped using the diff minimalization by default in v1.7.2 era.

Teach "--minimal" option to "git blame" to work around this regression.

* jc/maint-blame-minimal:
blame: accept --need-minimal

Merge branch 'lp/maint-diff-three-dash-with-graph'... Junio C Hamano Wed, 2 May 2012 04:11:40 +0000 (21:11 -0700)

Merge branch 'lp/maint-diff-three-dash-with-graph' into maint

"log -p --graph" used with "--stat" had a few formatting error.

By Lucian Poston
* lp/maint-diff-three-dash-with-graph:
t4202: add test for "log --graph --stat -p" separator lines
log --graph: fix break in graph lines
log --graph --stat: three-dash separator should come after graph lines

Merge branch 'jk/rebase-i-submodule-conflict-only'... Junio C Hamano Wed, 2 May 2012 04:11:26 +0000 (21:11 -0700)

Merge branch 'jk/rebase-i-submodule-conflict-only' into maint

Giving "--continue" to a conflicted "rebase -i" session skipped a
commit that only results in changes to submodules.

By John Keeping
* jk/rebase-i-submodule-conflict-only:
rebase -i continue: don't skip commits that only change submodules

Merge branch 'maint' of https://github.com/git-l10n... Junio C Hamano Wed, 2 May 2012 04:09:46 +0000 (21:09 -0700)

Merge branch 'maint' of https://github.com/git-l10n/git-po

By Byrial Jensen (2) and others
via Jiang Xin (1) and Ralf Thielow (1)
* 'maint' of https://github.com/git-l10n/git-po:
l10n: Initial German translation
l10n: Update Simplified Chinese translation
l10n: Update git.pot (2 new messages)
l10n: Add the German translation team and initialize de.po
l10n: Add Danish team (da) to list of teams
l10n: New da.po file with 0 translations
l10n: Updated pt_PT language

Consistently use perl from /usr/bin/ for scriptsZbigniew Jędrzejewski-Szmek Tue, 1 May 2012 20:18:18 +0000 (22:18 +0200)

Consistently use perl from /usr/bin/ for scripts

While the majority of scripts use '#!/usr/bin/perl', some use
'#!/usr/bin/env perl'. In the end there is no difference, because the
Makefile rewrites "#!.*perl" with "#!$PERL_PATH" in scripted
Porcelains before installing. Nevertheless, the second form can be
misleading, because it suggests that perl found first in $PATH will be
used.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/gitweb-lib: use $PERL_PATH to run gitwebJeff King Tue, 1 May 2012 17:55:00 +0000 (13:55 -0400)

t/gitweb-lib: use $PERL_PATH to run gitweb

The current code runs "perl gitweb.cgi" to test gitweb. This
will use whatever version of perl happens to be first in the
PATH. We are better off using the specific perl that the
user specified via PERL_PATH, which matches what gets put on
the #!-line of the built gitweb.cgi.

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

t5541: test more combinations of --progressJeff King Tue, 1 May 2012 08:43:08 +0000 (04:43 -0400)

t5541: test more combinations of --progress

Previously, we tested only that "push --quiet --no-progress"
was silent. However, there are many other combinations that
were not tested:

1. no options at all (but stderr as a tty)
2. --no-progress by itself
3. --quiet by itself
4. --progress (when stderr not a tty)

These are tested elsewhere for general "push", but it is
important to test them separately for http. It follows a
very different code path than git://, and options must be
relayed across a remote helper to a separate send-pack
process (and in fact cases (1), (2), and (4) have all been
broken just for http at some point in the past).

We can drop the "--quiet --no-progress" test, as it is not
really interesting (it is already handled by testing them
separately in (2) and (3) above).

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

teach send-pack about --[no-]progressJeff King Tue, 1 May 2012 08:42:24 +0000 (04:42 -0400)

teach send-pack about --[no-]progress

The send_pack function gets a "progress" flag saying "yes,
definitely show progress" or "no, definitely do not show
progress". This gets set properly by transport_push when
send_pack is called directly.

However, when the send-pack command is executed separately
(as it is for the remote-curl helper), there is no way to
tell it "definitely do this". As a result, we do not
properly respect "git push --no-progress" for smart-http
remotes; you will still get progress if stderr is a tty.

This patch teaches send-pack --progress and --no-progress,
and teaches remote-curl to pass the appropriate option to
override send-pack's isatty check. This fixes the
--no-progress case above, and as a bonus, also makes "git
push --progress" work when stderr is not a tty.

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

send-pack: show progress when isatty(2)Jeff King Tue, 1 May 2012 08:41:42 +0000 (04:41 -0400)

send-pack: show progress when isatty(2)

The send_pack_args struct has two verbosity flags: "quiet"
and "progress". Originally, if "quiet" was set, we would
tell pack-objects explicitly to be quiet, and if "progress"
was set, we would tell it to show progress. Otherwise, we
told it neither, and it relied on isatty(2) to make the
decision itself.

However, commit 01fdc21 changed the meaning of these
variables. Now both "quiet" and "!progress" instruct us to
tell pack-objects to be quiet (and a non-zero "progress"
means the same as before). This works well for transports
which call send_pack directly, as the transport code copies
transport->progress into send_pack_args->progress, and they
both have the same meaning.

However, the code path of calling "git send-pack" was left
behind. It always sets "progress" to 0, and thus always
tells pack-objects to be quiet. We can work around this by
checking isatty(2) ourselves in the cmd_send_pack code path,
restoring the original behavior of the send-pack command.

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

l10n: Initial German translationRalf Thielow Mon, 30 Apr 2012 15:55:16 +0000 (17:55 +0200)

l10n: Initial German translation

Helped-by: Thomas Kuchs
Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>

contrib/rerere-train: use installed git-sh-setupJunio C Hamano Mon, 30 Apr 2012 19:46:30 +0000 (12:46 -0700)

contrib/rerere-train: use installed git-sh-setup

Instead of sourcing git-sh-setup from random place that is on the $PATH,
explicitly source $(git --exec-path)/git-sh-setup. As I do not personally
have any libexec/git-core directory on my $PATH like many other people, the
script will fail without this update.

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

config: expand tildes in include.path variableJeff King Wed, 25 Apr 2012 12:00:36 +0000 (08:00 -0400)

config: expand tildes in include.path variable

You can already use relative paths in include.path, which
means that including "foo" from your global "~/.gitconfig"
will look in your home directory. However, you might want to
do something clever like putting "~/.gitconfig-foo" in a
specific repository's config file.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: Update Simplified Chinese translationJiang Xin Sat, 28 Apr 2012 14:42:41 +0000 (22:42 +0800)

l10n: Update Simplified Chinese translation

Translate 2 new messages come from git maint branch.

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

l10n: Update git.pot (2 new messages)Jiang Xin Sat, 28 Apr 2012 12:35:24 +0000 (20:35 +0800)

l10n: Update git.pot (2 new messages)

Changes of po/git.pot from v1.7.10 to v1.7.10-55-g868d6

* 2 new l10n messages at lines: 1583, 2730

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

Merge maint branch for tracking l10n updates of git... Jiang Xin Sat, 28 Apr 2012 12:30:50 +0000 (20:30 +0800)

Merge maint branch for tracking l10n updates of git stable version

Use master branch to track l10n updates for git next release, while
use maint branch to track l10n updates for git stable version.

l10n: Add the German translation team and initialize... Ralf Thielow Thu, 26 Apr 2012 06:59:41 +0000 (08:59 +0200)

l10n: Add the German translation team and initialize de.po

Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

t4052: work around shells unable to set COLUMNS to 1Zbigniew Jędrzejewski-Szmek Fri, 27 Apr 2012 09:25:25 +0000 (11:25 +0200)

t4052: work around shells unable to set COLUMNS to 1

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'zj/mksh-columns-breakage' into lp/diffsta... Junio C Hamano Fri, 27 Apr 2012 16:28:00 +0000 (09:28 -0700)

Merge branch 'zj/mksh-columns-breakage' into lp/diffstat-with-graph

By Zbigniew Jędrzejewski-Szmek
* zj/mksh-columns-breakage:
test-lib: skip test with COLUMNS=1 under mksh

test-lib: skip test with COLUMNS=1 under mkshZbigniew Jędrzejewski-Szmek Fri, 27 Apr 2012 09:25:25 +0000 (11:25 +0200)

test-lib: skip test with COLUMNS=1 under mksh

mksh does not allow $COLUMNS to be set below 12. mksh(1) says that
$COLUMNS is "always set, defaults to 80, unless the value as reported
by stty(1) is non-zero and sane enough". This applies also to setting
it directly for one command:

$ COLUMNS=10 python -c 'import os; print os.environ["COLUMNS"]'
98

Add a test prerequisite by checking if we can set COLUMNS=1, to allow
us to skip tests that needs it.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5570: fix forwarding of git-daemon messages via catJohannes Sixt Thu, 26 Apr 2012 21:00:39 +0000 (23:00 +0200)

t5570: fix forwarding of git-daemon messages via cat

The shell function that starts git-daemon wants to read the first line of
the daemon's stderr to ensure that it started correctly. Subsequent daemon
errors should be redirected to fd 4 (which is the terminal in verbose mode
or /dev/null in quiet mode). To that end the shell script used 'read' to
get the first line of output, and then 'cat &' to forward everything else
in a background process.

The problem is, that 'cat >&4 &' does not produce any output because the
shell redirects a background process's stdin to /dev/null. To have this
command invocation do anything useful, we have to redirect its stdin
explicitly (which overrides the /dev/null redirection).

The shell function connects the daemon's stderr to its consumers via a
FIFO. We cannot just do this:

read line <git_daemon_output
cat <git_daemon_output >&4 &

because after the first redirection the pipe is closed and the daemon
could receive SIGPIPE if it writes at the wrong moment. Therefore, we open
the readable end of the FIFO only once on fd 7 in the shell and dup from
there to the stdin of the two consumers.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start preparing for 1.7.10.1Junio C Hamano Thu, 26 Apr 2012 17:40:08 +0000 (10:40 -0700)

Start preparing for 1.7.10.1

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

Merge branch 'jk/run-command-eacces' into maintJunio C Hamano Thu, 26 Apr 2012 17:51:40 +0000 (10:51 -0700)

Merge branch 'jk/run-command-eacces' into maint

When PATH contains an unreadable directory, alias expansion code did
not kick in, and failed with an error that said "git-subcmd" was not
found.

By Jeff King (1) and Ramsay Jones (1)
* jk/run-command-eacces:
run-command: treat inaccessible directories as ENOENT
compat/mingw.[ch]: Change return type of exec functions to int

Merge branch 'jc/push-upstream-sanity' into maintJunio C Hamano Thu, 26 Apr 2012 17:51:18 +0000 (10:51 -0700)

Merge branch 'jc/push-upstream-sanity' into maint

The 'push to upstream' implementation was broken in some corner
cases. "git push $there" without refspec, when the current branch is
set to push to a remote different from $there, used to push to $there
using the upstream information to a remote unreleated to $there.

* jc/push-upstream-sanity:
push: error out when the "upstream" semantics does not make sense

Merge branch 'jc/maint-clean-nested-worktree-in-subdir... Junio C Hamano Thu, 26 Apr 2012 17:35:42 +0000 (10:35 -0700)

Merge branch 'jc/maint-clean-nested-worktree-in-subdir' into maint

"git clean -d -f" (not "-d -f -f") is supposed to protect nested
working trees of independent git repositories that exist in the
current project working tree from getting removed, but the protection
applied only to such working trees that are at the top-level of the
current project by mistake.

* jc/maint-clean-nested-worktree-in-subdir:
clean: preserve nested git worktree in subdirectories

Merge branch 'jk/diff-no-rename-empty' into maintJunio C Hamano Thu, 26 Apr 2012 17:35:33 +0000 (10:35 -0700)

Merge branch 'jk/diff-no-rename-empty' into maint

Rename detection logic used to match two empty files as renames during
merge-recursive, leading unnatural mismerges.

By Jeff King
* jk/diff-no-rename-empty:
merge-recursive: don't detect renames of empty files
teach diffcore-rename to optionally ignore empty content
make is_empty_blob_sha1 available everywhere
drop casts from users EMPTY_TREE_SHA1_BIN

Merge branch 'rs/combine-diff-zero-context-at-the-begin... Junio C Hamano Thu, 26 Apr 2012 17:35:25 +0000 (10:35 -0700)

Merge branch 'rs/combine-diff-zero-context-at-the-beginning' into maint

An age-old corner case bug in combine diff (only triggered with -U0
and the hunk at the beginning of the file needs to be shown) has been
fixed.

By René Scharfe
* rs/combine-diff-zero-context-at-the-beginning:
combine-diff: fix loop index underflow

Merge branch 'jc/commit-unedited-template' into maintJunio C Hamano Thu, 26 Apr 2012 17:35:15 +0000 (10:35 -0700)

Merge branch 'jc/commit-unedited-template' into maint

When "git commit --template F" errors out because the user did not
touch the message, it claimed that it aborts due to "empty message",
which was utterly wrong.

By Junio C Hamano (4) and Adam Monsen (1)
* jc/commit-unedited-template:
Documentation/git-commit: rephrase the "initial-ness" of templates
git-commit.txt: clarify -t requires editing message
commit: rephrase the error when user did not touch templated log message
commit: do not trigger bogus "has templated message edited" check
t7501: test the right kind of breakage

Merge branch 'jk/add-p-skip-conflicts' into maintJunio C Hamano Thu, 26 Apr 2012 17:35:07 +0000 (10:35 -0700)

Merge branch 'jk/add-p-skip-conflicts' into maint

"git add -p" is not designed to deal with unmerged paths but did
not exclude them and tried to apply funny patches only to fail.

By Jeff King
* jk/add-p-skip-conflicts:
add--interactive: ignore unmerged entries in patch mode

Merge branch 'jc/commit-hook-authorship' into maintJunio C Hamano Thu, 26 Apr 2012 17:34:53 +0000 (10:34 -0700)

Merge branch 'jc/commit-hook-authorship' into maint

"git commit --author=$name" did not tell the name that was being
recorded in the resulting commit to hooks, even though it does do so
when the end user overrode the authorship via the "GIT_AUTHOR_NAME"
environment variable.

* jc/commit-hook-authorship:
commit: pass author/committer info to hooks
t7503: does pre-commit-hook learn authorship?
ident.c: add split_ident_line() to parse formatted ident line

Merge branch 'tr/maint-word-diff-regex-sticky' into... Junio C Hamano Thu, 26 Apr 2012 17:34:43 +0000 (10:34 -0700)

Merge branch 'tr/maint-word-diff-regex-sticky' into maint

The regexp configured with diff.wordregex was incorrectly reused
across files.

By Thomas Rast (2) and Johannes Sixt (1)
* tr/maint-word-diff-regex-sticky:
diff: tweak a _copy_ of diff_options with word-diff
diff: refactor the word-diff setup from builtin_diff_cmd
t4034: diff.*.wordregex should not be "sticky" in --word-diff

Merge branch 'jh/notes-merge-in-git-dir-worktree' into... Junio C Hamano Thu, 26 Apr 2012 17:32:55 +0000 (10:32 -0700)

Merge branch 'jh/notes-merge-in-git-dir-worktree' into maint

Running "notes merge --commit" failed to perform correctly when run
from any directory inside $GIT_DIR/. When "notes merge" stops with
conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
to resolve it.

By Johan Herland (3) and Junio C Hamano (1)
* jh/notes-merge-in-git-dir-worktree:
notes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd
notes-merge: use opendir/readdir instead of using read_directory()
t3310: illustrate failure to "notes merge --commit" inside $GIT_DIR/
remove_dir_recursively(): Add flag for skipping removal of toplevel dir

Sync with 1.7.9.7Junio C Hamano Thu, 26 Apr 2012 17:31:43 +0000 (10:31 -0700)

Sync with 1.7.9.7

Git 1.7.9.7 v1.7.9.7Junio C Hamano Thu, 26 Apr 2012 17:23:15 +0000 (10:23 -0700)

Git 1.7.9.7

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

Sync with 1.7.8.6Junio C Hamano Thu, 26 Apr 2012 17:22:20 +0000 (10:22 -0700)

Sync with 1.7.8.6

Git 1.7.8.6 v1.7.8.6Junio C Hamano Thu, 26 Apr 2012 16:59:22 +0000 (09:59 -0700)

Git 1.7.8.6

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

Sync with 1.7.7.7Junio C Hamano Thu, 26 Apr 2012 16:52:33 +0000 (09:52 -0700)

Sync with 1.7.7.7

Git 1.7.7.7 v1.7.7.7Junio C Hamano Thu, 26 Apr 2012 16:41:52 +0000 (09:41 -0700)

Git 1.7.7.7

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

diff --no-index: use strbuf for temporary pathnamesJunio C Hamano Wed, 25 Apr 2012 19:37:38 +0000 (12:37 -0700)

diff --no-index: use strbuf for temporary pathnames

Instead of using limited-length buffers and risking of pathname
truncation, we should be taking advantage of strbuf API nowadays.

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

bundle: remove stray single-quote from error messageJonathan Nieder Thu, 26 Apr 2012 05:53:59 +0000 (00:53 -0500)

bundle: remove stray single-quote from error message

After running rev-list --boundary to retrieve the list of boundary
commits, "git bundle create" runs its own revision walk. If in this
stage git encounters an unfamiliar option, it writes a message with an
unbalanced quotation mark:

error: unrecognized argument: --foo'

Drop the stray quote to match the "unrecognized argument: %s" message
used elsewhere and save translators some work.

This is mostly a futureproofing measure: for now, the "rev-list
--boundary" command catches most strange arguments on its own and the
above message is not seen unless you try something esoteric like "git
bundle create test.bundle --header HEAD".

Reported-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config: reject bogus section names for --rename-sectionJeff King Thu, 26 Apr 2012 01:47:14 +0000 (21:47 -0400)

config: reject bogus section names for --rename-section

You can feed junk to "git config --rename-section", which
will result in a config file that git will not even parse
(so you cannot fix it with git-config). We already have
syntactic sanity checks when setting a variable; let's do
the same for section names.

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

git-remote-testgit: fix race when spawning fast-importPete Wyckoff Sun, 22 Apr 2012 20:30:58 +0000 (16:30 -0400)

git-remote-testgit: fix race when spawning fast-import

Test "pushing to local repo" in t5800-remote-helpers can hang
due to a race condition in git-remote-testgit. Fix it by
setting stdin to unbuffered.

On the writer side, "git push" invokes push_refs_with_export(),
which sends to stdout the command "export\n" and immediately
starts up "git fast-export". The latter writes its output stream
to the same stdout.

On the reader side, remote helper "git-remote-testgit" reads from
stdin to get its next command. It uses getc() to read characters
from libc up until \n. Libc has buffered a potentially much
larger chunk of stdin. When it sees the "export\n" command, it
forks "git fast-import" to read the stream.

If fast-export finishes before git fast-import starts, the
fast-export output can end up in libc's buffer in
git-remote-testgit, rather than in git fast-import. The latter
hangs indefinitely on a now-empty stdin.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: add missing va_endChristian Couder Sat, 21 Apr 2012 21:15:19 +0000 (23:15 +0200)

revert: add missing va_end

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9300-fast-import: avoid 'exit' in test_expect_success... Johannes Sixt Fri, 20 Apr 2012 06:25:09 +0000 (08:25 +0200)

t9300-fast-import: avoid 'exit' in test_expect_success snippets

Exiting from a for-loop early using '|| break' does not propagate the
failure code, and for this reason, the tests used just 'exit'. But this
ends the test script with 'FATAL: Unexpected exit code 1' in the case of
a failed test.

Fix this by moving the loop into a shell function, from which we can
simply return early.

While at it, modernize the style of the affected test cases.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sequencer: remove additional blank lineRalf Thielow Wed, 18 Apr 2012 21:07:25 +0000 (23:07 +0200)

sequencer: remove additional blank line

Remove an additional blank line between the
headline and the list of conflicted files after
doing a recursive merge.

Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9400: fix gnuism in grepJunio C Hamano Thu, 19 Apr 2012 20:05:26 +0000 (13:05 -0700)

t9400: fix gnuism in grep

Using "\+" in "grep" and expecting that it means one or more
is a GNUism. Spell it in a dumb and portable way.

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

fmt-merge-msg: discard needless merge parentsJunio C Hamano Thu, 19 Apr 2012 02:49:08 +0000 (19:49 -0700)

fmt-merge-msg: discard needless merge parents

This is used by "git pull" to construct a merge message from list of
remote refs. When pulling redundant set of refs, however, it did not
filter them even though the merge itself discards them as unnecessary.

Teach the command to do the same for consistency.

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

gc: use argv-array for sub-commandsJeff King Wed, 18 Apr 2012 21:10:19 +0000 (14:10 -0700)

gc: use argv-array for sub-commands

git-gc executes many sub-commands. The argument list for
some of these is constant, but for others we add more
arguments at runtime. The latter is implemented by allocating
a constant extra number of NULLs, and either using a custom
append function, or just referencing unused slots by number.

As of commit 7e52f56, which added two new arguments, it is
possible to exceed the constant number of slots for "repack"
by running "git gc --aggressive", causing "git gc" to die.

This patch converts all of the static argv lists to use
argv-array. In addition to fixing the overflow caused by
7e52f56, it has a few advantages:

1. We can drop the custom append function (which,
incidentally, had an off-by-one error exacerbating the
static limit).

2. We can drop the ugly magic numbers used when adding
arguments to "prune".

3. Adding further arguments will be easier; you can just
add new "push" calls without worrying about increasing
any static limits.

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

argv-array: add a new "pushl" methodJeff King Wed, 18 Apr 2012 21:10:05 +0000 (14:10 -0700)

argv-array: add a new "pushl" method

It can be convenient to push many strings in a single line
(e.g., if you are initializing an array with defaults). This
patch provides a convenience wrapper to allow this.

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

argv-array: refactor empty_argv initializationJeff King Wed, 18 Apr 2012 21:08:49 +0000 (14:08 -0700)

argv-array: refactor empty_argv initialization

An empty argv-array is initialized to point to a static
empty NULL-terminated array. The original implementation
separates the actual storage of the NULL-terminator from the
pointer to the list. This makes the exposed type a "const
char **", which nicely matches the type stored by the
argv-array.

However, this indirection means that one cannot use
empty_argv to initialize a static variable, since it is
not a constant.

Instead, we can expose empty_argv directly, as an array of
pointers. The only place we use it is in the ARGV_ARRAY_INIT
initializer, and it decays to a pointer appropriately there.

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

Prevent graph_width of stat width from falling below minLucian Poston Wed, 18 Apr 2012 21:12:18 +0000 (14:12 -0700)

Prevent graph_width of stat width from falling below min

Update tests in t4052 fixed by this change.

Signed-off-by: Lucian Poston <lucian.poston@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4052: Test diff-stat output with minimum columnsLucian Poston Wed, 18 Apr 2012 21:09:33 +0000 (14:09 -0700)

t4052: Test diff-stat output with minimum columns

When COLUMNS or --stat-width restricts the diff-stat width to near the
minimum, 26 columns, the graph_width value becomes negative. Consequently, the
graph part of diff-stat is not resized properly.

Signed-off-by: Lucian Poston <lucian.poston@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/merge.c: reduce parents earlyJunio C Hamano Tue, 17 Apr 2012 19:22:26 +0000 (12:22 -0700)

builtin/merge.c: reduce parents early

Instead of waiting until we record the parents of resulting merge, reduce
redundant parents (including our HEAD) immediately after reading them.

The change to t7602 illustrates the essence of the effect of this change.
The octopus merge strategy used to be fed with redundant commits only to
discard them as "up-to-date", but we no longer feed such redundant commits
to it and the affected test degenerates to a regular two-head merge.

And obviously the known-to-be-broken test in t6028 is now fixed.

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

builtin/merge.c: collect other parents earlyJunio C Hamano Tue, 17 Apr 2012 18:31:10 +0000 (11:31 -0700)

builtin/merge.c: collect other parents early

Move the code around to populate remoteheads list early in the process
before any decision regarding twohead vs octopus and fast-forwardness is
made.

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

builtin/merge.c: remove "remoteheads" global variableJunio C Hamano Mon, 16 Apr 2012 23:15:13 +0000 (16:15 -0700)

builtin/merge.c: remove "remoteheads" global variable

Instead pass it around starting from the toplevel cmd_merge()
as an explicit parameter.

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

merge tests: octopus with redundant parentsMichał Kiedrowicz Mon, 13 Feb 2012 11:48:56 +0000 (12:48 +0100)

merge tests: octopus with redundant parents

This happens when git merge is run to merge multiple commits that are
descendants of current HEAD (or are HEAD). We've hit this while updating
master to origin/master but accidentaly we called (while being on master):

$ git merge master origin/master

Here is a minimal testcase:

$ git init a && cd a
$ echo a >a && git add a
$ git commit -minitial
$ echo b >a && git add a
$ git commit -msecond
$ git checkout master^

$ git merge master master
Fast-forwarding to: master
Already up-to-date with master
Merge made by the 'octopus' strategy.
a | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

$ git cat-file commit HEAD
tree eebfed94e75e7760540d1485c740902590a00332
parent bd679e85202280b263e20a57639a142fa14c2c64
author Michał Kiedrowicz <michal.kiedrowicz@gmail.com> 1329132996 +0100
committer Michał Kiedrowicz <michal.kiedrowicz@gmail.com> 1329132996 +0100

Merge branches 'master' and 'master' into HEAD

Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: describe new refs based on where it came fromMarc Branchaud Mon, 16 Apr 2012 22:08:50 +0000 (18:08 -0400)

fetch: describe new refs based on where it came from

update_local_ref() used to say "[new branch]" when we stored a new ref
outside refs/tags/ hierarchy, but the message is more about what we
fetched, so use the refname at the origin to make that decision.

Also, only call a new ref a "branch" if it's under refs/heads/.

Signed-off-by: Marc Branchaud <marcnarc@xiplink.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: Give remote_ref to update_local_ref() as wellMarc Branchaud Mon, 16 Apr 2012 22:08:49 +0000 (18:08 -0400)

fetch: Give remote_ref to update_local_ref() as well

This way, the function can look at the remote side to adjust the
informational message it gives.

Signed-off-by: Marc Branchaud <marcnarc@xiplink.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4052: Adjust --graph --stat output for prefixesLucian Poston Mon, 16 Apr 2012 10:44:52 +0000 (03:44 -0700)

t4052: Adjust --graph --stat output for prefixes

Adjust tests to verify that the commit history graph tree is taken into
consideration when the diff stat output width is calculated.

Signed-off-by: Lucian Poston <lucian.poston@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Adjust stat width calculations to take --graph output... Lucian Poston Mon, 16 Apr 2012 10:44:51 +0000 (03:44 -0700)

Adjust stat width calculations to take --graph output into account

The recent change to compute the width of diff --stat did not take into
consideration the output from --graph. The consequence is that when both
options are used, e.g. in 'log --stat --graph', the lines are too long.

Adjust stat width calculations to take --graph output into account.

Signed-off-by: Lucian Poston <lucian.poston@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>