# HG changeset patch # User Siddharth Agarwal # Date 1410550110 25200 # Node ID cc5f94db672bd8ec3cb0b61236ec4b774b4c67ee # Parent 8e0c4df28eec53900e1be86aa03a60f11d1defb1 convert: add support to find git copies from all files in the working copy I couldn't think of a better name for this option, so I stole the Git one in the hope that anyone converting a Git repo knows what it means. diff -r 8e0c4df28eec -r cc5f94db672b hgext/convert/__init__.py --- a/hgext/convert/__init__.py Fri Sep 12 11:23:26 2014 -0700 +++ b/hgext/convert/__init__.py Fri Sep 12 12:28:30 2014 -0700 @@ -300,6 +300,11 @@ be imported as a rename if more than 90% of the file hasn't changed. The default is ``0``. + :convert.git.findcopiesharder: while detecting copies, look at all + files in the working copy instead of just changed ones. This + is very expensive for large projects, and is only effective when + ``convert.git.similarity`` is greater than 0. The default is False. + Perforce Source ############### diff -r 8e0c4df28eec -r cc5f94db672b hgext/convert/git.py --- a/hgext/convert/git.py Fri Sep 12 11:23:26 2014 -0700 +++ b/hgext/convert/git.py Fri Sep 12 12:28:30 2014 -0700 @@ -102,6 +102,10 @@ raise util.Abort(_('similarity must be between 0 and 100')) if similarity > 0: self.simopt = '--find-copies=%d%%' % similarity + findcopiesharder = ui.configbool('convert', 'git.findcopiesharder', + False) + if findcopiesharder: + self.simopt += ' --find-copies-harder' else: self.simopt = '' diff -r 8e0c4df28eec -r cc5f94db672b tests/test-convert-git.t --- a/tests/test-convert-git.t Fri Sep 12 11:23:26 2014 -0700 +++ b/tests/test-convert-git.t Fri Sep 12 12:28:30 2014 -0700 @@ -277,6 +277,18 @@ foo R foo + $ cd git-repo2 + $ cp bar bar-copied2 + $ git add bar-copied2 + $ commit -a -m 'copy with no changes' + $ cd .. + + $ hg -q convert --config convert.git.similarity=100 \ + > --config convert.git.findcopiesharder=1 --datesort git-repo2 fullrepo + $ hg -R fullrepo status -C --change master + A bar-copied2 + bar + test binary conversion (issue1359) $ count=19 diff -r 8e0c4df28eec -r cc5f94db672b tests/test-convert.t --- a/tests/test-convert.t Fri Sep 12 11:23:26 2014 -0700 +++ b/tests/test-convert.t Fri Sep 12 12:28:30 2014 -0700 @@ -253,6 +253,12 @@ "90" means that a delete/add pair will be imported as a rename if more than 90% of the file hasn't changed. The default is "0". + convert.git.findcopiesharder + while detecting copies, look at all files in the working + copy instead of just changed ones. This is very expensive + for large projects, and is only effective when + "convert.git.similarity" is greater than 0. The default is + False. Perforce Source ###############