git.git
14 years agot/README: proposed rewording...
Junio C Hamano [Mon, 5 Jul 2010 18:37:30 +0000 (11:37 -0700)]
t/README: proposed rewording...

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document the do's and don'ts of tests
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:49 +0000 (14:59 +0000)]
t/README: Document the do's and don'ts of tests

Add a "Do's, don'ts & things to keep in mind" subsection to the
"Writing Tests" documentation. Much of this is based on Junio C
Hamano's "Test your stuff" section in
<7vhbkj2kcr.fsf@alter.siamese.dyndns.org>.

I turned it into a list of do's and don'ts to make it easier to skim
it, and integrated my note that a TAP harness will get confused if you
print "ok" or "not ok" at the beginning of a line.

Thad had to be fixed in 335f87871fe5aa6b3fd55b2b4e80f16fe9681483 when
TAP support was introduced.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Add a section about skipping tests
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:48 +0000 (14:59 +0000)]
t/README: Add a section about skipping tests

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document test_expect_code
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:47 +0000 (14:59 +0000)]
t/README: Document test_expect_code

test_expect_code (which was introduced in d3bfdb75) never had any
documentation.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document test_external*
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:46 +0000 (14:59 +0000)]
t/README: Document test_external*

There was do documentation for the test_external_without_stderr and
test_external functions.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document the prereq functions, and 3-arg test_*
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:45 +0000 (14:59 +0000)]
t/README: Document the prereq functions, and 3-arg test_*

There was no documentation for the test_set_prereq and
test_have_prereq functions, or the three-arg form of
test_expect_success and test_expect_failure.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Typo: paralell -> parallel
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:44 +0000 (14:59 +0000)]
t/README: Typo: paralell -> parallel

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: The trash is in 't/trash directory.$name'
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:43 +0000 (14:59 +0000)]
t/README: The trash is in 't/trash directory.$name'

There's a unique trash directory for each test, not a single directory
as the previous documentation suggested.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t9700/test.pl: don't access private object members, use public access methods
Brandon Casey [Mon, 28 Jun 2010 22:51:02 +0000 (17:51 -0500)]
t/t9700/test.pl: don't access private object members, use public access methods

This test is accessing private object members of the Test::More and
Test::Builder objects.  Older versions of Test::More did not implement
these variables using a hash.

My system complains as follows:

   Can't coerce array into hash at <snip>/t/t9700/test.pl line 13.
   BEGIN failed--compilation aborted at <snip>/t/t9700/test.pl line 15.

There are public access methods available for retrieving and setting these
variables, so let's use them instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot9700: Use Test::More->builder, not $Test::Builder::Test
Ævar Arnfjörð Bjarmason [Sat, 26 Jun 2010 12:42:41 +0000 (12:42 +0000)]
t9700: Use Test::More->builder, not $Test::Builder::Test

$Test::Builder::Test was only made into an `our' variable in 0.94
released in September 2009, older distros are more likely to have 0.92
or earlier. Use the singleton Test::More->builder constructor instead.

The exit() call was also unportable to <0.94. Just output a meaningful
exit code if the ->is_passing method exists. The t9700-perl-git.sh
test only cares about stderr output, so this doesn't affect test
results when using older Test::More modules.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: Say "pass" rather than "ok" on empty lines for TAP
Ævar Arnfjörð Bjarmason [Thu, 24 Jun 2010 17:44:49 +0000 (17:44 +0000)]
tests: Say "pass" rather than "ok" on empty lines for TAP

Lines that begin with "ok" confuse the TAP harness because it can't
distinguish them from a test counter. Work around the issue by saying
"pass" instead, which isn't a reserved TAP word.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: Skip tests in a way that makes sense under TAP
Ævar Arnfjörð Bjarmason [Thu, 24 Jun 2010 17:44:48 +0000 (17:44 +0000)]
tests: Skip tests in a way that makes sense under TAP

SKIP messages are now part of the TAP plan. A TAP harness now knows
why a particular test was skipped and can report that information. The
non-TAP harness built into Git's test-lib did nothing special with
these messages, and is unaffected by these changes.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: output a newline before "ok" under a TAP harness
Ævar Arnfjörð Bjarmason [Thu, 24 Jun 2010 17:44:47 +0000 (17:44 +0000)]
test-lib: output a newline before "ok" under a TAP harness

Some tests in the testsuite will emit a line that doesn't end with a
newline, right before we're about to output "ok" or "not ok". This
breaks the TAP output with "Tests out of sequence" errors since a TAP
harness can't understand this:

    ok 1 - A test
    [some output here]ok 2 - Another test
    ok 3 - Yet another test

Work around it by emitting an empty line before we're about to say
"ok" or "not ok", but only if we're running under --verbose and
HARNESS_ACTIVE=1 is set, which'll only be the case when running under
a harnesses like prove(1).

I think it's better to do this than fix each tests by adding `&& echo'
everywhere. More tests might be added that break TAP in the future,
and a human isn't going to look at the extra whitespace, since
HARNESS_ACTIVE=1 always means a harness is reading it.

The tests that had issues were:

   t1007, t3410, t3413, t3409, t3414, t3415, t3416, t3412, t3404,
   t5407, t7402, t7003, t9001

With this workaround the entire test suite runs without errors under:

    prove -j 10 ./t[0-9]*.sh :: --verbose

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: Make the test_external_* functions TAP-aware
Ævar Arnfjörð Bjarmason [Thu, 24 Jun 2010 17:44:46 +0000 (17:44 +0000)]
test-lib: Make the test_external_* functions TAP-aware

Before TAP we just ran the Perl test and assumed that it failed if
nothing was printed on STDERR. Continue doing that, but introduce a
`test_external_has_tap' variable which tests can set to indicate that
they're outputting TAP.

If it's set we won't output a test plan, but trust the external test
to do so. That way we can make external tests work with a TAP harness,
but still maintain compatibility with test-lib's own way of tracking
tests through the test-results directory.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: Adjust output to be valid TAP format
Ævar Arnfjörð Bjarmason [Thu, 24 Jun 2010 21:52:12 +0000 (21:52 +0000)]
test-lib: Adjust output to be valid TAP format

TAP, the Test Anything Protocol, is a simple text-based interface
between testing modules in a test harness. test-lib.sh's output was
already very close to being valid TAP. This change brings it all the
way there. Before:

    $ ./t0005-signals.sh
    *   ok 1: sigchain works
    * passed all 1 test(s)

And after:

    $ ./t0005-signals.sh
    ok 1 - sigchain works
    # passed all 1 test(s)
    1..1

The advantage of using TAP is that any program that reads the format
(a "test harness") can run the tests. The most popular of these is the
prove(1) utility that comes with Perl. It can run tests in parallel,
display colored output, format the output to console, file, HTML etc.,
and much more. An example:

    $ prove ./t0005-signals.sh
    ./t0005-signals.sh .. ok
    All tests successful.
    Files=1, Tests=1,  0 wallclock secs ( 0.03 usr  0.00 sys +  0.01 cusr  0.02 csys =  0.06 CPU)
    Result: PASS

prove(1) gives you human readable output without being too
verbose. Running the test suite in parallel with `make test -j15`
produces a flood of text. Running them with `prove -j 15 ./t[0-9]*.sh`
makes it easy to follow what's going on.

All this patch does is re-arrange the output a bit so that it conforms
with the TAP spec, everything that the test suite did before continues
to work. That includes aggregating results in t/test-results/, the
--verbose, --debug and other options for tests, and the test color
output.

TAP harnesses ignore everything that they don't know about, so running
the tests with --verbose works:

    $ prove ./t0005-signals.sh :: --verbose --debug
    ./t0005-signals.sh .. Terminated
    ./t0005-signals.sh .. ok
    All tests successful.
    Files=1, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.01 cusr  0.01 csys =  0.05 CPU)
    Result: PASS

Just supply the -v option to prove itself to get all the verbose
output that it suppresses:

    $ prove -v ./t0005-signals.sh :: --verbose --debug
    ./t0005-signals.sh ..
    Initialized empty Git repository in /home/avar/g/git/t/trash directory.t0005-signals/.git/
    expecting success:
            test-sigchain >actual
            case "$?" in
            143) true ;; # POSIX w/ SIGTERM=15
              3) true ;; # Windows
              *) false ;;
            esac &&
            test_cmp expect actual
    Terminated
    ok 1 - sigchain works
    # passed all 1 test(s)
    1..1
    ok
    All tests successful.
    Files=1, Tests=1,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.01 cusr  0.01 csys =  0.04 CPU)
    Result: PASS

As a further example, consider this test script that uses a lot of
test-lib.sh features by Jakub Narebski:

    #!/bin/sh

    test_description='this is a sample test.

    This test is here to see various test outputs.'

    . ./test-lib.sh

    say 'diagnostic message'

    test_expect_success 'true  test' 'true'
    test_expect_success 'false test' 'false'

    test_expect_failure 'true  test (todo)' 'true'
    test_expect_failure 'false test (todo)' 'false'

    test_debug 'echo "debug message"'

    test_done

The output of that was previously:

    * diagnostic message                      # yellow
    *   ok 1: true  test
    * FAIL 2: false test                      # bold red
            false
    *   FIXED 3: true  test (todo)
    *   still broken 4: false test (todo)     # bold green
    * fixed 1 known breakage(s)               # green
    * still have 1 known breakage(s)          # bold red
    * failed 1 among remaining 3 test(s)      # bold red

But is now:

    diagnostic message                                    # yellow
    ok 1 - true  test
    not ok - 2 false test                                 # bold red
    #       false
    ok 3 - true  test (todo) # TODO known breakage
    not ok 4 - false test (todo) # TODO known breakage    # bold green
    # fixed 1 known breakage(s)                           # green
    # still have 1 known breakage(s)                      # bold red
    # failed 1 among remaining 3 test(s)                  # bold red
    1..4

All the coloring is preserved when the test is run manually. Under
prove(1) the test performs as expected, even with --debug and
--verbose options:

    $ prove ./example.sh :: --debug --verbose
    ./example.sh .. Dubious, test returned 1 (wstat 256, 0x100)
    Failed 1/4 subtests
            (1 TODO test unexpectedly succeeded)

    Test Summary Report
    -------------------
    ./example.sh (Wstat: 256 Tests: 4 Failed: 1)
      Failed test:  2
      TODO passed:   3
      Non-zero exit status: 1
    Files=1, Tests=4,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.00 cusr  0.01 csys =  0.03 CPU)
    Result: FAIL

The TAP harness itself doesn't get confused by the color output, they
aren't used by test-lib.sh stdout isn't open to a terminal (test -t 1).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jk/url-decode'
Junio C Hamano [Wed, 23 Jun 2010 17:43:28 +0000 (10:43 -0700)]
Merge branch 'jk/url-decode'

* jk/url-decode:
  url.c: "<scheme>://" part at the beginning should not be URL decoded

14 years agourl.c: "<scheme>://" part at the beginning should not be URL decoded
Junio C Hamano [Wed, 23 Jun 2010 17:27:39 +0000 (10:27 -0700)]
url.c: "<scheme>://" part at the beginning should not be URL decoded

When using the protocol git+ssh:// for example we do not want to
decode the '+' as a space. The url decoding must take place only
for the server name and parameters.

This fixes a regression introduced in 9d2e942.

Initial-fix-by: Pascal Obry <pascal.obry@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.2
Junio C Hamano [Tue, 22 Jun 2010 17:03:04 +0000 (10:03 -0700)]
Update draft release notes to 1.7.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-simpler-common-prefix'
Junio C Hamano [Tue, 22 Jun 2010 16:45:23 +0000 (09:45 -0700)]
Merge branch 'jc/maint-simpler-common-prefix'

* jc/maint-simpler-common-prefix:
  common_prefix: simplify and fix scanning for prefixes

14 years agoMerge branch 'sb/format-patch-signature'
Junio C Hamano [Tue, 22 Jun 2010 16:45:22 +0000 (09:45 -0700)]
Merge branch 'sb/format-patch-signature'

* sb/format-patch-signature:
  completion: Add --signature and format.signature
  format-patch: Add a signature option (--signature)

14 years agoMerge branch 'mg/pretty-magic-space'
Junio C Hamano [Tue, 22 Jun 2010 16:45:22 +0000 (09:45 -0700)]
Merge branch 'mg/pretty-magic-space'

* mg/pretty-magic-space:
  pretty: Introduce ' ' modifier to add space if non-empty

Conflicts:
pretty.c

14 years agoMerge branch 'jn/gitweb-return-or-exit-cleanup'
Junio C Hamano [Tue, 22 Jun 2010 16:45:22 +0000 (09:45 -0700)]
Merge branch 'jn/gitweb-return-or-exit-cleanup'

* jn/gitweb-return-or-exit-cleanup:
  gitweb: Return or exit after done serving request

Conflicts:
gitweb/gitweb.perl

14 years agoMerge branch 'bd/maint-unpack-trees-parawalk-fix'
Junio C Hamano [Tue, 22 Jun 2010 16:45:22 +0000 (09:45 -0700)]
Merge branch 'bd/maint-unpack-trees-parawalk-fix'

* bd/maint-unpack-trees-parawalk-fix:
  unpack-trees: Make index lookahead less pessimal

14 years agoMerge branch 'cc/cherry-pick-series'
Junio C Hamano [Tue, 22 Jun 2010 16:45:21 +0000 (09:45 -0700)]
Merge branch 'cc/cherry-pick-series'

* cc/cherry-pick-series:
  Documentation/revert: describe passing more than one commit
  Documentation/cherry-pick: describe passing more than one commit
  revert: add tests to check cherry-picking many commits
  revert: allow cherry-picking more than one commit
  revert: change help_msg() to take no argument
  revert: refactor code into a do_pick_commit() function
  revert: use run_command_v_opt() instead of execv_git_cmd()
  revert: cleanup code for -x option

14 years agoMerge branch 'jc/rev-list-ancestry-path'
Junio C Hamano [Tue, 22 Jun 2010 16:45:21 +0000 (09:45 -0700)]
Merge branch 'jc/rev-list-ancestry-path'

* jc/rev-list-ancestry-path:
  revision: Turn off history simplification in --ancestry-path mode
  revision: Fix typo in --ancestry-path error message
  Documentation/rev-list-options.txt: Explain --ancestry-path
  Documentation/rev-list-options.txt: Fix missing line in example history graph
  revision: --ancestry-path

14 years agoMerge branch 'lt/extended-sha1-match-commit-with-regexp'
Junio C Hamano [Tue, 22 Jun 2010 16:45:21 +0000 (09:45 -0700)]
Merge branch 'lt/extended-sha1-match-commit-with-regexp'

* lt/extended-sha1-match-commit-with-regexp:
  Make :/ accept a regex rather than a fixed pattern

14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 22 Jun 2010 16:35:36 +0000 (09:35 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.7.1.1
  tests: remove unnecessary '^' from 'expr' regular expression

Conflicts:
diff.c

14 years agoUpdate draft release notes to 1.7.1.1
Junio C Hamano [Tue, 22 Jun 2010 16:18:55 +0000 (09:18 -0700)]
Update draft release notes to 1.7.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'ic/maint-rebase-i-abort' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:31:48 +0000 (09:31 -0700)]
Merge branch 'ic/maint-rebase-i-abort' into maint

* ic/maint-rebase-i-abort:
  rebase -i: Abort cleanly if new base cannot be checked out

14 years agoMerge branch 'cc/maint-commit-reflog-msg' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:31:48 +0000 (09:31 -0700)]
Merge branch 'cc/maint-commit-reflog-msg' into maint

* cc/maint-commit-reflog-msg:
  commit: use value of GIT_REFLOG_ACTION env variable as reflog message

14 years agoMerge branch 'jk/maint-advice-empty-amend' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:31:48 +0000 (09:31 -0700)]
Merge branch 'jk/maint-advice-empty-amend' into maint

* jk/maint-advice-empty-amend:
  commit: give advice on empty amend

14 years agoMerge branch 'tc/commit-abbrev-fix' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:31:47 +0000 (09:31 -0700)]
Merge branch 'tc/commit-abbrev-fix' into maint

* tc/commit-abbrev-fix:
  commit::print_summary(): don't use format_commit_message()
  t7502-commit: add summary output tests for empty and merge commits
  t7502-commit: add tests for summary output

14 years agoMerge branch 'jn/document-rebase-i-p-limitation' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:31:47 +0000 (09:31 -0700)]
Merge branch 'jn/document-rebase-i-p-limitation' into maint

* jn/document-rebase-i-p-limitation:
  rebase -i -p: document shortcomings

14 years agoMerge branch 'jn/checkout-doc' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:31:47 +0000 (09:31 -0700)]
Merge branch 'jn/checkout-doc' into maint

* jn/checkout-doc:
  Documentation/checkout: clarify description
  Documentation/checkout: clarify description

14 years agoMerge branch 'cc/maint-diff-CC-binary' into maint
Junio C Hamano [Tue, 22 Jun 2010 16:04:14 +0000 (09:04 -0700)]
Merge branch 'cc/maint-diff-CC-binary' into maint

* cc/maint-diff-CC-binary:
  diff: fix "git show -C -C" output when renaming a binary file

Conflicts:
diff.c

14 years agoMerge branch 'jc/t9129-any-utf8' into maint
Junio C Hamano [Tue, 22 Jun 2010 15:31:53 +0000 (08:31 -0700)]
Merge branch 'jc/t9129-any-utf8' into maint

* jc/t9129-any-utf8:
  t9129: fix UTF-8 locale detection

14 years agoMerge branch 'cb/ls-files-cdup' into maint
Junio C Hamano [Tue, 22 Jun 2010 15:31:46 +0000 (08:31 -0700)]
Merge branch 'cb/ls-files-cdup' into maint

* cb/ls-files-cdup:
  ls-files: allow relative pathspec
  quote.c: separate quoting and relative path generation

14 years agoMerge branch 'tc/merge-m-log' into maint
Junio C Hamano [Tue, 22 Jun 2010 15:31:25 +0000 (08:31 -0700)]
Merge branch 'tc/merge-m-log' into maint

* tc/merge-m-log:
  merge: --log appends shortlog to message if specified
  fmt-merge-msg: add function to append shortlog only
  fmt-merge-msg: refactor merge title formatting
  fmt-merge-msg: minor refactor of fmt_merge_msg()
  merge: rename variable
  merge: update comment
  t7604-merge-custom-message: show that --log doesn't append to -m
  t7604-merge-custom-message: shift expected output creation

14 years agoMerge branch 'ph/clone-message-reword' into maint
Junio C Hamano [Tue, 22 Jun 2010 15:31:20 +0000 (08:31 -0700)]
Merge branch 'ph/clone-message-reword' into maint

* ph/clone-message-reword:
  clone: reword messages to match the end-user perception

14 years agoMerge branch 'jn/maint-amend-missing-name' into maint
Junio C Hamano [Tue, 22 Jun 2010 15:30:44 +0000 (08:30 -0700)]
Merge branch 'jn/maint-amend-missing-name' into maint

* jn/maint-amend-missing-name:
  commit --amend: cope with missing display name

14 years agoMerge branch 'pc/remove-warn' into maint
Junio C Hamano [Tue, 22 Jun 2010 15:30:38 +0000 (08:30 -0700)]
Merge branch 'pc/remove-warn' into maint

* pc/remove-warn:
  Remove a redundant errno test in a usage of remove_path
  Introduce remove_or_warn function
  Implement the rmdir_or_warn function
  Generalise the unlink_or_warn function

14 years agotests: remove unnecessary '^' from 'expr' regular expression
Junio C Hamano [Mon, 21 Jun 2010 18:18:54 +0000 (11:18 -0700)]
tests: remove unnecessary '^' from 'expr' regular expression

As Brandon noticed, a regular expression match given to 'expr' is already
anchored at the beginning.  Some versions of expr even complain about this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'js/maint-receive-pack-symref-alias'
Junio C Hamano [Mon, 21 Jun 2010 13:02:50 +0000 (06:02 -0700)]
Merge branch 'js/maint-receive-pack-symref-alias'

* js/maint-receive-pack-symref-alias:

14 years agoMerge branch 'cc/maint-commit-reflog-msg'
Junio C Hamano [Mon, 21 Jun 2010 13:02:50 +0000 (06:02 -0700)]
Merge branch 'cc/maint-commit-reflog-msg'

* cc/maint-commit-reflog-msg:
  commit: use value of GIT_REFLOG_ACTION env variable as reflog message

14 years agoMerge branch 'ic/maint-rebase-i-abort'
Junio C Hamano [Mon, 21 Jun 2010 13:02:50 +0000 (06:02 -0700)]
Merge branch 'ic/maint-rebase-i-abort'

* ic/maint-rebase-i-abort:
  rebase -i: Abort cleanly if new base cannot be checked out

14 years agoMerge branch 'jk/maint-advice-empty-amend'
Junio C Hamano [Mon, 21 Jun 2010 13:02:49 +0000 (06:02 -0700)]
Merge branch 'jk/maint-advice-empty-amend'

* jk/maint-advice-empty-amend:
  commit: give advice on empty amend

14 years agoMerge branch 'eb/core-eol'
Junio C Hamano [Mon, 21 Jun 2010 13:02:49 +0000 (06:02 -0700)]
Merge branch 'eb/core-eol'

* eb/core-eol:
  Add "core.eol" config variable
  Rename the "crlf" attribute "text"
  Add per-repository eol normalization
  Add tests for per-repository eol normalization

Conflicts:
Documentation/config.txt
Makefile

14 years agoMerge branch 'fg/autocrlf'
Junio C Hamano [Mon, 21 Jun 2010 13:02:47 +0000 (06:02 -0700)]
Merge branch 'fg/autocrlf'

* fg/autocrlf:
  autocrlf: Make it work also for un-normalized repositories

14 years agoMerge branch 'sm/branch-broken-ref'
Junio C Hamano [Mon, 21 Jun 2010 13:02:47 +0000 (06:02 -0700)]
Merge branch 'sm/branch-broken-ref'

* sm/branch-broken-ref:
  branch: don't fail listing branches if one of the commits wasn't found
  branch: exit status now reflects if branch listing finds an error

14 years agoMerge branch 'rr/parse-date-refactor'
Junio C Hamano [Mon, 21 Jun 2010 13:02:47 +0000 (06:02 -0700)]
Merge branch 'rr/parse-date-refactor'

* rr/parse-date-refactor:
  Refactor parse_date for approxidate functions

14 years agoMerge branch 'jn/document-rebase-i-p-limitation'
Junio C Hamano [Mon, 21 Jun 2010 13:02:47 +0000 (06:02 -0700)]
Merge branch 'jn/document-rebase-i-p-limitation'

* jn/document-rebase-i-p-limitation:
  rebase -i -p: document shortcomings

14 years agoMerge branch 'tc/commit-abbrev-fix'
Junio C Hamano [Mon, 21 Jun 2010 13:02:46 +0000 (06:02 -0700)]
Merge branch 'tc/commit-abbrev-fix'

* tc/commit-abbrev-fix:
  commit::print_summary(): don't use format_commit_message()
  t7502-commit: add summary output tests for empty and merge commits
  t7502-commit: add tests for summary output

14 years agoMerge branch 'tr/receive-pack-aliased-update-fix'
Junio C Hamano [Mon, 21 Jun 2010 13:02:46 +0000 (06:02 -0700)]
Merge branch 'tr/receive-pack-aliased-update-fix'

* tr/receive-pack-aliased-update-fix:
  check_aliased_update: strcpy() instead of strcat() to copy

14 years agoMerge branch 'gs/usage-to-stdout'
Junio C Hamano [Mon, 21 Jun 2010 13:02:45 +0000 (06:02 -0700)]
Merge branch 'gs/usage-to-stdout'

* gs/usage-to-stdout:
  parseopt: wrap rev-parse --parseopt usage for eval consumption
  print the usage string on stdout instead of stderr

Conflicts:
parse-options.h

14 years agoMerge branch 'js/async-thread'
Junio C Hamano [Mon, 21 Jun 2010 13:02:45 +0000 (06:02 -0700)]
Merge branch 'js/async-thread'

* js/async-thread:
  fast-import: die_nicely() back to vsnprintf (reverts part of ebaa79f)
  Enable threaded async procedures whenever pthreads is available
  Dying in an async procedure should only exit the thread, not the process.
  Reimplement async procedures using pthreads
  Windows: more pthreads functions
  Fix signature of fcntl() compatibility dummy
  Make report() from usage.c public as vreportf() and use it.
  Modernize t5530-upload-pack-error.

Conflicts:
http-backend.c

14 years agoMerge branch 'gv/portable'
Junio C Hamano [Mon, 21 Jun 2010 13:02:44 +0000 (06:02 -0700)]
Merge branch 'gv/portable'

* gv/portable:
  test-lib: use DIFF definition from GIT-BUILD-OPTIONS
  build: propagate $DIFF to scripts
  Makefile: Tru64 portability fix
  Makefile: HP-UX 10.20 portability fixes
  Makefile: HPUX11 portability fixes
  Makefile: SunOS 5.6 portability fix
  inline declaration does not work on AIX
  Allow disabling "inline"
  Some platforms lack socklen_t type
  Make NO_{INET_NTOP,INET_PTON} configured independently
  Makefile: some platforms do not have hstrerror anywhere
  git-compat-util.h: some platforms with mmap() lack MAP_FAILED definition
  test_cmp: do not use "diff -u" on platforms that lack one
  fixup: do not unconditionally disable "diff -u"
  tests: use "test_cmp", not "diff", when verifying the result
  Do not use "diff" found on PATH while building and installing
  enums: omit trailing comma for portability
  Makefile: -lpthread may still be necessary when libc has only pthread stubs
  Rewrite dynamic structure initializations to runtime assignment
  Makefile: pass CPPFLAGS through to fllow customization

Conflicts:
Makefile
wt-status.h

14 years agoMerge branch 'bc/portable'
Junio C Hamano [Mon, 21 Jun 2010 13:02:42 +0000 (06:02 -0700)]
Merge branch 'bc/portable'

* bc/portable:
  Remove python 2.5'isms
  Makefile: add PYTHON_PATH to GIT-BUILD-OPTIONS
  t/aggregate-results: accomodate systems with small max argument list length
  t/t7006: ignore return status of shell's unset builtin
  t/t5150: remove space from sed script
  git-request-pull.sh: remove -e switch to shell interpreter which breaks ksh
  t/t5800: skip if python version is older than 2.5

14 years agoMerge branch 'jn/gitweb-fastcgi'
Junio C Hamano [Mon, 21 Jun 2010 13:02:42 +0000 (06:02 -0700)]
Merge branch 'jn/gitweb-fastcgi'

* jn/gitweb-fastcgi:
  gitweb: Run in FastCGI mode if gitweb script has .fcgi extension
  gitweb: Add support for FastCGI, using CGI::Fast
  gitweb: Put all per-connection code in run() subroutine

14 years agoMerge branch 'jn/checkout-doc'
Junio C Hamano [Mon, 21 Jun 2010 13:02:42 +0000 (06:02 -0700)]
Merge branch 'jn/checkout-doc'

* jn/checkout-doc:
  Documentation/checkout: clarify description
  Documentation/checkout: clarify description

14 years agoMerge branch 'em/checkout-orphan'
Junio C Hamano [Mon, 21 Jun 2010 13:02:41 +0000 (06:02 -0700)]
Merge branch 'em/checkout-orphan'

* em/checkout-orphan:
  log_ref_setup: don't return stack-allocated array
  bash completion: add --orphan to 'git checkout'
  t3200: test -l with core.logAllRefUpdates options
  checkout --orphan: respect -l option always
  refs: split log_ref_write logic into log_ref_setup
  Documentation: alter checkout --orphan description

14 years agoDrop items that are 1.7.1.1 fixes from the 1.7.1 release notes
Junio C Hamano [Mon, 21 Jun 2010 12:49:26 +0000 (05:49 -0700)]
Drop items that are 1.7.1.1 fixes from the 1.7.1 release notes

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 21 Jun 2010 12:48:50 +0000 (05:48 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.7.1.1

14 years agoUpdate draft release notes to 1.7.1.1
Junio C Hamano [Mon, 21 Jun 2010 12:48:18 +0000 (05:48 -0700)]
Update draft release notes to 1.7.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mc/maint-zoneparse' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:41:03 +0000 (05:41 -0700)]
Merge branch 'mc/maint-zoneparse' into maint

* mc/maint-zoneparse:
  Add "Z" as an alias for the timezone "UTC"

14 years agoMerge branch 'jk/diff-m-doc' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:40:57 +0000 (05:40 -0700)]
Merge branch 'jk/diff-m-doc' into maint

* jk/diff-m-doc:
  docs: clarify meaning of -M for git-log

14 years agoMerge branch 'jn/maint-doc-ignore' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:40:53 +0000 (05:40 -0700)]
Merge branch 'jn/maint-doc-ignore' into maint

* jn/maint-doc-ignore:
  gitignore.5: Clarify matching rules

14 years agoMerge branch 'bs/userdiff-php' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:40:48 +0000 (05:40 -0700)]
Merge branch 'bs/userdiff-php' into maint

* bs/userdiff-php:
  diff: Support visibility modifiers in the PHP hunk header regexp

14 years agoMerge branch 'jk/maint-sha1-file-name-fix' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:40:41 +0000 (05:40 -0700)]
Merge branch 'jk/maint-sha1-file-name-fix' into maint

* jk/maint-sha1-file-name-fix:
  remove over-eager caching in sha1_file_name

14 years agoMerge branch 'jk/maint-pull-dry-run-noop' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:40:33 +0000 (05:40 -0700)]
Merge branch 'jk/maint-pull-dry-run-noop' into maint

* jk/maint-pull-dry-run-noop:
  pull: do nothing on --dry-run

14 years agoMerge branch 'bw/diff-metainfo-color' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:40:10 +0000 (05:40 -0700)]
Merge branch 'bw/diff-metainfo-color' into maint

* bw/diff-metainfo-color:
  diff: fix coloring of extended diff headers

14 years agoMerge branch 'cb/assume-unchanged-fix' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:39:23 +0000 (05:39 -0700)]
Merge branch 'cb/assume-unchanged-fix' into maint

* cb/assume-unchanged-fix:
  Documentation: git-add does not update files marked "assume unchanged"
  do not overwrite files marked "assume unchanged"

14 years agoMerge branch 'jn/notes-doc' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:39:16 +0000 (05:39 -0700)]
Merge branch 'jn/notes-doc' into maint

* jn/notes-doc:
  Documentation/notes: nitpicks
  Documentation/notes: clean up description of rewriting configuration
  Documentation/notes: simplify treatment of default display refs
  Documentation/log: add a CONFIGURATION section
  Documentation/notes: simplify treatment of default notes ref
  Documentation/notes: add configuration section
  Documentation/notes: describe content of notes blobs
  Documentation/notes: document format of notes trees

14 years agoMerge branch 'ab/test-cleanup' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:39:02 +0000 (05:39 -0700)]
Merge branch 'ab/test-cleanup' into maint

* ab/test-cleanup:
  Turn setup code in t2007-checkout-symlink.sh into a test
  Move t6000lib.sh to lib-*

14 years agoMerge branch 'rs/diff-no-minimal' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:38:50 +0000 (05:38 -0700)]
Merge branch 'rs/diff-no-minimal' into maint

* rs/diff-no-minimal:
  git diff too slow for a file

14 years agoMerge branch 'bg/apply-blank-trailing-context' into maint
Junio C Hamano [Mon, 21 Jun 2010 12:38:36 +0000 (05:38 -0700)]
Merge branch 'bg/apply-blank-trailing-context' into maint

* bg/apply-blank-trailing-context:
  apply: Allow blank *trailing* context lines to match beyond EOF

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 21 Jun 2010 06:21:27 +0000 (23:21 -0700)]
Merge branch 'maint'

* maint:
  gitweb/Makefile: fix typo in gitweb.min.css rule

Conflicts:
gitweb/Makefile

14 years agogit-cvsserver: fix error for invalid password formats
Ævar Arnfjörð Bjarmason [Sat, 19 Jun 2010 16:06:58 +0000 (16:06 +0000)]
git-cvsserver: fix error for invalid password formats

Change the error message to report the erroneous password
character. $1 was never set in the previos version, it was a leftover
from older code that used a regex for the test.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-cvsserver: typo in a comment: bas -> has
Ævar Arnfjörð Bjarmason [Sat, 19 Jun 2010 16:06:57 +0000 (16:06 +0000)]
git-cvsserver: typo in a comment: bas -> has

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb/Makefile: fix typo in gitweb.min.css rule
Jay Soffian [Fri, 18 Jun 2010 21:01:25 +0000 (17:01 -0400)]
gitweb/Makefile: fix typo in gitweb.min.css rule

This typo has been in place since the rule was originally added by
0e6ce21 (Gitweb: add support for minifying gitweb.css).

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.2
Junio C Hamano [Fri, 18 Jun 2010 18:27:01 +0000 (11:27 -0700)]
Update draft release notes to 1.7.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cc/maint-diff-CC-binary'
Junio C Hamano [Fri, 18 Jun 2010 18:16:57 +0000 (11:16 -0700)]
Merge branch 'cc/maint-diff-CC-binary'

* cc/maint-diff-CC-binary:
  diff: fix "git show -C -C" output when renaming a binary file

Conflicts:
diff.c

14 years agoMerge branch 'by/diff-graph'
Junio C Hamano [Fri, 18 Jun 2010 18:16:57 +0000 (11:16 -0700)]
Merge branch 'by/diff-graph'

* by/diff-graph:
  Make --color-words work well with --graph
  graph.c: register a callback for graph output
  Emit a whole line in one go
  diff.c: Output the text graph padding before each diff line
  Output the graph columns at the end of the commit message
  Add a prefix output callback to diff output

Conflicts:
diff.c

14 years agoMerge branch 'cb/ls-files-cdup'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'cb/ls-files-cdup'

* cb/ls-files-cdup:
  ls-files: allow relative pathspec
  quote.c: separate quoting and relative path generation

14 years agoMerge branch 'jc/t9129-any-utf8'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'jc/t9129-any-utf8'

* jc/t9129-any-utf8:
  t9129: fix UTF-8 locale detection

14 years agoMerge branch 'rr/am-help'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'rr/am-help'

* rr/am-help:
  git am: Remove stray error message from sed
  git am: Display some help text when patch is empty
  git am: Set cmdline globally

14 years agoMerge branch 'jn/rebase-cmdline-fix'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'jn/rebase-cmdline-fix'

* jn/rebase-cmdline-fix:
  rebase: improve error message when upstream argument is missing

14 years agoMerge branch 'ps/gitweb--browse-chrome'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'ps/gitweb--browse-chrome'

* ps/gitweb--browse-chrome:
  git-web--browse: Add support for google chrome and chromium

14 years agoMerge branch 'jk/am-skip-hint'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'jk/am-skip-hint'

* jk/am-skip-hint:
  git-am: suggest what to do with superfluous patches

14 years agoMerge branch 'jh/diff-index-line-abbrev'
Junio C Hamano [Fri, 18 Jun 2010 18:16:56 +0000 (11:16 -0700)]
Merge branch 'jh/diff-index-line-abbrev'

* jh/diff-index-line-abbrev:
  diff.c: Ensure "index $from..$to" line contains unambiguous SHA1s

Conflicts:
diff.c

14 years agoMerge branch 'ab/maint-perl-use-instlibdir'
Junio C Hamano [Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)]
Merge branch 'ab/maint-perl-use-instlibdir'

* ab/maint-perl-use-instlibdir:
  Makefile: remove redundant munging of @@INSTLIBDIR@@

14 years agoMerge branch 'ec/diff-noprefix-config'
Junio C Hamano [Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)]
Merge branch 'ec/diff-noprefix-config'

* ec/diff-noprefix-config:
  diff: add configuration option for disabling diff prefixes.

14 years agoMerge branch 'mg/status-b'
Junio C Hamano [Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)]
Merge branch 'mg/status-b'

* mg/status-b:
  Documentation+t5708: document and test status -s -b
  Show branch information in short output of git status

14 years agoMerge branch 'jn/gitweb-plackup'
Junio C Hamano [Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)]
Merge branch 'jn/gitweb-plackup'

* jn/gitweb-plackup:
  git-instaweb: Add support for running gitweb via 'plackup'
  git-instaweb: Wait for server to start before running web browser
  git-instaweb: Remove pidfile after stopping web server
  git-instaweb: Configure it to work with new gitweb structure
  git-instaweb: Put httpd logs in a "$httpd_only" subdirectory
  gitweb: Set default destination directory for installing gitweb in Makefile
  gitweb: Move static files into seperate subdirectory

14 years agoMerge branch 'jk/url-decode'
Junio C Hamano [Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)]
Merge branch 'jk/url-decode'

* jk/url-decode:
  decode file:// and ssh:// URLs
  make url-related functions reusable

14 years agoMerge branch 'jn/remote-set-branches'
Junio C Hamano [Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)]
Merge branch 'jn/remote-set-branches'

* jn/remote-set-branches:
  Add git remote set-branches

Conflicts:
builtin/remote.c

14 years agoMerge branch 'rc/ls-remote-default'
Junio C Hamano [Fri, 18 Jun 2010 18:16:54 +0000 (11:16 -0700)]
Merge branch 'rc/ls-remote-default'

* rc/ls-remote-default:
  ls-remote: print URL when no repo is specified

14 years agoMerge branch 'hg/id-munging'
Junio C Hamano [Fri, 18 Jun 2010 18:16:54 +0000 (11:16 -0700)]
Merge branch 'hg/id-munging'

* hg/id-munging:
  convert: Keep foreign $Id$ on checkout.
  convert: Safer handling of $Id$ contraction.

14 years agoMerge branch 'tc/merge-m-log'
Junio C Hamano [Fri, 18 Jun 2010 18:16:54 +0000 (11:16 -0700)]
Merge branch 'tc/merge-m-log'

* tc/merge-m-log:
  merge: --log appends shortlog to message if specified
  fmt-merge-msg: add function to append shortlog only
  fmt-merge-msg: refactor merge title formatting
  fmt-merge-msg: minor refactor of fmt_merge_msg()
  merge: rename variable
  merge: update comment
  t7604-merge-custom-message: show that --log doesn't append to -m
  t7604-merge-custom-message: shift expected output creation

Conflicts:
builtin.h

14 years agoMerge branch 'ph/clone-message-reword'
Junio C Hamano [Fri, 18 Jun 2010 18:16:53 +0000 (11:16 -0700)]
Merge branch 'ph/clone-message-reword'

* ph/clone-message-reword:
  clone: reword messages to match the end-user perception

14 years agounpack-trees: Make index lookahead less pessimal
Brian Downing [Fri, 11 Jun 2010 02:59:07 +0000 (21:59 -0500)]
unpack-trees: Make index lookahead less pessimal

When traversing trees with an index, the current index pointer
(o->cache_bottom) occasionally has to be temporarily advanced forwards to
match the traversal order of the tree, which is not the same as the sort
order of the index.  The existing algorithm that did this (introduced in
730f72840cc50c523fe4cdd796ea2d2fc4571a28) would get "stuck" when the
cache_bottom was popped and then repeatedly check the same index entries
over and over.  This represents a serious performance regression for
large repositories compared to the old "broken" traversal order.

This commit makes a simple change to mitigate this.  Whenever
find_cache_pos sees that the current pos is also the cache_bottom, and
it has already been unpacked, it advances the cache_bottom as well as
the current pos.  This prevents the above "sticking" behavior without
dramatically changing the algorithm.

In addition, this commit moves the unpacked check above the
ce_in_traverse_path() check.  The simple bitmask check is cheaper, and
in the case described above will be firing quite a bit to advance the
cache_bottom after a tree pop.

This yields considerable performance improvements for large trees.
The following are the number of function calls for "git diff HEAD" on
the Linux kernel tree, with 33,307 files:

   Symbol               Calls Before   Calls After
   -------------------  ------------   -----------
   unpack_callback            35,332        35,332
   find_cache_pos             37,357        37,357
   ce_in_traverse_path     4,979,473        37,357
   do_compare_entry        6,828,181       251,925
   df_name_compare         6,828,181       251,925

And on a repository of 187,456 files:

   Symbol               Calls Before   Calls After
   -------------------  ------------   -----------
   unpack_callback           197,958       197,958
   find_cache_pos            208,460       208,460
   ce_in_traverse_path    37,308,336       208,460
   do_compare_entry      156,950,469     2,690,626
   df_name_compare       156,950,469     2,690,626

On the latter repository, user time for "git diff HEAD" was reduced from
5.58 to 0.42 seconds.  This is compared to 0.30 seconds before the
traversal order fix was implemented.

Signed-off-by: Brian Downing <bdowning@lavos.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>