Mercurial > hg > mercurial-crew-with-dirclash
annotate convert-repo @ 293:11d64332a1cb
hg help improvements
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg help improvements
Handle showing option help in commands.py rather than fancyopts
Show getopt exception string if argument parsing fails and call help
Show help for invalid arguments
Show exception string for invalid arguments with -d
manifest hash: 9bd3e908cc080c21bb5e85822f675c35a8396fef
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCp8GNywK+sNU5EO8RAoJfAJ4pB0I4xH4CTuGmAwArfBzIsT9plACeImkm
4ml9x78fmPgKpDYIr/qhfVY=
=YeZv
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Wed, 08 Jun 2005 20:11:57 -0800 |
parents | 2c80f6f8fc08 |
children |
rev | line source |
---|---|
111
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
1 #!/usr/bin/env python |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
2 import sys, os, sha, base64, re |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
3 from mercurial import hg |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
4 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
5 ui = hg.ui() |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
6 repo = hg.repository(ui=ui) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
7 known = {} |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
8 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
9 def encodepath(path): |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
10 s = sha.sha(path).digest() |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
11 s = base64.encodestring(s)[:-3] |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
12 s = re.sub("\+", "%", s) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
13 s = re.sub("/", "_", s) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
14 return s |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
15 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
16 for i in range(repo.changelog.count()): |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
17 n = repo.changelog.node(i) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
18 changes = repo.changelog.read(n) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
19 for f in changes[3]: |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
20 known[f] = 1 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
21 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
22 try: |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
23 os.mkdir(".hg/data-new") |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
24 except: |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
25 pass |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
26 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
27 files = known.keys() |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
28 files.sort() |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
29 for f in files: |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
30 pb = ".hg/data/" + encodepath(f) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
31 pn = ".hg/data-new/" + f |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
32 print f |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
33 try: |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
34 file(pn+".i", "w").write(file(pb+"i").read()) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
35 except: |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
36 os.makedirs(os.path.dirname(pn)) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
37 # we actually copy the files to get nice disk layout |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
38 file(pn+".i", "w").write(file(pb+"i").read()) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
39 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
40 file(pn+".d", "w").write(file(pb).read()) |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
41 |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
42 os.rename(".hg/data", ".hg/data-old") |
2c80f6f8fc08
Add script for doing conversion of repo from oldstyle to newstyle
mpm@selenic.com
parents:
diff
changeset
|
43 os.rename(".hg/data-new", ".hg/data") |