hgext/mq.py
changeset 4701 d2da07fb5727
parent 4700 a2e025fcd256
child 4702 18e91c9def0c
equal deleted inserted replaced
4700:a2e025fcd256 4701:d2da07fb5727
    58                 break
    58                 break
    59             for pn in chlog.parents(n):
    59             for pn in chlog.parents(n):
    60                 p[pn] = 1
    60                 p[pn] = 1
    61         return h
    61         return h
    62 
    62 
    63     def bundle(cg):
    63     def bundle(repo, bases, heads, rev, suffix):
       
    64         cg = repo.changegroupsubset(bases, heads, 'strip')
    64         backupdir = repo.join("strip-backup")
    65         backupdir = repo.join("strip-backup")
    65         if not os.path.isdir(backupdir):
    66         if not os.path.isdir(backupdir):
    66             os.mkdir(backupdir)
    67             os.mkdir(backupdir)
    67         name = os.path.join(backupdir, "%s" % revlog.short(rev))
    68         name = os.path.join(backupdir, "%s-%s" % (revlog.short(rev), suffix))
    68         name = savename(name)
       
    69         ui.warn("saving bundle to %s\n" % name)
    69         ui.warn("saving bundle to %s\n" % name)
    70         return changegroup.writebundle(cg, name, "HG10BZ")
    70         return changegroup.writebundle(cg, name, "HG10BZ")
    71 
    71 
    72     def stripall(revnum):
    72     def stripall(revnum):
    73         mm = repo.changectx(rev).manifest()
    73         mm = repo.changectx(rev).manifest()
   139                 if chlog.rev(x) > revnum:
   139                 if chlog.rev(x) > revnum:
   140                     savebases[x] = 1
   140                     savebases[x] = 1
   141 
   141 
   142     # create a changegroup for all the branches we need to keep
   142     # create a changegroup for all the branches we need to keep
   143     if backup == "all":
   143     if backup == "all":
   144         backupch = repo.changegroupsubset([rev], chlog.heads(), 'strip')
   144         bundle(repo, [rev], chlog.heads(), rev, 'backup')
   145         bundle(backupch)
       
   146     if saveheads:
   145     if saveheads:
   147         backupch = repo.changegroupsubset(savebases.keys(), saveheads, 'strip')
   146         chgrpfile = bundle(repo, savebases.keys(), saveheads, rev, 'temp')
   148         chgrpfile = bundle(backupch)
       
   149 
   147 
   150     stripall(revnum)
   148     stripall(revnum)
   151 
   149 
   152     change = chlog.read(rev)
   150     change = chlog.read(rev)
   153     chlog.strip(revnum, revnum)
   151     chlog.strip(revnum, revnum)