[Svnmerge] Log of merges

Archie Cobbs archie at dellroad.org
Thu Nov 3 19:05:31 PST 2005


Giovanni Bajo wrote:
> Hello,
> 
> a GCC branch maintainer has asked me for a way to tell svnmerge "jump me back 3
> merges ago". While I believe that calling "svn up" is a bit too much for
> svnmerge, this request gave me an idea for a new feature: we could implement a
> "svnmerge log" command which shows the list of all merges happened in the
> branch. This would allow to easily implement the jump-back command as a
> wrapping script (or give the basis to code it within svnmerge, if we want it
> there). I'd first concentrate on getting the log, though.
> 
> I can think of three possible implementations:
> 
> 1) Filtering "svn log" looking for our own generated commit messages. Of
> course, this only works if the user uses our commit messages, and don't tweak
> them too much (some regexp will have to still match). I'm -0 on this.
> 
> 2) Inspecting the history of the svnmerge-integrated property (+1 in concept).
> I couldn't come up with a command line set of flags which would allow me to log
> only property changes. I could filter a verbose svn log, but I suspect it is
> going to be overkill for large branches (svn log doesn't even support -N for
> non-recursive).
> 
> 3) Adding a new svnmerge-history property which would just contain a list of
> the revisions at which the merge happened. With that revision list, we can then
> extract whichever information we want to display on screen. I'm +0 on this.
> 
> Now about the interface. I'd expect a plain "svnmerge log" to behave exactly
> like "svn log", but just shows the log of the merges. Then I'd like to have:
> 
> - an option for "show me only the log header". -q [--quiet], probably.
> - an option for "show me only the revision numbers". -qq.
> - an option for "show me up to three merges ago". --limit should do it (just
> like 'svn log').

Hmm.. this sounds like a potential over-engineered solution.

First of all, what does "jump me back 3 merges ago" mean? There
are a couple of interpretations.

If the desire is to revert the past N merges (but not any intervening
non-svnmerge commits), my first thought would be to use the normal svn 
mechanism for this: review the log, then "svn merge" the reversed
changes. Note that this will revert the svnmerge-integrated property
as well.

If the desire is simply to update to a prior revision, "svn up -r ..."
works just fine...

-Archie

__________________________________________________________________________
Archie Cobbs      *        CTO, Awarix        *      http://www.awarix.com



More information about the Svnmerge mailing list