diff --git a/hggit/git_handler.py b/hggit/git_handler.py
index f6f84d51a15442ec60b50bb0b7d9c1de45744381_aGdnaXQvZ2l0X2hhbmRsZXIucHk=..83a0e6c0e82c2b1ef8afec843c0502d0c8416e2b_aGdnaXQvZ2l0X2hhbmRsZXIucHk= 100644
--- a/hggit/git_handler.py
+++ b/hggit/git_handler.py
@@ -1334,6 +1334,28 @@
 
         return files, gitlinks
 
+    @hgutil.propertycache
+    def _rename_detector(self):
+        # disabled by default to avoid surprises
+        similarity = self.ui.configint('git', 'similarity', default=0)
+        if similarity < 0 or similarity > 100:
+            raise util.Abort(_('git.similarity must be between 0 and 100'))
+        if similarity == 0:
+            return None
+
+        # default is borrowed from Git
+        max_files = self.ui.configint('git', 'renamelimit', default=400)
+        if similarity < 0:
+            raise util.Abort(_('git.renamelimit must be non-negative'))
+        if max_files == 0:
+            max_files = None
+
+        find_copies_harder = self.ui.configbool('git', 'findcopiesharder',
+                                                default=False)
+        return diff_tree.RenameDetector(
+            rename_threshold=similarity, max_files=max_files,
+            find_copies_harder=find_copies_harder)
+
     def parse_gitmodules(self, tree_obj):
         """Parse .gitmodules from a git tree specified by tree_obj