diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-03-11 21:40:47 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-03-11 21:40:47 -0700 |
commit | b81a7b58875e07d7e82aafced1de9834ba1ef94a (patch) | |
tree | 47a7e33fdbd718fce1948183e1905a174c43fa40 | |
parent | 5d921e2931e5041884d8f86fdccc9004a7b071cc (diff) | |
parent | ea14e6c55427f50f78fe47187cd4edb9845943a1 (diff) | |
download | git-b81a7b58875e07d7e82aafced1de9834ba1ef94a.tar.gz git-b81a7b58875e07d7e82aafced1de9834ba1ef94a.tar.xz |
Merge branch 'maint'
* maint:
git-svn: fix find-rev error message when missing arg
t0021: tr portability fix for Solaris
launch_editor(): allow spaces in the filename
git rebase --abort: always restore the right commit
-rw-r--r-- | builtin-tag.c | 6 | ||||
-rwxr-xr-x | git-svn.perl | 3 | ||||
-rwxr-xr-x | t/t0021-conversion.sh | 4 | ||||
-rwxr-xr-x | t/t7005-editor.sh | 27 |
4 files changed, 37 insertions, 3 deletions
diff --git a/builtin-tag.c b/builtin-tag.c index 28c36fdcd..8dd959fe1 100644 --- a/builtin-tag.c +++ b/builtin-tag.c @@ -50,12 +50,15 @@ void launch_editor(const char *path, struct strbuf *buffer, const char *const *e size_t len = strlen(editor); int i = 0; const char *args[6]; + struct strbuf arg0; + strbuf_init(&arg0, 0); if (strcspn(editor, "$ \t'") != len) { /* there are specials */ + strbuf_addf(&arg0, "%s \"$@\"", editor); args[i++] = "sh"; args[i++] = "-c"; - args[i++] = "$0 \"$@\""; + args[i++] = arg0.buf; } args[i++] = editor; args[i++] = path; @@ -63,6 +66,7 @@ void launch_editor(const char *path, struct strbuf *buffer, const char *const *e if (run_command_v_opt_cd_env(args, 0, NULL, env)) die("There was a problem with the editor %s.", editor); + strbuf_release(&arg0); } if (!buffer) diff --git a/git-svn.perl b/git-svn.perl index 119556952..d8b38c9a4 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -522,7 +522,8 @@ sub cmd_dcommit { } sub cmd_find_rev { - my $revision_or_hash = shift; + my $revision_or_hash = shift or die "SVN or git revision required ", + "as a command-line argument\n"; my $result; if ($revision_or_hash =~ /^r\d+$/) { my $head = shift; diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh index cb860296e..8fc39d77c 100755 --- a/t/t0021-conversion.sh +++ b/t/t0021-conversion.sh @@ -5,7 +5,9 @@ test_description='blob conversion via gitattributes' . ./test-lib.sh cat <<\EOF >rot13.sh -tr '[a-zA-Z]' '[n-za-mN-ZA-M]' +tr \ + 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' \ + 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM' EOF chmod +x rot13.sh diff --git a/t/t7005-editor.sh b/t/t7005-editor.sh index c1cec5530..6a74b3acf 100755 --- a/t/t7005-editor.sh +++ b/t/t7005-editor.sh @@ -89,6 +89,33 @@ do ' done +test_expect_success 'editor with a space' ' + + if echo "echo space > \"\$1\"" > "e space.sh" + then + chmod a+x "e space.sh" && + GIT_EDITOR="./e\ space.sh" git commit --amend && + test space = "$(git show -s --pretty=format:%s)" + else + say "Skipping; FS does not support spaces in filenames" + fi + +' + +unset GIT_EDITOR +test_expect_success 'core.editor with a space' ' + + if test -f "e space.sh" + then + git config core.editor \"./e\ space.sh\" && + git commit --amend && + test space = "$(git show -s --pretty=format:%s)" + else + say "Skipping; FS does not support spaces in filenames" + fi + +' + TERM="$OLD_TERM" test_done |