[PATCH 2 of 3 v4] strip: strip a list of bookmarks

Shubhanshu Agrawal agrawal.shubhanshu at gmail.com
Wed Nov 18 10:58:40 CST 2015


Hi,

Thanks for the feedback, have updated and resent the patch.
re: pull and rebase: I cloned again and added the changes there, the
changes are based on bookmark '@', the node-id for base revision is the
same though.
Also by mistake all my previous mails(patches) were also sent so there
would be multiple mails(sorry for this).

Cheers
Shubhanshu

On Wed, Nov 18, 2015 at 6:13 AM, Pierre-Yves David <
pierre-yves.david at ens-lyon.org> wrote:

>
>
> On 11/16/2015 12:52 PM, Shubhanshu Agrawal wrote:
>
>> # HG changeset patch
>> # User Shubhanshu Agrawal <agrawal.shubhanshu at gmail.com>
>> # Date 1447601624 -19800
>> #      Sun Nov 15 21:03:44 2015 +0530
>> # Node ID bf69fb14d9bc27092c45899218589e372b396011
>> # Parent  0d18b7f577b8d8a353c668c8b9d93cf4cfd5b129
>> strip: strip a list of bookmarks
>>
>
> This patches does not apply anymore. Can you rebase and resend?
>
> (another comment below)
>
> Currently strip works with a single bookmark,
>> the changes in this patch modifies the strip module
>> to work with a list of bookmarks
>>
>> Building on this we can take a list of bookmarks as input
>> and remove all of them in a single go
>>
>> diff --git a/hgext/strip.py b/hgext/strip.py
>> --- a/hgext/strip.py
>> +++ b/hgext/strip.py
>> @@ -44,7 +44,7 @@
>>               raise error.Abort(_("local changed subrepos found" +
>> excsuffix))
>>       return s
>>
>> -def strip(ui, repo, revs, update=True, backup=True, force=None,
>> bookmark=None):
>> +def strip(ui, repo, revs, update=True, backup=True, force=None,
>> bookmarks=None):
>>       wlock = lock = None
>>       try:
>>           wlock = repo.wlock()
>> @@ -63,12 +63,14 @@
>>           repair.strip(ui, repo, revs, backup)
>>
>>           repomarks = repo._bookmarks
>> -        if bookmark:
>> -            if bookmark == repo._activebookmark:
>> +        if bookmarks:
>> +            if repo._activebookmark in bookmarks:
>>                   bookmarksmod.deactivate(repo)
>> -            del repomarks[bookmark]
>> +            for bookmark in bookmarks:
>> +                del repomarks[bookmark]
>>               repomarks.write()
>> -            ui.write(_("bookmark '%s' deleted\n") % bookmark)
>> +            for bookmark in bookmarks:
>> +                ui.write(_("bookmark '%s' deleted\n") % bookmark)
>>       finally:
>>           release(lock, wlock)
>>
>> @@ -127,27 +129,31 @@
>>
>>       wlock = repo.wlock()
>>       try:
>> -        bookmark = opts.get('bookmark')
>> -        if bookmark:
>> +        bookmarks = None
>> +        if opts.get('bookmark'):
>> +            bookmarks = set([opts.get('bookmark')])
>> +        if bookmarks:
>>               repomarks = repo._bookmarks
>> -            if bookmark not in repomarks:
>> -                raise error.Abort(_("bookmark '%s' not found") %
>> bookmark)
>> +            if not bookmarks.issubset(repomarks):
>> +                raise error.Abort(_("bookmark '%s' not found") %
>> +                    ','.join(list(bookmarks - set(repomarks.keys()))))
>>
>
> It would be better to have the list sorted to make sure the output is
> stable.
>
> --
> Pierre-Yves David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20151118/6d028448/attachment.html>


More information about the Mercurial-devel mailing list