[Svnmerge] Log of merges
Giovanni Bajo
rasky at develer.com
Fri Nov 4 14:18:49 PST 2005
Blair Zajac <blair at orcaware.com> wrote:
>> With CVS, you could answer this with things liks "cvs
>> diff -rMYBRANCH_MERGE_20051022 foo.c", and "cvs up
>> -rMYBRANCH_MERGE_20051014 foo.c". You can almost do the same if you
>> use multiple merge tags with SVN (the required command line is much
>> longer, and this is being discussed right now in the dev subversion
>> mailing list). With svnmerge, one has to manually inspect the full
>> log of the branch to find the wanted revision numbers, and use those
>> numbers. This is much more burdesome, especially if compared to a
>> "svn ls" to get the merge tag names.
>
> Agreed, that is harder with svn.
>
> Do you have the subjet line for the thread discussing this issue on
> the mailing list or link to the thread.
See the thread "auto-subst of repository roots" currently ongoing. Part of the
issue could be solved with some syntacit sugar to not repeat the root of the
repository on the command line (eg. +/trunk/foo.c). But the real question is
that even a command like: "svn
diff -r+/branches/mybranch/foo/bar/baz/clue/sit.c foo/bar/baz/clue/sit.c" is
just too long. Something like "svn diff -r B#mybranch foo/bar/baz/clue/sit.c"
or other similar proposals would be really welcome.
>> This is why I was proposing "svnmerge log": we do the tedious work
>> of finding out the merges, and show those.
>
> I do think having a command that would tell you the commits that
> svnmerge generated would be useful.
OK, then we agree. That's what I call "svnmerge log", and that's what I was
discussing of in my message.
> This does get into the problem
> of how to get that easily into svn, with the fact that the revision
> svnmerge gets isn't known until the commit happens.
I don't think this as a problem. If we had "svn log --props ." which logged
only commits affecting the properties of the specified file/directory, it would
be trivial to implement "svnmerge log".
> Maybe there should be a hidden .svnmerge-data file which has
> svn:keywords set to Revision and every commit through svnmerge
> changes the file slightly. Also, when svnmerge runs, it pulls the
> revision out of that file and dumps it into a svnmerge property on
> the directory. So when you ask for merged revisions, you check the
> property and the one file.
This is another possible implementation (#5, and keep going... :)). I don't
specifically like the idea of adding secret/hidden file to the repository
though (for once, it would probably be merged into head when the development
branch is closed).
Giovanni Bajo
More information about the Svnmerge
mailing list