diff --git a/rhodecode/controllers/admin/repos.py b/rhodecode/controllers/admin/repos.py --- a/rhodecode/controllers/admin/repos.py +++ b/rhodecode/controllers/admin/repos.py @@ -211,6 +211,10 @@ class ReposController(BaseController): self.__load_defaults() repo_model = RepoModel() changed_name = repo_name + #override the choices with extracted revisions ! + choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo_name) + c.landing_revs_choices = choices + _form = RepoForm(edit=True, old_data={'repo_name': repo_name}, repo_groups=c.repo_groups_choices, landing_revs=c.landing_revs_choices)() diff --git a/rhodecode/controllers/summary.py b/rhodecode/controllers/summary.py --- a/rhodecode/controllers/summary.py +++ b/rhodecode/controllers/summary.py @@ -180,12 +180,12 @@ class SummaryController(BaseRepoControll if c.enable_downloads: c.download_options = self._get_download_links(c.rhodecode_repo) - c.readme_data, c.readme_file = self.__get_readme_data( - c.rhodecode_db_repo.repo_name, c.rhodecode_repo - ) + c.readme_data, c.readme_file = \ + self.__get_readme_data(c.rhodecode_db_repo) return render('summary/summary.html') - def __get_readme_data(self, repo_name, repo): + def __get_readme_data(self, db_repo): + repo_name = db_repo.repo_name @cache_region('long_term') def _get_readme_from_cache(key): @@ -193,7 +193,8 @@ class SummaryController(BaseRepoControll readme_file = None log.debug('Fetching readme file') try: - cs = repo.get_changeset() # fetches TIP + # get's the landing revision! or tip if fails + cs = db_repo.get_landing_changeset() renderer = MarkupRenderer() for f in README_FILES: try: diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -777,6 +777,13 @@ class Repository(Base, BaseModel): def get_changeset(self, rev=None): return get_changeset_safe(self.scm_instance, rev) + def get_landing_changeset(self): + """ + Returns landing changeset, or if that doesn't exist returns the tip + """ + cs = self.get_changeset(self.landing_rev) or self.get_changeset() + return cs + @property def tip(self): return self.get_changeset('tip') diff --git a/rhodecode/templates/summary/summary.html b/rhodecode/templates/summary/summary.html --- a/rhodecode/templates/summary/summary.html +++ b/rhodecode/templates/summary/summary.html @@ -226,7 +226,7 @@ %if c.readme_data:
-
+