Mercurial > hg > mercurial-crew-with-dirclash
annotate rewrite-log @ 523:003df62ae39f
[PATCH] Force "hg clone" to always create a new directory
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Force "hg clone" to always create a new directory
From: Bryan O'Sullivan <bos@serpentine.com>
I just screwed myself by typing "hg clone foo" without specifying a
destination directory, and after I was done mopping up the mess,
concluded that this is a dangerous mode of operation that has no
practical value.
I've thus modified the clone command so that it always creates a
destination directory. If none is specified, the destination is taken
as the basename of the source.
hg clone foo
-> error, because foo already exists
hg clone http://www.selenic.com/hg
-> new repo, named hg
hg clone ../bar
-> new repo, named bar
manifest hash: f21ed8f805a60c1326d99220772e1574b0870d6c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwxsIywK+sNU5EO8RAgooAKC3IL6vKyADb9s2qqqi4GMw2Z7asACbBtE/
TvPgwGtIiB2GC+N+V7r1VpI=
=uTcK
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Wed, 29 Jun 2005 14:04:56 -0800 |
parents | 5f471a75d607 |
children |
rev | line source |
---|---|
141 | 1 #!/usr/bin/env python |
2 import sys, os | |
3 from mercurial import hg | |
4 | |
5 f = sys.argv[1] | |
6 | |
7 r1 = hg.revlog(open, f + ".i", f + ".d") | |
8 r2 = hg.revlog(open, f + ".i2", f + ".d2") | |
9 | |
10 tr = hg.transaction(open, "journal") | |
11 | |
12 for i in xrange(r1.count()): | |
13 n = r1.node(i) | |
14 p1, p2 = r1.parents(n) | |
15 l = r1.linkrev(n) | |
16 t = r1.revision(n) | |
17 n2 = r2.addrevision(t, tr, l, p1, p2) | |
18 tr.close() | |
19 | |
20 os.rename(f + ".i", f + ".i.old") | |
21 os.rename(f + ".d", f + ".d.old") | |
22 os.rename(f + ".i2", f + ".i") | |
23 os.rename(f + ".d2", f + ".d") |