[SVNMERGE][PATCH] svnmerge rollback
Giovanni Bajo
rasky at develer.com
Wed May 17 12:18:50 PDT 2006
David James wrote:
> Hi Madan,
>
> This patch looks good except for one small problem in the test suite:
> self.launch("touch newfile")
>
> 'touch' isn't available on Windows. So we should do this instead:
> open("newfile","w").close()
>
> Other than this issue, the patch looks excellent. I am very impressed
> with the extensive suite of new tests.
>
> Since this is a major new feature, I'd like to wait a few days to see
> if anyone else has feedback before we commit. Giovanni?
The patch is absolutely wonderful and clean indeed. Many thanks Madan!
I have just a couple of very minor comments, as I wasn't able to spot any
real problem:
>>+ # Check branch directory is ready for being modified
>>+ check_dir_clean(branch_dir)
>>+
>>+ # Make sure the revision arguments are present
>>+ if not opts["revision"]:
>>+ error("The '-r' option is mandatory for rollback")
Can you check for the revision argument *before* checking for the clean wc?
I guess we should always attempt to detect command line errors earlier later
than later.
>>+ # At which revision was the dest created?
>>+ oldest_src_rev = get_created_rev(opts["head-url"])
>>+ src_pre_exist_range = RevisionSet("1-%d" % oldest_src_rev)
Is this test really necessary? Doesn't the merge command just fail if you
try reverting a revision at which the URL did not exist?
>> + if len(revs) == 0:
if revs:
>>+ # make sure theres some revision to rollback
>>+ if len(revs) == 0:
>>+ warn("Nothing to rollback in revision range r%s" %
opts["revision"])
>>+ return
I'd rather this be a report for now, and then have a separate commit pass
which introduces warn() and uses it consistenly across the program (once the
semantic is clear).
>> + if len(revs & src_pre_exist_range) != 0:
if revs & src_pre_exist_range:
After these things are sorted out, you get my +1 :)
--
Giovanni Bajo
More information about the Svnmerge
mailing list