comparison hgext/mq.py @ 4701:d2da07fb5727

strip: simplify bundle helper
author Matt Mackall <mpm@selenic.com>
date Mon, 25 Jun 2007 01:22:45 -0500
parents a2e025fcd256
children 18e91c9def0c
comparison
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)