# HG changeset patch # User Matt Mackall # Date 1206375177 18000 # Node ID f0f830114a9b0de0bcfbd1bd33052262af1f9bbd # Parent cdc458b12f0f3f18e79ba37d5ab277fc681061c6# Parent 2cf67d007f4115db412c8cb58a57233f81bc654b Merge with crew diff -r cdc458b12f0f -r f0f830114a9b hgext/convert/monotone.py --- a/hgext/convert/monotone.py Mon Mar 24 10:01:05 2008 -0500 +++ b/hgext/convert/monotone.py Mon Mar 24 11:12:57 2008 -0500 @@ -26,6 +26,7 @@ self.add_file_re = re.compile(space + "add_file" + name + "content" + revision) self.patch_re = re.compile(space + "patch" + name + "from" + revision + "to" + revision) self.rename_re = re.compile(space + "rename" + name + "to" + name) + self.delete_re = re.compile(space + "delete" + name) self.tag_re = re.compile(space + "tag" + name + "revision" + revision) self.cert_re = re.compile(lines + space + "name" + name + "value" + value) @@ -137,6 +138,9 @@ # Delete/rename is handled later when the convert engine # discovers an IOError exception from getfile, # but only if we add the "from" file to the list of changes. + m = self.delete_re.match(e) + if m: + files[m.group(1)] = rev m = self.rename_re.match(e) if m: toname = m.group(2) diff -r cdc458b12f0f -r f0f830114a9b tests/test-convert-mtn --- a/tests/test-convert-mtn Mon Mar 24 10:01:05 2008 -0500 +++ b/tests/test-convert-mtn Mon Mar 24 11:12:57 2008 -0500 @@ -55,6 +55,9 @@ mtn drop dir/b mtn mv bin bin2 mtn ci -m update2 +# Test directory move +mtn mv dir dir2 +mtn ci -m movedir cd .. echo % convert incrementally @@ -69,8 +72,7 @@ hg up -C glog echo % manifest -# BUG: c and dir/b should not appear here hg manifest echo % contents -cat dir/a +cat dir2/a diff -r cdc458b12f0f -r f0f830114a9b tests/test-convert-mtn.out --- a/tests/test-convert-mtn.out Mon Mar 24 10:01:05 2008 -0500 +++ b/tests/test-convert-mtn.out Mon Mar 24 11:12:57 2008 -0500 @@ -26,24 +26,28 @@ mtn: renaming bin to bin2 in workspace manifest mtn: beginning commit on branch 'com.selenic.test' mtn: committed revision 6c6977a6ef609ec80e40779f89dbd2772c96de62 +mtn: renaming dir to dir2 in workspace manifest +mtn: beginning commit on branch 'com.selenic.test' +mtn: committed revision 5de5abe7c15eae70cf3acdda23c9c319ea50c1af % convert incrementally assuming destination repo.mtn-hg scanning source... sorting... converting... -0 update2 -5 files updated, 0 files merged, 0 files removed, 0 files unresolved -@ 2 "update2" files: bin bin2 e +1 update2 +0 movedir +3 files updated, 0 files merged, 0 files removed, 0 files unresolved +@ 3 "movedir" files: dir/a dir2/a | -o 1 "update1" files: a bin dir/a dir/b +o 2 "update2" files: bin bin2 dir/b e +| +o 1 "update1" files: a bin c dir/a dir/b | o 0 "initialize" files: a bin c dir/b % manifest bin2 -c -dir/a -dir/b +dir2/a e % contents a