Re: [PATCH 12/13] Build in merge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 25, 2008 at 06:22:45PM +0200, Olivier Marin <dkr+ml.git@xxxxxxx> wrote:
> > +	if (new_head && show_diffstat) {
> > +		diff_setup(&opts);
> > +		opts.output_format |=
> > +			DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
> > +		opts.detect_rename = DIFF_DETECT_RENAME;
> 
> You probably want to add DIFF_OPT_SET(&opts, COLOR_DIFF) to have a nice colored diff
> like the original script.

That would always turn colors on.

This should respect diff.color:

diff --git a/builtin-merge.c b/builtin-merge.c
index 66189d2..c2a32ee 100644
--- a/builtin-merge.c
+++ b/builtin-merge.c
@@ -331,6 +331,8 @@ static void finish(const unsigned char *new_head, const char *msg)
 		opts.output_format |=
 			DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
 		opts.detect_rename = DIFF_DETECT_RENAME;
+		if (diff_use_color_default > 0)
+			DIFF_OPT_SET(&opts, COLOR_DIFF);
 		diff_tree_sha1(head, new_head, "", &opts);
 		diffcore_std(&opts);
 		diff_flush(&opts);
@@ -693,6 +695,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
 	}
 
 	git_config(git_merge_config, NULL);
+	git_config(git_diff_ui_config, NULL);
 
 	argc = parse_options(argc, argv, builtin_merge_options,
 			builtin_merge_usage, 0);

> > +int cmd_merge(int argc, const char **argv, const char *prefix)
> > +{
> 
> [...]
> 
> > +	} else if (allow_fast_forward && !remoteheads->next &&
> > +		!hashcmp(common->item->object.sha1, head)) {
> > +		/* Again the most common case of merging one remote. */
> > +		struct strbuf msg;
> > +		struct object *o;
> > +
> > +		printf("Updating %s..%s\n",
> > +			find_unique_abbrev(head, DEFAULT_ABBREV),
> > +			find_unique_abbrev(remoteheads->item->object.sha1,
> > +			DEFAULT_ABBREV));
> 
> Here, the second call to find_unique_abbrev() will overwrite the previous returned
> value because this function return a pointer to a static buffer.

This should fix it:

diff --git a/builtin-merge.c b/builtin-merge.c
index cc04d01..77de9e8 100644
--- a/builtin-merge.c
+++ b/builtin-merge.c
@@ -836,9 +836,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
 		/* Again the most common case of merging one remote. */
 		struct strbuf msg;
 		struct object *o;
+		char hex[41];
+
+		memcpy(hex, find_unique_abbrev(head, DEFAULT_ABBREV), 41);
 
 		printf("Updating %s..%s\n",
-			find_unique_abbrev(head, DEFAULT_ABBREV),
+			hex,
 			find_unique_abbrev(remoteheads->item->object.sha1,
 			DEFAULT_ABBREV));
 		refresh_cache(REFRESH_QUIET);

I pushed both to my working branch and I'll send proper patches to this
list among with other small changes soon.

Thanks!

Attachment: pgprXyf6isoPU.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux