diff --git a/trac/versioncontrol/svn_fs.py b/trac/versioncontrol/svn_fs.py
|
a
|
b
|
|
| 786 | 786 | return fs.node_prop(self.root, self._scoped_path_utf8, name, |
| 787 | 787 | self.pool()) |
| 788 | 788 | |
| | 789 | def get_branch_origin(self): |
| | 790 | root_and_path = fs.closest_copy(self.root, self._scoped_path_utf8) |
| | 791 | if root_and_path: |
| | 792 | return fs.revision_root_revision(root_path[0]) |
| | 793 | |
| 789 | 794 | def get_copy_ancestry(self): |
| 790 | 795 | """Retrieve the list of `(path,rev)` copy ancestors of this node. |
| 791 | 796 | Most recent ancestor first. Each ancestor `(path, rev)` corresponds |
diff --git a/trac/versioncontrol/svn_prop.py b/trac/versioncontrol/svn_prop.py
|
a
|
b
|
|
| 172 | 172 | _get_revs_link(revs_label, context, spath, revs)] |
| 173 | 173 | if has_eligible: |
| 174 | 174 | first_rev = branch_starts.get(spath) |
| 175 | | eligible = set(repos._get_node_revs(spath, target_rev, |
| 176 | | first_rev)) |
| | 175 | if not first_rev: |
| | 176 | first_rev = node.get_branch_origin() |
| | 177 | eligible = set(xrange(first_rev or 1, target_rev + 1)) |
| 177 | 178 | eligible -= set(Ranges(revs)) |
| 178 | 179 | blocked = _get_blocked_revs(props, name, spath) |
| 179 | 180 | eligible -= set(Ranges(blocked)) |
| | 181 | if eligible: |
| | 182 | noderevs = repos._get_node_revs(spath, target_rev, |
| | 183 | min(eligible)) |
| | 184 | eligible &= set(noderevs) |
| 180 | 185 | eligible = to_ranges(eligible) |
| 181 | 186 | row.append(_get_revs_link(_('eligible'), context, |
| 182 | 187 | spath, eligible)) |