[PATCH 2 of 3] rollback: add dry-run argument, emit transaction description

Steve Borho steve at borho.org
Sat Apr 10 14:52:36 CDT 2010


On Sat, Apr 10, 2010 at 1:14 AM, Henrik Stuart <hg at hstuart.dk> wrote:
> On 10-04-2010 00:33, Steve Borho wrote:
>> # HG changeset patch
>> # User Steve Borho <steve at borho.org>
>> # Date 1270851817 18000
>> # Node ID a886b3aa478a0c9b6b4b57356cd66d4aa0be1378
>> # Parent  b4e5330e8a450e659aeae5de3f4cbd0783056835
>> rollback: add dry-run argument, emit transaction description
>>
>> diff -r b4e5330e8a45 -r a886b3aa478a mercurial/commands.py
>> --- a/mercurial/commands.py   Fri Apr 09 17:23:35 2010 -0500
>> +++ b/mercurial/commands.py   Fri Apr 09 17:23:37 2010 -0500
>> @@ -2854,7 +2854,7 @@
>>      finally:
>>          wlock.release()
>>
>> -def rollback(ui, repo):
>> +def rollback(ui, repo, **opts):
>>      """roll back the last transaction
>>
>>      This command should be used with care. There is only one level of
>> @@ -2881,7 +2881,7 @@
>>      repository; for example an in-progress pull from the repository
>>      may fail if a rollback is performed.
>>      """
>> -    repo.rollback()
>> +    repo.rollback(opts.get('dry_run'))
>>
>>  def root(ui, repo):
>>      """print the root (top) of the current working directory
>> @@ -3821,7 +3821,7 @@
>>            ('', 'no-backup', None, _('do not save backup copies of files')),
>>           ] + walkopts + dryrunopts,
>>           _('[OPTION]... [-r REV] [NAME]...')),
>> -    "rollback": (rollback, []),
>> +    "rollback": (rollback, dryrunopts),
>>      "root": (root, []),
>>      "^serve":
>>          (serve,
>> diff -r b4e5330e8a45 -r a886b3aa478a mercurial/localrepo.py
>> --- a/mercurial/localrepo.py  Fri Apr 09 17:23:35 2010 -0500
>> +++ b/mercurial/localrepo.py  Fri Apr 09 17:23:37 2010 -0500
>> @@ -599,13 +599,21 @@
>>          finally:
>>              lock.release()
>>
>> -    def rollback(self):
>> +    def rollback(self, dryrun=False):
>>          wlock = lock = None
>>          try:
>>              wlock = self.wlock()
>>              lock = self.lock()
>>              if os.path.exists(self.sjoin("undo")):
>> -                self.ui.status(_("rolling back last transaction\n"))
>> +                try:
>> +                    contents = self.opener("undo.desc", "r").read()
>> +                    rev, name = contents.split(',',1)
>> +                    desc = "rolling back %s to revision %s\n" % (name, rev)
>> +                except (IOError, IndexError):
>> +                    desc = _("rolling back unknown transaction\n")
>> +                self.ui.status(desc)
>> +                if dryrun:
>> +                    return
>
> Is it on purpose that the first desc line isn't marked translatable?

Nope, I'll fix that shortly.

--
Steve Borho


More information about the Mercurial-devel mailing list