Files
@ 34c8cb3198d8
Branch filter:
Location: kallithea/docs/administrator_guide/vcs_setup.rst - annotation
34c8cb3198d8
1.7 KiB
text/prs.fallenstein.rst
diff: fix 2-way diff panel height
Since a jQuery upgrade in commit c225c37c069d, 2-way diff was broken: the
height was not correct, and sometimes the source code was shown in gray
boxes.
Analysis showed that in the invocation of mergely
(templates/files/diff_2way.html), '$("#footer").height()' is undefined, in
turn caused by the absence of an HTML element with id 'footer'.
In jQuery 3.0, the height function returns 'undefined' on empty sets, while
it was 'null' in older versions. This is important because in a mathematical
expression, 'null' behaves as the number 0, but 'undefined' causes a NaN
(not-a-number) result.
See: https://jquery.com/upgrade-guide/3.0/#breaking-change-return-values-on-empty-sets-are-undefined
The 'id' property on the footer was removed in commit 61c99cdbbfff,
retaining only the 'class="footer"'.
Fix the problem by using the class-based selector to get the footer height.
As the footer height will now be an actual value instead of '0' originally,
we can update the calculation without 'magic' values like '36' which was
actually a reference to the footer size.
When we initialize mergely, the page only contains the header and footer.
All window space below the footer can be assigned to the compare panes. The
height specified to mergely is thus the total window height minus the header
height (the top position of the footer) and the footer height.
Note: another change in this context is that jQuery 3.0 can now return
non-integer values for .height(), e.g. 138.0345. In the case of 2-way diff,
this is not an actual problem.
See: https://jquery.com/upgrade-guide/3.0/#breaking-change-width-height-css-quot-width-quot-and-css-quot-height-quot-can-return-non-integer-values
Since a jQuery upgrade in commit c225c37c069d, 2-way diff was broken: the
height was not correct, and sometimes the source code was shown in gray
boxes.
Analysis showed that in the invocation of mergely
(templates/files/diff_2way.html), '$("#footer").height()' is undefined, in
turn caused by the absence of an HTML element with id 'footer'.
In jQuery 3.0, the height function returns 'undefined' on empty sets, while
it was 'null' in older versions. This is important because in a mathematical
expression, 'null' behaves as the number 0, but 'undefined' causes a NaN
(not-a-number) result.
See: https://jquery.com/upgrade-guide/3.0/#breaking-change-return-values-on-empty-sets-are-undefined
The 'id' property on the footer was removed in commit 61c99cdbbfff,
retaining only the 'class="footer"'.
Fix the problem by using the class-based selector to get the footer height.
As the footer height will now be an actual value instead of '0' originally,
we can update the calculation without 'magic' values like '36' which was
actually a reference to the footer size.
When we initialize mergely, the page only contains the header and footer.
All window space below the footer can be assigned to the compare panes. The
height specified to mergely is thus the total window height minus the header
height (the top position of the footer) and the footer height.
Note: another change in this context is that jQuery 3.0 can now return
non-integer values for .height(), e.g. 138.0345. In the case of 2-way diff,
this is not an actual problem.
See: https://jquery.com/upgrade-guide/3.0/#breaking-change-width-height-css-quot-width-quot-and-css-quot-height-quot-can-return-non-integer-values
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/
|