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

Merging in Subversion 1.5 (was: Re: Using git to track my PhD thesis, couple of questions)

From
Jakub Narebski <jnareb@gmail.com>
Date
Aug 28, 2009, 15:12 UTC
Message-ID
<m3ocq0km5m.fsf_-_@localhost.localdomain>
In-Reply-To
<4A97E1B1.7090107@gmx.de>
Matthias Andree <matthias.andree@gmx.de> writes:
Show 19 quoted lines
> Matthieu Moy schrieb:
>> seanh <seanh.nospam@gmail.com> writes:
>> 
>>> In response to Matthieu and Paolo, I'm not sure I understand the git 
>>> internals involved in the discussion around merge --squash, I had a 
>>> feeling this would produce a 'merge' that git in some sense would 'not 
>>> know about',
>> 
>> Yes, that's it. Git does a merge, and immediately forgets it was a
>> merge. The consequence is when you merge again later, Git will not be
>> able to use the merge information to be clever about merging. Somehow,
>> Git will be as bad as SVN for merging if you don't know what you're
>> doing ;-).
> 
> To be fair, SVN versions 1.5 and newer can track merges. If the
> repository predates 1.5, it has to be updated on the server side
> (see the release notes for details). It just tracks which revisions
> have been merged and which not, for further details, see the svn
> book. (http://svnbook.red-bean.com/ IIRC)
>From what I understand (from what I have read, and browsed, and

lurged, and noticed) is that Subversion 1.5+ does merge tracking, but in very different way that in Git:

 * the svn:mergeinfo is client-side property; if I understand
   correctly this would help you in repeated merges, but not anyone
   other
 * svn:mergeinfo contains _per-file_ merge info, so it is much, much
   more "chatty" than Git multiple parents.  This might be more
   powerfull approach, in the same sense that more advanced merge
   strategies that 3-way merge were more powerfull -- but 3-way merge
   is best because it is simple (and either it is simple that 3-way
   merge is enough, or complicated so manual intervention is required).
 * You have to explicitely enable using svn:mergeinfo in log and blame
 * The command to merge trunk into branch is different from command to
   merge branch into trunk.

Also IIRC there is warning (well, at least there was in Subversion 1.5 release notes) that merge tracking doesn't work entirely correctly in the face of criss-cross merges (multiple merge bases) and renaming (although I do hope that they fixed problem with silent corruption if there is rename during merge).

-- 
Jakub Narebski

Git User's Survey 2009: http://tinyurl.com/GitSurvey2009
Previous: Matthias AndreeNext: Avery Pennarun
Message 9 of 23 in “Using git to track my PhD thesis, couple of questions”
  1. seanhAug 27, 2009
  2. Sverre RabbelierAug 27, 2009
  3. Matthieu MoyAug 27, 2009
  4. Paolo BonziniAug 28, 2009
  5. Matthieu MoyAug 28, 2009
  6. seanhAug 28, 2009
  7. Matthieu MoyAug 28, 2009
  8. Matthias AndreeAug 28, 2009
  9. Merging in Subversion 1.5 (was: Re: Using git to track my PhD thesis, couple of questions)Jakub Narebski, Aug 28, 2009
  10. Avery PennarunAug 28, 2009
  11. Matthias AndreeAug 28, 2009
  12. Jakub NarebskiAug 28, 2009
  13. Matthias AndreeAug 28, 2009
  14. Avery PennarunAug 28, 2009
  15. Sam VilainAug 30, 2009
  16. Dmitry PotapovAug 31, 2009
  17. david@lang.hmAug 28, 2009
  18. Paolo BonziniAug 28, 2009
  19. demerphqAug 28, 2009
  20. david@lang.hmAug 28, 2009
  21. demerphqAug 28, 2009
  22. Junio C HamanoAug 27, 2009
  23. demerphqAug 27, 2009

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.