Merge branch 'maint'

* maint:
  t9350: fix careless use of "cd"
  difftool: Fix '--gui' when diff.guitool is unconfigured
  fast-export: don't segfault when marks file cannot be opened
This commit is contained in:
Junio C Hamano 2010-03-28 17:42:58 -07:00
commit faf752693a
4 changed files with 55 additions and 39 deletions

View File

@ -503,7 +503,7 @@ static void export_marks(char *file)
f = fopen(file, "w"); f = fopen(file, "w");
if (!f) if (!f)
error("Unable to open marks file %s for writing.", file); die_errno("Unable to open marks file %s for writing.", file);
for (i = 0; i < idnums.size; i++) { for (i = 0; i < idnums.size; i++) {
if (deco->base && deco->base->type == 1) { if (deco->base && deco->base->type == 1) {

View File

@ -78,11 +78,13 @@ sub generate_command
next; next;
} }
if ($arg eq '-g' || $arg eq '--gui') { if ($arg eq '-g' || $arg eq '--gui') {
my $tool = Git::command_oneline('config', eval {
'diff.guitool'); my $tool = Git::command_oneline('config',
if (length($tool)) { 'diff.guitool');
$ENV{GIT_DIFF_TOOL} = $tool; if (length($tool)) {
} $ENV{GIT_DIFF_TOOL} = $tool;
}
};
next; next;
} }
if ($arg eq '-y' || $arg eq '--no-prompt') { if ($arg eq '-y' || $arg eq '--no-prompt') {

View File

@ -92,6 +92,15 @@ test_expect_success 'difftool honors --gui' '
restore_test_defaults restore_test_defaults
' '
test_expect_success 'difftool --gui works without configured diff.guitool' '
git config diff.tool test-tool &&
diff=$(git difftool --no-prompt --gui branch) &&
test "$diff" = "branch" &&
restore_test_defaults
'
# Specify the diff tool using $GIT_DIFF_TOOL # Specify the diff tool using $GIT_DIFF_TOOL
test_expect_success 'GIT_DIFF_TOOL variable' ' test_expect_success 'GIT_DIFF_TOOL variable' '
git config --unset diff.tool git config --unset diff.tool

View File

@ -150,20 +150,22 @@ test_expect_success 'setup submodule' '
git checkout -f master && git checkout -f master &&
mkdir sub && mkdir sub &&
cd sub && (
git init && cd sub &&
echo test file > file && git init &&
git add file && echo test file > file &&
git commit -m sub_initial && git add file &&
cd .. && git commit -m sub_initial
) &&
git submodule add "`pwd`/sub" sub && git submodule add "`pwd`/sub" sub &&
git commit -m initial && git commit -m initial &&
test_tick && test_tick &&
cd sub && (
echo more data >> file && cd sub &&
git add file && echo more data >> file &&
git commit -m sub_second && git add file &&
cd .. && git commit -m sub_second
) &&
git add sub && git add sub &&
git commit -m second git commit -m second
@ -264,19 +266,20 @@ test_expect_success 'cope with tagger-less tags' '
test_expect_success 'setup for limiting exports by PATH' ' test_expect_success 'setup for limiting exports by PATH' '
mkdir limit-by-paths && mkdir limit-by-paths &&
cd limit-by-paths && (
git init && cd limit-by-paths &&
echo hi > there && git init &&
git add there && echo hi > there &&
git commit -m "First file" && git add there &&
echo foo > bar && git commit -m "First file" &&
git add bar && echo foo > bar &&
git commit -m "Second file" && git add bar &&
git tag -a -m msg mytag && git commit -m "Second file" &&
echo morefoo >> bar && git tag -a -m msg mytag &&
git add bar && echo morefoo >> bar &&
git commit -m "Change to second file" && git add bar &&
cd .. git commit -m "Change to second file"
)
' '
cat > limit-by-paths/expected << EOF cat > limit-by-paths/expected << EOF
@ -297,10 +300,11 @@ M 100644 :1 there
EOF EOF
test_expect_success 'dropping tag of filtered out object' ' test_expect_success 'dropping tag of filtered out object' '
(
cd limit-by-paths && cd limit-by-paths &&
git fast-export --tag-of-filtered-object=drop mytag -- there > output && git fast-export --tag-of-filtered-object=drop mytag -- there > output &&
test_cmp output expected && test_cmp output expected
cd .. )
' '
cat >> limit-by-paths/expected << EOF cat >> limit-by-paths/expected << EOF
@ -313,10 +317,11 @@ msg
EOF EOF
test_expect_success 'rewriting tag of filtered out object' ' test_expect_success 'rewriting tag of filtered out object' '
(
cd limit-by-paths && cd limit-by-paths &&
git fast-export --tag-of-filtered-object=rewrite mytag -- there > output && git fast-export --tag-of-filtered-object=rewrite mytag -- there > output &&
test_cmp output expected && test_cmp output expected
cd .. )
' '
cat > limit-by-paths/expected << EOF cat > limit-by-paths/expected << EOF
@ -343,13 +348,13 @@ M 100644 :2 there
EOF EOF
test_expect_failure 'no exact-ref revisions included' ' test_expect_failure 'no exact-ref revisions included' '
cd limit-by-paths && (
git fast-export master~2..master~1 > output && cd limit-by-paths &&
test_cmp output expected && git fast-export master~2..master~1 > output &&
cd .. test_cmp output expected
)
' '
test_expect_success 'set-up a few more tags for tag export tests' ' test_expect_success 'set-up a few more tags for tag export tests' '
git checkout -f master && git checkout -f master &&
HEAD_TREE=`git show -s --pretty=raw HEAD | grep tree | sed "s/tree //"` && HEAD_TREE=`git show -s --pretty=raw HEAD | grep tree | sed "s/tree //"` &&