diff --git a/hgext/convert/monotone.py b/hgext/convert/monotone.py --- a/hgext/convert/monotone.py +++ b/hgext/convert/monotone.py @@ -111,9 +111,8 @@ class monotone_source(converter_source, def mtnrenamefiles(self, files, fromdir, todir): renamed = {} for tofile in files: - suffix = tofile.lstrip(todir) - if todir + suffix == tofile: - renamed[tofile] = (fromdir + suffix).lstrip("/") + if tofile.startswith(todir): + renamed[tofile] = fromdir + tofile[len(todir):] return renamed diff --git a/tests/test-convert-mtn-rename-directory.out b/tests/test-convert-mtn-rename-directory.out new file mode 100644 --- /dev/null +++ b/tests/test-convert-mtn-rename-directory.out @@ -0,0 +1,23 @@ +% tedious monotone keys configuration +% create monotone repository +mtn: adding dir1 to workspace manifest +mtn: adding dir1/subdir1 to workspace manifest +mtn: adding dir1/subdir1/file1 to workspace manifest +mtn: beginning commit on branch 'com.selenic.test' +mtn: committed revision 5ed13ff5582d8d1e319f079b694a37d2b45edfc8 +% rename directory +mtn: skipping dir1, already accounted for in workspace +mtn: renaming dir1/subdir1 to dir1/subdir2 in workspace manifest +mtn: beginning commit on branch 'com.selenic.test' +mtn: committed revision 985204142a822b22ee86b509d61f3c5ab6857d2b +% convert +assuming destination repo.mtn-hg +initializing destination repo.mtn-hg repository +scanning source... +sorting... +converting... +1 initialize +0 rename +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% manifest +dir1/subdir2/file1