git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] git-merge-recursive-{ours,theirs}

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jun 21, 2008, 16:29 UTC
Message-ID
<alpine.DEB.1.00.0806211728090.6439@racer>
In-Reply-To
<7vy74z9l3l.fsf@gitster.siamese.dyndns.org>
Hi,
On Sat, 21 Jun 2008, Junio C Hamano wrote:
Show 25 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> >> @@ -1379,11 +1401,18 @@ int cmd_merge_recursive(int argc, const char **argv, const char *prefix)
> >>  	struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
> >>  	int index_fd;
> >>  
> >> +	merge_recursive_variants = 0;
> >>  	if (argv[0]) {
> >>  		int namelen = strlen(argv[0]);
> >>  		if (8 < namelen &&
> >>  		    !strcmp(argv[0] + namelen - 8, "-subtree"))
> >> -			subtree_merge = 1;
> >> +			merge_recursive_variants = MERGE_RECURSIVE_SUBTREE;
> >> +		else if (5 < namelen &&
> >> +			 !strcmp(argv[0] + namelen - 5, "-ours"))
> >> +			merge_recursive_variants = MERGE_RECURSIVE_OURS;
> >> +		else if (7 < namelen &&
> >> +			 !strcmp(argv[0] + namelen - 7, "-theirs"))
> >> +			merge_recursive_variants = MERGE_RECURSIVE_THEIRS;
> >
> > This just cries out loud for a new function suffixcmp().
> 
> Actually, I think "git-merge-recursive-theirs" is a mistake.  We should
> bite the bullet and give "git-merge" an ability to pass backend specific
> parameters to "git-merge-recursive".
Fair enough.
Show 16 quoted lines
> The new convention could be that anything that begins with -X is passed 
> to the backend.
> 
> E.g.
> 
> 	git merge -Xfavor=theirs foo
>         git merge -Xsubtree=/=gitk-git paulus
> 
> As you noticed already, subtree is just a funny optional behaviour
> attached to recursive, so are theirs and ours.  The above two would invoke
> git-merge-recursive like so:
> 
> 	git merge-recursive -Xfavor=theirs <base> -- HEAD MERGE_HEAD
> 	git merge-recursive -Xsubtree=/=gitk-git <base> -- HEAD MERGE_HEAD
> 
> We could even mix these two if we are ambitious.
Looks fine to me.  And much cleaner than the hardlinking.

Ciao, Dscho

Previous: Junio C HamanoNext: Jakub Narebski
Message 16 of 22 in “Guided merge with override”
  1. Geoff RussellJun 16, 2008
  2. Miklos VajnaJun 16, 2008
  3. Johannes SixtJun 16, 2008
  4. Miklos VajnaJun 16, 2008
  5. Sverre RabbelierJun 16, 2008
  6. Geoff RussellJun 16, 2008
  7. Junio C HamanoJun 17, 2008
  8. Johannes SchindelinJun 18, 2008
  9. Johannes SchindelinJun 18, 2008
  10. Junio C HamanoJun 18, 2008
  11. Johannes SchindelinJun 18, 2008
  12. 1/2 git-merge-file --ours, --theirsJunio C Hamano, Jun 20, 2008
  13. 2/2 git-merge-recursive-{ours,theirs}Junio C Hamano, Jun 20, 2008
  14. Johannes SchindelinJun 20, 2008
  15. Junio C HamanoJun 21, 2008
  16. Johannes SchindelinJun 21, 2008
  17. Jakub NarebskiJun 21, 2008
  18. Johannes SixtJun 17, 2008
  19. Sverre RabbelierJun 17, 2008
  20. Johannes SchindelinJun 17, 2008
  21. Sverre RabbelierJun 17, 2008
  22. Johannes SchindelinJun 17, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.