git_handler.get_files_changed: switch to diff_tree's tree_changes

object_store.tree_changes doesn't allow us to specify a rename detector, but
diff_tree's tree_changes does.
This commit is contained in:
Siddharth Agarwal 2014-12-01 23:25:25 -08:00
parent eee3a8a81e
commit 3ff3a9e433

View File

@ -7,6 +7,7 @@ from dulwich.pack import create_delta, apply_delta
from dulwich.repo import Repo, check_ref_format
from dulwich import client
from dulwich import config as dul_config
from dulwich import diff_tree
try:
from mercurial import bookmarks
@ -1296,10 +1297,12 @@ class GitHandler(object):
if commit.parents:
btree = self.git[commit.parents[0]].tree
changes = self.git.object_store.tree_changes(btree, tree)
changes = diff_tree.tree_changes(self.git.object_store, btree, tree)
files = {}
gitlinks = {}
for (oldfile, newfile), (oldmode, newmode), (oldsha, newsha) in changes:
for change in changes:
oldfile, oldmode, oldsha = change.old
newfile, newmode, newsha = change.new
# actions are described by the following table ('no' means 'does not
# exist'):
# old new | action