[SVNMERGE][PATCH] svnmerge rollback

Giovanni Bajo rasky at develer.com
Fri May 19 08:51:34 PDT 2006


Madan U Sreenivasan wrote:

>>> yes, it does... but wouldnt it make sense to say the rollback
>>> command failed instead of letting the user see a merge failure?
>>> Much more cleaner, I think.
>>
>> What happens, exactly, if you remove that test? What's the actual
>> output?
> [...]
>    File "/home/madan/wc/svnmerge/contrib/client-side/svnmerge.py",
> line 231, in launch
>      raise LaunchError(ret, cmd, out)
> LaunchError: (1, 'svn merge -r 13:1
> file:///tmp/__svnmerge_test/repo/trunk .', "svn: The location for
> 'file:///tmp/__svnmerge_test/repo/trunk' for revision 1 does not
> exist in the repository or refers to an unrelated object\n")

Ok, I now understand the problem: we record in the integrated rev property a
range starting from 1, instead of starting it at the revision the branch was
started.

OK to keep the patch as-is but a better plan is:

- Change "svnmerge init" so that it doesn't record an initial range of 1-REV
(where REV is the base rev for the branch), but just REV. After this, we can
always assume that the lowest-numbered revision in the revisionset of
integrated properties is the revision at which the branch was created (and
we can forbid it to be rolledback for instance).
- Change "svnmerge merge/rollback" so to ignore revisions before the
lowest-numbered revision in the integrated properties. This can be done
without having to query for the first revision of the branch.
- Remove get_created_rev() (as it's useless) and update all users ("svnmerge
integrated" for instance).
- Provide a simple upgrade path: if any svnmerge.py command is issued on a
working copy with a range starting at revision "1", update it to reflect the
new schema (find the created rev of the branch, and remove from the revision
set all the revisions before it).

This would allow svnmerge integrated and rollback to perform faster. Anyway,
it's a different patch, as I said. Your patch is OK as-is.
-- 
Giovanni Bajo




More information about the Svnmerge mailing list