|
a/Allura/allura/model/repo.py |
|
b/Allura/allura/model/repo.py |
|
... |
|
... |
663 |
def url(self):
|
663 |
def url(self):
|
664 |
return self.tree.url() + h.really_unicode(self.name)
|
664 |
return self.tree.url() + h.really_unicode(self.name)
|
665 |
|
665 |
|
666 |
@LazyProperty
|
666 |
@LazyProperty
|
667 |
def prev_commit(self):
|
667 |
def prev_commit(self):
|
668 |
lc = LastCommit.get(self.tree, create=False)
|
668 |
pcid = LastCommit._prev_commit_id(self.commit, self.path().strip('/'))
|
669 |
if lc:
|
669 |
if pcid:
|
670 |
last_commit = self.repo.commit(lc.by_name[self.name])
|
|
|
671 |
prev_commit = last_commit.get_parent()
|
|
|
672 |
try:
|
|
|
673 |
tree = prev_commit and prev_commit.get_path(self.tree.path().rstrip('/'), create=False)
|
|
|
674 |
except KeyError:
|
|
|
675 |
return None # parent tree added this commit
|
|
|
676 |
if not tree or self.name not in tree.by_name:
|
|
|
677 |
return None # tree or file added this commit
|
|
|
678 |
lc = LastCommit.get(tree, create=False)
|
|
|
679 |
commit_id = lc and lc.by_name.get(self.name)
|
|
|
680 |
if commit_id:
|
|
|
681 |
prev_commit = self.repo.commit(commit_id)
|
670 |
return self.repo.commit(pcid)
|
682 |
return prev_commit
|
|
|
683 |
return None
|
671 |
return None
|
684 |
|
672 |
|
685 |
@LazyProperty
|
673 |
@LazyProperty
|
686 |
def next_commit(self):
|
674 |
def next_commit(self):
|
687 |
try:
|
675 |
try:
|
|
... |
|
... |
731 |
|
719 |
|
732 |
def context(self):
|
720 |
def context(self):
|
733 |
path = self.path()
|
721 |
path = self.path()
|
734 |
prev = self.prev_commit
|
722 |
prev = self.prev_commit
|
735 |
next = self.next_commit
|
723 |
next = self.next_commit
|
|
|
724 |
if prev is not None:
|
|
|
725 |
try:
|
736 |
if prev is not None: prev = prev.get_path(path, create=False)
|
726 |
prev = prev.get_path(path, create=False)
|
|
|
727 |
except KeyError as e:
|
|
|
728 |
prev = None
|
|
|
729 |
if next is not None:
|
|
|
730 |
try:
|
737 |
if next is not None: next = next.get_path(path, create=False)
|
731 |
next = next.get_path(path, create=False)
|
|
|
732 |
except KeyError as e:
|
|
|
733 |
next = None
|
738 |
return dict(
|
734 |
return dict(
|
739 |
prev=prev,
|
735 |
prev=prev,
|
740 |
next=next)
|
736 |
next=next)
|
741 |
|
737 |
|
742 |
def open(self):
|
738 |
def open(self):
|