# HG changeset patch # User Thomas De Schampheleire # Date 1558522245 -7200 # Node ID 7d63bc813e3b424188ee37bdb409e36b9fbea543 # Parent 2402624b8b6214d96ebee5c034555d1d1d0daf43# Parent 5763182f79b5e94f53cb701ec4a1638194ca1b68 Merge stable diff -r 2402624b8b62 -r 7d63bc813e3b .hgtags --- a/.hgtags Tue Apr 30 16:13:14 2019 +0200 +++ b/.hgtags Wed May 22 12:50:45 2019 +0200 @@ -71,3 +71,5 @@ a18445b85d407294da0b7f1d8be3bedef5ffdea6 0.3.7 8db761c407685e7b08b800c947890035b0d67025 0.4.0rc1 60f726162fd6c515bd819feb423be73cad01d7d3 0.4.0rc2 +19086c5de05f4984d7a90cd31624c45dd893f6bb 0.4.0 +da65398a62fff50f3d241796cbf17acdea2092ef 0.4.1 diff -r 2402624b8b62 -r 7d63bc813e3b CONTRIBUTORS --- a/CONTRIBUTORS Tue Apr 30 16:13:14 2019 +0200 +++ b/CONTRIBUTORS Wed May 22 12:50:45 2019 +0200 @@ -5,9 +5,11 @@ Étienne Gilli 2015-2017 2019 Mads Kiilerich 2016-2019 Allan Nordhøy 2017-2019 + ssantos 2018-2019 Danni Randeris 2019 Edmund Wong 2019 Manuel Jacob 2019 + Wolfgang Scherer 2019 Dominik Ruf 2012 2014-2018 Michal Čihař 2014-2015 2018 Branko Majic 2015 2018 @@ -15,7 +17,6 @@ Jesús Sánchez 2018 Patrick Vane 2018 Pheng Heong Tan 2018 - ssantos 2018 Максим Якимчук 2018 Марс Ямбар 2018 Mads Kiilerich 2012-2017 diff -r 2402624b8b62 -r 7d63bc813e3b development.ini --- a/development.ini Tue Apr 30 16:13:14 2019 +0200 +++ b/development.ini Wed May 22 12:50:45 2019 +0200 @@ -91,7 +91,7 @@ ## Internationalization (see setup documentation for details) ## By default, the language requested by the browser is used if available. -#i18n.enable = false +#i18n.enabled = false ## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n): i18n.lang = @@ -117,6 +117,15 @@ ## number of commits stats will parse on each iteration commit_parse_limit = 25 +## Path to Python executable to be used for git hooks. +## This value will be written inside the git hook scripts as the text +## after '#!' (shebang). When empty or not defined, the value of +## 'sys.executable' at the time of installation of the git hooks is +## used, which is correct in many cases but for example not when using uwsgi. +## If you change this setting, you should reinstall the Git hooks via +## Admin > Settings > Remap and Rescan. +# git_hook_interpreter = /srv/kallithea/venv/bin/python2 + ## path to git executable git_path = git diff -r 2402624b8b62 -r 7d63bc813e3b docs/contributing.rst diff -r 2402624b8b62 -r 7d63bc813e3b docs/installation.rst diff -r 2402624b8b62 -r 7d63bc813e3b docs/installation_iis.rst diff -r 2402624b8b62 -r 7d63bc813e3b docs/installation_win.rst diff -r 2402624b8b62 -r 7d63bc813e3b docs/installation_win_old.rst diff -r 2402624b8b62 -r 7d63bc813e3b docs/overview.rst --- a/docs/overview.rst Tue Apr 30 16:13:14 2019 +0200 +++ b/docs/overview.rst Wed May 22 12:50:45 2019 +0200 @@ -37,6 +37,41 @@ We recommend using virtualenv for installing Kallithea. +Locale environment +------------------ + +In order to ensure a correct functioning of Kallithea with respect to non-ASCII +characters in user names, file paths, commit messages, etc., it is very +important that Kallithea is run with a correct `locale` configuration. + +On Unix, environment variables like ``LANG`` or ``LC_ALL`` can specify a language (like +``en_US``) and encoding (like ``UTF-8``) to use for code points outside the ASCII +range. The flexibility of supporting multiple encodings of Unicode has the flip +side of having to specify which encoding to use - especially for Mercurial. + +It depends on the OS distribution and system configuration which locales are +available. For example, some Docker containers based on Debian default to only +supporting the ``C`` language, while other Linux environments have ``en_US`` but not +``C``. The ``locale -a`` command will show which values are available on the +current system. Regardless of the actual language, you should normally choose a +locale that has the ``UTF-8`` encoding (note that spellings ``utf8``, ``utf-8``, +``UTF8``, ``UTF-8`` are all referring to the same thing) + +For technical reasons, the locale configuration **must** be provided in the +environment in which Kallithea runs - it cannot be specified in the ``.ini`` file. +How to practically do this depends on the web server that is used and the way it +is started. For example, gearbox is often started by a normal user, either +manually or via a script. In this case, the required locale environment +variables can be provided directly in that user's environment or in the script. +However, web servers like Apache are often started at boot via an init script or +service file. Modifying the environment for this case would thus require +root/administrator privileges. Moreover, that environment would dictate the +settings for all web services running under that web server, Kallithea being +just one of them. Specifically in the case of Apache with ``mod_wsgi``, the +locale can be set for a specific service in its ``WSGIDaemonProcess`` directive, +using the ``lang`` parameter. + + Installation methods -------------------- diff -r 2402624b8b62 -r 7d63bc813e3b docs/setup.rst --- a/docs/setup.rst Tue Apr 30 16:13:14 2019 +0200 +++ b/docs/setup.rst Wed May 22 12:50:45 2019 +0200 @@ -499,71 +499,75 @@ WSGIRestrictEmbedded On -- Create a wsgi dispatch script, like the one below. Make sure you +- Create a WSGI dispatch script, like the one below. Make sure you check that the paths correctly point to where you installed Kallithea and its Python Virtual Environment. -- Enable the ``WSGIScriptAlias`` directive for the WSGI dispatch script, - as in the following example. Once again, check the paths are - correctly specified. + + .. code-block:: python -Here is a sample excerpt from an Apache Virtual Host configuration file: + import os + os.environ['PYTHON_EGG_CACHE'] = '/srv/kallithea/.egg-cache' -.. code-block:: apache + # sometimes it's needed to set the current dir + os.chdir('/srv/kallithea/') - WSGIDaemonProcess kallithea processes=5 threads=1 maximum-requests=100 \ - python-home=/srv/kallithea/venv - WSGIProcessGroup kallithea - WSGIScriptAlias / /srv/kallithea/dispatch.wsgi - WSGIPassAuthorization On + import site + site.addsitedir("/srv/kallithea/venv/lib/python2.7/site-packages") -Or if using a dispatcher WSGI script with proper virtualenv activation: + ini = '/srv/kallithea/my.ini' + from logging.config import fileConfig + fileConfig(ini) + from paste.deploy import loadapp + application = loadapp('config:' + ini) -.. code-block:: apache + Or using proper virtualenv activation: - WSGIDaemonProcess kallithea processes=5 threads=1 maximum-requests=100 - WSGIProcessGroup kallithea - WSGIScriptAlias / /srv/kallithea/dispatch.wsgi - WSGIPassAuthorization On + .. code-block:: python -Apache will by default run as a special Apache user, on Linux systems -usually ``www-data`` or ``apache``. If you need to have the repositories -directory owned by a different user, use the user and group options to -WSGIDaemonProcess to set the name of the user and group. + activate_this = '/srv/kallithea/venv/bin/activate_this.py' + execfile(activate_this, dict(__file__=activate_this)) -Example WSGI dispatch script: + import os + os.environ['HOME'] = '/srv/kallithea' -.. code-block:: python - - import os - os.environ['PYTHON_EGG_CACHE'] = '/srv/kallithea/.egg-cache' + ini = '/srv/kallithea/kallithea.ini' + from logging.config import fileConfig + fileConfig(ini) + from paste.deploy import loadapp + application = loadapp('config:' + ini) - # sometimes it's needed to set the current dir - os.chdir('/srv/kallithea/') - - import site - site.addsitedir("/srv/kallithea/venv/lib/python2.7/site-packages") +- Add the necessary ``WSGI*`` directives to the Apache Virtual Host configuration + file, like in the example below. Notice that the WSGI dispatch script created + above is referred to with the ``WSGIScriptAlias`` directive. + The default locale settings Apache provides for web services are often not + adequate, with `C` as the default language and `ASCII` as the encoding. + Instead, use the ``lang`` parameter of ``WSGIDaemonProcess`` to specify a + suitable locale. See also the :ref:`overview` section and the + `WSGIDaemonProcess documentation`_. - ini = '/srv/kallithea/my.ini' - from logging.config import fileConfig - fileConfig(ini) - from paste.deploy import loadapp - application = loadapp('config:' + ini) + Apache will by default run as a special Apache user, on Linux systems + usually ``www-data`` or ``apache``. If you need to have the repositories + directory owned by a different user, use the user and group options to + WSGIDaemonProcess to set the name of the user and group. -Or using proper virtualenv activation: + Once again, check that all paths are correctly specified. -.. code-block:: python + .. code-block:: apache - activate_this = '/srv/kallithea/venv/bin/activate_this.py' - execfile(activate_this, dict(__file__=activate_this)) - - import os - os.environ['HOME'] = '/srv/kallithea' + WSGIDaemonProcess kallithea processes=5 threads=1 maximum-requests=100 \ + python-home=/srv/kallithea/venv lang=C.UTF-8 + WSGIProcessGroup kallithea + WSGIScriptAlias / /srv/kallithea/dispatch.wsgi + WSGIPassAuthorization On - ini = '/srv/kallithea/kallithea.ini' - from logging.config import fileConfig - fileConfig(ini) - from paste.deploy import loadapp - application = loadapp('config:' + ini) + Or if using a dispatcher WSGI script with proper virtualenv activation: + + .. code-block:: apache + + WSGIDaemonProcess kallithea processes=5 threads=1 maximum-requests=100 lang=en_US.utf8 + WSGIProcessGroup kallithea + WSGIScriptAlias / /srv/kallithea/dispatch.wsgi + WSGIPassAuthorization On Other configuration files @@ -585,3 +589,4 @@ .. _Redis: http://redis.io/ .. _mercurial-server: http://www.lshift.net/mercurial-server.html .. _PublishingRepositories: https://www.mercurial-scm.org/wiki/PublishingRepositories +.. _WSGIDaemonProcess documentation: https://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIDaemonProcess.html diff -r 2402624b8b62 -r 7d63bc813e3b docs/usage/email.rst diff -r 2402624b8b62 -r 7d63bc813e3b docs/usage/performance.rst diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/__init__.py diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/bin/kallithea_cli_config.py --- a/kallithea/bin/kallithea_cli_config.py Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/bin/kallithea_cli_config.py Wed May 22 12:50:45 2019 +0200 @@ -16,6 +16,7 @@ import kallithea.bin.kallithea_cli_base as cli_base import os +import sys import uuid from collections import defaultdict @@ -59,7 +60,9 @@ should go. """ - mako_variable_values = {} + mako_variable_values = { + 'git_hook_interpreter': sys.executable, + } ini_settings = defaultdict(dict) section_name = None diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/controllers/admin/repos.py --- a/kallithea/controllers/admin/repos.py Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/controllers/admin/repos.py Wed May 22 12:50:45 2019 +0200 @@ -201,10 +201,10 @@ fork = repo.fork if fork is not None: fork_name = fork.repo_name - h.flash(h.literal(_('Forked repository %s as %s') - % (fork_name, repo_url)), category='success') + h.flash(h.HTML(_('Forked repository %s as %s')) + % (fork_name, repo_url), category='success') else: - h.flash(h.literal(_('Created repository %s') % repo_url), + h.flash(h.HTML(_('Created repository %s')) % repo_url, category='success') return {'result': True} return {'result': False} diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/controllers/admin/settings.py --- a/kallithea/controllers/admin/settings.py Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/controllers/admin/settings.py Wed May 22 12:50:45 2019 +0200 @@ -171,11 +171,14 @@ install_git_hooks=install_git_hooks, user=request.authuser.username, overwrite_git_hooks=overwrite_git_hooks) - h.flash(h.literal(_('Repositories successfully rescanned. Added: %s. Removed: %s.') % - (', '.join(h.link_to(safe_unicode(repo_name), h.url('summary_home', repo_name=repo_name)) - for repo_name in added) or '-', - ', '.join(h.escape(safe_unicode(repo_name)) for repo_name in removed) or '-')), - category='success') + added_msg = h.HTML(', ').join( + h.link_to(safe_unicode(repo_name), h.url('summary_home', repo_name=repo_name)) for repo_name in added + ) or '-' + removed_msg = h.HTML(', ').join( + safe_unicode(repo_name) for repo_name in removed + ) or '-' + h.flash(h.HTML(_('Repositories successfully rescanned. Added: %s. Removed: %s.')) % + (added_msg, removed_msg), category='success') if invalidate_cache: log.debug('invalidating all repositories cache') diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/controllers/admin/user_groups.py --- a/kallithea/controllers/admin/user_groups.py Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/controllers/admin/user_groups.py Wed May 22 12:50:45 2019 +0200 @@ -140,7 +140,7 @@ action_logger(request.authuser, 'admin_created_users_group:%s' % gr, None, request.ip_addr) - h.flash(h.literal(_('Created user group %s') % h.link_to(h.escape(gr), url('edit_users_group', id=ug.users_group_id))), + h.flash(h.HTML(_('Created user group %s')) % h.link_to(gr, url('edit_users_group', id=ug.users_group_id)), category='success') Session().commit() except formencode.Invalid as errors: diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/controllers/files.py --- a/kallithea/controllers/files.py Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/controllers/files.py Wed May 22 12:50:45 2019 +0200 @@ -90,8 +90,7 @@ repo_name=c.repo_name, revision=0, f_path='', anchor='edit') add_new = h.link_to(_('Click here to add new file'), url_, class_="alert-link") - h.flash(h.literal(_('There are no files yet. %s') % add_new), - category='warning') + h.flash(_('There are no files yet.') + ' ' + add_new, category='warning') raise HTTPNotFound() except (ChangesetDoesNotExistError, LookupError): msg = _('Such revision does not exist for this repository') diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/front-end/style.less --- a/kallithea/front-end/style.less Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/front-end/style.less Wed May 22 12:50:45 2019 +0200 @@ -922,6 +922,7 @@ border-left: 1px solid #ccc; } .code-highlight pre, +.annotatediv pre, .linenodiv pre { padding: 5px 2px 0px 5px; margin: 0; diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/i18n/be/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/be/LC_MESSAGES/kallithea.po Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/i18n/be/LC_MESSAGES/kallithea.po Wed May 22 12:50:45 2019 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2019-03-26 22:07+0100\n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" "PO-Revision-Date: 2017-08-20 10:44+0000\n" "Last-Translator: Viktar Vauchkevich \n" "Language-Team: Belarusian \n" "Language-Team: Czech \n" "Language-Team: Danish \n" -"Language-Team: German \n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" +"PO-Revision-Date: 2019-05-08 20:48+0000\n" +"Last-Translator: ssantos \n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.5.1\n" +"X-Generator: Weblate 3.7-dev\n" #: kallithea/controllers/changelog.py:67 #: kallithea/controllers/pullrequests.py:252 kallithea/lib/base.py:605 @@ -36,7 +36,7 @@ msgid "None" msgstr "Keine" -#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:196 msgid "(closed)" msgstr "(geschlossen)" @@ -66,8 +66,8 @@ msgid "Successfully deleted pull request %s" msgstr "Pull-Request %s erfolgreich gelöscht" -#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:727 +#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:96 +#: kallithea/controllers/files.py:116 kallithea/controllers/files.py:726 msgid "Such revision does not exist for this repository" msgstr "Die angegebene Version existiert nicht in diesem Repository" @@ -168,108 +168,109 @@ msgstr "Hier klicken, um eine neue Datei hinzuzufügen" #: kallithea/controllers/files.py:93 -#, python-format -msgid "There are no files yet. %s" +#, fuzzy +#| msgid "There are no files yet. %s" +msgid "There are no files yet." msgstr "Es gibt hier noch keine Dateien. %s" -#: kallithea/controllers/files.py:194 +#: kallithea/controllers/files.py:193 #, python-format msgid "%s at %s" msgstr "%s auf %s" -#: kallithea/controllers/files.py:300 kallithea/controllers/files.py:360 -#: kallithea/controllers/files.py:427 +#: kallithea/controllers/files.py:299 kallithea/controllers/files.py:359 +#: kallithea/controllers/files.py:426 #, python-format msgid "This repository has been locked by %s on %s" msgstr "Dieses Repository ist von %s am %s gesperrt worden" -#: kallithea/controllers/files.py:312 +#: kallithea/controllers/files.py:311 #, fuzzy msgid "You can only delete files with revision being a valid branch" msgstr "" "Dateien können nur gelöscht werden, deren Revision ein gültiger Branch ist" -#: kallithea/controllers/files.py:323 +#: kallithea/controllers/files.py:322 #, python-format msgid "Deleted file %s via Kallithea" msgstr "Datei %s via Kallithea gelöscht" -#: kallithea/controllers/files.py:345 +#: kallithea/controllers/files.py:344 #, python-format msgid "Successfully deleted file %s" msgstr "Datei %s erfolgreich gelöscht" -#: kallithea/controllers/files.py:349 kallithea/controllers/files.py:415 -#: kallithea/controllers/files.py:496 +#: kallithea/controllers/files.py:348 kallithea/controllers/files.py:414 +#: kallithea/controllers/files.py:495 msgid "Error occurred during commit" msgstr "Während des Commits trat ein Fehler auf" -#: kallithea/controllers/files.py:372 +#: kallithea/controllers/files.py:371 #, fuzzy msgid "You can only edit files with revision being a valid branch" msgstr "" "Dateien können nur editiert werden, deren Revision ein gültiger Branch ist" -#: kallithea/controllers/files.py:386 +#: kallithea/controllers/files.py:385 #, python-format msgid "Edited file %s via Kallithea" msgstr "Datei %s via Kallithea editiert" -#: kallithea/controllers/files.py:402 +#: kallithea/controllers/files.py:401 msgid "No changes" msgstr "Keine Änderungen" -#: kallithea/controllers/files.py:411 kallithea/controllers/files.py:485 +#: kallithea/controllers/files.py:410 kallithea/controllers/files.py:484 #, python-format msgid "Successfully committed to %s" msgstr "Der Commit zu %s war erfolgreich" -#: kallithea/controllers/files.py:438 +#: kallithea/controllers/files.py:437 msgid "Added file via Kallithea" msgstr "Datei via Kallithea hinzugefügt" -#: kallithea/controllers/files.py:459 +#: kallithea/controllers/files.py:458 msgid "No content" msgstr "Kein Inhalt" -#: kallithea/controllers/files.py:463 +#: kallithea/controllers/files.py:462 msgid "No filename" msgstr "Kein Dateiname" -#: kallithea/controllers/files.py:488 +#: kallithea/controllers/files.py:487 msgid "Location must be relative path and must not contain .. in path" msgstr "Der Ort muss ein relativer Pfad sein und darf nicht .. enthalten" -#: kallithea/controllers/files.py:520 +#: kallithea/controllers/files.py:519 msgid "Downloads disabled" msgstr "Downloads gesperrt" -#: kallithea/controllers/files.py:531 +#: kallithea/controllers/files.py:530 #, python-format msgid "Unknown revision %s" msgstr "Unbekannte Revision %s" -#: kallithea/controllers/files.py:533 +#: kallithea/controllers/files.py:532 msgid "Empty repository" msgstr "Leeres Repository" -#: kallithea/controllers/files.py:535 +#: kallithea/controllers/files.py:534 msgid "Unknown archive type" msgstr "Unbekannter Archivtyp" -#: kallithea/controllers/files.py:756 +#: kallithea/controllers/files.py:755 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:64 #: kallithea/templates/pullrequests/pullrequest.html:84 msgid "Changesets" msgstr "Änderungssätze" -#: kallithea/controllers/files.py:757 +#: kallithea/controllers/files.py:756 #: kallithea/controllers/pullrequests.py:184 kallithea/model/scm.py:706 msgid "Branches" msgstr "Entwicklungszweige" -#: kallithea/controllers/files.py:758 +#: kallithea/controllers/files.py:757 #: kallithea/controllers/pullrequests.py:185 kallithea/model/scm.py:717 msgid "Tags" msgstr "Tags" @@ -485,7 +486,7 @@ #: kallithea/controllers/search.py:140 msgid "The server has no search index." -msgstr "" +msgstr "Der Server hat keinen Suchindex." #: kallithea/controllers/search.py:143 msgid "An error occurred during search operation." @@ -938,70 +939,72 @@ "\"hgsubversion\"-Bibliothek fehlt" #: kallithea/controllers/admin/settings.py:145 -#: kallithea/controllers/admin/settings.py:234 +#: kallithea/controllers/admin/settings.py:237 msgid "Error occurred while updating application settings" msgstr "" "Ein Fehler ist während der Aktualisierung der Applikationseinstellungen " "aufgetreten" -#: kallithea/controllers/admin/settings.py:174 +#: kallithea/controllers/admin/settings.py:180 #, python-format msgid "Repositories successfully rescanned. Added: %s. Removed: %s." msgstr "" "Die Repositories wurden erfolgreich überprüft. Hinzugefügt: %s. Entfernt: " "%s." -#: kallithea/controllers/admin/settings.py:189 +#: kallithea/controllers/admin/settings.py:192 #, fuzzy, python-format #| msgid "Invalidate Repository Cache" msgid "Invalidated %s repositories" msgstr "Ungültiger Repositorycache" -#: kallithea/controllers/admin/settings.py:230 +#: kallithea/controllers/admin/settings.py:233 msgid "Updated application settings" msgstr "Anwendungseinstellungen aktualisiert" -#: kallithea/controllers/admin/settings.py:283 +#: kallithea/controllers/admin/settings.py:286 msgid "Updated visualisation settings" msgstr "Visualisierungseinstellungen aktualisiert" -#: kallithea/controllers/admin/settings.py:288 +#: kallithea/controllers/admin/settings.py:291 msgid "Error occurred during updating visualisation settings" msgstr "" "Es ist ein Fehler während der Aktualisierung der Layouteinstellung " "aufgetreten" -#: kallithea/controllers/admin/settings.py:312 +#: kallithea/controllers/admin/settings.py:315 msgid "Please enter email address" msgstr "Bitte gebe eine E-Mailadresse an" -#: kallithea/controllers/admin/settings.py:327 +#: kallithea/controllers/admin/settings.py:330 msgid "Send email task created" msgstr "Task zum Versenden von E-Mails erstellt" -#: kallithea/controllers/admin/settings.py:355 +#: kallithea/controllers/admin/settings.py:358 #, fuzzy #| msgid "No data ready yet" msgid "Hook already exists" msgstr "Es stehen noch keine Daten zur Verfügung" -#: kallithea/controllers/admin/settings.py:357 +#: kallithea/controllers/admin/settings.py:360 msgid "Builtin hooks are read-only. Please use another hook name." msgstr "" - -#: kallithea/controllers/admin/settings.py:360 +"Die eingebauten Hooks sind schreibgeschützt. Bitte verwenden Sie einen " +"anderen Hook-Namen." + +#: kallithea/controllers/admin/settings.py:363 msgid "Added new hook" msgstr "Neuer Hook hinzugefügt" -#: kallithea/controllers/admin/settings.py:376 +#: kallithea/controllers/admin/settings.py:379 msgid "Updated hooks" msgstr "Die Hooks wurden aktutalisiert" -#: kallithea/controllers/admin/settings.py:380 +#: kallithea/controllers/admin/settings.py:383 msgid "Error occurred during hook creation" msgstr "Während der Erzeugung des Hooks ist ein Fehler aufgetreten" -#: kallithea/controllers/admin/settings.py:404 +#: kallithea/controllers/admin/settings.py:407 msgid "Whoosh reindex task scheduled" msgstr "Whoosh Reindizierungs Aufgabe wurde zur Ausführung geplant" @@ -1590,10 +1593,12 @@ "Cannot create pull request - criss cross merge detected, please merge a " "later %s revision to %s" msgstr "" +"Pull-Request kann nicht erstellt werden - Criss Cross Merge erkannt, bitte " +"eine spätere %s-Revision in %s zusammenführen." #: kallithea/model/pull_request.py:247 kallithea/model/pull_request.py:382 msgid "You are not authorized to create the pull request" -msgstr "" +msgstr "Sie sind nicht berechtigt, den Pull-Request anzulegen." #: kallithea/model/pull_request.py:341 #, fuzzy @@ -1631,7 +1636,7 @@ #: kallithea/model/pull_request.py:390 #, python-format msgid "Closed, next iteration: %s ." -msgstr "" +msgstr "Geschlossen, nächste Iteration: %s ." #: kallithea/model/scm.py:698 msgid "latest tip" @@ -2003,7 +2008,7 @@ #: kallithea/templates/login.html:44 msgid "Stay logged in after browser restart" -msgstr "" +msgstr "Nach dem Neustart des Browsers eingeloggt bleiben" #: kallithea/templates/login.html:52 msgid "Forgot your password ?" @@ -2306,12 +2311,16 @@ #: kallithea/templates/admin/gists/edit.html:35 #, python-format msgid "" -"Gist was update since you started editing. Copy your changes and click " +"Gist was updated since you started editing. Copy your changes and click " "%(here)s to reload new version." msgstr "" "Gist wurde während der Änderung aktualisiert. Änderungen kopieren und " "%(here)s klicken um die neue Version nachzuladen." +#: kallithea/templates/admin/gists/edit.html:36 +msgid "here" +msgstr "hier" + #: kallithea/templates/admin/gists/edit.html:51 #: kallithea/templates/admin/gists/new.html:35 msgid "Gist description ..." @@ -2507,7 +2516,7 @@ #: kallithea/templates/files/files_edit.html:52 #: kallithea/templates/files/files_source.html:30 msgid "Show as Raw" -msgstr "" +msgstr "Als Raw anzeigen" #: kallithea/templates/admin/gists/show.html:69 msgid "created" @@ -2515,7 +2524,7 @@ #: kallithea/templates/admin/gists/show.html:82 msgid "Show as raw" -msgstr "" +msgstr "Als Raw anzeigen" #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 @@ -2708,7 +2717,7 @@ #: kallithea/templates/admin/repos/repos.html:38 #: kallithea/templates/admin/user_groups/user_groups.html:38 #: kallithea/templates/base/perms_summary.html:54 -#: kallithea/templates/files/files_browser.html:51 +#: kallithea/templates/files/files_browser.html:54 msgid "Name" msgstr "Name" @@ -3435,12 +3444,12 @@ #: kallithea/templates/admin/repos/repo_edit_settings.html:38 msgid "Default revision for files page, downloads, whoosh and readme" -msgstr "" +msgstr "Standardrevision für Dateiseite, Downloads, Whoosh und Readme" #: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Type name of user" -msgstr "" +msgstr "Typname des Benutzers" #: kallithea/templates/admin/repos/repo_edit_settings.html:45 msgid "Change owner of this repository." @@ -3448,11 +3457,11 @@ #: kallithea/templates/admin/repos/repo_edit_statistics.html:5 msgid "Processed commits" -msgstr "" +msgstr "Verarbeitete Commits" #: kallithea/templates/admin/repos/repo_edit_statistics.html:6 msgid "Processed progress" -msgstr "" +msgstr "Verarbeiteter Fortschritt" #: kallithea/templates/admin/repos/repo_edit_statistics.html:10 msgid "Reset Statistics" @@ -3460,7 +3469,7 @@ #: kallithea/templates/admin/repos/repo_edit_statistics.html:10 msgid "Confirm to remove current statistics." -msgstr "" +msgstr "Bestätigen Sie, um die aktuellen Statistiken zu entfernen." #: kallithea/templates/admin/repos/repos.html:5 msgid "Repositories Administration" @@ -3468,7 +3477,7 @@ #: kallithea/templates/admin/repos/repos.html:43 msgid "State" -msgstr "" +msgstr "Zustand" #: kallithea/templates/admin/settings/settings.html:5 msgid "Settings Administration" @@ -3480,11 +3489,11 @@ #: kallithea/templates/admin/settings/settings.html:28 msgid "Remap and Rescan" -msgstr "" +msgstr "Neu zuordnen und neu scannen" #: kallithea/templates/admin/settings/settings.html:30 msgid "Visual" -msgstr "" +msgstr "Visuell" #: kallithea/templates/admin/settings/settings.html:32 #: kallithea/templates/admin/settings/settings_vcs.html:4 @@ -3501,7 +3510,7 @@ #: kallithea/templates/admin/settings/settings_email.html:4 msgid "Send test email to" -msgstr "" +msgstr "Test-E-Mail senden an" #: kallithea/templates/admin/settings/settings_email.html:12 msgid "Send" @@ -3509,7 +3518,7 @@ #: kallithea/templates/admin/settings/settings_global.html:4 msgid "Site branding" -msgstr "" +msgstr "Website-Branding" #: kallithea/templates/admin/settings/settings_global.html:7 msgid "Set a custom title for your Kallithea Service." @@ -4192,6 +4201,12 @@ "%s." msgstr "" +#: kallithea/templates/base/default_perms_box.html:16 +#, fuzzy +#| msgid "Default permissions" +msgid "default permissions" +msgstr "Standart Rechte" + #: kallithea/templates/base/default_perms_box.html:23 msgid "Create repositories" msgstr "" @@ -5019,28 +5034,28 @@ msgid "Commit Changes" msgstr "Änderungen einchecken" -#: kallithea/templates/files/files_browser.html:37 +#: kallithea/templates/files/files_browser.html:40 msgid "Search File List" msgstr "" -#: kallithea/templates/files/files_browser.html:42 +#: kallithea/templates/files/files_browser.html:45 msgid "Loading file list..." msgstr "" -#: kallithea/templates/files/files_browser.html:52 +#: kallithea/templates/files/files_browser.html:55 #: kallithea/templates/summary/summary.html:145 msgid "Size" msgstr "Größe" -#: kallithea/templates/files/files_browser.html:53 +#: kallithea/templates/files/files_browser.html:56 msgid "Last Revision" msgstr "" -#: kallithea/templates/files/files_browser.html:54 +#: kallithea/templates/files/files_browser.html:57 msgid "Last Modified" msgstr "Zuletzt geändert" -#: kallithea/templates/files/files_browser.html:55 +#: kallithea/templates/files/files_browser.html:58 msgid "Last Committer" msgstr "" @@ -5948,9 +5963,6 @@ #~ msgid "SMTP port" #~ msgstr "SMTP-Port" -#~ msgid "Default permissions" -#~ msgstr "Standart Rechte" - #~ msgid "user groups" #~ msgstr "Benutzergruppen" diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/i18n/el/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/el/LC_MESSAGES/kallithea.po Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/i18n/el/LC_MESSAGES/kallithea.po Wed May 22 12:50:45 2019 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2019-03-26 22:07+0100\n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" "PO-Revision-Date: 2017-06-14 18:51+0000\n" "Last-Translator: Asterios Dimitriou \n" "Language-Team: Greek \n" "Language-Team: Spanish \n" -"Language-Team: French \n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" +"PO-Revision-Date: 2019-05-06 08:48+0000\n" +"Last-Translator: Étienne Gilli \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: kallithea/controllers/changelog.py:67 #: kallithea/controllers/pullrequests.py:252 kallithea/lib/base.py:605 @@ -36,7 +36,7 @@ msgid "None" msgstr "Aucun" -#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:196 msgid "(closed)" msgstr "(fermé)" @@ -64,8 +64,8 @@ msgid "Successfully deleted pull request %s" msgstr "La requête de pull %s a été supprimée avec succès" -#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:727 +#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:96 +#: kallithea/controllers/files.py:116 kallithea/controllers/files.py:726 msgid "Such revision does not exist for this repository" msgstr "Une telle révision n'existe pas pour ce dépôt" @@ -159,110 +159,109 @@ msgstr "Ajouter un nouveau fichier" #: kallithea/controllers/files.py:93 -#, python-format -msgid "There are no files yet. %s" -msgstr "Il n'y a actuellement pas de fichiers. %s" - -#: kallithea/controllers/files.py:194 +msgid "There are no files yet." +msgstr "Il n'y a pas encore de fichier." + +#: kallithea/controllers/files.py:193 #, python-format msgid "%s at %s" msgstr "%s à %s" -#: kallithea/controllers/files.py:300 kallithea/controllers/files.py:360 -#: kallithea/controllers/files.py:427 +#: kallithea/controllers/files.py:299 kallithea/controllers/files.py:359 +#: kallithea/controllers/files.py:426 #, python-format msgid "This repository has been locked by %s on %s" msgstr "Ce dépôt a été verrouillé par %s sur %s" -#: kallithea/controllers/files.py:312 +#: kallithea/controllers/files.py:311 msgid "You can only delete files with revision being a valid branch" msgstr "" "Vous ne pouvez supprimer les fichiers que si la révision est une branche " "valide" -#: kallithea/controllers/files.py:323 +#: kallithea/controllers/files.py:322 #, python-format msgid "Deleted file %s via Kallithea" msgstr "Le fichier %s a été supprimé via Kallithea" -#: kallithea/controllers/files.py:345 +#: kallithea/controllers/files.py:344 #, python-format msgid "Successfully deleted file %s" msgstr "Suppression du fichier %s effectuée avec succès" -#: kallithea/controllers/files.py:349 kallithea/controllers/files.py:415 -#: kallithea/controllers/files.py:496 +#: kallithea/controllers/files.py:348 kallithea/controllers/files.py:414 +#: kallithea/controllers/files.py:495 msgid "Error occurred during commit" msgstr "Une erreur est survenue durant le commit" -#: kallithea/controllers/files.py:372 +#: kallithea/controllers/files.py:371 msgid "You can only edit files with revision being a valid branch" msgstr "" "Vous ne pouvez modifier les fichiers que si la révision est une branche " "valide" -#: kallithea/controllers/files.py:386 +#: kallithea/controllers/files.py:385 #, python-format msgid "Edited file %s via Kallithea" msgstr "%s édité via Kallithea" -#: kallithea/controllers/files.py:402 +#: kallithea/controllers/files.py:401 msgid "No changes" msgstr "Aucun changement" -#: kallithea/controllers/files.py:411 kallithea/controllers/files.py:485 +#: kallithea/controllers/files.py:410 kallithea/controllers/files.py:484 #, python-format msgid "Successfully committed to %s" msgstr "Commit réalisé avec succès sur %s" -#: kallithea/controllers/files.py:438 +#: kallithea/controllers/files.py:437 msgid "Added file via Kallithea" msgstr "%s ajouté par Kallithea" -#: kallithea/controllers/files.py:459 +#: kallithea/controllers/files.py:458 msgid "No content" msgstr "Aucun contenu" -#: kallithea/controllers/files.py:463 +#: kallithea/controllers/files.py:462 msgid "No filename" msgstr "Aucun nom de fichier" -#: kallithea/controllers/files.py:488 +#: kallithea/controllers/files.py:487 msgid "Location must be relative path and must not contain .. in path" msgstr "" "Le chemin doit être un chemin relatif et ne doit pas contenir .. dans le " "chemin" -#: kallithea/controllers/files.py:520 +#: kallithea/controllers/files.py:519 msgid "Downloads disabled" msgstr "Les téléchargements sont désactivés" -#: kallithea/controllers/files.py:531 +#: kallithea/controllers/files.py:530 #, python-format msgid "Unknown revision %s" msgstr "Révision %s inconnue" -#: kallithea/controllers/files.py:533 +#: kallithea/controllers/files.py:532 msgid "Empty repository" msgstr "Dépôt vide" -#: kallithea/controllers/files.py:535 +#: kallithea/controllers/files.py:534 msgid "Unknown archive type" msgstr "Type d’archive inconnu" -#: kallithea/controllers/files.py:756 +#: kallithea/controllers/files.py:755 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:64 #: kallithea/templates/pullrequests/pullrequest.html:84 msgid "Changesets" msgstr "Changesets" -#: kallithea/controllers/files.py:757 +#: kallithea/controllers/files.py:756 #: kallithea/controllers/pullrequests.py:184 kallithea/model/scm.py:706 msgid "Branches" msgstr "Branches" -#: kallithea/controllers/files.py:758 +#: kallithea/controllers/files.py:757 #: kallithea/controllers/pullrequests.py:185 kallithea/model/scm.py:717 msgid "Tags" msgstr "Tags" @@ -931,67 +930,67 @@ "« hgsubversion » est manquante" #: kallithea/controllers/admin/settings.py:145 -#: kallithea/controllers/admin/settings.py:234 +#: kallithea/controllers/admin/settings.py:237 msgid "Error occurred while updating application settings" msgstr "" "Une erreur est survenue durant la mise à jour des réglages de " "l'application" -#: kallithea/controllers/admin/settings.py:174 +#: kallithea/controllers/admin/settings.py:180 #, python-format msgid "Repositories successfully rescanned. Added: %s. Removed: %s." msgstr "Dépôts ré-analysés avec succès. Ajouté : %s. Supprimé : %s." -#: kallithea/controllers/admin/settings.py:189 +#: kallithea/controllers/admin/settings.py:192 #, python-format msgid "Invalidated %s repositories" msgstr "%s dépôts invalidés" -#: kallithea/controllers/admin/settings.py:230 +#: kallithea/controllers/admin/settings.py:233 msgid "Updated application settings" msgstr "Réglages mis à jour" -#: kallithea/controllers/admin/settings.py:283 +#: kallithea/controllers/admin/settings.py:286 msgid "Updated visualisation settings" msgstr "Réglages d’affichage mis à jour" -#: kallithea/controllers/admin/settings.py:288 +#: kallithea/controllers/admin/settings.py:291 msgid "Error occurred during updating visualisation settings" msgstr "" "Une erreur est survenue durant la mise à jour des réglages de " "visualisation" -#: kallithea/controllers/admin/settings.py:312 +#: kallithea/controllers/admin/settings.py:315 msgid "Please enter email address" msgstr "Veuillez entrer votre adresse e-mail" -#: kallithea/controllers/admin/settings.py:327 +#: kallithea/controllers/admin/settings.py:330 msgid "Send email task created" msgstr "Tâche d'envoi d'e-mail créée" -#: kallithea/controllers/admin/settings.py:355 +#: kallithea/controllers/admin/settings.py:358 msgid "Hook already exists" msgstr "Le hook existe déjà" -#: kallithea/controllers/admin/settings.py:357 +#: kallithea/controllers/admin/settings.py:360 msgid "Builtin hooks are read-only. Please use another hook name." msgstr "" "Les hooks intégrés sont en lecture seule. Merci de choisir un autre nom " "pour le hook." -#: kallithea/controllers/admin/settings.py:360 +#: kallithea/controllers/admin/settings.py:363 msgid "Added new hook" msgstr "Le nouveau hook a été ajouté" -#: kallithea/controllers/admin/settings.py:376 +#: kallithea/controllers/admin/settings.py:379 msgid "Updated hooks" msgstr "Hooks mis à jour" -#: kallithea/controllers/admin/settings.py:380 +#: kallithea/controllers/admin/settings.py:383 msgid "Error occurred during hook creation" msgstr "Une erreur est survenue durant la création du hook" -#: kallithea/controllers/admin/settings.py:404 +#: kallithea/controllers/admin/settings.py:407 msgid "Whoosh reindex task scheduled" msgstr "La tâche de réindexation Whoosh a été planifiée" @@ -2298,12 +2297,16 @@ #: kallithea/templates/admin/gists/edit.html:35 #, python-format msgid "" -"Gist was update since you started editing. Copy your changes and click " +"Gist was updated since you started editing. Copy your changes and click " "%(here)s to reload new version." msgstr "" "Le gist a été mis à jour depuis que vous avez commencé à éditer. Copier " "vos changements et cliquez %(here)s pour charger la nouvelle version." +#: kallithea/templates/admin/gists/edit.html:36 +msgid "here" +msgstr "ici" + #: kallithea/templates/admin/gists/edit.html:51 #: kallithea/templates/admin/gists/new.html:35 msgid "Gist description ..." @@ -2694,7 +2697,7 @@ #: kallithea/templates/admin/repos/repos.html:38 #: kallithea/templates/admin/user_groups/user_groups.html:38 #: kallithea/templates/base/perms_summary.html:54 -#: kallithea/templates/files/files_browser.html:51 +#: kallithea/templates/files/files_browser.html:54 msgid "Name" msgstr "Nom" @@ -4232,6 +4235,10 @@ "Sélectionner pour hériter des réglages généraux, de la liste blanche d'IP " "et des permissions depuis les %s." +#: kallithea/templates/base/default_perms_box.html:16 +msgid "default permissions" +msgstr "permissions par défaut" + #: kallithea/templates/base/default_perms_box.html:23 msgid "Create repositories" msgstr "Création de dépôts" @@ -5032,28 +5039,28 @@ msgid "Commit Changes" msgstr "Commiter les changements" -#: kallithea/templates/files/files_browser.html:37 +#: kallithea/templates/files/files_browser.html:40 msgid "Search File List" msgstr "Rechercher dans la liste des fichiers" -#: kallithea/templates/files/files_browser.html:42 +#: kallithea/templates/files/files_browser.html:45 msgid "Loading file list..." msgstr "Chargement de la liste des fichiers…" -#: kallithea/templates/files/files_browser.html:52 +#: kallithea/templates/files/files_browser.html:55 #: kallithea/templates/summary/summary.html:145 msgid "Size" msgstr "Taille" -#: kallithea/templates/files/files_browser.html:53 +#: kallithea/templates/files/files_browser.html:56 msgid "Last Revision" msgstr "Dernière révision" -#: kallithea/templates/files/files_browser.html:54 +#: kallithea/templates/files/files_browser.html:57 msgid "Last Modified" msgstr "Dernière modification" -#: kallithea/templates/files/files_browser.html:55 +#: kallithea/templates/files/files_browser.html:58 msgid "Last Committer" msgstr "Dernier commiteur" @@ -6251,9 +6258,6 @@ #~ msgid "Destroy old data" #~ msgstr "Détruire les anciennes données" -#~ msgid "Default permissions" -#~ msgstr "Permissions par défaut" - #~ msgid "Mimetype" #~ msgstr "Type MIME" diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/i18n/hu/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/hu/LC_MESSAGES/kallithea.po Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/i18n/hu/LC_MESSAGES/kallithea.po Wed May 22 12:50:45 2019 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2019-03-26 22:07+0100\n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" "PO-Revision-Date: 2015-04-11 00:59+0200\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language-Team: Japanese \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.5.3\n" +"Generated-By: Babel 2.6.0\n" #: kallithea/controllers/changelog.py:67 #: kallithea/controllers/pullrequests.py:252 kallithea/lib/base.py:605 @@ -34,7 +34,7 @@ msgid "None" msgstr "" -#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:196 msgid "(closed)" msgstr "" @@ -61,8 +61,8 @@ msgid "Successfully deleted pull request %s" msgstr "" -#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:727 +#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:96 +#: kallithea/controllers/files.py:116 kallithea/controllers/files.py:726 msgid "Such revision does not exist for this repository" msgstr "" @@ -149,104 +149,103 @@ msgstr "" #: kallithea/controllers/files.py:93 -#, python-format -msgid "There are no files yet. %s" -msgstr "" - -#: kallithea/controllers/files.py:194 +msgid "There are no files yet." +msgstr "" + +#: kallithea/controllers/files.py:193 #, python-format msgid "%s at %s" msgstr "" -#: kallithea/controllers/files.py:300 kallithea/controllers/files.py:360 -#: kallithea/controllers/files.py:427 +#: kallithea/controllers/files.py:299 kallithea/controllers/files.py:359 +#: kallithea/controllers/files.py:426 #, python-format msgid "This repository has been locked by %s on %s" msgstr "" -#: kallithea/controllers/files.py:312 +#: kallithea/controllers/files.py:311 msgid "You can only delete files with revision being a valid branch" msgstr "" -#: kallithea/controllers/files.py:323 +#: kallithea/controllers/files.py:322 #, python-format msgid "Deleted file %s via Kallithea" msgstr "" -#: kallithea/controllers/files.py:345 +#: kallithea/controllers/files.py:344 #, python-format msgid "Successfully deleted file %s" msgstr "" -#: kallithea/controllers/files.py:349 kallithea/controllers/files.py:415 -#: kallithea/controllers/files.py:496 +#: kallithea/controllers/files.py:348 kallithea/controllers/files.py:414 +#: kallithea/controllers/files.py:495 msgid "Error occurred during commit" msgstr "" -#: kallithea/controllers/files.py:372 +#: kallithea/controllers/files.py:371 msgid "You can only edit files with revision being a valid branch" msgstr "" -#: kallithea/controllers/files.py:386 +#: kallithea/controllers/files.py:385 #, python-format msgid "Edited file %s via Kallithea" msgstr "" -#: kallithea/controllers/files.py:402 +#: kallithea/controllers/files.py:401 msgid "No changes" msgstr "" -#: kallithea/controllers/files.py:411 kallithea/controllers/files.py:485 +#: kallithea/controllers/files.py:410 kallithea/controllers/files.py:484 #, python-format msgid "Successfully committed to %s" msgstr "" -#: kallithea/controllers/files.py:438 +#: kallithea/controllers/files.py:437 msgid "Added file via Kallithea" msgstr "" -#: kallithea/controllers/files.py:459 +#: kallithea/controllers/files.py:458 msgid "No content" msgstr "" -#: kallithea/controllers/files.py:463 +#: kallithea/controllers/files.py:462 msgid "No filename" msgstr "" -#: kallithea/controllers/files.py:488 +#: kallithea/controllers/files.py:487 msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:520 +#: kallithea/controllers/files.py:519 msgid "Downloads disabled" msgstr "" -#: kallithea/controllers/files.py:531 +#: kallithea/controllers/files.py:530 #, python-format msgid "Unknown revision %s" msgstr "" -#: kallithea/controllers/files.py:533 +#: kallithea/controllers/files.py:532 msgid "Empty repository" msgstr "" -#: kallithea/controllers/files.py:535 +#: kallithea/controllers/files.py:534 msgid "Unknown archive type" msgstr "" -#: kallithea/controllers/files.py:756 +#: kallithea/controllers/files.py:755 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:64 #: kallithea/templates/pullrequests/pullrequest.html:84 msgid "Changesets" msgstr "" -#: kallithea/controllers/files.py:757 kallithea/controllers/pullrequests.py:184 +#: kallithea/controllers/files.py:756 kallithea/controllers/pullrequests.py:184 #: kallithea/model/scm.py:706 msgid "Branches" msgstr "" -#: kallithea/controllers/files.py:758 kallithea/controllers/pullrequests.py:185 +#: kallithea/controllers/files.py:757 kallithea/controllers/pullrequests.py:185 #: kallithea/model/scm.py:717 msgid "Tags" msgstr "" @@ -888,61 +887,61 @@ msgstr "" #: kallithea/controllers/admin/settings.py:145 -#: kallithea/controllers/admin/settings.py:234 +#: kallithea/controllers/admin/settings.py:237 msgid "Error occurred while updating application settings" msgstr "" -#: kallithea/controllers/admin/settings.py:174 +#: kallithea/controllers/admin/settings.py:180 #, python-format msgid "Repositories successfully rescanned. Added: %s. Removed: %s." msgstr "" -#: kallithea/controllers/admin/settings.py:189 +#: kallithea/controllers/admin/settings.py:192 #, python-format msgid "Invalidated %s repositories" msgstr "" -#: kallithea/controllers/admin/settings.py:230 +#: kallithea/controllers/admin/settings.py:233 msgid "Updated application settings" msgstr "" -#: kallithea/controllers/admin/settings.py:283 +#: kallithea/controllers/admin/settings.py:286 msgid "Updated visualisation settings" msgstr "" -#: kallithea/controllers/admin/settings.py:288 +#: kallithea/controllers/admin/settings.py:291 msgid "Error occurred during updating visualisation settings" msgstr "" -#: kallithea/controllers/admin/settings.py:312 +#: kallithea/controllers/admin/settings.py:315 msgid "Please enter email address" msgstr "" -#: kallithea/controllers/admin/settings.py:327 +#: kallithea/controllers/admin/settings.py:330 msgid "Send email task created" msgstr "" -#: kallithea/controllers/admin/settings.py:355 +#: kallithea/controllers/admin/settings.py:358 msgid "Hook already exists" msgstr "" -#: kallithea/controllers/admin/settings.py:357 -msgid "Builtin hooks are read-only. Please use another hook name." -msgstr "" - #: kallithea/controllers/admin/settings.py:360 +msgid "Builtin hooks are read-only. Please use another hook name." +msgstr "" + +#: kallithea/controllers/admin/settings.py:363 msgid "Added new hook" msgstr "" -#: kallithea/controllers/admin/settings.py:376 +#: kallithea/controllers/admin/settings.py:379 msgid "Updated hooks" msgstr "" -#: kallithea/controllers/admin/settings.py:380 +#: kallithea/controllers/admin/settings.py:383 msgid "Error occurred during hook creation" msgstr "" -#: kallithea/controllers/admin/settings.py:404 +#: kallithea/controllers/admin/settings.py:407 msgid "Whoosh reindex task scheduled" msgstr "" @@ -2113,7 +2112,11 @@ #: kallithea/templates/admin/gists/edit.html:35 #, python-format -msgid "Gist was update since you started editing. Copy your changes and click %(here)s to reload new version." +msgid "Gist was updated since you started editing. Copy your changes and click %(here)s to reload new version." +msgstr "" + +#: kallithea/templates/admin/gists/edit.html:36 +msgid "here" msgstr "" #: kallithea/templates/admin/gists/edit.html:51 @@ -2494,7 +2497,7 @@ #: kallithea/templates/admin/repos/repos.html:38 #: kallithea/templates/admin/user_groups/user_groups.html:38 #: kallithea/templates/base/perms_summary.html:54 -#: kallithea/templates/files/files_browser.html:51 +#: kallithea/templates/files/files_browser.html:54 msgid "Name" msgstr "" @@ -3800,6 +3803,10 @@ msgid "Select to inherit global settings, IP whitelist and permissions from the %s." msgstr "" +#: kallithea/templates/base/default_perms_box.html:16 +msgid "default permissions" +msgstr "" + #: kallithea/templates/base/default_perms_box.html:23 msgid "Create repositories" msgstr "" @@ -4571,28 +4578,28 @@ msgid "Commit Changes" msgstr "" -#: kallithea/templates/files/files_browser.html:37 +#: kallithea/templates/files/files_browser.html:40 msgid "Search File List" msgstr "" -#: kallithea/templates/files/files_browser.html:42 +#: kallithea/templates/files/files_browser.html:45 msgid "Loading file list..." msgstr "" -#: kallithea/templates/files/files_browser.html:52 -#: kallithea/templates/summary/summary.html:145 -msgid "Size" -msgstr "" - -#: kallithea/templates/files/files_browser.html:53 -msgid "Last Revision" -msgstr "" - -#: kallithea/templates/files/files_browser.html:54 -msgid "Last Modified" -msgstr "" - #: kallithea/templates/files/files_browser.html:55 +#: kallithea/templates/summary/summary.html:145 +msgid "Size" +msgstr "" + +#: kallithea/templates/files/files_browser.html:56 +msgid "Last Revision" +msgstr "" + +#: kallithea/templates/files/files_browser.html:57 +msgid "Last Modified" +msgstr "" + +#: kallithea/templates/files/files_browser.html:58 msgid "Last Committer" msgstr "" diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/i18n/nb_NO/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/nb_NO/LC_MESSAGES/kallithea.po Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/i18n/nb_NO/LC_MESSAGES/kallithea.po Wed May 22 12:50:45 2019 +0200 @@ -7,11 +7,11 @@ msgstr "" "Project-Id-Version: Kallithea 0.3.99\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2019-03-26 22:07+0100\n" -"PO-Revision-Date: 2019-04-30 17:47+0000\n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" +"PO-Revision-Date: 2019-04-30 22:25+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" +"kallithea/stable/nb_NO/>\n" "Language: nb_NO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,7 +36,7 @@ msgid "None" msgstr "Ingen" -#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:139 kallithea/controllers/files.py:196 msgid "(closed)" msgstr "(lukket)" @@ -66,8 +66,8 @@ msgid "Successfully deleted pull request %s" msgstr "Slettet flettingsforespørsel %s" -#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:727 +#: kallithea/controllers/changeset.py:321 kallithea/controllers/files.py:96 +#: kallithea/controllers/files.py:116 kallithea/controllers/files.py:726 msgid "Such revision does not exist for this repository" msgstr "En slik revisjon funnes ikke for denne pakkebrønnen" @@ -162,108 +162,109 @@ msgstr "Klikk her for å legge til ny fil" #: kallithea/controllers/files.py:93 -#, python-format -msgid "There are no files yet. %s" +#, fuzzy +#| msgid "There are no files yet. %s" +msgid "There are no files yet." msgstr "Ingen filer enda. %s" -#: kallithea/controllers/files.py:194 +#: kallithea/controllers/files.py:193 #, fuzzy, python-format msgid "%s at %s" msgstr "%s den %s" -#: kallithea/controllers/files.py:300 kallithea/controllers/files.py:360 -#: kallithea/controllers/files.py:427 +#: kallithea/controllers/files.py:299 kallithea/controllers/files.py:359 +#: kallithea/controllers/files.py:426 #, python-format msgid "This repository has been locked by %s on %s" msgstr "Denne pakkebrønnen har blitt påst av %s den %s" -#: kallithea/controllers/files.py:312 +#: kallithea/controllers/files.py:311 #, fuzzy msgid "You can only delete files with revision being a valid branch" msgstr "" "Du kan bare slette filer med en revisjon som er en gyldig forgrening" -#: kallithea/controllers/files.py:323 +#: kallithea/controllers/files.py:322 #, python-format msgid "Deleted file %s via Kallithea" msgstr "Slettet filen %s via Kallithea" -#: kallithea/controllers/files.py:345 +#: kallithea/controllers/files.py:344 #, python-format msgid "Successfully deleted file %s" msgstr "Filen %s ble slettet" -#: kallithea/controllers/files.py:349 kallithea/controllers/files.py:415 -#: kallithea/controllers/files.py:496 +#: kallithea/controllers/files.py:348 kallithea/controllers/files.py:414 +#: kallithea/controllers/files.py:495 msgid "Error occurred during commit" msgstr "Feil inntraff under innsendelse" -#: kallithea/controllers/files.py:372 +#: kallithea/controllers/files.py:371 msgid "You can only edit files with revision being a valid branch" msgstr "" "Du kan bare redigere filer med en revisjon som er en gyldig avgrening" -#: kallithea/controllers/files.py:386 +#: kallithea/controllers/files.py:385 #, python-format msgid "Edited file %s via Kallithea" msgstr "Filen %s ble endret via Kallithea" -#: kallithea/controllers/files.py:402 +#: kallithea/controllers/files.py:401 msgid "No changes" msgstr "Ingen endringer" -#: kallithea/controllers/files.py:411 kallithea/controllers/files.py:485 +#: kallithea/controllers/files.py:410 kallithea/controllers/files.py:484 #, python-format msgid "Successfully committed to %s" msgstr "Innsendt til %s" -#: kallithea/controllers/files.py:438 +#: kallithea/controllers/files.py:437 msgid "Added file via Kallithea" msgstr "Fil lagt til via Kallithea" -#: kallithea/controllers/files.py:459 +#: kallithea/controllers/files.py:458 msgid "No content" msgstr "Inget innhold" -#: kallithea/controllers/files.py:463 +#: kallithea/controllers/files.py:462 msgid "No filename" msgstr "Inget filnavn" -#: kallithea/controllers/files.py:488 +#: kallithea/controllers/files.py:487 msgid "Location must be relative path and must not contain .. in path" msgstr "" "Plasseringen må være en relativ sti, og kan ikke inneholde .. i stien" -#: kallithea/controllers/files.py:520 +#: kallithea/controllers/files.py:519 msgid "Downloads disabled" msgstr "Nedlastinger avskrudd" -#: kallithea/controllers/files.py:531 +#: kallithea/controllers/files.py:530 #, python-format msgid "Unknown revision %s" msgstr "Ukjent revisjon %s" -#: kallithea/controllers/files.py:533 +#: kallithea/controllers/files.py:532 msgid "Empty repository" msgstr "Tom pakkebrønn" -#: kallithea/controllers/files.py:535 +#: kallithea/controllers/files.py:534 msgid "Unknown archive type" msgstr "Ukjent arkivtype" -#: kallithea/controllers/files.py:756 +#: kallithea/controllers/files.py:755 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:64 #: kallithea/templates/pullrequests/pullrequest.html:84 msgid "Changesets" msgstr "Endringssett" -#: kallithea/controllers/files.py:757 +#: kallithea/controllers/files.py:756 #: kallithea/controllers/pullrequests.py:184 kallithea/model/scm.py:706 msgid "Branches" msgstr "Forgreninger" -#: kallithea/controllers/files.py:758 +#: kallithea/controllers/files.py:757 #: kallithea/controllers/pullrequests.py:185 kallithea/model/scm.py:717 msgid "Tags" msgstr "Etiketter" @@ -922,63 +923,63 @@ msgstr "" #: kallithea/controllers/admin/settings.py:145 -#: kallithea/controllers/admin/settings.py:234 +#: kallithea/controllers/admin/settings.py:237 msgid "Error occurred while updating application settings" msgstr "" -#: kallithea/controllers/admin/settings.py:174 +#: kallithea/controllers/admin/settings.py:180 #, python-format msgid "Repositories successfully rescanned. Added: %s. Removed: %s." msgstr "" -#: kallithea/controllers/admin/settings.py:189 +#: kallithea/controllers/admin/settings.py:192 #, python-format msgid "Invalidated %s repositories" msgstr "" -#: kallithea/controllers/admin/settings.py:230 +#: kallithea/controllers/admin/settings.py:233 msgid "Updated application settings" msgstr "" -#: kallithea/controllers/admin/settings.py:283 +#: kallithea/controllers/admin/settings.py:286 msgid "Updated visualisation settings" msgstr "" -#: kallithea/controllers/admin/settings.py:288 +#: kallithea/controllers/admin/settings.py:291 msgid "Error occurred during updating visualisation settings" msgstr "" -#: kallithea/controllers/admin/settings.py:312 +#: kallithea/controllers/admin/settings.py:315 msgid "Please enter email address" msgstr "Skriv inn e-postadresse" -#: kallithea/controllers/admin/settings.py:327 +#: kallithea/controllers/admin/settings.py:330 msgid "Send email task created" msgstr "" -#: kallithea/controllers/admin/settings.py:355 +#: kallithea/controllers/admin/settings.py:358 #, fuzzy #| msgid "No data ready yet" msgid "Hook already exists" msgstr "Ingen data klar enda" -#: kallithea/controllers/admin/settings.py:357 +#: kallithea/controllers/admin/settings.py:360 msgid "Builtin hooks are read-only. Please use another hook name." msgstr "" -#: kallithea/controllers/admin/settings.py:360 +#: kallithea/controllers/admin/settings.py:363 msgid "Added new hook" msgstr "" -#: kallithea/controllers/admin/settings.py:376 +#: kallithea/controllers/admin/settings.py:379 msgid "Updated hooks" msgstr "" -#: kallithea/controllers/admin/settings.py:380 +#: kallithea/controllers/admin/settings.py:383 msgid "Error occurred during hook creation" msgstr "" -#: kallithea/controllers/admin/settings.py:404 +#: kallithea/controllers/admin/settings.py:407 msgid "Whoosh reindex task scheduled" msgstr "" @@ -1829,6 +1830,7 @@ #: kallithea/templates/index_base.html:37 msgid "You have admin right to this group, and can edit it" msgstr "Du har administratorrettigheter til denne gruppen, og kan redigere den" +"Du har administratorrettigheter til denne gruppen, og kan redigere den" #: kallithea/templates/index_base.html:37 msgid "Edit Repository Group" @@ -1970,8 +1972,8 @@ "A password reset link will be sent to the specified email address if it " "is registered in the system." msgstr "" -"En passordtilbakestillingslenke vil bli sendt til angitt e-postadresse hvis " -"den er registrert i systemet." +"En passordtilbakestillingslenke vil bli sendt til angitt e-postadresse " +"hvis den er registrert i systemet." #: kallithea/templates/password_reset_confirmation.html:23 #, python-format @@ -2212,10 +2214,14 @@ #: kallithea/templates/admin/gists/edit.html:35 #, python-format msgid "" -"Gist was update since you started editing. Copy your changes and click " +"Gist was updated since you started editing. Copy your changes and click " "%(here)s to reload new version." msgstr "" +#: kallithea/templates/admin/gists/edit.html:36 +msgid "here" +msgstr "" + #: kallithea/templates/admin/gists/edit.html:51 #: kallithea/templates/admin/gists/new.html:35 msgid "Gist description ..." @@ -2595,7 +2601,7 @@ #: kallithea/templates/admin/repos/repos.html:38 #: kallithea/templates/admin/user_groups/user_groups.html:38 #: kallithea/templates/base/perms_summary.html:54 -#: kallithea/templates/files/files_browser.html:51 +#: kallithea/templates/files/files_browser.html:54 msgid "Name" msgstr "Navn" @@ -4010,6 +4016,12 @@ "%s." msgstr "" +#: kallithea/templates/base/default_perms_box.html:16 +#, fuzzy +#| msgid "Default Permissions" +msgid "default permissions" +msgstr "Forvalgte tilganger" + #: kallithea/templates/base/default_perms_box.html:23 #, fuzzy msgid "Create repositories" @@ -4799,28 +4811,28 @@ msgid "Commit Changes" msgstr "" -#: kallithea/templates/files/files_browser.html:37 +#: kallithea/templates/files/files_browser.html:40 msgid "Search File List" msgstr "" -#: kallithea/templates/files/files_browser.html:42 +#: kallithea/templates/files/files_browser.html:45 msgid "Loading file list..." msgstr "" -#: kallithea/templates/files/files_browser.html:52 -#: kallithea/templates/summary/summary.html:145 -msgid "Size" -msgstr "" - -#: kallithea/templates/files/files_browser.html:53 -msgid "Last Revision" -msgstr "" - -#: kallithea/templates/files/files_browser.html:54 -msgid "Last Modified" -msgstr "" - #: kallithea/templates/files/files_browser.html:55 +#: kallithea/templates/summary/summary.html:145 +msgid "Size" +msgstr "" + +#: kallithea/templates/files/files_browser.html:56 +msgid "Last Revision" +msgstr "" + +#: kallithea/templates/files/files_browser.html:57 +msgid "Last Modified" +msgstr "" + +#: kallithea/templates/files/files_browser.html:58 msgid "Last Committer" msgstr "" diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po Wed May 22 12:50:45 2019 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2019-03-26 22:07+0100\n" +"POT-Creation-Date: 2019-05-04 21:13+0200\n" "PO-Revision-Date: 2017-06-18 16:22+0000\n" "Last-Translator: Thomas De Schampheleire \n" "Language-Team: Dutch (Belgium) \n" "Language-Team: Polish \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: Russian \n" "Language-Team: Slovak \n" "Language-Team: Ukrainian \n" "Language-Team: Chinese (Simplified) \n" "Language-Team: Chinese (Traditional) ## Internationalization (see setup documentation for details) <%text>## By default, the language requested by the browser is used if available. -#i18n.enable = false +#i18n.enabled = false <%text>## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n): i18n.lang = @@ -211,6 +211,18 @@ <%text>## number of commits stats will parse on each iteration commit_parse_limit = 25 +<%text>## Path to Python executable to be used for git hooks. +<%text>## This value will be written inside the git hook scripts as the text +<%text>## after '#!' (shebang). When empty or not defined, the value of +<%text>## 'sys.executable' at the time of installation of the git hooks is +<%text>## used, which is correct in many cases but for example not when using uwsgi. +<%text>## If you change this setting, you should reinstall the Git hooks via +<%text>## Admin > Settings > Remap and Rescan. +# git_hook_interpreter = /srv/kallithea/venv/bin/python2 +%if git_hook_interpreter: +git_hook_interpreter = ${git_hook_interpreter} +%endif + <%text>## path to git executable git_path = git diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/model/notification.py diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/model/scm.py --- a/kallithea/model/scm.py Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/model/scm.py Wed May 22 12:50:45 2019 +0200 @@ -720,6 +720,20 @@ return choices, hist_l + def _get_git_hook_interpreter(self): + """Return a suitable interpreter for Git hooks. + + Return a suitable string to be written in the POSIX #! shebang line for + Git hook scripts so they invoke Kallithea code with the right Python + interpreter and in the right environment. + """ + # Note: sys.executable might not point at a usable Python interpreter. For + # example, when using uwsgi, it will point at the uwsgi program itself. + # FIXME This may not work on Windows and may need a shell wrapper script. + return (kallithea.CONFIG.get('git_hook_interpreter') + or sys.executable + or '/usr/bin/env python2') + def install_git_hooks(self, repo, force_create=False): """ Creates a kallithea hook inside a git repository @@ -734,11 +748,11 @@ if not os.path.isdir(loc): os.makedirs(loc) - tmpl_post = "#!/usr/bin/env %s\n" % sys.executable or 'python2' + tmpl_post = "#!%s\n" % self._get_git_hook_interpreter() tmpl_post += pkg_resources.resource_string( 'kallithea', os.path.join('config', 'post_receive_tmpl.py') ) - tmpl_pre = "#!/usr/bin/env %s\n" % sys.executable or 'python2' + tmpl_pre = "#!%s\n" % self._get_git_hook_interpreter() tmpl_pre += pkg_resources.resource_string( 'kallithea', os.path.join('config', 'pre_receive_tmpl.py') ) diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/model/user.py diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/public/js/base.js --- a/kallithea/public/js/base.js Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/public/js/base.js Wed May 22 12:50:45 2019 +0200 @@ -1493,7 +1493,7 @@ for(var i = 0; i < data.results.length; i++){ _html.push(template .replace('__rev__', 'r{0}:{1}'.format(data.results[i].revision, data.results[i].raw_id.substr(0, 6))) - .replace('__title__', data.results[i].message) + .replace('__title__', data.results[i].message.html_escape()) .replace('__url__', pyroutes.url('changeset_home', { 'repo_name': repo_name, 'revision': data.results[i].raw_id})) diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/templates/about.html --- a/kallithea/templates/about.html Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/templates/about.html Wed May 22 12:50:45 2019 +0200 @@ -29,9 +29,11 @@
  • Copyright © 2014–2019, Thomas De Schampheleire
  • Copyright © 2015–2017, 2019, Étienne Gilli
  • Copyright © 2017–2019, Allan Nordhøy
  • +
  • Copyright © 2018–2019, ssantos
  • Copyright © 2019, Danni Randeris
  • Copyright © 2019, Edmund Wong
  • Copyright © 2019, Manuel Jacob
  • +
  • Copyright © 2019, Wolfgang Scherer
  • Copyright © 2012, 2014–2018, Dominik Ruf
  • Copyright © 2014–2015, 2018, Michal Čihař
  • Copyright © 2015, 2018, Branko Majic
  • @@ -39,7 +41,6 @@
  • Copyright © 2018, Jesús Sánchez
  • Copyright © 2018, Patrick Vane
  • Copyright © 2018, Pheng Heong Tan
  • -
  • Copyright © 2018, ssantos
  • Copyright © 2018, Максим Якимчук
  • Copyright © 2018, Марс Ямбар
  • Copyright © 2012–2017, Unity Technologies
  • diff -r 2402624b8b62 -r 7d63bc813e3b kallithea/templates/admin/gists/edit.html --- a/kallithea/templates/admin/gists/edit.html Tue Apr 30 16:13:14 2019 +0200 +++ b/kallithea/templates/admin/gists/edit.html Wed May 22 12:50:45 2019 +0200 @@ -32,8 +32,8 @@