mercurial/repair.py
changeset 25340 28800ab40395
parent 25300 678d0bfdd31a
child 25404 ff955e7b1085
equal deleted inserted replaced
25339:c50655b9c856 25340:28800ab40395
     5 #
     5 #
     6 # This software may be used and distributed according to the terms of the
     6 # This software may be used and distributed according to the terms of the
     7 # GNU General Public License version 2 or any later version.
     7 # GNU General Public License version 2 or any later version.
     8 
     8 
     9 from mercurial import changegroup, exchange, util, bundle2
     9 from mercurial import changegroup, exchange, util, bundle2
    10 from mercurial.node import short, hex
    10 from mercurial.node import short
    11 from mercurial.i18n import _
    11 from mercurial.i18n import _
    12 import errno
    12 import errno
    13 
    13 
    14 def _bundle(repo, bases, heads, node, suffix, compress=True):
    14 def _bundle(repo, bases, heads, node, suffix, compress=True):
    15     """create a bundle with the specified revisions as a backup"""
    15     """create a bundle with the specified revisions as a backup"""
    32     vfs = repo.vfs
    32     vfs = repo.vfs
    33     if not vfs.isdir(backupdir):
    33     if not vfs.isdir(backupdir):
    34         vfs.mkdir(backupdir)
    34         vfs.mkdir(backupdir)
    35 
    35 
    36     # Include a hash of all the nodes in the filename for uniqueness
    36     # Include a hash of all the nodes in the filename for uniqueness
    37     hexbases = (hex(n) for n in bases)
    37     allcommits = repo.set('%ln::%ln', bases, heads)
    38     hexheads = (hex(n) for n in heads)
       
    39     allcommits = repo.set('%ls::%ls', hexbases, hexheads)
       
    40     allhashes = sorted(c.hex() for c in allcommits)
    38     allhashes = sorted(c.hex() for c in allcommits)
    41     totalhash = util.sha1(''.join(allhashes)).hexdigest()
    39     totalhash = util.sha1(''.join(allhashes)).hexdigest()
    42     name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix)
    40     name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix)
    43 
    41 
    44     if usebundle2:
    42     if usebundle2: