Merge branch 'js/rebase-i-commentchar-fix'
"git rebase -i" did not work well with core.commentchar configuration variable for two reasons, both of which have been fixed. * js/rebase-i-commentchar-fix: rebase -i: handle core.commentChar=auto stripspace: respect repository config rebase -i: highlight problems with core.commentchar
This commit is contained in:
commit
bd53f38d52
@ -44,8 +44,10 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix)
|
|||||||
if (argc)
|
if (argc)
|
||||||
usage_with_options(stripspace_usage, options);
|
usage_with_options(stripspace_usage, options);
|
||||||
|
|
||||||
if (mode == STRIP_COMMENTS || mode == COMMENT_LINES)
|
if (mode == STRIP_COMMENTS || mode == COMMENT_LINES) {
|
||||||
|
setup_git_directory_gently(NULL);
|
||||||
git_config(git_default_config, NULL);
|
git_config(git_default_config, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
if (strbuf_read(&buf, 0, 1024) < 0)
|
if (strbuf_read(&buf, 0, 1024) < 0)
|
||||||
die_errno("could not read the input");
|
die_errno("could not read the input");
|
||||||
|
@ -93,8 +93,17 @@ eval '
|
|||||||
GIT_CHERRY_PICK_HELP="$resolvemsg"
|
GIT_CHERRY_PICK_HELP="$resolvemsg"
|
||||||
export GIT_CHERRY_PICK_HELP
|
export GIT_CHERRY_PICK_HELP
|
||||||
|
|
||||||
comment_char=$(git config --get core.commentchar 2>/dev/null | cut -c1)
|
comment_char=$(git config --get core.commentchar 2>/dev/null)
|
||||||
: ${comment_char:=#}
|
case "$comment_char" in
|
||||||
|
'' | auto)
|
||||||
|
comment_char="#"
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
comment_char=$(echo "$comment_char" | cut -c1)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
warn () {
|
warn () {
|
||||||
printf '%s\n' "$*" >&2
|
printf '%s\n' "$*" >&2
|
||||||
|
@ -432,6 +432,15 @@ test_expect_success '-c with changed comment char' '
|
|||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success '-c with comment char defined in .git/config' '
|
||||||
|
test_config core.commentchar = &&
|
||||||
|
printf "= foo\n" >expect &&
|
||||||
|
printf "foo" | (
|
||||||
|
mkdir sub && cd sub && git stripspace -c
|
||||||
|
) >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'avoid SP-HT sequence in commented line' '
|
test_expect_success 'avoid SP-HT sequence in commented line' '
|
||||||
printf "#\tone\n#\n# two\n" >expect &&
|
printf "#\tone\n#\n# two\n" >expect &&
|
||||||
printf "\tone\n\ntwo\n" | git stripspace -c >actual &&
|
printf "\tone\n\ntwo\n" | git stripspace -c >actual &&
|
||||||
|
@ -976,6 +976,17 @@ test_expect_success 'rebase -i respects core.commentchar' '
|
|||||||
test B = $(git cat-file commit HEAD^ | sed -ne \$p)
|
test B = $(git cat-file commit HEAD^ | sed -ne \$p)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'rebase -i respects core.commentchar=auto' '
|
||||||
|
test_config core.commentchar auto &&
|
||||||
|
write_script copy-edit-script.sh <<-\EOF &&
|
||||||
|
cp "$1" edit-script
|
||||||
|
EOF
|
||||||
|
test_set_editor "$(pwd)/copy-edit-script.sh" &&
|
||||||
|
test_when_finished "git rebase --abort || :" &&
|
||||||
|
git rebase -i HEAD^ &&
|
||||||
|
test -z "$(grep -ve "^#" -e "^\$" -e "^pick" edit-script)"
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'rebase -i, with <onto> and <upstream> specified as :/quuxery' '
|
test_expect_success 'rebase -i, with <onto> and <upstream> specified as :/quuxery' '
|
||||||
test_when_finished "git branch -D torebase" &&
|
test_when_finished "git branch -D torebase" &&
|
||||||
git checkout -b torebase branch1 &&
|
git checkout -b torebase branch1 &&
|
||||||
|
Loading…
Reference in New Issue
Block a user