mercurial-evolve: enable evolve setting on repositories.
This commit is contained in:
parent
1c512d1397
commit
4801f5f8ca
12 changed files with 115 additions and 13 deletions
|
|
@ -1902,6 +1902,7 @@ def get_repo_settings(request, apiuser, repoid, key=Optional(None)):
|
|||
"id": 237,
|
||||
"result": {
|
||||
"extensions_largefiles": true,
|
||||
"extensions_evolve": true,
|
||||
"hooks_changegroup_push_logger": true,
|
||||
"hooks_changegroup_repo_size": false,
|
||||
"hooks_outgoing_pull_logger": true,
|
||||
|
|
|
|||
|
|
@ -363,6 +363,14 @@ class DbManage(object):
|
|||
hgsubversion.ui_active = False
|
||||
self.sa.add(hgsubversion)
|
||||
|
||||
# enable hgevolve disabled by default
|
||||
hgevolve = RhodeCodeUi()
|
||||
hgevolve.ui_section = 'extensions'
|
||||
hgevolve.ui_key = 'evolve'
|
||||
hgevolve.ui_value = ''
|
||||
hgevolve.ui_active = False
|
||||
self.sa.add(hgevolve)
|
||||
|
||||
# enable hggit disabled by default
|
||||
hggit = RhodeCodeUi()
|
||||
hggit.ui_section = 'extensions'
|
||||
|
|
|
|||
|
|
@ -170,6 +170,16 @@ class MercurialCommit(base.BaseCommit):
|
|||
|
||||
return safe_unicode(phase_text)
|
||||
|
||||
@LazyProperty
|
||||
def obsolete(self):
|
||||
obsolete = self._remote.ctx_obsolete(self.idx)
|
||||
return obsolete
|
||||
|
||||
@LazyProperty
|
||||
def hidden(self):
|
||||
hidden = self._remote.ctx_hidden(self.idx)
|
||||
return hidden
|
||||
|
||||
@LazyProperty
|
||||
def children(self):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -384,6 +384,7 @@ class _BaseVcsSettingsForm(formencode.Schema):
|
|||
|
||||
# hg
|
||||
extensions_largefiles = v.StringBoolean(if_missing=False)
|
||||
extensions_evolve = v.StringBoolean(if_missing=False)
|
||||
phases_publish = v.StringBoolean(if_missing=False)
|
||||
rhodecode_hg_use_rebase_for_merging = v.StringBoolean(if_missing=False)
|
||||
|
||||
|
|
|
|||
|
|
@ -415,15 +415,16 @@ class VcsSettingsModel(object):
|
|||
('hooks', 'outgoing.pull_logger'),)
|
||||
HG_SETTINGS = (
|
||||
('extensions', 'largefiles'),
|
||||
('phases', 'publish'),)
|
||||
('phases', 'publish'),
|
||||
('extensions', 'evolve'),)
|
||||
GIT_SETTINGS = (
|
||||
('vcs_git_lfs', 'enabled'),)
|
||||
|
||||
GLOBAL_HG_SETTINGS = (
|
||||
('extensions', 'largefiles'),
|
||||
('largefiles', 'usercache'),
|
||||
('phases', 'publish'),
|
||||
('extensions', 'hgsubversion'))
|
||||
('extensions', 'hgsubversion'),
|
||||
('extensions', 'evolve'),)
|
||||
GLOBAL_GIT_SETTINGS = (
|
||||
('vcs_git_lfs', 'enabled'),
|
||||
('vcs_git_lfs', 'store_location'))
|
||||
|
|
@ -546,22 +547,26 @@ class VcsSettingsModel(object):
|
|||
|
||||
@assert_repo_settings
|
||||
def create_or_update_repo_hg_settings(self, data):
|
||||
largefiles, phases = \
|
||||
largefiles, phases, evolve = \
|
||||
self.HG_SETTINGS
|
||||
largefiles_key, phases_key = \
|
||||
largefiles_key, phases_key, evolve_key = \
|
||||
self._get_settings_keys(self.HG_SETTINGS, data)
|
||||
|
||||
self._create_or_update_ui(
|
||||
self.repo_settings, *largefiles, value='',
|
||||
active=data[largefiles_key])
|
||||
self._create_or_update_ui(
|
||||
self.repo_settings, *evolve, value='',
|
||||
active=data[evolve_key])
|
||||
self._create_or_update_ui(
|
||||
self.repo_settings, *phases, value=safe_str(data[phases_key]))
|
||||
|
||||
def create_or_update_global_hg_settings(self, data):
|
||||
largefiles, largefiles_store, phases, hgsubversion \
|
||||
largefiles, largefiles_store, phases, hgsubversion, evolve \
|
||||
= self.GLOBAL_HG_SETTINGS
|
||||
largefiles_key, largefiles_store_key, phases_key, subversion_key \
|
||||
largefiles_key, largefiles_store_key, phases_key, subversion_key, evolve_key \
|
||||
= self._get_settings_keys(self.GLOBAL_HG_SETTINGS, data)
|
||||
|
||||
self._create_or_update_ui(
|
||||
self.global_settings, *largefiles, value='',
|
||||
active=data[largefiles_key])
|
||||
|
|
@ -572,6 +577,9 @@ class VcsSettingsModel(object):
|
|||
self.global_settings, *phases, value=safe_str(data[phases_key]))
|
||||
self._create_or_update_ui(
|
||||
self.global_settings, *hgsubversion, active=data[subversion_key])
|
||||
self._create_or_update_ui(
|
||||
self.global_settings, *evolve, value='',
|
||||
active=data[evolve_key])
|
||||
|
||||
def create_or_update_repo_git_settings(self, data):
|
||||
# NOTE(marcink): # comma make unpack work properly
|
||||
|
|
|
|||
|
|
@ -108,6 +108,11 @@ table.dataTable {
|
|||
&.td-hash {
|
||||
min-width: 80px;
|
||||
width: 200px;
|
||||
|
||||
.obsolete {
|
||||
text-decoration: line-through;
|
||||
color: lighten(@grey2,25%);
|
||||
}
|
||||
}
|
||||
|
||||
&.td-time {
|
||||
|
|
|
|||
|
|
@ -130,6 +130,19 @@
|
|||
<span class="help-block">${_('Requires hgsubversion library to be installed. Allows cloning remote SVN repositories and migrates them to Mercurial type.')}</span>
|
||||
</div>
|
||||
% endif
|
||||
|
||||
<div class="checkbox">
|
||||
${h.checkbox('extensions_evolve' + suffix, 'True', **kwargs)}
|
||||
<label for="extensions_evolve${suffix}">${_('Enable evolve extension')}</label>
|
||||
</div>
|
||||
<div class="label">
|
||||
% if display_globals:
|
||||
<span class="help-block">${_('Enable evolve extension for all repositories.')}</span>
|
||||
% else:
|
||||
<span class="help-block">${_('Enable evolve extension for this repository.')}</span>
|
||||
% endif
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
## LABS for HG
|
||||
|
|
|
|||
|
|
@ -46,13 +46,28 @@
|
|||
<td class="td-hash">
|
||||
<code>
|
||||
<a href="${h.url('changeset_home',repo_name=c.repo_name,revision=commit.raw_id)}">
|
||||
<span class="commit_hash">${h.show_id(commit)}</span>
|
||||
<span class="${'commit_hash obsolete' if getattr(commit, 'obsolete', None) else 'commit_hash'}">${h.show_id(commit)}</span>
|
||||
</a>
|
||||
% if hasattr(commit, 'phase'):
|
||||
% if commit.phase != 'public':
|
||||
<span class="tag phase-${commit.phase} tooltip" title="${_('commit phase')}">${commit.phase}</span>
|
||||
<span class="tag phase-${commit.phase} tooltip" title="${_('Commit phase')}">${commit.phase}</span>
|
||||
% endif
|
||||
% endif
|
||||
|
||||
## obsolete commits
|
||||
% if hasattr(commit, 'obsolete'):
|
||||
% if commit.obsolete:
|
||||
<span class="tag obsolete-${commit.obsolete} tooltip" title="${_('Evolve State')}">${_('obsolete')}</span>
|
||||
% endif
|
||||
% endif
|
||||
|
||||
## hidden commits
|
||||
% if hasattr(commit, 'hidden'):
|
||||
% if commit.hidden:
|
||||
<span class="tag obsolete-${commit.hidden} tooltip" title="${_('Evolve State')}">${_('hidden')}</span>
|
||||
% endif
|
||||
% endif
|
||||
|
||||
</code>
|
||||
</td>
|
||||
<td class="td-message expand_commit" data-commit-id="${commit.raw_id}" title="${_('Expand commit message')}" onclick="commitsController.expandCommit(this); return false">
|
||||
|
|
|
|||
|
|
@ -37,8 +37,23 @@
|
|||
<code>
|
||||
${h.show_id(c.commit)}
|
||||
% if hasattr(c.commit, 'phase'):
|
||||
<span class="tag phase-${c.commit.phase} tooltip" title="${_('commit phase')}">${c.commit.phase}</span>
|
||||
<span class="tag phase-${c.commit.phase} tooltip" title="${_('Commit phase')}">${c.commit.phase}</span>
|
||||
% endif
|
||||
|
||||
## obsolete commits
|
||||
% if hasattr(c.commit, 'obsolete'):
|
||||
% if c.commit.obsolete:
|
||||
<span class="tag obsolete-${c.commit.obsolete} tooltip" title="${_('Evolve State')}">${_('obsolete')}</span>
|
||||
% endif
|
||||
% endif
|
||||
|
||||
## hidden commits
|
||||
% if hasattr(c.commit, 'hidden'):
|
||||
% if c.commit.hidden:
|
||||
<span class="tag hidden-${c.commit.hidden} tooltip" title="${_('Evolve State')}">${_('hidden')}</span>
|
||||
% endif
|
||||
% endif
|
||||
|
||||
</code>
|
||||
</h4>
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -581,6 +581,7 @@ class TestVcsSettings(object):
|
|||
'hooks_changegroup_push_logger': False,
|
||||
'hooks_outgoing_pull_logger': False,
|
||||
'extensions_largefiles': False,
|
||||
'extensions_evolve': False,
|
||||
'phases_publish': 'False',
|
||||
'rhodecode_pr_merge_enabled': False,
|
||||
'rhodecode_use_outdated_comments': False,
|
||||
|
|
|
|||
|
|
@ -275,6 +275,23 @@ class TestAdminSettingsVcs(object):
|
|||
'value="True" checked="checked" />')
|
||||
response.mustcontain(extensions_input)
|
||||
|
||||
def test_extensions_hgevolve(self, app, form_defaults, csrf_token):
|
||||
form_defaults.update({
|
||||
'csrf_token': csrf_token,
|
||||
'extensions_evolve': 'True',
|
||||
})
|
||||
response = app.post(
|
||||
url('admin_settings_vcs'),
|
||||
params=form_defaults,
|
||||
status=302)
|
||||
|
||||
response = response.follow()
|
||||
extensions_input = (
|
||||
'<input id="extensions_evolve" '
|
||||
'name="extensions_evolve" type="checkbox" '
|
||||
'value="True" checked="checked" />')
|
||||
response.mustcontain(extensions_input)
|
||||
|
||||
def test_has_a_section_for_pull_request_settings(self, app):
|
||||
response = app.get(url('admin_settings_vcs'))
|
||||
response.mustcontain('Pull Request Settings')
|
||||
|
|
|
|||
|
|
@ -500,7 +500,8 @@ class TestCreateOrUpdateUi(object):
|
|||
def test_update(self, repo_stub, settings_util):
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
|
||||
largefiles, phases = model.HG_SETTINGS
|
||||
largefiles, phases, evolve = model.HG_SETTINGS
|
||||
|
||||
section = 'test-section'
|
||||
key = 'test-key'
|
||||
settings_util.create_repo_rhodecode_ui(
|
||||
|
|
@ -519,6 +520,7 @@ class TestCreateOrUpdateUi(object):
|
|||
class TestCreateOrUpdateRepoHgSettings(object):
|
||||
FORM_DATA = {
|
||||
'extensions_largefiles': False,
|
||||
'extensions_evolve': False,
|
||||
'phases_publish': False
|
||||
}
|
||||
|
||||
|
|
@ -529,6 +531,8 @@ class TestCreateOrUpdateRepoHgSettings(object):
|
|||
expected_calls = [
|
||||
mock.call(model.repo_settings, 'extensions', 'largefiles',
|
||||
active=False, value=''),
|
||||
mock.call(model.repo_settings, 'extensions', 'evolve',
|
||||
active=False, value=''),
|
||||
mock.call(model.repo_settings, 'phases', 'publish', value='False'),
|
||||
]
|
||||
assert expected_calls == create_mock.call_args_list
|
||||
|
|
@ -574,7 +578,8 @@ class TestCreateOrUpdateGlobalHgSettings(object):
|
|||
'extensions_largefiles': False,
|
||||
'largefiles_usercache': '/example/largefiles-store',
|
||||
'phases_publish': False,
|
||||
'extensions_hgsubversion': False
|
||||
'extensions_hgsubversion': False,
|
||||
'extensions_evolve': False
|
||||
}
|
||||
|
||||
def test_creates_repo_hg_settings_when_data_is_correct(self):
|
||||
|
|
@ -589,7 +594,9 @@ class TestCreateOrUpdateGlobalHgSettings(object):
|
|||
mock.call(model.global_settings, 'phases', 'publish',
|
||||
value='False'),
|
||||
mock.call(model.global_settings, 'extensions', 'hgsubversion',
|
||||
active=False)
|
||||
active=False),
|
||||
mock.call(model.global_settings, 'extensions', 'evolve',
|
||||
active=False, value='')
|
||||
]
|
||||
assert expected_calls == create_mock.call_args_list
|
||||
|
||||
|
|
@ -957,6 +964,7 @@ class TestCreateOrUpdateRepoSettings(object):
|
|||
'hooks_changegroup_push_logger': False,
|
||||
'hooks_outgoing_pull_logger': False,
|
||||
'extensions_largefiles': False,
|
||||
'extensions_evolve': False,
|
||||
'largefiles_usercache': '/example/largefiles-store',
|
||||
'vcs_git_lfs_enabled': False,
|
||||
'vcs_git_lfs_store_location': '/',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue