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