Hi, Jonathan Nieder wrote: > [...] > Set a REVERT_HEAD pseudoref when "git revert" does not make a commit, > for cases like this. This also makes it possible for scripts to > distinguish between a revert that encountered conflicts and other > sources of an unmerged index. Sounds a lot like CHERRY_PICK_HEAD counterpart. Let's read ahead and see if there are any unexpected differences. > diff --git a/branch.c b/branch.c > index d8098762..025a97be 100644 > --- a/branch.c > +++ b/branch.c > @@ -241,6 +241,7 @@ void create_branch(const char *head, > void remove_branch_state(void) > { > unlink(git_path("CHERRY_PICK_HEAD")); > + unlink(git_path("REVERT_HEAD")); > unlink(git_path("MERGE_HEAD")); > unlink(git_path("MERGE_RR")); > unlink(git_path("MERGE_MSG")); > diff --git a/builtin/commit.c b/builtin/commit.c > index c46f2d18..8f2bebec 100644 > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -1514,6 +1514,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix) > } > > unlink(git_path("CHERRY_PICK_HEAD")); > + unlink(git_path("REVERT_HEAD")); > unlink(git_path("MERGE_HEAD")); > unlink(git_path("MERGE_MSG")); > unlink(git_path("MERGE_MODE")); So far so good. Behaves exactly like CHERRY_PICK_HEAD. > diff --git a/builtin/revert.c b/builtin/revert.c > index 1d112e4c..f5ba67a5 100644 > --- a/builtin/revert.c > +++ b/builtin/revert.c > @@ -289,7 +289,7 @@ static char *get_encoding(const char *message) > return NULL; > } > > -static void write_cherry_pick_head(struct commit *commit) > +static void write_cherry_pick_head(struct commit *commit, const char *pseudoref) > { > const char *filename; > int fd; > @@ -297,7 +297,7 @@ static void write_cherry_pick_head(struct commit *commit) > > strbuf_addf(&buf, "%s\n", sha1_to_hex(commit->object.sha1)); > > - filename = git_path("CHERRY_PICK_HEAD"); > + filename = git_path(pseudoref); > fd = open(filename, O_WRONLY | O_CREAT, 0666); > if (fd < 0) > die_errno(_("Could not open '%s' for writing"), filename); > @@ -597,7 +597,9 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts) > * write it at all. > */ > if (opts->action == CHERRY_PICK && !opts->no_commit && (res == 0 || res == 1)) > - write_cherry_pick_head(commit); > + write_cherry_pick_head(commit, "CHERRY_PICK_HEAD"); > + if (opts->action == REVERT && ((opts->no_commit && res == 0) || res == 1)) > + write_cherry_pick_head(commit, "REVERT_HEAD"); > > if (res) { > error(opts->action == REVERT Interesting. This additional symmetry will probably make life much easier for my pending "New Sequencer Workflow! v2" series. > diff --git a/t/t3507-cherry-pick-conflict.sh b/t/t3507-cherry-pick-conflict.sh > index cb45574a..ee1659c1 100755 > --- a/t/t3507-cherry-pick-conflict.sh > +++ b/t/t3507-cherry-pick-conflict.sh > [...] And some tests. Nice. Thanks. -- Ram -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html