bug: 'unknown revision' when opening a pull request
Thomas De Schampheleire
patrickdepinguin at gmail.com
Tue Mar 3 16:49:45 EST 2015
Hi Mads,
As discussed on IRC, there is currently a bug in the pullrequest
display code that can trigger for pullrequests between different
repositories, when the head of the destination repo branch is not
available in the originating repository.
You already provided some code suggestion (below), which removes the
500 server error, but there is one remaining issue: the block that
shows changesets that can be used to update the pullrequest is not
correct: in my current case it detects that there are at least one
candidate changesets for update, but the 'show' set calculated is
empty. I assume that the revset used to calculate this set needs some
tweaking after having moved to the unionrepo stuff.
Could you have a look at that?
FYI, the code you suggested and which displays the issue is:
https://paste.oxynux.org/468679
diff --git a/kallithea/controllers/pullrequests.py
b/kallithea/controllers/pullrequests.py
--- a/kallithea/controllers/pullrequests.py
+++ b/kallithea/controllers/pullrequests.py
@@ -36,6 +36,7 @@ from pylons import request, tmpl_context
from pylons.controllers.util import redirect
from pylons.i18n.translation import _
+from kallithea.lib.vcs.utils.hgcompat import unionrepo
from kallithea.lib.compat import json
from kallithea.lib.base import BaseRepoController, render
from kallithea.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator,\
@@ -594,7 +595,13 @@ class PullrequestsController(BaseRepoCon
if len(avail_revs) > 1: # more than just revs[0]
# also show changesets that not are descendants
but would be merged in
targethead =
other_scm_instance.get_changeset(c.a_branch_name).raw_id
- show = set(org_scm_instance._repo.revs('::%ld &
!::%s & !::%s',
+ if org_scm_instance.path != other_scm_instance.path:
+ hgrepo =
unionrepo.unionrepository(org_scm_instance.baseui,
+
other_scm_instance.path,
+
org_scm_instance.path)
+ else:
+ hgrepo = org_scm_instance
+ show = set(hgrepo.revs('::%ld & !::%s & !::%s',
avail_revs, revs[0], targethead))
c.update_msg = _('This pull request can be
updated with changes on %s:') % c.cs_branch_name
else:
Thanks,
Thomas
More information about the kallithea-general
mailing list