Re: [PATCH] builtin-commit: avoid always using reduce_heads()
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Sep 26, 2008, 15:52 UTC
- Message-ID
- <20080926155204.GD17584@spearce.org>
- In-Reply-To
- <1222442432-7430-1-git-send-email-vmiklos@frugalware.org>
Miklos Vajna <vmiklos@frugalware.org> wrote:
> In case git merge --no-ff is used with --no-commit or we have a > conflict, write info about if fast forwards are allowed or not to > $GIT_DIR/MERGE_MODE.
Show 16 quoted lines
> diff --git a/builtin-commit.c b/builtin-commit.c
> index 55e1087..aac5cb4 100644
> --- a/builtin-commit.c
> +++ b/builtin-commit.c
> @@ -988,7 +990,18 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
> reflog_msg = "commit";
> pptr = &commit_list_insert(lookup_commit(head_sha1), pptr)->next;
> }
> - parents = reduce_heads(parents);
> + strbuf_reset(&sb);
> + if (!stat(git_path("MERGE_MODE"), &statbuf)) {
> + if (strbuf_read_file(&sb, git_path("MERGE_MODE"), 0) < 0)
> + die("could not read MERGE_MODE: %s", strerror(errno));
> + printf("debug, contents of buf: '%s'\n",sb.buf);
> + if (!strcmp(sb.buf, "deny_fast_forward")) {
> + printf("debug, deny fast forward\n");Left over debugging.
Show 14 quoted lines
> diff --git a/builtin-merge.c b/builtin-merge.c
> index 5c65a58..973b167 100644
> --- a/builtin-merge.c
> +++ b/builtin-merge.c
> @@ -1210,6 +1210,15 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
> merge_msg.len)
> die("Could not write to %s", git_path("MERGE_MSG"));
> close(fd);
> + fd = open(git_path("MERGE_MODE"), O_WRONLY | O_CREAT, 0666);
> + if (fd < 0)
> + die("Could open %s for writing", git_path("MERGE_MODE"));
> + strbuf_reset(&buf);
> + if (!allow_fast_forward)
> + strbuf_addf(&buf, "deny_fast_forward");I wonder if the option in the file shouldn't be more related to the merge command line option. Its --no-ff to the user. Maybe we should call it "no-ff" here? Or "no-fast-forward" if we want to go with a longer name that is less likely to be ambiguous in the future?
-- Shawn.