You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by John Belmonte <jo...@neggie.net> on 2005/01/24 01:13:21 UTC

[PATCH] svnmerge: use head paths instead of labels

Attached is a patch to svnmerge which has it use explicit paths, both on 
the command line and in the metadata, to identify the "head" (source) 
directories.  Previously, these were indirected with user-defined 
labels, which precluded various kinds of automation, such as integration 
without the need for prior initialization.  Graceful upgrades are 
provided for previous metadata schemes.

The "head" argument of init is now optional.  By default, init will take 
the head path and revision range from the branch's copyfrom info.  This 
covers the common case where you just want to track changes to the 
parent of a branch created with "svn cp".

I'm not really happy with "head" being an option for avail and merge, 
but I assume existing svnmerge users want this.  I think both "head" and 
"branch-dir" should be mandatory on the command line, and that these 
terms should be replaced with "src" and "dest".  The motivation is to 
more closely mimmic the familiar semantics of a copy operation (similar 
to "p4 integrate").

Given this patch, some ideas for the future:

     * do not require init command before using avail/merge.  If no
       svnmerge info exists, it defaults to the branch's copyfrom info.
       When there is no revision info for the given "head", all
       available revisions will be merged.

     * for avail and merge commands, use not only the revision info on
       the "branch" dir, but also what's on the "head".  For example, if
       the "head" directory already has revisions 500-600 of the "branch"
       dir integrated, do not consider those revisions.  This will make
       bidirectional integrations between branches less cumbersome.

     * implement "alist" command as I described in the "svn ancestorlist"
       post to subversion-dev

-John