##// END OF EJS Templates
compare: resolve revisions in the right repository for diffs between repos
Mads Kiilerich -
r4039:b44fabc4 default
parent child Browse files
Show More
@@ -54,7 +54,7 b' class CompareController(BaseRepoControll'
54 def __before__(self):
54 def __before__(self):
55 super(CompareController, self).__before__()
55 super(CompareController, self).__before__()
56
56
57 def __get_cs_or_redirect(self, ref, repo, redirect_after=True,
57 def __get_rev_or_redirect(self, ref, repo, redirect_after=True,
58 partial=False):
58 partial=False):
59 """
59 """
60 Safe way to get changeset if error occur it redirects to changeset with
60 Safe way to get changeset if error occur it redirects to changeset with
@@ -81,7 +81,7 b' class CompareController(BaseRepoControll'
81 # else: TODO: just report 'not found'
81 # else: TODO: just report 'not found'
82
82
83 try:
83 try:
84 return repo.scm_instance.get_changeset(rev)
84 return repo.scm_instance.get_changeset(rev).raw_id
85 except EmptyRepositoryError, e:
85 except EmptyRepositoryError, e:
86 if not redirect_after:
86 if not redirect_after:
87 return None
87 return None
@@ -219,8 +219,8 b' class CompareController(BaseRepoControll'
219 log.error('compare of two different kind of remote repos not available')
219 log.error('compare of two different kind of remote repos not available')
220 raise HTTPNotFound
220 raise HTTPNotFound
221
221
222 self.__get_cs_or_redirect(ref=org_ref, repo=org_repo, partial=partial)
222 org_rev = self.__get_rev_or_redirect(ref=org_ref, repo=org_repo, partial=partial)
223 self.__get_cs_or_redirect(ref=other_ref, repo=other_repo, partial=partial)
223 other_rev = self.__get_rev_or_redirect(ref=other_ref, repo=other_repo, partial=partial)
224
224
225 c.org_repo = org_repo
225 c.org_repo = org_repo
226 c.other_repo = other_repo
226 c.other_repo = other_repo
@@ -249,14 +249,14 b' class CompareController(BaseRepoControll'
249 # Make the diff on the other repo (which is known to have other_ref)
249 # Make the diff on the other repo (which is known to have other_ref)
250 log.debug('Using ancestor %s as org_ref instead of %s'
250 log.debug('Using ancestor %s as org_ref instead of %s'
251 % (c.ancestor, org_ref))
251 % (c.ancestor, org_ref))
252 org_ref = ('rev', c.ancestor)
252 org_rev = c.ancestor
253 org_repo = other_repo
253 org_repo = other_repo
254
254
255 diff_limit = self.cut_off_limit if not c.fulldiff else None
255 diff_limit = self.cut_off_limit if not c.fulldiff else None
256
256
257 log.debug('running diff between %s and %s in %s'
257 log.debug('running diff between %s and %s in %s'
258 % (org_ref, other_ref, org_repo.scm_instance.path))
258 % (org_rev, other_rev, org_repo.scm_instance.path))
259 txtdiff = org_repo.scm_instance.get_diff(rev1=safe_str(org_ref[1]), rev2=safe_str(other_ref[1]))
259 txtdiff = org_repo.scm_instance.get_diff(rev1=org_rev, rev2=other_rev)
260
260
261 diff_processor = diffs.DiffProcessor(txtdiff or '', format='gitdiff',
261 diff_processor = diffs.DiffProcessor(txtdiff or '', format='gitdiff',
262 diff_limit=diff_limit)
262 diff_limit=diff_limit)
General Comments 0
You need to be logged in to leave comments. Login now