diff --git a/rhodecode/controllers/forks.py b/rhodecode/controllers/forks.py --- a/rhodecode/controllers/forks.py +++ b/rhodecode/controllers/forks.py @@ -40,6 +40,7 @@ from rhodecode.lib.base import BaseRepoC from rhodecode.model.db import Repository, RepoGroup, UserFollowing, User from rhodecode.model.repo import RepoModel from rhodecode.model.forms import RepoForkForm +from rhodecode.model.scm import ScmModel log = logging.getLogger(__name__) @@ -53,6 +54,8 @@ class ForksController(BaseRepoController def __load_defaults(self): c.repo_groups = RepoGroup.groups_choices() c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) + choices, c.landing_revs = ScmModel().get_repo_landing_revs() + c.landing_revs_choices = choices def __load_data(self, repo_name=None): """ @@ -142,7 +145,6 @@ class ForksController(BaseRepoController force_defaults=False ) - @NotAnonymous() @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') @@ -150,7 +152,8 @@ class ForksController(BaseRepoController self.__load_defaults() c.repo_info = Repository.get_by_repo_name(repo_name) _form = RepoForkForm(old_data={'repo_type': c.repo_info.repo_type}, - repo_groups=c.repo_groups_choices,)() + repo_groups=c.repo_groups_choices, + landing_revs=c.landing_revs_choices)() form_result = {} try: form_result = _form.to_python(dict(request.POST)) diff --git a/rhodecode/model/forms.py b/rhodecode/model/forms.py --- a/rhodecode/model/forms.py +++ b/rhodecode/model/forms.py @@ -194,7 +194,7 @@ def RepoForm(edit=False, old_data={}, su def RepoForkForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(), - repo_groups=[]): + repo_groups=[], landing_revs=[]): class _RepoForkForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = False @@ -208,6 +208,7 @@ def RepoForkForm(edit=False, old_data={} update_after_clone = v.StringBoolean(if_missing=False) fork_parent_id = v.UnicodeString() chained_validators = [v.ValidForkName(edit, old_data)] + landing_rev = v.OneOf(landing_revs, hideList=True) return _RepoForkForm diff --git a/rhodecode/templates/admin/repos/repo_add_base.html b/rhodecode/templates/admin/repos/repo_add_base.html --- a/rhodecode/templates/admin/repos/repo_add_base.html +++ b/rhodecode/templates/admin/repos/repo_add_base.html @@ -30,7 +30,7 @@ ${h.form(url('repos'))}