Files
@ 9855b31d033b
Branch filter:
Location: kallithea/rhodecode/lib/paster_commands/setup_rhodecode.py - annotation
9855b31d033b
3.9 KiB
text/x-python
pullrequests: fix changesets ordering being reversed when creating new pull requests
41b4edf77b5b tried to make the displayed order of changeset consistent: The
topmost is always the latest.
That did however also reverse the ordering of the changesets sent back in the
post when used in the pull request creation form. Displaying the pull request
later on would reverse it again and thus show it in the 'wrong' order.
We now undo that reversing when creating the pull requests, and the stored data
will thus be the same as before.
41b4edf77b5b tried to make the displayed order of changeset consistent: The
topmost is always the latest.
That did however also reverse the ordering of the changesets sent back in the
post when used in the pull request creation form. Displaying the pull request
later on would reverse it again and thus show it in the 'wrong' order.
We now undo that reversing when creating the pull requests, and the stored data
will thus be the same as before.
f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 f1491bad8339 | import os
import sys
from paste.script.appinstall import AbstractInstallCommand
from paste.script.command import BadCommand
from paste.deploy import appconfig
from os.path import dirname as dn, join as jn
#to get the rhodecode import
rc_path = dn(dn(dn(os.path.realpath(__file__))))
sys.path.append(rc_path)
class Command(AbstractInstallCommand):
default_verbosity = 1
max_args = 1
min_args = 1
summary = "Setup an application, given a config file"
usage = "CONFIG_FILE"
group_name = "RhodeCode"
description = """\
Setup RhodeCode according to its configuration file. This is
the second part of a two-phase web application installation
process (the first phase is prepare-app). The setup process
consist of things like setting up databases, creating super user
"""
parser = AbstractInstallCommand.standard_parser(
simulate=True, quiet=True, interactive=True)
parser.add_option('--user',
action='store',
dest='username',
default=None,
help='Admin Username')
parser.add_option('--email',
action='store',
dest='email',
default=None,
help='Admin Email')
parser.add_option('--password',
action='store',
dest='password',
default=None,
help='Admin password min 6 chars')
parser.add_option('--repos',
action='store',
dest='repos_location',
default=None,
help='Absolute path to repositories location')
parser.add_option('--name',
action='store',
dest='section_name',
default=None,
help='The name of the section to set up (default: app:main)')
parser.add_option('--force-yes',
action='store_true',
dest='force_ask',
default=None,
help='Force yes to every question')
parser.add_option('--force-no',
action='store_false',
dest='force_ask',
default=None,
help='Force no to every question')
def command(self):
config_spec = self.args[0]
section = self.options.section_name
if section is None:
if '#' in config_spec:
config_spec, section = config_spec.split('#', 1)
else:
section = 'main'
if not ':' in section:
plain_section = section
section = 'app:' + section
else:
plain_section = section.split(':', 1)[0]
if not config_spec.startswith('config:'):
config_spec = 'config:' + config_spec
if plain_section != 'main':
config_spec += '#' + plain_section
config_file = config_spec[len('config:'):].split('#', 1)[0]
config_file = os.path.join(os.getcwd(), config_file)
self.logging_file_config(config_file)
conf = appconfig(config_spec, relative_to=os.getcwd())
ep_name = conf.context.entry_point_name
ep_group = conf.context.protocol
dist = conf.context.distribution
if dist is None:
raise BadCommand(
"The section %r is not the application (probably a filter). "
"You should add #section_name, where section_name is the "
"section that configures your application" % plain_section)
installer = self.get_installer(dist, ep_group, ep_name)
installer.setup_config(
self, config_file, section, self.sysconfig_install_vars(installer))
self.call_sysconfig_functions(
'post_setup_hook', installer, config_file)
|