Skip to content

sequencer: make it clearer that commit descriptions are just comments #1923

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions sequencer.c
Original file line number Diff line number Diff line change
Expand Up @@ -5901,11 +5901,11 @@ static int make_script_with_merges(struct pretty_print_context *pp,

/* Create a label from the commit message */
strbuf_reset(&label_from_message);
if (skip_prefix(oneline.buf, "Merge ", &p1) &&
if (skip_prefix(oneline.buf, "# Merge ", &p1) &&
(p1 = strchr(p1, '\'')) &&
(p2 = strchr(++p1, '\'')))
strbuf_add(&label_from_message, p1, p2 - p1);
else if (skip_prefix(oneline.buf, "Merge pull request ",
else if (skip_prefix(oneline.buf, "# Merge pull request ",
&p1) &&
(p1 = strstr(p1, " from ")))
strbuf_addstr(&label_from_message, p1 + strlen(" from "));
Expand Down Expand Up @@ -5940,7 +5940,7 @@ static int make_script_with_merges(struct pretty_print_context *pp,

strbuf_addstr(&buf, label_oid(oid, label, &state));
}
strbuf_addf(&buf, " # %s", oneline.buf);
strbuf_addf(&buf, " %s", oneline.buf);

FLEX_ALLOC_STR(entry, string, buf.buf);
oidcpy(&entry->entry.oid, &commit->object.oid);
Expand Down Expand Up @@ -6022,7 +6022,7 @@ static int make_script_with_merges(struct pretty_print_context *pp,
else {
strbuf_reset(&oneline);
pretty_print_commit(pp, commit, &oneline);
strbuf_addf(out, "%s %s # %s\n",
strbuf_addf(out, "%s %s %s\n",
cmd_reset, to, oneline.buf);
}
}
Expand Down Expand Up @@ -6090,8 +6090,14 @@ int sequencer_make_script(struct repository *r, struct strbuf *out, int argc,
git_config_get_string("rebase.instructionFormat", &format);
if (!format || !*format) {
free(format);
format = xstrdup("%s");
format = xstrdup("# %s");
}
if (*format != '#') {
char *temp = format;
format = xstrfmt("# %s", temp);
free(temp);
}

get_commit_format(format, &revs);
free(format);
pp.fmt = revs.commit_format;
Expand Down
54 changes: 27 additions & 27 deletions t/t3404-rebase-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1468,7 +1468,7 @@ test_expect_success 'rebase -i respects rebase.missingCommitsCheck = warn' '
cat >expect <<-EOF &&
Warning: some commits may have been dropped accidentally.
Dropped commits (newer to older):
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
- $(git log --format="%h # %s" -1 primary)
To avoid this message, use "drop" to explicitly remove a commit.
EOF
test_config rebase.missingCommitsCheck warn &&
Expand All @@ -1486,8 +1486,8 @@ test_expect_success 'rebase -i respects rebase.missingCommitsCheck = error' '
cat >expect <<-EOF &&
Warning: some commits may have been dropped accidentally.
Dropped commits (newer to older):
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary~2)
- $(git log --format="%h # %s" -1 primary)
- $(git log --format="%h # %s" -1 primary~2)
To avoid this message, use "drop" to explicitly remove a commit.

Use '\''git config rebase.missingCommitsCheck'\'' to change the level of warnings.
Expand Down Expand Up @@ -1530,11 +1530,11 @@ test_expect_success 'rebase --edit-todo respects rebase.missingCommitsCheck = ig
test_expect_success 'rebase --edit-todo respects rebase.missingCommitsCheck = warn' '
cat >expect <<-EOF &&
error: invalid command '\''pickled'\''
error: invalid line 1: pickled $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
error: invalid line 1: pickled $(git log --format="%h # %s" -1 primary~4)
Warning: some commits may have been dropped accidentally.
Dropped commits (newer to older):
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
- $(git log --format="%h # %s" -1 primary)
- $(git log --format="%h # %s" -1 primary~4)
To avoid this message, use "drop" to explicitly remove a commit.
EOF
head -n5 expect >expect.2 &&
Expand Down Expand Up @@ -1565,11 +1565,11 @@ test_expect_success 'rebase --edit-todo respects rebase.missingCommitsCheck = wa
test_expect_success 'rebase --edit-todo respects rebase.missingCommitsCheck = error' '
cat >expect <<-EOF &&
error: invalid command '\''pickled'\''
error: invalid line 1: pickled $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
error: invalid line 1: pickled $(git log --format="%h # %s" -1 primary~4)
Warning: some commits may have been dropped accidentally.
Dropped commits (newer to older):
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary)
- $(git rev-list --pretty=oneline --abbrev-commit -1 primary~4)
- $(git log --format="%h # %s" -1 primary)
- $(git log --format="%h # %s" -1 primary~4)
To avoid this message, use "drop" to explicitly remove a commit.

Use '\''git config rebase.missingCommitsCheck'\'' to change the level of warnings.
Expand Down Expand Up @@ -1642,11 +1642,11 @@ test_expect_success 'respects rebase.abbreviateCommands with fixup, squash and e
test_commit "fixup! first" file2.txt "first line again" first_fixup &&
test_commit "squash! second" file1.txt "another line here" second_squash &&
cat >expected <<-EOF &&
p $(git rev-list --abbrev-commit -1 first) first
f $(git rev-list --abbrev-commit -1 first_fixup) fixup! first
p $(git rev-list --abbrev-commit -1 first) # first
f $(git rev-list --abbrev-commit -1 first_fixup) # fixup! first
x git show HEAD
p $(git rev-list --abbrev-commit -1 second) second
s $(git rev-list --abbrev-commit -1 second_squash) squash! second
p $(git rev-list --abbrev-commit -1 second) # second
s $(git rev-list --abbrev-commit -1 second_squash) # squash! second
x git show HEAD
EOF
git checkout abbrevcmd &&
Expand All @@ -1665,7 +1665,7 @@ test_expect_success 'static check of bad command' '
set_fake_editor &&
test_must_fail env FAKE_LINES="1 2 3 bad 4 5" \
git rebase -i --root 2>actual &&
test_grep "pickled $(git rev-list --oneline -1 primary~1)" \
test_grep "pickled $(git log --format="%h # %s" -1 primary~1)" \
actual &&
test_grep "You can fix this with .git rebase --edit-todo.." \
actual &&
Expand Down Expand Up @@ -1865,15 +1865,15 @@ test_expect_success '--update-refs adds label and update-ref commands' '
set_cat_todo_editor &&

cat >expect <<-EOF &&
pick $(git log -1 --format=%h J) J
fixup $(git log -1 --format=%h update-refs) fixup! J # empty
pick $(git log -1 --format=%h J) # J
fixup $(git log -1 --format=%h update-refs) # fixup! J # empty
update-ref refs/heads/second
update-ref refs/heads/first
pick $(git log -1 --format=%h K) K
pick $(git log -1 --format=%h L) L
fixup $(git log -1 --format=%h is-not-reordered) fixup! L # empty
pick $(git log -1 --format=%h K) # K
pick $(git log -1 --format=%h L) # L
fixup $(git log -1 --format=%h is-not-reordered) # fixup! L # empty
update-ref refs/heads/third
pick $(git log -1 --format=%h M) M
pick $(git log -1 --format=%h M) # M
update-ref refs/heads/no-conflict-branch
update-ref refs/heads/is-not-reordered
update-ref refs/heads/shared-tip
Expand Down Expand Up @@ -1905,19 +1905,19 @@ test_expect_success '--update-refs adds commands with --rebase-merges' '
cat >expect <<-EOF &&
label onto
reset onto
pick $(git log -1 --format=%h branch2~1) F
pick $(git log -1 --format=%h branch2) I
pick $(git log -1 --format=%h branch2~1) # F
pick $(git log -1 --format=%h branch2) # I
update-ref refs/heads/branch2
label branch2
reset onto
pick $(git log -1 --format=%h refs/heads/second) J
pick $(git log -1 --format=%h refs/heads/second) # J
update-ref refs/heads/second
update-ref refs/heads/first
pick $(git log -1 --format=%h refs/heads/third~1) K
pick $(git log -1 --format=%h refs/heads/third) L
fixup $(git log -1 --format=%h update-refs-with-merge) fixup! L # empty
pick $(git log -1 --format=%h refs/heads/third~1) # K
pick $(git log -1 --format=%h refs/heads/third) # L
fixup $(git log -1 --format=%h update-refs-with-merge) # fixup! L # empty
update-ref refs/heads/third
pick $(git log -1 --format=%h HEAD~2) M
pick $(git log -1 --format=%h HEAD~2) # M
update-ref refs/heads/no-conflict-branch
merge -C $(git log -1 --format=%h HEAD~1) branch2 # merge
update-ref refs/heads/merge-branch
Expand Down
14 changes: 7 additions & 7 deletions t/t3415-rebase-autosquash.sh
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,8 @@ test_expect_success 'auto squash of fixup commit that matches branch name which
GIT_SEQUENCE_EDITOR="cat >tmp" git rebase --autosquash -i HEAD^^ &&
sed -ne "/^[^#]/{s/[0-9a-f]\{7,\}/HASH/g;p;}" tmp >actual &&
cat <<-EOF >expect &&
pick HASH second commit
pick HASH fixup! self-cycle # empty
pick HASH # second commit
pick HASH # fixup! self-cycle # empty
EOF
test_cmp expect actual
'
Expand Down Expand Up @@ -311,10 +311,10 @@ test_auto_fixup_fixup () {
parent2=$(git rev-parse --short HEAD^^) &&
parent3=$(git rev-parse --short HEAD^^^) &&
cat >expected <<-EOF &&
pick $parent3 first commit
$1 $parent1 $1! first
$1 $head $1! $2! first
pick $parent2 second commit
pick $parent3 # first commit
$1 $parent1 # $1! first
$1 $head # $1! $2! first
pick $parent2 # second commit
EOF
test_cmp expected actual
) &&
Expand Down Expand Up @@ -389,7 +389,7 @@ test_expect_success 'autosquash with empty custom instructionFormat' '
set_cat_todo_editor &&
test_must_fail git -c rebase.instructionFormat= \
rebase --autosquash --force-rebase -i HEAD^ >actual &&
git log -1 --format="pick %h %s" >expect &&
git log -1 --format="pick %h # %s" >expect &&
test_cmp expect actual
)
'
Expand Down
10 changes: 5 additions & 5 deletions t/t3430-rebase-merges.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,18 +106,18 @@ test_expect_success 'generate correct todo list' '
label onto

reset onto
pick $b B
pick $b # B
label first

reset onto
pick $c C
pick $c # C
label branch-point
pick $f F
pick $g G
pick $f # F
pick $g # G
label second

reset branch-point # C
pick $d D
pick $d # D
merge -C $e first # E
merge -C $h second # H

Expand Down
2 changes: 1 addition & 1 deletion t/t5520-pull.sh
Original file line number Diff line number Diff line change
Expand Up @@ -813,7 +813,7 @@ test_expect_success 'git pull --rebase does not reapply old patches' '
cd dst &&
test_must_fail git pull --rebase &&
cat .git/rebase-merge/done .git/rebase-merge/git-rebase-todo >work &&
grep -v -e \# -e ^$ work >patches &&
grep -v -e ^\# -e ^$ work >patches &&
test_line_count = 1 patches &&
rm -f work
)
Expand Down
Loading
Loading