Mercurial > hg > mercurial-crew-with-dirclash
view convert-repo @ 245:fef0f8e041aa
big heap of command clean-up work
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
big heap of command clean-up work
Migrate add, forget, remove, commit, diff, addremove, tip, log,
recover, and serve.
Fix up filterfiles, relfilter, and relpath to be a bit more bulletproof
Alphabetize functions and the command table
Make everything in commands.py relative-path aware
manifest hash: f0856031a7be4e49289677b467f29bcf24ebce4a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCof6gywK+sNU5EO8RAoW1AJsHu8vchPSjls7wVbvsq/UKlGhqtgCgtnnl
xSBxyf/TEVWjHIk3uTa8WSE=
=YPMl
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Sat, 04 Jun 2005 11:18:56 -0800 |
parents | 2c80f6f8fc08 |
children |
line wrap: on
line source
#!/usr/bin/env python import sys, os, sha, base64, re from mercurial import hg ui = hg.ui() repo = hg.repository(ui=ui) known = {} def encodepath(path): s = sha.sha(path).digest() s = base64.encodestring(s)[:-3] s = re.sub("\+", "%", s) s = re.sub("/", "_", s) return s for i in range(repo.changelog.count()): n = repo.changelog.node(i) changes = repo.changelog.read(n) for f in changes[3]: known[f] = 1 try: os.mkdir(".hg/data-new") except: pass files = known.keys() files.sort() for f in files: pb = ".hg/data/" + encodepath(f) pn = ".hg/data-new/" + f print f try: file(pn+".i", "w").write(file(pb+"i").read()) except: os.makedirs(os.path.dirname(pn)) # we actually copy the files to get nice disk layout file(pn+".i", "w").write(file(pb+"i").read()) file(pn+".d", "w").write(file(pb).read()) os.rename(".hg/data", ".hg/data-old") os.rename(".hg/data-new", ".hg/data")