Files
@ e0626084e9c5
Branch filter:
Location: kallithea/docs/administrator_guide/vcs_setup.rst - annotation
e0626084e9c5
1.7 KiB
text/prs.fallenstein.rst
files: remove need for webhelpers.html.literal
The following code is unnecessarily complex:
h.literal(_('There are no files yet. %s') % add_new)
First of all, the '%s' part in the translatable string is a whole new
sentence, independent of the first. There is no reason it needs to be part
of the same translatable string.
Secondly, the only reason for h.literal is to preserve the link in
'add_new' (which contains the result of 'h.link_to'). But, h.link_to
actually already is a 'literal' object. The problem is that the special
'literal' property is lost due to the coercion into a plain string via the
'%' operator.
The following code would be a possible solution for the second issue:
h.HTML(_('There are no files yet. %s')) % add_new
i.e. make sure that the format string is not a plain string but itself a
literal object (after its contents being escaped), before applying the '%'
operator.
To handle the first issue, this would become:
h.HTML(_('There are no files yet.')) + ' ' + h.HTML(add_new)
but, here h.HTML is unnecessary on the first string because there is nothing
special about it, and equally unnecessary on the 'add_new' variable because
h.link_to already returns a literal object.
So, the final code becomes:
_('There are no files yet.') + ' ' + add_new
The following code is unnecessarily complex:
h.literal(_('There are no files yet. %s') % add_new)
First of all, the '%s' part in the translatable string is a whole new
sentence, independent of the first. There is no reason it needs to be part
of the same translatable string.
Secondly, the only reason for h.literal is to preserve the link in
'add_new' (which contains the result of 'h.link_to'). But, h.link_to
actually already is a 'literal' object. The problem is that the special
'literal' property is lost due to the coercion into a plain string via the
'%' operator.
The following code would be a possible solution for the second issue:
h.HTML(_('There are no files yet. %s')) % add_new
i.e. make sure that the format string is not a plain string but itself a
literal object (after its contents being escaped), before applying the '%'
operator.
To handle the first issue, this would become:
h.HTML(_('There are no files yet.')) + ' ' + h.HTML(add_new)
but, here h.HTML is unnecessary on the first string because there is nothing
special about it, and equally unnecessary on the 'add_new' variable because
h.link_to already returns a literal object.
So, the final code becomes:
_('There are no files yet.') + ' ' + add_new
2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 52f823b92614 52f823b92614 52f823b92614 52f823b92614 52f823b92614 52f823b92614 52f823b92614 52f823b92614 52f823b92614 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe 2bb5e9ee49fe | .. _vcs_setup:
=============================
Version control systems setup
=============================
Kallithea supports Git and Mercurial repositories out-of-the-box.
For Git, you do need the ``git`` command line client installed on the server.
You can always disable Git or Mercurial support by editing the
file ``kallithea/__init__.py`` and commenting out the backend. For example, to
disable Git but keep Mercurial enabled:
.. code-block:: python
BACKENDS = {
'hg': 'Mercurial repository',
#'git': 'Git repository',
}
Git-specific setup
------------------
Web server with chunked encoding
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Large Git pushes require an HTTP server with support for
chunked encoding for POST. The Python web servers waitress_ and
gunicorn_ (Linux only) can be used. By default, Kallithea uses
waitress_ for `gearbox serve` instead of the built-in `paste` WSGI
server.
The web server used by gearbox is controlled in the .ini file::
use = egg:waitress#main
or::
use = egg:gunicorn#main
Also make sure to comment out the following options::
threadpool_workers =
threadpool_max_requests =
use_threadpool =
Increasing Git HTTP POST buffer size
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If Git pushes fail with HTTP error code 411 (Length Required), you may need to
increase the Git HTTP POST buffer. Run the following command as the user that
runs Kallithea to set a global Git variable to this effect::
git config --global http.postBuffer 524288000
.. _waitress: http://pypi.python.org/pypi/waitress
.. _gunicorn: http://pypi.python.org/pypi/gunicorn
.. _subrepositories: http://mercurial.aragost.com/kick-start/en/subrepositories/
|