Code

git.git
12 years agoMerge branch 'th/git-diffall'
Junio C Hamano [Fri, 16 Mar 2012 04:54:42 +0000 (21:54 -0700)]
Merge branch 'th/git-diffall'

* th/git-diffall:
  contrib/diffall: fix cleanup trap on Windows
  contrib/diffall: eliminate duplicate while loops
  contrib/diffall: eliminate use of tar
  contrib/diffall: create tmp dirs without mktemp
  contrib/diffall: comment actual reason for 'cdup'

12 years agoMerge branch 'th/doc-diff-submodule-option'
Junio C Hamano [Fri, 16 Mar 2012 04:54:30 +0000 (21:54 -0700)]
Merge branch 'th/doc-diff-submodule-option'

* th/doc-diff-submodule-option:
  Documentation/diff-options: reword description of --submodule option

12 years agofetch/receive: remove over-pessimistic connectivity check
Junio C Hamano [Thu, 15 Mar 2012 21:57:02 +0000 (14:57 -0700)]
fetch/receive: remove over-pessimistic connectivity check

Git 1.7.8 introduced an object and history re-validation step after
"fetch" or "push" causes new history to be added to a receiving
repository. This is to protect a malicious server or pushing client from
corrupting the repository by taking advantage of an existing corrupt
object that is unconnected to existing history.

But this check is way over-pessimistic.  During "fetch" or "receive-pack"
(the server side of "push"), unpack-objects and index-pack already
validate individual objects that are received, and the only thing we would
want to catch are corrupted objects that already happen to exist in our
repository but are not referenced from our refs.  Such objects must have
been written by an earlier run of our codepaths that write out loose
objects or packfiles, and they must have done the validation of individual
objects when they did so.  The only thing left to worry about is the
connectivity integrity, which can be checked with "rev-list --objects",
which is much cheaper.  We have been paying the 5x to 8x runtime overhead
the --verify-objects often adds for no real gain.

Revert check_everything_connected() not to use this over-pessimistic
check.

Credit goes to Nguyễn Thái Ngọc Duy, who originally identified the
performance regression and endured multiple rounds of reviews to fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation/difftool: add deltawalker to list of valid diff tools
Tim Henigan [Thu, 15 Mar 2012 16:28:26 +0000 (12:28 -0400)]
Documentation/difftool: add deltawalker to list of valid diff tools

deltawalker has been supported since 284a126c3ef3, but was not added
to the list of valid diff tools reported by 'git difftool --help'.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agonotes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd
Johan Herland [Thu, 15 Mar 2012 14:58:56 +0000 (15:58 +0100)]
notes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd

When a manual notes merge is committed or aborted, we need to remove the
temporary worktree at .git/NOTES_MERGE_WORKTREE. However, removing the
entire directory is not good if the user ran the 'git notes merge
--commit/--abort' from within that directory. On Windows, the directory
removal would simply fail, while on POSIX systems, users would suddenly
find themselves in an invalid current directory.

Therefore, instead of deleting the entire directory, we delete everything
_within_ the directory, and leave the (empty) directory in place.

This would cause a subsequent notes merge to abort, complaining about a
previous - unfinished - notes merge (due to the presence of
.git/NOTES_MERGE_WORKTREE), so we also need to adjust this check to only
trigger when .git/NOTES_MERGE_WORKTREE is non-empty.

Finally, adjust the t3310 manual notes merge testcases to correctly handle
the existence of an empty .git/NOTES_MERGE_WORKTREE directory.

Inspired-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agonotes-merge: use opendir/readdir instead of using read_directory()
Johan Herland [Mon, 12 Mar 2012 14:57:13 +0000 (15:57 +0100)]
notes-merge: use opendir/readdir instead of using read_directory()

notes_merge_commit() only needs to list all entries (non-recursively)
under a directory, which can be easily accomplished with
opendir/readdir and would be more lightweight than read_directory().

read_directory() is designed to list paths inside a working
directory. Using it outside of its scope may lead to undesired effects.

Apparently, one of the undesired effects of read_directory() is that it
doesn't deal with being given absolute paths. This creates problems for
notes_merge_commit() when git_path() returns an absolute path, which
happens when the current working directory is in a subdirectory of the
.git directory.

Originally-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Updated-by: Johan Herland <johan@herland.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot3310: illustrate failure to "notes merge --commit" inside $GIT_DIR/
Johan Herland [Mon, 12 Mar 2012 14:57:12 +0000 (15:57 +0100)]
t3310: illustrate failure to "notes merge --commit" inside $GIT_DIR/

The 'git notes merge' command expected to be run from the working
tree of the project being annotated, and did not anticipate getting
run inside $GIT_DIR/.

However, because we use $GIT_DIR/NOTES_MERGE_WORKTREE as a temporary
working space for the user to work on resolving conflicts, it is not
unreasonable for a user to run "git notes merge --commit" there. But
the command fails to do so.

Found-by: David Bremner <david@tethera.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoremove_dir_recursively(): Add flag for skipping removal of toplevel dir
Junio C Hamano [Thu, 15 Mar 2012 14:58:54 +0000 (15:58 +0100)]
remove_dir_recursively(): Add flag for skipping removal of toplevel dir

Add the REMOVE_DIR_KEEP_TOPLEVEL flag to remove_dir_recursively() for
deleting everything inside the given directory, but _not_ the given
directory itself.

Note that this does not pass the REMOVE_DIR_KEEP_NESTED_GIT flag, if set,
to the recursive invocations of remove_dir_recursively().  It is likely to
be a a bug that has been present since REMOVE_DIR_KEEP_NESTED_GIT was
introduced (a0f4afb), but this commit keeps the same behaviour for now.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot0303: resurrect commit message as test documentation
Zbigniew Jędrzejewski-Szmek [Thu, 15 Mar 2012 11:08:01 +0000 (12:08 +0100)]
t0303: resurrect commit message as test documentation

The commit message which added those tests (861444f 't: add test
harness for external credential helpers' 2011-12-10) provided nice
documentation in the commit message. Let's make it more visible
by putting it in the test description.

The documentation is updated to reflect the fact that
GIT_TEST_CREDENTIAL_HELPER must be set for
GIT_TEST_CREDENTIAL_HELPER_TIMEOUT to be used
and GIT_TEST_CREDENTIAL_HELPER_SETUP can be used.

Based-on-commit-message-by: Jeff King <peff@peff.net>
Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER
Zbigniew Jędrzejewski-Szmek [Thu, 15 Mar 2012 11:08:00 +0000 (12:08 +0100)]
t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER

t0300-credential-helpers.sh requires GIT_TEST_CREDENTIAL_HELPER to be
configured to do something sensible. If it is not set, prove will say:
  ./t0303-credential-external.sh .. skipped: (no reason given)
which isn't very nice.

Use skip_all="..." && test_done to bail out immediately and provide a
nicer message. In case GIT_TEST_CREDENTIAL_HELPER is set, but the
timeout tests are skipped, mention GIT_TEST_CREDENTIAL_HELPER_TIMEOUT.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoGit 1.7.10-rc1 v1.7.10-rc1
Junio C Hamano [Wed, 14 Mar 2012 22:38:47 +0000 (15:38 -0700)]
Git 1.7.10-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocontrib/diffall: fix cleanup trap on Windows
Tim Henigan [Wed, 14 Mar 2012 16:38:06 +0000 (12:38 -0400)]
contrib/diffall: fix cleanup trap on Windows

Prior to this commit, the cleanup trap that removes the tmp dir
created by the script would fail on Windows. The error was silently
ignored by the script.

On Windows, a directory cannot be removed while it is the working
directory of the process (thanks to Johannes Sixt on the Git list
for this info [1]).

This commit eliminates the 'cd' into the tmp directory that caused
the error.

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

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocontrib/diffall: eliminate duplicate while loops
Tim Henigan [Wed, 14 Mar 2012 16:38:05 +0000 (12:38 -0400)]
contrib/diffall: eliminate duplicate while loops

There were 3 instances of a 'while read; do' that used identical logic
to populate '/tmp/right_dir'. This commit groups them into a single loop.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocontrib/diffall: eliminate use of tar
Tim Henigan [Wed, 14 Mar 2012 16:38:04 +0000 (12:38 -0400)]
contrib/diffall: eliminate use of tar

The 'tar' utility is not available on all platforms (some only support
'gnutar').  An earlier commit created a work-around for this problem,
but a better solution is to eliminate the use of 'tar' completely.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocontrib/diffall: create tmp dirs without mktemp
Tim Henigan [Wed, 14 Mar 2012 16:38:03 +0000 (12:38 -0400)]
contrib/diffall: create tmp dirs without mktemp

mktemp is not available on all platforms.  Instead of littering the code
with a work-around, this commit replaces mktemp with a one-line Perl
script.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocontrib/diffall: comment actual reason for 'cdup'
Tim Henigan [Wed, 14 Mar 2012 16:38:02 +0000 (12:38 -0400)]
contrib/diffall: comment actual reason for 'cdup'

The comment from an earlier commit did not reflect the actual reason this
operation is needed.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agodiff: tweak a _copy_ of diff_options with word-diff
Thomas Rast [Wed, 14 Mar 2012 18:24:09 +0000 (19:24 +0100)]
diff: tweak a _copy_ of diff_options with word-diff

When using word diff, the code sets the word_regex from various
defaults if it was not set already.  The problem is that it does this
on the original diff_options, which will also be used in subsequent
diffs.

This means that when the word_regex is not given on the command line,
only the first diff for which a setting for word_regex (either from
attributes or diff.wordRegex) ever takes effect.  This value then
propagates to the rest of the diff runs and in particular prevents
further attribute lookups.

Fix the problem of changing diff state once and for all, by working
with a _copy_ of the diff_options.

Noticed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agodiff: refactor the word-diff setup from builtin_diff_cmd
Thomas Rast [Wed, 14 Mar 2012 18:24:08 +0000 (19:24 +0100)]
diff: refactor the word-diff setup from builtin_diff_cmd

Quite a chunk of builtin_diff_cmd deals with word-diff setup, defaults
and such.  This makes the function a bit hard to read, but is also
asymmetric because the corresponding teardown lives in free_diff_words_data
already.

Refactor into a new function init_diff_words_data.  For simplicity,
also shuffle around some functions it depends on.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4034: diff.*.wordregex should not be "sticky" in --word-diff
Johannes Sixt [Wed, 14 Mar 2012 19:50:21 +0000 (20:50 +0100)]
t4034: diff.*.wordregex should not be "sticky" in --word-diff

The test case applies a custom wordRegex to one file in a diff, and expects
that the default word splitting applies to the second file in the diff.
But the custom wordRegex is also incorrectly used for the second file.

Helped-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation/diff-options: reword description of --submodule option
Tim Henigan [Wed, 14 Mar 2012 17:00:55 +0000 (13:00 -0400)]
Documentation/diff-options: reword description of --submodule option

The previous description was confusing.  This rewrite makes it easier
to understand.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agodiffstat summary line varies by locale: miscellany
Jonathan Nieder [Tue, 13 Mar 2012 05:05:54 +0000 (00:05 -0500)]
diffstat summary line varies by locale: miscellany

These changes are in the same spirit as the six patches that
precede them, but they haven't been split into individually
justifiable patches yet.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: use numstat instead of diffstat in binary-diff test
Jonathan Nieder [Tue, 13 Mar 2012 05:02:19 +0000 (00:02 -0500)]
test: use numstat instead of diffstat in binary-diff test

git's --stat output is intended for humans and since v1.7.9.2~13
(2012-02-01) varies by locale.  The tests in this script using "apply
--stat" are meant to check two things:

 - how binary file changes are accounted for and printed in
   git's diffstat format

 - that "git apply" can parse the various forms of binary diff

Split these two kinds of check into separate tests, and use --numstat
instead of --stat in the latter.  This way, we lose less test coverage
when git is being run without writing its output in the C locale (for
example because GETTEXT_POISON is enabled) and there are fewer tests
to change if the --stat output needs to be tweaked again.

While at it, use commands separated by && that read and write to
temporary files in place of pipelines so segfaults and other failures
in the upstream of the processing pipeline don't get hidden.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: use --numstat instead of --stat in "git stash show" tests
Jonathan Nieder [Tue, 13 Mar 2012 05:01:32 +0000 (00:01 -0500)]
test: use --numstat instead of --stat in "git stash show" tests

git's diff --stat output is intended for human consumption and
since v1.7.9.2~13 (2012-02-01) varies by locale.  Add a test checking
that git stash show defaults to --stat and tweak the rest of the
"stash show" tests that showed a diffstat to use numstat.

This way, there are fewer tests to tweak if the diffstat format
changes again.  This also improves test coverage when running tests
with git configured not to write its output in the C locale (e.g.,
via GETTEXT_POISON=Yes).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: test cherry-pick functionality and output separately
Jonathan Nieder [Tue, 13 Mar 2012 05:00:36 +0000 (00:00 -0500)]
test: test cherry-pick functionality and output separately

Since v1.7.3-rc0~26^2~9 (revert: report success when using option
--strategy, 2010-07-14), the cherry-pick-many-commits test checks the
format of output written to the terminal during a cherry-pick sequence
in addition to the functionality.  There is no reason those have to
be checked in the same test, though, and it has some downsides:

 - when progress output is broken, the test result does not convey
   whether the functionality was also broken or not

 - it is not immediately obvious when reading that these checks are
   meant to prevent regressions in details of the output format and
   are not just a roundabout way to check functional details like the
   number of commits produced

 - there is a temptation to include the same kind of output checking
   for every new cherry-pick test, which would make future changes
   to the output unnecessarily difficult

Put the tests from v1.7.3-rc0~26^2~9 in separate assertions, following
the principle "test one feature at a time".

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: modernize funny-names test style
Jonathan Nieder [Tue, 13 Mar 2012 04:59:52 +0000 (23:59 -0500)]
test: modernize funny-names test style

This is one of the early tests, so it uses a style that by modern
standards can be hard to read.  Tweak it to:

 - clearly declare what assertion each test is designed to check

 - mark tests that create state later tests will depend on with the
   word "setup" so people writing or running tests know the others
   can be skipped or reordered safely

 - put commands that populate a file with expected output inside
   the corresponding test stanza, so it is easier to see by eye
   where each test begins and ends

 - instead of pipelines, use commands that read and write a
   temporary file, so bugs causing commands to segfault or produce
   the wrong exit status can be caught.

More cosmetic changes:

 - put the opening quote starting each test on the same line as the
   test_expect_* invocation, and indent the commands in each test
   with a single tab

 - end the test early if the underlying filesystem cannot
   accomodate the filenames we use, instead of marking all tests
   with the same TABS_IN_FILENAMES prerequisite.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: use numstat instead of diffstat in funny-names test
Jonathan Nieder [Tue, 13 Mar 2012 04:58:59 +0000 (23:58 -0500)]
test: use numstat instead of diffstat in funny-names test

This test script checks that git's plumbing commands quote filenames
with special characters like space, tab, and double-quote
appropriately in their input and output.

Since commit v1.7.9.2~13 (Use correct grammar in diffstat summary
line, 2012-02-01), the final "1 file changed, 1 insertion(+)" line
from diffstats is translatable, meaning tests that rely on exact "git
apply --stat" output have to be skipped when git is not configured to
produce output in the C locale (for example, when GETTEXT_POISON is
enabled).  So:

 - Tweak the three "git apply --stat" tests that check "git apply"'s
   input parsing to use --numstat instead.

   --numstat output is more reliable, does not vary with locale, and
   is itself easier to parse.  These tests are mainly about how "git
   apply" parses its input so this should not result in much loss of
   coverage.

 - Add a new "apply --stat" test to check the quoting in --stat output
   format.

This wins back a little of the test coverage lost with the patch
"test: use test_i18ncmp to check --stat output" when GETTEXT_POISON is
enabled.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: use test_i18ncmp when checking --stat output
Jonathan Nieder [Tue, 13 Mar 2012 04:54:05 +0000 (23:54 -0500)]
test: use test_i18ncmp when checking --stat output

Ever since v1.7.9.2~13 (2012-02-01), git's diffstat-style summary line
produced by "git apply --stat", "git diff --stat", and "git commit"
varies by locale, producing test failures when GETTEXT_POISON is set.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/i18n-shell-script-gettext'
Junio C Hamano [Tue, 13 Mar 2012 19:36:28 +0000 (12:36 -0700)]
Merge branch 'jc/i18n-shell-script-gettext'

The auto detection was testing if a fixed string that is known to be
non-empty is empty by mistake.

* jc/i18n-shell-script-gettext:
  i18n: fix auto detection of gettext scheme for shell scripts

12 years agoMerge branch 'jc/maint-undefined-i18n-observation-test'
Junio C Hamano [Tue, 13 Mar 2012 19:36:09 +0000 (12:36 -0700)]
Merge branch 'jc/maint-undefined-i18n-observation-test'

It was unclear what a test in t0204 wanted to check; it turns out
that it was only to observe an undefined behaviour of the system,
and did not anticipate one kind of reasonable error behaviour.

* jc/maint-undefined-i18n-observation-test:
  t0204: clarify the "observe undefined behaviour" test

12 years agoMerge branch 'ms/maint-config-error-at-eol-linecount'
Junio C Hamano [Tue, 13 Mar 2012 19:35:53 +0000 (12:35 -0700)]
Merge branch 'ms/maint-config-error-at-eol-linecount'

When "git config" diagnoses an error in a configuration file and
shows the line number for the offending line, it miscounted if the
error was at the end of line.

By Martin Stenberg
* ms/maint-config-error-at-eol-linecount:
  config: report errors at the EOL with correct line number

Conflicts:
t/t1300-repo-config.sh

12 years agoMerge branch 'ph/rerere-doc'
Junio C Hamano [Tue, 13 Mar 2012 19:35:22 +0000 (12:35 -0700)]
Merge branch 'ph/rerere-doc'

By Phil Hord
* ph/rerere-doc:
  rerere: Document 'rerere remaining'

12 years agoam: officially deprecate -b/--binary option
Junio C Hamano [Tue, 13 Mar 2012 18:38:27 +0000 (11:38 -0700)]
am: officially deprecate -b/--binary option

We have had these options as harmless no-op for more than 3 years without
officially deprecating them.  Let's announce the deprecation and start
warning against their use, but without failing the command just not yet,
so that we can later repurpose the option if we want to in the future.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoUpdate draft release notes to 1.7.10 before -rc1
Junio C Hamano [Mon, 12 Mar 2012 22:59:06 +0000 (15:59 -0700)]
Update draft release notes to 1.7.10 before -rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'az/verify-tag-use-gpg-config'
Junio C Hamano [Mon, 12 Mar 2012 22:55:53 +0000 (15:55 -0700)]
Merge branch 'az/verify-tag-use-gpg-config'

"git tag -s" honored "gpg.program" configuration variable since
1.7.9, but "git tag -v" and "git verify-tag" didn't.

By Alex Zepeda
* az/verify-tag-use-gpg-config:
  verify-tag: Parse GPG configuration options.

12 years agoSync with 1.7.9.4
Junio C Hamano [Mon, 12 Mar 2012 22:54:21 +0000 (15:54 -0700)]
Sync with 1.7.9.4

12 years agoGit 1.7.9.4 v1.7.9.4
Junio C Hamano [Mon, 12 Mar 2012 22:52:52 +0000 (15:52 -0700)]
Git 1.7.9.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'tr/maint-bundle-boundary' into maint
Junio C Hamano [Mon, 12 Mar 2012 22:46:53 +0000 (15:46 -0700)]
Merge branch 'tr/maint-bundle-boundary' into maint

"git bundle" did not record boundary commits correctly when there
are many of them.

By Thomas Rast
* tr/maint-bundle-boundary:
  bundle: keep around names passed to add_pending_object()
  t5510: ensure we stay in the toplevel test dir
  t5510: refactor bundle->pack conversion

12 years agoMerge branch 'jc/maint-diff-patch-header' into maint
Junio C Hamano [Mon, 12 Mar 2012 22:46:32 +0000 (15:46 -0700)]
Merge branch 'jc/maint-diff-patch-header' into maint

"git diff-index" and its friends at the plumbing level showed the
"diff --git" header and nothing else for a path whose cached stat
info is dirty without actual difference when asked to produce a
patch. This was a longstanding bug that we could have fixed long
time ago.

By Junio C Hamano
* jc/maint-diff-patch-header:
  diff -p: squelch "diff --git" header for stat-dirty paths
  t4011: illustrate "diff-index -p" on stat-dirty paths
  t4011: modernise style

12 years agoMerge branch 'jn/maint-do-not-match-with-unsanitized-searchtext' into maint
Junio C Hamano [Mon, 12 Mar 2012 22:45:57 +0000 (15:45 -0700)]
Merge branch 'jn/maint-do-not-match-with-unsanitized-searchtext' into maint

"gitweb" did use quotemeta() to prepare search string when asked to
do a fixed-string project search, but did not use it by mistake and
used the user-supplied string instead.

By Jakub Narebski
* jn/maint-do-not-match-with-unsanitized-searchtext:
  gitweb: Fix fixed string (non-regexp) project search

12 years agoMerge branch 'jc/am-3-nonstandard-popt' into maint
Junio C Hamano [Mon, 12 Mar 2012 22:43:06 +0000 (15:43 -0700)]
Merge branch 'jc/am-3-nonstandard-popt' into maint

The code to synthesize the fake ancestor tree used by 3-way merge
fallback in "git am" was not prepared to read a patch created with
a non-standard -p<num> value.

* jc/am-3-nonstandard-popt:
  test: "am -3" can accept non-standard -p<num>
  am -3: allow nonstandard -p<num> option

12 years agogit-am: error out when seeing -b/--binary
Thomas Rast [Mon, 12 Mar 2012 21:47:19 +0000 (22:47 +0100)]
git-am: error out when seeing -b/--binary

The --binary option to git-apply has been a no-op since 2b6eef9 (Make
apply --binary a no-op., 2006-09-06) and was deprecated in cb3a160
(git-am: ignore --binary option, 2008-08-09).

We could remove it outright, but let's be nice to people who still
have scripts saying 'git am -b' (if they exist) and tell them the
reason for the sudden failure.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoi18n: fix auto detection of gettext scheme for shell scripts
Junio C Hamano [Mon, 12 Mar 2012 21:41:15 +0000 (14:41 -0700)]
i18n: fix auto detection of gettext scheme for shell scripts

A new code added by ad17ea7 (add a Makefile switch to avoid gettext
translation in shell scripts, 2012-01-23) tried to optionally force
a gettext scheme to "fallthrough", but ended up forcing it to everybody.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoconfig: report errors at the EOL with correct line number
Martin Stenberg [Fri, 9 Mar 2012 21:57:54 +0000 (22:57 +0100)]
config: report errors at the EOL with correct line number

A section in a config file with a missing "]" reports the next line
as bad, same goes to a value with a missing end quote.

This happens because the error is not detected until the end of the
line, when line number is already increased. Fix this by decreasing
line number by one for these cases.

Signed-off-by: Martin Stenberg <martin@gnutiken.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge https://github.com/git-l10n/git-po
Junio C Hamano [Mon, 12 Mar 2012 16:03:20 +0000 (09:03 -0700)]
Merge https://github.com/git-l10n/git-po

Updates to localized messages for zn_CN and sv locales.

via Jiang Xin
* https://github.com/git-l10n/git-po:
  l10n: Improve zh_CN translation for msg "not something we can merge"
  l10n: Improve zh_CN trans for msg that cannot fast-forward
  l10n: Update zh_CN translation for 1.7.10-rc0
  Update Swedish translation (732t0f0u).
  po/sv.po: add Swedish translation
  l10n: Update git.pot (1 new message)
  l10n: Update zh_CN translation for 1.7.9.2
  l10n: Improve commit msg for zh_CN translation
  l10n: Improve zh_CN translation for msg that make empty commit when amend.
  l10n: Improve zh_CN translation for empty cherry-pick msg.
  l10n: Improve zh_CN translation for msg about branch deletion deny
  l10n: Improve zh_CN translation for lines insertion and deletion.

12 years agocommit: pass author/committer info to hooks
Junio C Hamano [Sun, 11 Mar 2012 10:12:10 +0000 (03:12 -0700)]
commit: pass author/committer info to hooks

When lying the author name via GIT_AUTHOR_NAME environment variable
to "git commit", the hooks run by the command saw it and could act
on the name that will be recorded in the final commit. When the user
uses the "--author" option from the command line, the command should
give the same information to the hook, and back when "git command"
was a scripted Porcelain, it did set the environment variable and
hooks can learn the author name from it.

However, when the command was reimplemented in C, the rewritten code
was not very faithful to the original, and hooks stopped getting the
authorship information given with "--author".  Fix this by exporting
the necessary environment variables.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7503: does pre-commit-hook learn authorship?
Junio C Hamano [Sun, 11 Mar 2012 10:51:32 +0000 (03:51 -0700)]
t7503: does pre-commit-hook learn authorship?

When "--author" option is used to lie the authorship to "git commit"
command, hooks should learn the author name and email just like when
GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL environment variables are used
to lie the authorship.  Test this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoident.c: add split_ident_line() to parse formatted ident line
Junio C Hamano [Sun, 11 Mar 2012 09:25:43 +0000 (01:25 -0800)]
ident.c: add split_ident_line() to parse formatted ident line

The commit formatting logic format_person_part() in pretty.c
implements the logic to split an author/committer ident line into
its parts, intermixed with logic to compute its output using these
piece it computes.

Separate the former out to a helper function split_ident_line() so
that other codepath can use the same logic, and rewrite the function
using the helper function.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoGit::I18N: compatibility with perl <5.8.3
Ævar Arnfjörð Bjarmason [Sat, 10 Mar 2012 12:29:34 +0000 (12:29 +0000)]
Git::I18N: compatibility with perl <5.8.3

Change the Exporter invocation in Git::I18N to be compatible with
5.8.0 to 5.8.2 inclusive. Before Exporter 5.57 (released with 5.8.3)
Exporter didn't export the 'import' subroutine.

Reported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agofast-import: don't allow 'ls' of path with empty components
Jonathan Nieder [Sat, 10 Mar 2012 04:07:22 +0000 (22:07 -0600)]
fast-import: don't allow 'ls' of path with empty components

As the fast-import manual explains:

The value of <path> must be in canonical form. That is it must
not:
. contain an empty directory component (e.g. foo//bar is invalid),
. end with a directory separator (e.g. foo/ is invalid),
. start with a directory separator (e.g. /foo is invalid),

Unfortunately the "ls" command accepts these invalid syntaxes and
responds by declaring that the indicated path is missing.  This is too
subtle and causes importers to silently misbehave; better to error out
so the operator knows what's happening.

The C, R, and M commands already error out for such paths.

Reported-by: Andrew Sayers <andrew-git@pileofstuff.org>
Analysis-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agofast-import: leakfix for 'ls' of dirty trees
Jonathan Nieder [Sat, 10 Mar 2012 03:20:34 +0000 (21:20 -0600)]
fast-import: leakfix for 'ls' of dirty trees

When the chosen directory has changed since it was last written to
pack, "tree_content_get" makes a deep copy of its content to scribble
on while computing the tree name, which we forgot to free.

This leak has been present since the 'ls' command was introduced in
v1.7.5-rc0~3^2~33 (fast-import: add 'ls' command, 2010-12-02).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agot0204: clarify the "observe undefined behaviour" test
Junio C Hamano [Wed, 7 Mar 2012 23:36:59 +0000 (15:36 -0800)]
t0204: clarify the "observe undefined behaviour" test

This test asks for an impossible conversion to the system by
preparing an UTF-8 translation with characters that cannot be
expressed in ISO-8859-1, and then asking the message shown in
ISO-8859-1.  Even though the behaviour against such a request is
undefined, it may be interesting to see what the system does, and
the purpose of this test is to see if there are platforms that
exhibit behaviour that we haven't seen.

The original recognized two known modes of behaviour:

 - the key used to query the message catalog ("TEST: Old English
   Runes"), saying "I cannot do that i18n".
 - impossible characters replaced with ASCII "?", saying "I punt".

but they were treated totally differently.  The test simply issued
an informational message "Your system punts on this one" for the
first error mode, while it diagnosed the latter as "Your system is
good; you pass!".

It turns out that Mac OS X exhibits a third mode of error behaviour,
to spew out the raw value stored in the message catalog.  The test
diagnosed this behaviour as "broken", but it is merely trying to do
its best to respond to an impossible request by saying "I punt" in a
way that is slightly different from the second one.

Update the offending test to make it clear what is (and is not)
being tested, update the code structure so that newly discovered
error mode can easily be added to it later, and reword the message
that comes from a failing case to clarify that it is not the system
that is broken when it fails, but merely that the behaviour is not
something we have seen.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoconfigure: allow user to prevent $PATH "sanitization" on Solaris
Stefano Lattarini [Fri, 9 Mar 2012 12:43:55 +0000 (13:43 +0100)]
configure: allow user to prevent $PATH "sanitization" on Solaris

On a Solaris 10 system with Solaris make installed as '/usr/xpg4/bin/make',
GNU make installed as '/usr/local/bin/make', and with '/usr/local/bin'
appearing in $PATH *before* '/usr/xpg4/bin', I was seeing errors like this
upon invoking "make all":

    Usage : make [ -f makefile ][ -K statefile ]...
    make: Fatal error: Unknown option `-C'

This happenes because the Git's Makefile, when running on Solaris,
automatically "sanitizes" $PATH by prepending '/usr/xpg6/bin' and
'/usr/xpg4/bin' to it in order to avoid using non-POSIX /bin/sh from
being used.  In the setup described above, however, this has an
unintended consequence of forcing the use of Solaris make in recursive
make invocations -- even if the $(MAKE) macro is being correctly used in
them!

When building without using the autoconf machinery, this can be solved
by overriding $(SANE_TOOL_PATH).  Teach the autoconf machinery to also
allow users of ./configure to override it from the command line with a
new --with-sane-tool-path option.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agop4000: use -3000 when promising -3000
Thomas Rast [Fri, 9 Mar 2012 09:52:54 +0000 (10:52 +0100)]
p4000: use -3000 when promising -3000

The 'log -3000 (baseline)' test accidentally still used -1000 from an
earlier version.

Noticed-by: Lawrence Holding <Lawrence.Holding@cubic.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorerere: Document 'rerere remaining'
Phil Hord [Thu, 8 Mar 2012 21:08:50 +0000 (16:08 -0500)]
rerere: Document 'rerere remaining'

This adds the 'remaining' command to the documentation of
'git rerere'. This command was added in ac49f5ca (Feb 16 2011;
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>) but
it was never documented.

Touch up the other rerere commands to reduce noise.

First noticed by Vincent van Ravesteijn.

Signed-off-by: Phil Hord <phil.hord@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoverify-tag: Parse GPG configuration options.
Alex Zepeda [Thu, 8 Mar 2012 20:07:20 +0000 (12:07 -0800)]
verify-tag: Parse GPG configuration options.

Modify verify-tag to load relevant GPG variables from the git
configuratio file.  This allows git tag -v to use an alternative
GPG binary in the same way that git tag -s does.

Signed-off-by: Alex Zepeda <alex@inferiorhumanorgans.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoUpdate draft release notes to 1.7.10
Junio C Hamano [Thu, 8 Mar 2012 21:08:26 +0000 (13:08 -0800)]
Update draft release notes to 1.7.10

Also apply typofixes people on the list helped spotting and
correcting.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'kb/maint-prune-rmdir-closedir'
Junio C Hamano [Thu, 8 Mar 2012 21:05:04 +0000 (13:05 -0800)]
Merge branch 'kb/maint-prune-rmdir-closedir'

By Karsten Blees
* kb/maint-prune-rmdir-closedir:
  fix deletion of .git/objects sub-directories in git-prune/repack

12 years agoMerge branch 'jl/maint-submodule-relative'
Junio C Hamano [Thu, 8 Mar 2012 21:04:52 +0000 (13:04 -0800)]
Merge branch 'jl/maint-submodule-relative'

By Jens Lehmann (3) and Johannes Sixt (1)
* jl/maint-submodule-relative:
  submodules: fix ambiguous absolute paths under Windows
  submodules: refactor computation of relative gitdir path
  submodules: always use a relative path from gitdir to work tree
  submodules: always use a relative path to gitdir

12 years agoMerge branch 'jn/maint-do-not-match-with-unsanitized-searchtext'
Junio C Hamano [Thu, 8 Mar 2012 21:04:49 +0000 (13:04 -0800)]
Merge branch 'jn/maint-do-not-match-with-unsanitized-searchtext'

By Jakub Narebski
* jn/maint-do-not-match-with-unsanitized-searchtext:
  gitweb: Fix fixed string (non-regexp) project search

Conflicts:
gitweb/gitweb.perl

12 years agoMerge branch 'vr/branch-doc'
Junio C Hamano [Thu, 8 Mar 2012 21:04:44 +0000 (13:04 -0800)]
Merge branch 'vr/branch-doc'

By Vincent van Ravesteijn
* vr/branch-doc:
  Documentation/git-branch: add default for --contains
  Documentation/git-branch: fix a typo
  Documentation/git-branch: cleanups

12 years agoperf: export some important test-lib variables
Thomas Rast [Thu, 8 Mar 2012 08:54:55 +0000 (09:54 +0100)]
perf: export some important test-lib variables

The only bug right now is that $GIT_TEST_CMP is needed for test_cmp to
work.

However, we also export the three most important paths for tests:

  TEST_DIRECTORY
  TRASH_DIRECTORY
  GIT_BUILD_DIR

Since they are available within test_expect_success, a future test
writer may expect them to also be defined in test_perf.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoperf: load test-lib-functions from the correct directory
Thomas Rast [Thu, 8 Mar 2012 08:54:54 +0000 (09:54 +0100)]
perf: load test-lib-functions from the correct directory

Loading it in the subshells still referred to $TEST_DIRECTORY/..,
which was only correct in preliminary versions of perf-lib.sh

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: Improve zh_CN translation for msg "not something we can merge"
Thynson [Sat, 3 Mar 2012 01:03:27 +0000 (09:03 +0800)]
l10n: Improve zh_CN translation for msg "not something we can merge"

Signed-off-by: Thynson <lanxingcan@gmail.com>
12 years agol10n: Improve zh_CN trans for msg that cannot fast-forward
Thynson [Sat, 3 Mar 2012 00:34:28 +0000 (08:34 +0800)]
l10n: Improve zh_CN trans for msg that cannot fast-forward

Signed-off-by: Thynson <lanxingcan@gmail.com>
12 years agol10n: Update zh_CN translation for 1.7.10-rc0
Jiang Xin [Thu, 8 Mar 2012 04:06:53 +0000 (12:06 +0800)]
l10n: Update zh_CN translation for 1.7.10-rc0

Translate 1 new message from Git 1.7.10-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agoUpdate Swedish translation (732t0f0u).
Peter Krefting [Thu, 8 Mar 2012 09:56:37 +0000 (10:56 +0100)]
Update Swedish translation (732t0f0u).

This update includes a replay of some review fixes from the initial
translation run in 2010, which I cannot find having committed anywhere.

Add myself to the po/TEAMS file as well.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
12 years agopo/sv.po: add Swedish translation
Peter Krefting [Sun, 12 Sep 2010 20:10:21 +0000 (21:10 +0100)]
po/sv.po: add Swedish translation

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
(cherry picked from commit 54ce07007c7988268d43619c580e81fbca09d37b)

12 years agol10n: Update git.pot (1 new message)
Jiang Xin [Thu, 8 Mar 2012 02:20:20 +0000 (10:20 +0800)]
l10n: Update git.pot (1 new message)

Update file 'po/git.pot' to v1.7.10-rc0:

* Add 1 new l10n string in the new generated "git.pot" file at line:
  191

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agoMerge v1.7.10-rc0 for git l10n update
Jiang Xin [Thu, 8 Mar 2012 02:17:21 +0000 (10:17 +0800)]
Merge v1.7.10-rc0 for git l10n update

12 years agoGit 1.7.10-rc0 v1.7.10-rc0
Junio C Hamano [Wed, 7 Mar 2012 20:51:55 +0000 (12:51 -0800)]
Git 1.7.10-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/pickaxe-ignore-case'
Junio C Hamano [Wed, 7 Mar 2012 20:12:59 +0000 (12:12 -0800)]
Merge branch 'jc/pickaxe-ignore-case'

By Junio C Hamano (2) and Ramsay Jones (1)
* jc/pickaxe-ignore-case:
  ctype.c: Fix a sparse warning
  pickaxe: allow -i to search in patch case-insensitively
  grep: use static trans-case table

12 years agofix deletion of .git/objects sub-directories in git-prune/repack
Karsten Blees [Tue, 6 Mar 2012 09:18:41 +0000 (10:18 +0100)]
fix deletion of .git/objects sub-directories in git-prune/repack

Both git-prune and git-repack (and thus, git-gc) try to rmdir while
holding a DIR* handle on the directory.  This can leave dangling
empty directories in the .git/objects on platforms where directory
cannot be removed while they are open.

First call closedir() and then rmdir(); that is more logical ordering.

Reported-by: John Chen <john0312@gmail.com>
Reported-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Karsten Blees <blees@dcon.de>
Improved-and-Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoupdate-server-info: respect core.bigfilethreshold
Nguyễn Thái Ngọc Duy [Wed, 7 Mar 2012 10:54:21 +0000 (17:54 +0700)]
update-server-info: respect core.bigfilethreshold

This command indirectly calls check_sha1_signature() (add_info_ref ->
deref_tag -> parse_object -> ..) , which may put whole blob in memory
if the blob's size is under core.bigfilethreshold. As config is not
read, the threshold is always 512MB. Respect user settings here.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agofsck: use streaming API for writing lost-found blobs
Nguyễn Thái Ngọc Duy [Wed, 7 Mar 2012 10:54:20 +0000 (17:54 +0700)]
fsck: use streaming API for writing lost-found blobs

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoshow: use streaming API for showing blobs
Nguyễn Thái Ngọc Duy [Wed, 7 Mar 2012 10:54:19 +0000 (17:54 +0700)]
show: use streaming API for showing blobs

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoparse_object: avoid putting whole blob in core
Nguyễn Thái Ngọc Duy [Wed, 7 Mar 2012 10:54:18 +0000 (17:54 +0700)]
parse_object: avoid putting whole blob in core

Traditionally, all the callers of check_sha1_signature() first
called read_sha1_file() to prepare the whole object data in core,
and called this function.  The function is used to revalidate what
we read from the object database actually matches the object name we
used to ask for the data from the object database.

Update the API to allow callers to pass NULL as the object data, and
have the function read and hash the object data using streaming API
to recompute the object name, without having to hold everything in
core at the same time.  This is most useful in parse_object() that
parses a blob object, because this caller does not have to keep the
actual blob data around in memory after a "struct blob" is returned.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocat-file: use streaming API to print blobs
Nguyễn Thái Ngọc Duy [Wed, 7 Mar 2012 10:54:17 +0000 (17:54 +0700)]
cat-file: use streaming API to print blobs

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoAdd more large blob test cases
Nguyễn Thái Ngọc Duy [Wed, 7 Mar 2012 10:54:16 +0000 (17:54 +0700)]
Add more large blob test cases

New test cases list commands that should work when memory is
limited. All memory allocation functions (*) learn to reject any
allocation larger than $GIT_ALLOC_LIMIT if set.

(*) Not exactly all. Some places do not use x* functions, but
malloc/calloc directly, notably diff-delta. These code path should
never be run on large blobs.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostreaming: make streaming-write-entry to be more reusable
Junio C Hamano [Wed, 7 Mar 2012 10:54:15 +0000 (17:54 +0700)]
streaming: make streaming-write-entry to be more reusable

The static function in entry.c takes a cache entry and streams its blob
contents to a file in the working tree.  Refactor the logic to a new API
function stream_blob_to_fd() that takes an object name and an open file
descriptor, so that it can be reused by other callers.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jh/threadable-symlink-check'
Junio C Hamano [Tue, 6 Mar 2012 22:53:07 +0000 (14:53 -0800)]
Merge branch 'jh/threadable-symlink-check'

By Jared Hance
* jh/threadable-symlink-check:
  Add threaded versions of functions in symlinks.c.

12 years agoMerge branch 'jc/maint-diff-patch-header'
Junio C Hamano [Tue, 6 Mar 2012 22:53:07 +0000 (14:53 -0800)]
Merge branch 'jc/maint-diff-patch-header'

By Junio C Hamano
* jc/maint-diff-patch-header:
  diff -p: squelch "diff --git" header for stat-dirty paths
  t4011: illustrate "diff-index -p" on stat-dirty paths
  t4011: modernise style

12 years agoMerge branch 'th/mergetools-deltawalker'
Junio C Hamano [Tue, 6 Mar 2012 22:53:07 +0000 (14:53 -0800)]
Merge branch 'th/mergetools-deltawalker'

By Tim Henigan
* th/mergetools-deltawalker:
  mergetools: add a plug-in to support DeltaWalker

12 years agoMerge branch 'cn/pull-rebase-message'
Junio C Hamano [Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)]
Merge branch 'cn/pull-rebase-message'

By Carlos Martín Nieto
* cn/pull-rebase-message:
  Make git-{pull,rebase} message without tracking information friendlier

12 years agoMerge branch 'sl/modern-t0000'
Junio C Hamano [Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)]
Merge branch 'sl/modern-t0000'

By Stefano Lattarini
* sl/modern-t0000:
  t0000: modernise style

12 years agoMerge branch 'nl/http-proxy-auth'
Junio C Hamano [Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)]
Merge branch 'nl/http-proxy-auth'

By Nelson Benitez Leon
* nl/http-proxy-auth:
  http: support proxies that require authentication

12 years agoMerge branch 'tr/maint-bundle-boundary'
Junio C Hamano [Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)]
Merge branch 'tr/maint-bundle-boundary'

By Thomas Rast
* tr/maint-bundle-boundary:
  bundle: keep around names passed to add_pending_object()
  t5510: ensure we stay in the toplevel test dir
  t5510: refactor bundle->pack conversion

12 years agoMerge branch 'zj/diff-stat-dyncol'
Junio C Hamano [Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)]
Merge branch 'zj/diff-stat-dyncol'

By Zbigniew Jędrzejewski-Szmek (8) and Junio C Hamano (1)
* zj/diff-stat-dyncol:
  : This breaks tests. Perhaps it is not worth using the decimal-width stuff
  : for this series, at least initially.
  diff --stat: add config option to limit graph width
  diff --stat: enable limiting of the graph part
  diff --stat: add a test for output with COLUMNS=40
  diff --stat: use a maximum of 5/8 for the filename part
  merge --stat: use the full terminal width
  log --stat: use the full terminal width
  show --stat: use the full terminal width
  diff --stat: use the full terminal width
  diff --stat: tests for long filenames and big change counts

12 years agoMerge branch 'maint'
Junio C Hamano [Tue, 6 Mar 2012 22:53:02 +0000 (14:53 -0800)]
Merge branch 'maint'

By Thomas Rast
* maint:
  t5704: fix nonportable sed/grep usages
  Document the --histogram diff option

12 years agogitweb: Fix fixed string (non-regexp) project search
Jakub Narebski [Fri, 2 Mar 2012 22:34:24 +0000 (23:34 +0100)]
gitweb: Fix fixed string (non-regexp) project search

Use $search_regexp, where regex metacharacters are quoted, for
searching projects list, rather than $searchtext, which contains
original search term.

Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot5704: fix nonportable sed/grep usages
Thomas Rast [Tue, 6 Mar 2012 14:50:37 +0000 (15:50 +0100)]
t5704: fix nonportable sed/grep usages

OS X's sed and grep would complain with (respectively)

  sed: 1: "/^-/{p;q}": extra characters at the end of q command
  grep: Regular expression too big

For sed, use an explicit ; to terminate the q command.

For grep, spell the "40 hex digits" explicitly in the regex, which
should be safe as other tests already use this and we haven't got
breakage reports on OS X about them.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'maint-1.7.8' into maint
Junio C Hamano [Tue, 6 Mar 2012 20:05:09 +0000 (12:05 -0800)]
Merge branch 'maint-1.7.8' into maint

By Thomas Rast
* maint-1.7.8:
  Document the --histogram diff option

12 years agoMerge branch 'maint-1.7.7' into maint-1.7.8
Junio C Hamano [Tue, 6 Mar 2012 20:04:48 +0000 (12:04 -0800)]
Merge branch 'maint-1.7.7' into maint-1.7.8

By Thomas Rast
* maint-1.7.7:
  Document the --histogram diff option

12 years agoDocument the --histogram diff option
Thomas Rast [Tue, 6 Mar 2012 13:15:02 +0000 (14:15 +0100)]
Document the --histogram diff option

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoperf: compare diff algorithms
Thomas Rast [Tue, 6 Mar 2012 13:15:01 +0000 (14:15 +0100)]
perf: compare diff algorithms

8c912ee (teach --histogram to diff, 2011-07-12) claimed histogram diff
was faster than both Myers and patience.

We have since incorporated a performance testing framework, so add a
test that compares the various diff tasks performed in a real 'log -p'
workload.  This does indeed show that histogram diff slightly beats
Myers, while patience is much slower than the others.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation/git-branch: add default for --contains
Vincent van Ravesteijn [Tue, 6 Mar 2012 09:32:45 +0000 (10:32 +0100)]
Documentation/git-branch: add default for --contains

Indicate that the commit parameter of --contains defaults to HEAD.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation/git-branch: fix a typo
Vincent van Ravesteijn [Tue, 6 Mar 2012 09:32:44 +0000 (10:32 +0100)]
Documentation/git-branch: fix a typo

Fix a typo by replacing 'tag' with 'branch'.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation/git-branch: cleanups
Vincent van Ravesteijn [Tue, 6 Mar 2012 09:32:43 +0000 (10:32 +0100)]
Documentation/git-branch: cleanups

Most of the exact option strings to be typed by end users are
already set in typewriter font by using `--option`, but a few places
used '--option' to call for italics or with no quoting.  Uniformly
use `--option`.

Also add a full-stop after a sentence that missed one.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.9.3
Junio C Hamano [Mon, 5 Mar 2012 22:29:50 +0000 (14:29 -0800)]
Sync with 1.7.9.3

12 years agoGit 1.7.9.3 v1.7.9.3
Junio C Hamano [Mon, 5 Mar 2012 22:29:07 +0000 (14:29 -0800)]
Git 1.7.9.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/doc-merge-options' into maint
Junio C Hamano [Mon, 5 Mar 2012 22:28:14 +0000 (14:28 -0800)]
Merge branch 'jc/doc-merge-options' into maint

* jc/doc-merge-options:
  Documentation/merge-options.txt: group "ff" related options together