Commit Graph

23372 Commits

Author SHA1 Message Date
Matthieu Moy
e294030fe8 setup_unpack_trees_porcelain: take the whole options struct as parameter
This is a preparation patch to let setup_unpack_trees_porcelain set
show_all_errors itself.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-03 09:31:41 -07:00
Matthieu Moy
dc1166e685 Move set_porcelain_error_msgs to unpack-trees.c and rename it
The function is currently dealing only with error messages, but the
intent of calling it is really to notify the unpack-tree mechanics that
it is running in porcelain mode.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-03 09:31:28 -07:00
Junio C Hamano
b49c452bb1 Prepare for 1.7.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-01 15:11:07 -07:00
Junio C Hamano
88bf110494 Merge branch 'maint'
* maint:
  Prepare for 1.7.2.3
2010-09-01 15:10:18 -07:00
Junio C Hamano
22da742982 Prepare for 1.7.2.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-01 15:10:03 -07:00
Junio C Hamano
af6c6e0b19 Merge branch 'gp/pack-refs-remove-empty-dirs' into maint
* gp/pack-refs-remove-empty-dirs:
  pack-refs: remove newly empty directories
2010-09-01 14:05:05 -07:00
Junio C Hamano
c7f649a794 Merge branch 'sg/rerere-gc-old-still-used' into maint
* sg/rerere-gc-old-still-used:
  rerere: fix overeager gc
  mingw_utime(): handle NULL times parameter
2010-09-01 13:57:23 -07:00
Junio C Hamano
e4f8fce5c1 Merge branch 'np/maint-huge-delta-generation' into maint
* np/maint-huge-delta-generation:
  fix >4GiB source delta assertion failure
2010-09-01 13:56:10 -07:00
Junio C Hamano
6da28b4f87 Merge branch 'dj/fetch-tagopt' into maint
* dj/fetch-tagopt:
  fetch: allow command line --tags to override config
2010-09-01 13:52:10 -07:00
Junio C Hamano
e917918335 Merge branch 'da/fix-submodule-sync-superproject-config' into maint
* da/fix-submodule-sync-superproject-config:
  submodule sync: Update "submodule.<name>.url"
2010-09-01 13:50:46 -07:00
Junio C Hamano
061219fa7c Merge branch 'en/rebase-against-rebase-fix' into maint
* en/rebase-against-rebase-fix:
  pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches
  t5520-pull: Add testcases showing spurious conflicts from git pull --rebase
2010-09-01 13:43:55 -07:00
Petr Onderka
6df42ab984 Add global and system-wide gitattributes
Allow gitattributes to be set globally and system wide. This way, settings
for particular file types can be set in one place and apply for all user's
repositories.

The location of system-wide attributes file is $(prefix)/etc/gitattributes.
The location of the global file can be configured by setting
core.attributesfile.

Some parts of the code were copied from the implementation of the same
functionality in config.c.

Signed-off-by: Petr Onderka <gsvick@gmail.com>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-01 12:19:36 -07:00
Junio C Hamano
7e42332e47 install-webdoc: filter timestamp-only changes correctly
The timestamp that follows "Last updated " is formatted differently
depending on the version of AsciiDoc.  Looking at 4604fe56 on "html"
branch, you can see that AsciiDoc 7.0.2 used to give "02-Jul-2008 03:02:14
UTC" but AsciiDoc 8.2.5 gave "2008-09-19 06:33:25 UTC".  We haven't been
correctly filtering out phantom changes that result from only the build
date for some time now, it seems.

Just filter lines that begin with "Last updated ".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-01 09:25:17 -07:00
Thiago Farina
fd5c363da4 builtin.h: Move two functions definitions to help.h.
The two functions defined here are implemented in help.c, so makes more sense
to put the definition of those in help.h instead of in builtin.h.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-01 08:00:51 -07:00
Junio C Hamano
e3efa9c12c Merge branch 'np/maint-huge-delta-generation'
* np/maint-huge-delta-generation:
  fix >4GiB source delta assertion failure
2010-08-31 16:34:16 -07:00
Junio C Hamano
2acf3658a3 Merge branch 'da/fix-submodule-sync-superproject-config'
* da/fix-submodule-sync-superproject-config:
  submodule sync: Update "submodule.<name>.url"
2010-08-31 16:25:29 -07:00
Junio C Hamano
ae76cb90cb Merge branch 'jn/cherry-revert-message-clean-up'
* jn/cherry-revert-message-clean-up:
  tests: fix syntax error in "Use advise() for hints" test
  cherry-pick/revert: Use advise() for hints
  cherry-pick/revert: Use error() for failure message
  Introduce advise() to print hints
  Eliminate “Finished cherry-pick/revert” message
  t3508: add check_head_differs_from() helper function and use it
  revert: improve success message by adding abbreviated commit sha1
  revert: don't print "Finished one cherry-pick." if commit failed
  revert: refactor commit code into a new run_git_commit() function
  revert: report success when using option --strategy
2010-08-31 16:25:11 -07:00
Junio C Hamano
7cc1e385a0 Merge branch 'cb/binary-patch-id'
* cb/binary-patch-id:
  hash binary sha1 into patch id
2010-08-31 16:24:48 -07:00
Junio C Hamano
0c1c798f20 Merge branch 'ab/maint-reset-mixed-w-pathspec-advice'
* ab/maint-reset-mixed-w-pathspec-advice:
  reset: suggest what to do upon "git reset --mixed <paths>"
2010-08-31 16:24:36 -07:00
Junio C Hamano
381b2e7698 Merge branch 'dj/fetch-tagopt'
* dj/fetch-tagopt:
  fetch: allow command line --tags to override config
2010-08-31 16:24:24 -07:00
Junio C Hamano
3f29dd6c23 Merge branch 'en/d-f-conflict-fix'
* en/d-f-conflict-fix:
  merge-recursive: Avoid excessive output for and reprocessing of renames
  merge-recursive: Fix multiple file rename across D/F conflict
  t6031: Add a testcase covering multiple renames across a D/F conflict
  merge-recursive: Fix typo
  Mark tests that use symlinks as needing SYMLINKS prerequisite
  t/t6035-merge-dir-to-symlink.sh: Remove TODO on passing test
  fast-import: Improve robustness when D->F changes provided in wrong order
  fast-export: Fix output order of D/F changes
  merge_recursive: Fix renames across paths below D/F conflicts
  merge-recursive: Fix D/F conflicts
  Add a rename + D/F conflict testcase
  Add additional testcases for D/F conflicts

Conflicts:
	merge-recursive.c
2010-08-31 16:23:58 -07:00
Junio C Hamano
aca35505db Merge branch 'jn/svn-fe'
* jn/svn-fe:
  t/t9010-svn-fe.sh: add an +x bit to this test
  t9010 (svn-fe): avoid symlinks in test
  t9010 (svn-fe): use Unix-style path in URI
  vcs-svn: Avoid %z in format string
  vcs-svn: Rename dirent pool to build on Windows
  compat: add strtok_r()
  treap: style fix
  vcs-svn: remove build artifacts on "make clean"
  svn-fe manual: Clarify warning about deltas in dump files
  Update svn-fe manual
  SVN dump parser
  Infrastructure to write revisions in fast-export format
  Add stream helper library
  Add string-specific memory pool
  Add treap implementation
  Add memory pool library
  Introduce vcs-svn lib
2010-08-31 16:23:38 -07:00
Junio C Hamano
d7cc7c971f Merge branch 'tr/maint-no-unquote-plus'
* tr/maint-no-unquote-plus:
  Do not unquote + into ' ' in URLs
2010-08-31 16:23:35 -07:00
Junio C Hamano
633142d868 Merge branch 'jn/paginate-fix'
* jn/paginate-fix:
  t7006 (pager): add missing TTY prerequisites
  merge-file: run setup_git_directory_gently() sooner
  var: run setup_git_directory_gently() sooner
  ls-remote: run setup_git_directory_gently() sooner
  index-pack: run setup_git_directory_gently() sooner
  config: run setup_git_directory_gently() sooner
  bundle: run setup_git_directory_gently() sooner
  apply: run setup_git_directory_gently() sooner
  grep: run setup_git_directory_gently() sooner
  shortlog: run setup_git_directory_gently() sooner
  git wrapper: allow setup_git_directory_gently() be called earlier
  setup: remember whether repository was found
  git wrapper: introduce startup_info struct

Conflicts:
	builtin/index-pack.c
2010-08-31 16:23:31 -07:00
Junio C Hamano
693fefe3d0 Merge branch 'jn/maint-setup-fix'
* jn/maint-setup-fix:
  setup: split off a function to handle ordinary .git directories
  Revert "rehabilitate 'git index-pack' inside the object store"
  setup: do not forget working dir from subdir of gitdir
  t4111 (apply): refresh index before applying patches to it
  setup: split off get_device_or_die helper
  setup: split off a function to handle hitting ceiling in repo search
  setup: split off code to handle stumbling upon a repository
  setup: split off a function to checks working dir for .git file
  setup: split off $GIT_DIR-set case from setup_git_directory_gently
  tests: try git apply from subdir of toplevel
  t1501 (rev-parse): clarify

Conflicts:
	builtin/index-pack.c
2010-08-31 16:23:19 -07:00
Junio C Hamano
1253164c8b Merge branch 'en/fast-export-fix'
* en/fast-export-fix:
  fast-export: Add a --full-tree option
  fast-export: Fix dropping of files with --import-marks and path limiting
2010-08-31 16:15:20 -07:00
Junio C Hamano
a621859101 Merge branch 'hv/autosquash-config'
* hv/autosquash-config:
  add configuration variable for --autosquash option of interactive rebase
2010-08-31 16:15:03 -07:00
Junio C Hamano
e24058f57f Merge branch 'sg/rerere-gc-old-still-used'
* sg/rerere-gc-old-still-used:
  rerere: fix overeager gc
  mingw_utime(): handle NULL times parameter
2010-08-31 16:14:27 -07:00
Junio C Hamano
bf1dfc3103 diff/log -G<pattern>: tests
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 14:30:29 -07:00
Junio C Hamano
f506b8e8b5 git log/diff: add -G<regexp> that greps in the patch text
Teach "-G<regexp>" that is similar to "-S<regexp> --pickaxe-regexp" to the
"git diff" family of commands.  This limits the diff queue to filepairs
whose patch text actually has an added or a deleted line that matches the
given regexp.  Unlike "-S<regexp>", changing other parts of the line that
has a substring that matches the given regexp IS counted as a change, as
such a change would appear as one deletion followed by one addition in a
patch text.

Unlike -S (pickaxe) that is intended to be used to quickly detect a commit
that changes the number of occurrences of hits between the preimage and
the postimage to serve as a part of larger toolchain, this is meant to be
used as the top-level Porcelain feature.

The implementation unfortunately has to run "diff" twice if you are
running "log" family of commands to produce patches in the final output
(e.g. "git log -p" or "git format-patch").  I think we _could_ cache the
result in-core if we wanted to, but that would require larger surgery to
the diffcore machinery (i.e. adding an extra pointer in the filepair
structure to keep a pointer to a strbuf around, stuff the textual diff to
the strbuf inside diffgrep_consume(), and make use of it in later stages
when it is available) and it may not be worth it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 14:30:29 -07:00
Junio C Hamano
382f013bc4 diff: pass the entire diff-options to diffcore_pickaxe()
That would make it easier to give enhanced feature to the
pickaxe transformation.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 14:30:28 -07:00
Junio C Hamano
a2c2cef0cd gitdiffcore doc: update pickaxe description
The old text described the original design (one side does not have it at
all while the other side has it); this was later amended to check if the
number of occurrences changed, which is what we currently do with -S.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 14:28:20 -07:00
Matthieu Moy
e4c62e640d tests: factor HOME=$(pwd) in test-lib.sh
The same pattern is used in many tests, and makes it easy for new ones to
rely on $HOME being a trashable, clean, directory.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:02 -07:00
Ævar Arnfjörð Bjarmason
0d314ce834 test-lib: use subshell instead of cd $new && .. && cd $old
Change the test_create_repo code added in v1.2.2~6 to use a subshell
instead of keeping track of the old working directory and cd-ing back
when it's done.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:02 -07:00
Jonathan Nieder
07431fc8dc tests: simplify "missing PREREQ" message
When a test has no prerequisites satisfied (the usual case), instead
of "missing THING of THING", just say "missing THING".  This does not
affect the output when a test is skipped due to a missing
prerequisites if another prerequisite is satisfied.

For example: instead of

 ok 8 # skip notes work (missing EXPENSIVE of EXPENSIVE)
 ok 9 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE)

write

 ok 8 # skip notes work (missing EXPENSIVE)
 ok 9 # skip notes timing with /usr/bin/time (missing EXPENSIVE of USR_BIN_TIME,EXPENSIVE)

Cc: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:02 -07:00
Ævar Arnfjörð Bjarmason
7b90511970 t/t0000-basic.sh: Run the passing TODO test inside its own test-lib
Change the passing TODO test in t0000-basic.sh to run inside its own
test-lib.sh. The motivation is to have nothing out of the ordinary on
a normal test run for test smoking purposes.

If every normal test run has a passing TODO you're more likely to turn
a blind eye to it and not to investigate cases where things really are
passing unexpectedly.

It also makes the prove(1) output less noisy. Before:

    All tests successful.

    Test Summary Report
    -------------------
    ./t0000-basic.sh                                   (Wstat: 0 Tests: 46 Failed: 0)
      TODO passed:   5
    Files=484, Tests=6229, 143 wallclock secs ( 4.00 usr  4.15 sys + 104.77 cusr 351.57 csys = 464.49 CPU)
    Result: PASS

And after:

    All tests successful.
    Files=484, Tests=6228, 139 wallclock secs ( 4.07 usr  4.25 sys + 104.54 cusr 350.85 csys = 463.71 CPU)
    Result: PASS

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:01 -07:00
Ævar Arnfjörð Bjarmason
62f539043c test-lib: Allow overriding of TEST_DIRECTORY
Tests that test the test-lib.sh itself need to be executed in the
dynamically created trash directory, so we can't assume
$TEST_DIRECTORY is ../ for those.

As a side benefit this change also makes it easy for us to move the
t/*.sh tests into subdirectories if we ever want to do that.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:01 -07:00
Ævar Arnfjörð Bjarmason
6cec5c6835 test-lib: Use "$GIT_BUILD_DIR" instead of "$TEST_DIRECTORY"/../
Change code that used $TEST_DIRECTORY/.. to use $GIT_BUILD_DIR
instead, the two are equivalent, but the latter is easier to read.

This required moving the assignment od GIT_BUILD_DIR to earlier in the
test-lib.sh file.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:01 -07:00
Ævar Arnfjörð Bjarmason
aed604c778 test-lib: Use $TEST_DIRECTORY or $GIT_BUILD_DIR instead of $(pwd) and ../
Change the redundant calls to $(pwd) to use $TEST_DIRECTORY
instead. None of these were being executed after we cd'd somewhere
else so they weren't actually needed.

This also makes it easier to add support for overriding the test
library location and run tests in a different directory than t/.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:12:01 -07:00
Thomas Rast
568899539d test: Introduce $GIT_BUILD_DIR
Introduce a new variable $GIT_BUILD_DIR which can be used to locate
data that resides under the build directory, and use that instead.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 12:11:06 -07:00
Jonathan Nieder
d0b8a61742 tests: make test_might_fail fail on missing commands
Detect and report hard-to-notice spelling mistakes like

 test_might_fail "git config --unset whatever"

(the extra quotes prevent the shell from running git as intended;
instead, the shell looks for a "git config --unset whatever" file).

Cc: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 11:40:20 -07:00
Jonathan Nieder
5c8e141414 tests: make test_might_fail more verbose
Let test_might_fail say something about its failures for consistency
with test_must_fail.

Cc: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 11:09:21 -07:00
Johan Herland
1ee1e43df3 notes: Don't create (empty) commit when removing non-existing notes
Extend remove_note() in the notes API to return whether or not a note was
actually removed. Use this in 'git notes remove' to skip the creation of
a notes commit when no notes were actually removed.

Also add a test illustrating the change in behavior.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 11:07:34 -07:00
Knut Franke
453842c9b8 Extend documentation of core.askpass and GIT_ASKPASS.
Signed-off-by: Knut Franke <k.franke@science-computing.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 10:49:30 -07:00
Knut Franke
90e87b017f Allow core.askpass to override SSH_ASKPASS.
Modify handling of the 'core.askpass' option so that it has the same effect as
GIT_ASKPASS also if SSH_ASKPASS is set.

Signed-off-by: Knut Franke <k.franke@science-computing.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 10:49:17 -07:00
Anselm Kruis
d3e7da8979 Add a new option 'core.askpass'.
Setting this option has the same effect as setting the environment variable
'GIT_ASKPASS'.

Signed-off-by: Knut Franke <k.franke@science-computing.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 10:49:02 -07:00
Jeff King
a54ce3ca9e tests: make test_must_fail fail on missing commands
The point of it is to run a command that produces failure. A
missing command is more likely an error in the test script
(e.g., using 'test_must_fail "command with arguments"', or
relying on a missing command).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 09:54:37 -07:00
Jeff King
16034fbe59 tests: make test_must_fail more verbose
Because test_must_fail fails when a command succeeds, the
command frequently does not produce any output (since, after
all, it thought it was succeeding). So let's have
test_must_fail itself report that a problem occurred.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 09:53:56 -07:00
Anders Kaseorg
d8a9480384 gitweb: Don't die_error in git_tag after already printing headers
This fixes an XML error when visiting a nonexistent tag
(i.e. "../gitweb.cgi?p=git.git;a=tag;h=refs/tags/BADNAME").

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 09:52:48 -07:00
Jon Seymour
8d66bb0587 t3903: fix broken test_must_fail calls
Some tests in detached-stash are calling test_must_fail
in such a way that the arguments to test_must_fail do, indeed, fail
but not in the manner expected by the test.

This patch removes the unnecessary and unhelpful double quotes.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-31 09:50:07 -07:00