Mercurial > hg > mercurial-crew-with-dirclash
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) |