--- a/hgext/convert/subversion.py Tue Mar 15 10:39:19 2011 +0100
+++ b/hgext/convert/subversion.py Wed Mar 16 17:34:13 2011 +0100
@@ -866,7 +866,9 @@
pool = Pool()
rpath = '/'.join([self.baseurl, urllib.quote(path)]).strip('/')
entries = svn.client.ls(rpath, optrev(revnum), True, self.ctx, pool)
- return ((path + '/' + p) for p, e in entries.iteritems()
+ if path:
+ path += '/'
+ return ((path + p) for p, e in entries.iteritems()
if e.kind == svn.core.svn_node_file)
def getrelpath(self, path, module=None):
--- a/hgext/relink.py Tue Mar 15 10:39:19 2011 +0100
+++ b/hgext/relink.py Wed Mar 16 17:34:13 2011 +0100
@@ -42,8 +42,12 @@
hg.remoteui(repo, opts),
ui.expandpath(origin or 'default-relink', origin or 'default'))
if not src.local():
- raise util.Abort('must specify local origin repository')
+ raise util.Abort(_('must specify local origin repository'))
ui.status(_('relinking %s to %s\n') % (src.store.path, repo.store.path))
+ if repo.root == src.root:
+ ui.status(_('there is nothing to relink\n'))
+ return
+
locallock = repo.lock()
try:
remotelock = src.lock()
--- a/tests/test-relink.t Tue Mar 15 10:39:19 2011 +0100
+++ b/tests/test-relink.t Wed Mar 16 17:34:13 2011 +0100
@@ -31,6 +31,12 @@
$ echo a >> b
$ hg ci -Am changefiles
+don't sit forever trying to double-lock the source repo
+
+ $ hg relink .
+ relinking $TESTTMP/repo/.hg/store to $TESTTMP/repo/.hg/store
+ there is nothing to relink
+
Test files are read in binary mode
$ python -c "file('.hg/store/data/dummy.i', 'wb').write('a\r\nb\n')"