Changeset - a3f649baa016
README.rst
Show inline comments
 
@@ -65,26 +65,26 @@ Kallithea features
 
- User groups for easier permission management.
 
- Repository groups let you group repos and manage them easier. They come with
 
  permission delegation features, so you can delegate groups management.
 
- Users can fork other users repos, and compare them at any time.
 
- Built-in versioned paste functionality (Gist) for sharing code snippets.
 
- Integrates easily with other systems, with custom created mappers you can
 
  connect it to almost any issue tracker, and with a JSON-RPC API you can make
 
  much more.
 
- Built-in commit API lets you add, edit and commit files right from Kallithea
 
  web interface using simple editor or upload binary files using simple form.
 
- Powerful pull request driven review system with inline commenting, changeset
 
  statuses, and notification system.
 
- Importing and syncing repositories from remote locations for Git_, Mercurial_
 
  and Subversion.
 
- Importing and syncing repositories from remote locations for Git_ and
 
  Mercurial_.
 
- Mako templates let you customize the look and feel of the application.
 
- Beautiful diffs, annotations and source code browsing all colored by
 
  pygments. Raw diffs are made in Git-diff format for both VCS systems,
 
  including Git_ binary-patches.
 
- Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and
 
  statistics to track activity for repositories.
 
- Admin interface with user/permission management. Admin activity journal logs
 
  pulls, pushes, forks, registrations and other actions made by all users.
 
- Server side forks. It is possible to fork a project and modify it freely
 
  without breaking the main repository.
 
- reST and Markdown README support for repositories.
 
- Full text search powered by Whoosh on the source files, commit messages, and
 
@@ -166,17 +166,16 @@ Migrating from RhodeCode
 
Kallithea 0.3.2 and earlier supports migrating from an existing RhodeCode
 
installation. To migrate, install Kallithea 0.3.2 and follow the
 
instructions in the 0.3.2 README to perform a one-time conversion of the
 
database from RhodeCode to Kallithea, before upgrading to this version
 
of Kallithea.
 

	
 

	
 
.. _Python: http://www.python.org/
 
.. _Sphinx: http://sphinx.pocoo.org/
 
.. _Mercurial: http://mercurial.selenic.com/
 
.. _Bitbucket: http://bitbucket.org/
 
.. _GitHub: http://github.com/
 
.. _Subversion: http://subversion.tigris.org/
 
.. _Git: http://git-scm.com/
 
.. _Celery: http://celeryproject.org/
 
.. _Software Freedom Conservancy: http://sfconservancy.org/
 
.. _Puppet module: https://forge.puppetlabs.com/rauch/kallithea
docs/index.rst
Show inline comments
 
@@ -72,17 +72,16 @@ Developer guide
 

	
 
.. toctree::
 
   :maxdepth: 1
 

	
 
   contributing
 
   dev/i18n
 
   dev/dbmigrations
 

	
 

	
 
.. _python: http://www.python.org/
 
.. _django: http://www.djangoproject.com/
 
.. _mercurial: https://www.mercurial-scm.org/
 
.. _subversion: http://subversion.tigris.org/
 
.. _git: http://git-scm.com/
 
.. _celery: http://celeryproject.org/
 
.. _Sphinx: http://sphinx.pocoo.org/
 
.. _vcs: http://pypi.python.org/pypi/vcs
docs/usage/general.rst
Show inline comments
 
@@ -117,32 +117,24 @@ Trending source files
 
---------------------
 

	
 
Trending source files are calculated based on a predefined dictionary of known
 
types and extensions. If an extension is missing or you would like to scan
 
custom files, it is possible to extend the ``LANGUAGES_EXTENSIONS_MAP``
 
dictionary located in ``kallithea/config/conf.py`` with new types.
 

	
 

	
 
Cloning remote repositories
 
---------------------------
 

	
 
Kallithea has the ability to clone repositories from given remote locations.
 
Currently it supports the following options:
 

	
 
- hg  -> hg clone
 
- svn -> hg clone
 
- git -> git clone
 

	
 
.. note:: svn -> hg cloning requires the ``hgsubversion`` library to be
 
   installed.
 

	
 
If you need to clone repositories that are protected via basic authentication,
 
you can pass the credentials in the URL, e.g.
 
``http://user:passw@remote.example.com/repo``. Kallithea will then try to login and
 
clone using the given credentials. Please note that the given credentials will
 
be stored as plaintext inside the database. However, the authentication
 
information will not be shown in the clone URL on the summary page.
 

	
 

	
 
Specific features configurable in the Admin settings
 
----------------------------------------------------
 

	
kallithea/controllers/admin/settings.py
Show inline comments
 
@@ -31,25 +31,24 @@ import traceback
 
import formencode
 
from formencode import htmlfill
 
from tg import config, request
 
from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound
 

	
 
from kallithea.config.routing import url
 
from kallithea.lib import helpers as h
 
from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.celerylib import tasks
 
from kallithea.lib.exceptions import HgsubversionImportError
 
from kallithea.lib.utils import repo2db_mapper, set_app_settings
 
from kallithea.lib.utils2 import safe_str
 
from kallithea.lib.vcs import VCSError
 
from kallithea.model.db import Repository, Setting, Ui
 
from kallithea.model.forms import ApplicationSettingsForm, ApplicationUiSettingsForm, ApplicationVisualisationForm
 
from kallithea.model.meta import Session
 
from kallithea.model.notification import EmailNotificationModel
 
from kallithea.model.scm import ScmModel
 

	
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -106,46 +105,31 @@ class SettingsController(BaseController)
 

	
 
                # HOOKS
 
                sett = Ui.get_by_key('hooks', Ui.HOOK_UPDATE)
 
                sett.ui_active = form_result['hooks_changegroup_update']
 

	
 
                sett = Ui.get_by_key('hooks', Ui.HOOK_REPO_SIZE)
 
                sett.ui_active = form_result['hooks_changegroup_repo_size']
 

	
 
                ## EXTENSIONS
 
                sett = Ui.get_or_create('extensions', 'largefiles')
 
                sett.ui_active = form_result['extensions_largefiles']
 

	
 
                sett = Ui.get_or_create('extensions', 'hgsubversion')
 
                sett.ui_active = form_result['extensions_hgsubversion']
 
                if sett.ui_active:
 
                    try:
 
                        import hgsubversion  # pragma: no cover
 
                        assert hgsubversion
 
                    except ImportError:
 
                        raise HgsubversionImportError
 

	
 
#                sett = Ui.get_or_create('extensions', 'hggit')
 
#                sett.ui_active = form_result['extensions_hggit']
 

	
 
                Session().commit()
 

	
 
                h.flash(_('Updated VCS settings'), category='success')
 

	
 
            except HgsubversionImportError:
 
                log.error(traceback.format_exc())
 
                h.flash(_('Unable to activate hgsubversion support. '
 
                          'The "hgsubversion" library is missing'),
 
                        category='error')
 

	
 
            except Exception:
 
                log.error(traceback.format_exc())
 
                h.flash(_('Error occurred while updating '
 
                          'application settings'), category='error')
 

	
 
        defaults = Setting.get_app_settings()
 
        defaults.update(self._get_hg_ui_settings())
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
kallithea/i18n/be/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -453,31 +453,24 @@ msgstr "Памылка пры выкананні аперацыі"
 
msgid "Pulled from remote location"
 
msgstr "Занесеныя змены з аддаленага рэпазітара"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "Памылка пры занясенні змен з аддаленага рэпазітара"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Адбылася памылка пры выдаленні статыстыкі рэпазітара"
 

	
 
msgid "Updated VCS settings"
 
msgstr "Абноўлены налады VCS"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"Немагчыма ўключыць падтрымку hgsubversion. Бібліятэка hgsubversion "
 
"адсутнічае"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr "Памылка пры абнаўленні наладаў праграмы"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr "Рэпазітары паспяхова перасканаваныя, дададзена: %s, выдалена: %s."
 

	
 
msgid "Invalidated %s repositories"
 
msgstr "Скінуць кэш для %s рэпазітароў"
 

	
 
msgid "Updated application settings"
 
msgstr "Абноўленыя налады праграмы"
 

	
 
@@ -935,31 +928,24 @@ msgstr "Імя рэпазітара %(repo)s забароненае"
 
msgid "Repository named %(repo)s already exists"
 
msgstr "Рэпазітар %(repo)s ужо існуе"
 

	
 
msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
 
msgstr "Рэпазітар \"%(repo)s\" ужо існуе ў групе \"%(group)s\""
 

	
 
msgid "Repository group with name \"%(repo)s\" already exists"
 
msgstr "Група рэпазітароў \"%(repo)s\" ужо існуе"
 

	
 
msgid "Invalid repository URL"
 
msgstr "Няслушны URL рэпазітара"
 

	
 
msgid ""
 
"Invalid repository URL. It must be a valid http, https, ssh, svn+http or "
 
"svn+https URL"
 
msgstr ""
 
"Няслушны URL рэпазітара. Ён мусіць быць карэктным URL http, https, ssh, "
 
"svn+http ці svn+https"
 

	
 
msgid "Fork has to be the same type as parent"
 
msgstr "Тып форка будзе супадаць з бацькоўскім"
 

	
 
msgid "You don't have permissions to create repository in this group"
 
msgstr "У вас недастаткова правоў для стварэння рэпазітароў у гэтай групе"
 

	
 
msgid "no permission to create repository in root location"
 
msgstr "недастаткова правоў для стварэння рэпазітара ў каранёвым каталогу"
 

	
 
msgid "You don't have permissions to create a group in this location"
 
msgstr "У Вас недастаткова прывілеяў для стварэння групы ў гэтым месцы"
 

	
 
@@ -1666,27 +1652,24 @@ msgstr "Версія Git"
 
msgid "Show repository size after push"
 
msgstr "Паказваць памер рэпазітара пасля адпраўкі"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Абнаўляць рэпазітар пасля адпраўкі (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Пашырэнні Mercurial"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Уключыць падтрымку вялікіх файлаў"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Уключыць падтрымку hgsubversion"
 

	
 
msgid "Location of repositories"
 
msgstr "Месцазнаходжанне рэпазітароў"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Націсніце для разблакавання. Змены набудуць моц пасля перазагрузкі "
 
"Kallithea."
 

	
 
msgid "General"
 
msgstr "Галоўнае"
kallithea/i18n/da/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -486,31 +486,24 @@ msgstr "Mærket repository %s som fork af %s"
 
msgid "An error occurred during this operation"
 
msgstr "Der opstod en fejl under denne operation"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "Der opstod en fejl under pull fra remote placering"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Der opstod en fejl under sletning af repository statistik"
 

	
 
msgid "Updated VCS settings"
 
msgstr "Opdateret VCS-indstillinger"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"Ude af stand til at aktivere hgsubversion understøttelse. \"hgsubversion"
 
"\" biblioteket mangler"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr "Der opstod en fejl ved opdatering af applikationsindstillinger"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr "Repositories genscannet successfuldt. Tilføjet: %s. Fjernet: %s."
 

	
 
msgid "Invalidated %s repositories"
 
msgstr "Ugyldiggjort %s repositories"
 

	
 
msgid "Updated application settings"
 
msgstr "Opdateret applikationsindstillinger"
 

	
kallithea/i18n/de/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -477,31 +477,24 @@ msgstr "Von entferntem Ort übertragen"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr ""
 
"Es trat ein Fehler auf während das Repository von einem Entfernten "
 
"Speicherort übertragen wurde"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Während des löschens der Repository Statistiken trat ein Fehler auf"
 

	
 
msgid "Updated VCS settings"
 
msgstr "VCS-Einstellungen aktualisiert"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"hgsubversion-Unterstützung konnte nicht aktiviert werden. Die "
 
"\"hgsubversion\"-Bibliothek fehlt"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr ""
 
"Ein Fehler ist während der Aktualisierung der Applikationseinstellungen "
 
"aufgetreten"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr ""
 
"Die Repositories wurden erfolgreich überprüft. Hinzugefügt: %s. Entfernt: "
 
"%s."
 

	
 
msgid "Updated application settings"
 
msgstr "Anwendungseinstellungen aktualisiert"
 
@@ -1012,31 +1005,24 @@ msgstr "Es gibt bereits ein Repository m
 

	
 
msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
 
msgstr ""
 
"Es gibt bereits ein Repository mit \"%(repo)s\" in der Gruppe \"%(group)s"
 
"\""
 

	
 
msgid "Repository group with name \"%(repo)s\" already exists"
 
msgstr "Eine Repositorygruppe mit dem Namen \"%(repo)s\" existiert bereits"
 

	
 
msgid "Invalid repository URL"
 
msgstr "Ungültige Repository-URL"
 

	
 
msgid ""
 
"Invalid repository URL. It must be a valid http, https, ssh, svn+http or "
 
"svn+https URL"
 
msgstr ""
 
"Ungültige Repository-URL. Es muss eine gültige http, https, ssh, svn+http "
 
"oder svn+https URL sein"
 

	
 
msgid "Fork has to be the same type as parent"
 
msgstr "Forke um den selben typ wie der Vorgesetze zu haben"
 

	
 
msgid "You don't have permissions to create repository in this group"
 
msgstr ""
 
"Du hast nicht die erforderlichen Berechtigungen, um in dieser Gruppe ein "
 
"Repository zu erzeugen"
 

	
 
msgid "no permission to create repository in root location"
 
msgstr "keine Berechtigung, um ein Repository auf höchster Ebene anzulegen"
 

	
 
msgid "You don't have permissions to create a group in this location"
 
@@ -2094,35 +2080,24 @@ msgstr "Python-Pakete"
 
msgid "Show repository size after push"
 
msgstr "Zeigt die Größe des Repositories nach dem Push an"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Repository nach dem Push aktualisieren (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Mercurial-Erweiterungen"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Erweiterung largefiles aktivieren"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Erweiterung hgsubversion aktivieren"
 

	
 
msgid ""
 
"Requires hgsubversion library to be installed. Enables cloning of remote "
 
"Subversion repositories while converting them to Mercurial."
 
msgstr ""
 
"Erfordert die Installation der hgsubversion-Bibliothek. Ermöglicht das "
 
"Klonen von entfernten Subversion-Repositories während der Konvertierung "
 
"zu Mercurial."
 

	
 
msgid "Location of repositories"
 
msgstr "Ort der Repositories"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Zum Entsperren klicken. Sie müssen Kallithea neu starten, damit diese "
 
"Einstellung wirksam wird."
 

	
 
msgid ""
 
"Filesystem location where repositories are stored. After changing this "
kallithea/i18n/el/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -531,31 +531,24 @@ msgid "Pulled from remote location"
 
msgstr "Ελκύσθηκε από απομακρυσμένη τοποθεσία"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "Παρουσιάστηκε σφάλμα κατά την έλξη από την απομακρυσμένη τοποθεσία"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 
"Παρουσιάστηκε σφάλμα κατά τη διαγραφή των στατιστικών του αποθετηρίου"
 

	
 
msgid "Updated VCS settings"
 
msgstr "Ενημερωμένες ρυθμίσεις VCS"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"Δεν γίνεται να ενεργοποιηθεί υποστήριξη για το hgsubversion. Λείπει η "
 
"βιβλιοθήκη \"hgsubversion\""
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr "Παρουσιάστηκε σφάλμα κατά την ενημέρωση των ρυθμίσεων της εφαρμογής"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr ""
 
"Τα αποθετήρια ξανασαρώθηκαν επιτυχώς. Προστέθηκαν: %s. Αφαιρέθηκαν %s."
 

	
 
msgid "Invalidated %s repositories"
 
msgstr "Ακυρώθηκαν %s αποθετήρια"
 

	
 
msgid "Updated application settings"
 
msgstr "Ενημερώθηκαν οι ρυθμίσεις της εφαρμογής"
 
@@ -1122,31 +1115,24 @@ msgstr "Δεν επιτρέπεται το %(repo)s ως όνομα του αποθετηρίου"
 
msgid "Repository named %(repo)s already exists"
 
msgstr "Το αποθετήριο με το όνομα %(repo)s υπάρχει ήδη"
 

	
 
msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
 
msgstr "Το αποθετήριο \"%(repo)s\" υπάρχει ήδη στην ομάδα \"%(group)s\""
 

	
 
msgid "Repository group with name \"%(repo)s\" already exists"
 
msgstr "Η ομάδα αποθετηρίου με το όνομα \"%(repo)s\" υπάρχει ήδη"
 

	
 
msgid "Invalid repository URL"
 
msgstr "Μη έγκυρη διεύθυνση URL αποθετηρίου"
 

	
 
msgid ""
 
"Invalid repository URL. It must be a valid http, https, ssh, svn+http or "
 
"svn+https URL"
 
msgstr ""
 
"Μη έγκυρη διεύθυνση URL του αποθετηρίου. Πρέπει να είναι μια έγκυρη http, "
 
"https, ssh, svn+http ή svn+https διεύθυνση URL"
 

	
 
msgid "You don't have permissions to create repository in this group"
 
msgstr "Δεν έχετε δικαιώματα δημιουργίας αποθετηρίου σε αυτήν την ομάδα"
 

	
 
msgid "no permission to create repository in root location"
 
msgstr "Δεν υπάρχει δικαίωμα δημιουργίας αποθετηρίου στη ριζική τοποθεσία"
 

	
 
msgid "You don't have permissions to create a group in this location"
 
msgstr "Δεν έχετε δικαιώματα δημιουργίας ομάδας σε αυτήν την τοποθεσία"
 

	
 
msgid "This username or user group name is not valid"
 
msgstr "Αυτό το όνομα χρήστη ή το όνομα ομάδας χρηστών δεν είναι έγκυρο"
 

	
 
@@ -2251,35 +2237,24 @@ msgstr "Πακέτα Python"
 
msgid "Show repository size after push"
 
msgstr "Εμφάνιση μεγέθους αποθετηρίου μετά την ώθηση"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Ενημέρωση αποθετηρίου μετά την ώθηση (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Επεκτάσεις Mercurial"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Ενεργοποίηση επέκτασης μεγάλων αρχείων"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Ενεργοποίηση επέκτασης hgsubversion"
 

	
 
msgid ""
 
"Requires hgsubversion library to be installed. Enables cloning of remote "
 
"Subversion repositories while converting them to Mercurial."
 
msgstr ""
 
"Απαιτεί την εγκατάσταση της βιβλιοθήκης hgsubversion. Ενεργοποιεί την "
 
"κλωνοποίηση απομακρυσμένων Subversion αποθετηρίων και τη μετατροπή τους "
 
"σε Mercurial."
 

	
 
msgid "Location of repositories"
 
msgstr "Τοποθεσία αποθετηρίων"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Κάντε κλικ για να ξεκλειδώσετε. Πρέπει να επανεκκινήσετε την Καλλιθέα για "
 
"να εφαρμοστεί αυτή η ρύθμιση."
 

	
 
msgid ""
 
"Filesystem location where repositories are stored. After changing this "
kallithea/i18n/fr/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -540,31 +540,24 @@ msgid "Pulled from remote location"
 
msgstr "Les changements distants ont été récupérés"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "Une erreur est survenue durant le pull depuis la source distante"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 
"Une erreur est survenue durant la suppression des statistiques du dépôt"
 

	
 
msgid "Updated VCS settings"
 
msgstr "Réglages des gestionnaires de versions mis à jour"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"Impossible d'activer la prise en charge de hgsubversion. La bibliothèque "
 
"« hgsubversion » est manquante"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr ""
 
"Une erreur est survenue durant la mise à jour des réglages de "
 
"l'application"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr "Dépôts ré-analysés avec succès. Ajouté : %s. Supprimé : %s."
 

	
 
msgid "Invalidated %s repositories"
 
msgstr "%s dépôts invalidés"
 

	
 
msgid "Updated application settings"
 
@@ -1218,31 +1211,24 @@ msgstr "Le nom de dépôt « %(repo)s » n’est pas autorisé"
 
msgid "Repository named %(repo)s already exists"
 
msgstr "Un dépôt portant le nom « %(repo)s » existe déjà"
 

	
 
msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
 
msgstr "Le dépôt « %(repo)s » existe déjà dans le groupe « %(group)s »"
 

	
 
msgid "Repository group with name \"%(repo)s\" already exists"
 
msgstr "Un groupe de dépôts avec le nom « %(repo)s » existe déjà"
 

	
 
msgid "Invalid repository URL"
 
msgstr "URL de dépôt invalide"
 

	
 
msgid ""
 
"Invalid repository URL. It must be a valid http, https, ssh, svn+http or "
 
"svn+https URL"
 
msgstr ""
 
"URL de dépôt invalide. Ce doit être une URL valide de type http, https, "
 
"ssh, svn+http ou svn+https"
 

	
 
msgid "Fork has to be the same type as parent"
 
msgstr "Le fork doit être du même type que le parent"
 

	
 
msgid "You don't have permissions to create repository in this group"
 
msgstr "Vous n’avez pas la permission de créer un dépôt dans ce"
 

	
 
msgid "no permission to create repository in root location"
 
msgstr "pas de permission de créer un dépôt dans la racine"
 

	
 
msgid "You don't have permissions to create a group in this location"
 
msgstr ""
 
"Vous n'avez pas les permissions pour créer un groupe dans cet endroit"
 
@@ -2381,34 +2367,24 @@ msgstr "Paquets Python"
 
msgid "Show repository size after push"
 
msgstr "Afficher la taille du dépôt après un push"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Mettre à jour les dépôts après un push (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Extensions Mercurial"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Activer l'extension largefiles"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Activer l'extension hgsubversion"
 

	
 
msgid ""
 
"Requires hgsubversion library to be installed. Enables cloning of remote "
 
"Subversion repositories while converting them to Mercurial."
 
msgstr ""
 
"La bibliothèque hgsubversion doit être installée. Elle permet de cloner "
 
"des dépôts SVN distants et de les migrer vers Mercurial."
 

	
 
msgid "Location of repositories"
 
msgstr "Emplacement des dépôts"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Cliquez pour déverrouiller. Vous devez redémarrer Kallithea pour ce que "
 
"réglage prenne effet."
 

	
 
msgid ""
 
"Filesystem location where repositories are stored. After changing this "
kallithea/i18n/ja/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -426,31 +426,24 @@ msgstr "操作中にエラーが発生しました"
 
msgid "Pulled from remote location"
 
msgstr "リモートから取得"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "リモートから取得中にエラーが発生しました"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "リポジトリステートの削除中にエラーが発生しました"
 

	
 
msgid "Updated VCS settings"
 
msgstr "VCS設定を更新しました"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"\"hgsubversion\"ライブラリが見つからないため、hgsubversionサポートを有効に"
 
"出来ません"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr "アプリケーション設定の更新中にエラーが発生しました"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr "リポジトリの再スキャンに成功しました。 追加: %s 削除: %s。"
 

	
 
msgid "Updated application settings"
 
msgstr "アプリケーション設定を更新しました"
 

	
 
msgid "Updated visualisation settings"
 
msgstr "表示設定を更新しました"
 

	
 
@@ -1802,34 +1795,24 @@ msgstr "Python パッケージ"
 
msgid "Show repository size after push"
 
msgstr "プッシュ後にリポジトリのサイズを表示する"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "プッシュ後にリポジトリを更新する (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Mercurialエクステンション"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "largefilesエクステンションを有効にする"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "hgsubversionエクステンションを有効にする"
 

	
 
msgid ""
 
"Requires hgsubversion library to be installed. Enables cloning of remote "
 
"Subversion repositories while converting them to Mercurial."
 
msgstr ""
 
"hgsubversion ライブラリのインストールが必要です。リモートのSVNリポジトリを"
 
"クローンしてMercurialリポジトリに変換するすることが可能です。"
 

	
 
msgid "Location of repositories"
 
msgstr "リポジトリの場所"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"アンロックする。この設定を有効にするためにはKallitheaの再起動が必要です。"
 

	
 
msgid ""
 
"Filesystem location where repositories are stored. After changing this "
 
"value, a restart and rescan of the repository folder are both required."
kallithea/i18n/pl/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -1346,27 +1346,24 @@ msgstr "Buduj od podstaw"
 
msgid "Reindex"
 
msgstr "Indeksuj ponownie"
 

	
 
msgid "Show repository size after push"
 
msgstr "Pokaż rozmiar repozytorium po wysłaniu zmian"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Aktualizacja repozytorium po wysłaniu zmian (aktualizacja hg)"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Rozszerzenia dużych plików"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Rozszerzenia hgsubversion"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Kliknij, aby odblokować. Musisz ponownie uruchomić Kallithea żeby "
 
"wprowadzić to ustawienie w życie."
 

	
 
msgid "General"
 
msgstr "Główne"
 

	
 
msgid "Use repository extra fields"
 
msgstr "Używaj w repozytorium dodatkowych pól"
kallithea/i18n/pt/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -1002,27 +1002,24 @@ msgstr "Construir do zero"
 
msgid "Reindex"
 
msgstr "Reindexar"
 

	
 
msgid "Show repository size after push"
 
msgstr "Mostrar tamanho do repositório após o push"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Atualizar repositório após realizar push (hg update)"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Ativar extensão largefiles"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Ativar extensão hgsubversion"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Clique para destravar. Deve reiniciar o Kallithea para que esta "
 
"configuração tenha efeito."
 

	
 
msgid "General"
 
msgstr "Geral"
 

	
 
msgid "Use repository extra fields"
 
msgstr "Usar campos extras do repositório"
kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -1000,27 +1000,24 @@ msgstr "Construir do zero"
 
msgid "Reindex"
 
msgstr "Reindexar"
 

	
 
msgid "Show repository size after push"
 
msgstr "Mostrar tamanho do repositório após o push"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Atualizar repositório após realizar push (hg update)"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Habilitar extensão largefiles"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Habilitar extensão hgsubversion"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Clique para destravar. Você deve reiniciar o Kallithea para que esta "
 
"configuração tenha efeito."
 

	
 
msgid "General"
 
msgstr "Geral"
 

	
 
msgid "Use repository extra fields"
 
msgstr "Usar campos extras do repositório"
kallithea/i18n/ru/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -518,31 +518,24 @@ msgstr "Произошла ошибка при выполнении операции"
 
msgid "Pulled from remote location"
 
msgstr "Внесены изменения из удалённого репозитория"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "Произошла ошибка при внесении изменений из удалённого репозитория"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Произошла ошибка при удалении статистики репозитория"
 

	
 
msgid "Updated VCS settings"
 
msgstr "Обновлены настройки VCS"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"Невозможно включить поддержку hgsubversion. Библиотека «hgsubversion» "
 
"отсутствует"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr "Произошла ошибка при обновлении настроек приложения"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr "Репозитории успешно пересканированы, добавлено: %s, удалено: %s."
 

	
 
msgid "Invalidated %s repositories"
 
msgstr "Сброшена валидация для %s репозиториев"
 

	
 
msgid "Updated application settings"
 
msgstr "Обновленные параметры настройки приложения"
 

	
 
@@ -1185,31 +1178,24 @@ msgstr "Имя репозитория %(repo)s недопустимо"
 
msgid "Repository named %(repo)s already exists"
 
msgstr "Репозитарий %(repo)s уже существует"
 

	
 
msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
 
msgstr "Репозитарий \"%(repo)s\" уже существует в группе \"%(group)s\""
 

	
 
msgid "Repository group with name \"%(repo)s\" already exists"
 
msgstr "Группа репозиториев \"%(repo)s\" уже существует"
 

	
 
msgid "Invalid repository URL"
 
msgstr "Недопустимый URL репозитория"
 

	
 
msgid ""
 
"Invalid repository URL. It must be a valid http, https, ssh, svn+http or "
 
"svn+https URL"
 
msgstr ""
 
"Недопустимый URL репозитория. Требуется корректный http, https, ssh, svn"
 
"+http или svn+https URL"
 

	
 
msgid "Fork has to be the same type as parent"
 
msgstr "Форк будет иметь тот же тип, что и родительский"
 

	
 
msgid "You don't have permissions to create repository in this group"
 
msgstr "У вас недостаточно прав для создания репозиториев в этой группе"
 

	
 
msgid "no permission to create repository in root location"
 
msgstr "недостаточно прав для создания репозитория в корневом каталоге"
 

	
 
msgid "You don't have permissions to create a group in this location"
 
msgstr "У Вас недостаточно привилегий для создания группы в этом месте"
 

	
 
@@ -2333,34 +2319,24 @@ msgstr "Пакеты Python"
 
msgid "Show repository size after push"
 
msgstr "Показывать размер репозитория после отправки"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Обновлять репозиторий после отправки (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Расширения Mercurial"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Включить поддержку больших файлов"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Включить поддержку hgsubversion"
 

	
 
msgid ""
 
"Requires hgsubversion library to be installed. Enables cloning of remote "
 
"Subversion repositories while converting them to Mercurial."
 
msgstr ""
 
"Требует наличия библиотеки hgsubversion. Включает клонирование удалённых "
 
"репозиториев Subversion с последующим конвертированием в Mercurial."
 

	
 
msgid "Location of repositories"
 
msgstr "Местонахождение репозиториев"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Нажмите для разблокирования. Изменения вступят в силу после перезагрузки "
 
"Kallithea."
 

	
 
msgid ""
 
"Filesystem location where repositories are stored. After changing this "
kallithea/i18n/uk/LC_MESSAGES/kallithea.po
Show inline comments
 
@@ -506,31 +506,24 @@ msgstr "Сталася помилка під час виконання цієї операції"
 
msgid "Pulled from remote location"
 
msgstr "Витягнуто з віддаленого місця"
 

	
 
msgid "An error occurred during pull from remote location"
 
msgstr "Сталася помилка під час витягування з віддаленого розташування"
 

	
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Під час видалення статистики репозиторію сталася помилка"
 

	
 
msgid "Updated VCS settings"
 
msgstr "Оновлені налаштування VCS"
 

	
 
msgid ""
 
"Unable to activate hgsubversion support. The \"hgsubversion\" library is "
 
"missing"
 
msgstr ""
 
"Не вдається активувати підтримку hgsubversion. Бібліотека \"hgsubversion"
 
"\" відсутня"
 

	
 
msgid "Error occurred while updating application settings"
 
msgstr "Під час оновлення параметрів застосунку сталася помилка"
 

	
 
msgid "Repositories successfully rescanned. Added: %s. Removed: %s."
 
msgstr "Репозиторії успішно перескановано. Додано: %s. Видалено: %s."
 

	
 
msgid "Invalidated %s repositories"
 
msgstr "До оновлення %s репозиторіїв"
 

	
 
msgid "Updated application settings"
 
msgstr "Оновлені параметри застосунку"
 

	
 
@@ -1420,34 +1413,24 @@ msgstr "Пакети Python"
 
msgid "Show repository size after push"
 
msgstr "Показати розмір сховища після push"
 

	
 
msgid "Update repository after push (hg update)"
 
msgstr "Оновлення репозиторію після push (hg update)"
 

	
 
msgid "Mercurial extensions"
 
msgstr "Mercurial  розширення"
 

	
 
msgid "Enable largefiles extension"
 
msgstr "Увімкнути розширення largefiles"
 

	
 
msgid "Enable hgsubversion extension"
 
msgstr "Увімкнути розширення hgsubversion"
 

	
 
msgid ""
 
"Requires hgsubversion library to be installed. Enables cloning of remote "
 
"Subversion repositories while converting them to Mercurial."
 
msgstr ""
 
"Потрібна установка бібліотеки hgsubversion. Дозволяє клонувати віддалені "
 
"сховища Subversion під час перетворення їх у Mercurial."
 

	
 
msgid "Location of repositories"
 
msgstr "Розташування репозиторіїв"
 

	
 
msgid ""
 
"Click to unlock. You must restart Kallithea in order to make this setting "
 
"take effect."
 
msgstr ""
 
"Клацніть, щоб розблокувати. Ви повинні перезапустити Kallithea для того, "
 
"щоб ця настройка набула чинності."
 

	
 
msgid "General"
 
msgstr "Загальні"
kallithea/lib/db_manage.py
Show inline comments
 
@@ -258,25 +258,24 @@ class DbManage(object):
 
            log.warning('Using normalized path %s instead of %s', real_path, path)
 

	
 
        return real_path
 

	
 
    def create_settings(self, repo_root_path):
 
        ui_config = [
 
            ('paths', '/', repo_root_path, True),
 
            #('phases', 'publish', 'false', False)
 
            ('hooks', Ui.HOOK_UPDATE, 'hg update >&2', False),
 
            ('hooks', Ui.HOOK_REPO_SIZE, 'python:kallithea.lib.hooks.repo_size', True),
 
            ('extensions', 'largefiles', '', True),
 
            ('largefiles', 'usercache', os.path.join(repo_root_path, '.cache', 'largefiles'), True),
 
            ('extensions', 'hgsubversion', '', False),
 
            ('extensions', 'hggit', '', False),
 
        ]
 
        for ui_section, ui_key, ui_value, ui_active in ui_config:
 
            ui_conf = Ui(
 
                ui_section=ui_section,
 
                ui_key=ui_key,
 
                ui_value=ui_value,
 
                ui_active=ui_active)
 
            self.sa.add(ui_conf)
 

	
 
        settings = [
 
            ('realm', 'Kallithea', 'unicode'),
kallithea/lib/exceptions.py
Show inline comments
 
@@ -65,17 +65,14 @@ class RepoGroupAssignmentError(Exception
 
class NonRelativePathError(Exception):
 
    pass
 

	
 

	
 
class IMCCommitError(Exception):
 
    pass
 

	
 

	
 
class UserCreationError(Exception):
 
    pass
 

	
 

	
 
class HgsubversionImportError(Exception):
 
    pass
 

	
 
class InvalidCloneUriException(Exception):
 
    pass
kallithea/lib/utils.py
Show inline comments
 
@@ -228,45 +228,37 @@ def is_valid_repo_uri(repo_type, url, ui
 
    """Check if the url seems like a valid remote repo location
 
    Raise InvalidCloneUriException if any problems"""
 
    if repo_type == 'hg':
 
        if url.startswith('http') or url.startswith('ssh'):
 
            # initially check if it's at least the proper URL
 
            # or does it pass basic auth
 
            try:
 
                MercurialRepository._check_url(url, ui)
 
            except urllib.error.URLError as e:
 
                raise InvalidCloneUriException('URI %s URLError: %s' % (url, e))
 
            except mercurial.error.RepoError as e:
 
                raise InvalidCloneUriException('Mercurial %s: %s' % (type(e).__name__, safe_str(bytes(e))))
 
        elif url.startswith('svn+http'):
 
            try:
 
                from hgsubversion.svnrepo import svnremoterepo
 
            except ImportError:
 
                raise InvalidCloneUriException('URI type %s not supported - hgsubversion is not available' % (url,))
 
            svnremoterepo(ui, url).svn.uuid
 
        elif url.startswith('git+http'):
 
            raise InvalidCloneUriException('URI type %s not implemented' % (url,))
 
        else:
 
            raise InvalidCloneUriException('URI %s not allowed' % (url,))
 

	
 
    elif repo_type == 'git':
 
        if url.startswith('http') or url.startswith('git'):
 
            # initially check if it's at least the proper URL
 
            # or does it pass basic auth
 
            try:
 
                GitRepository._check_url(url)
 
            except urllib.error.URLError as e:
 
                raise InvalidCloneUriException('URI %s URLError: %s' % (url, e))
 
        elif url.startswith('svn+http'):
 
            raise InvalidCloneUriException('URI type %s not implemented' % (url,))
 
        elif url.startswith('hg+http'):
 
            raise InvalidCloneUriException('URI type %s not implemented' % (url,))
 
        else:
 
            raise InvalidCloneUriException('URI %s not allowed' % (url))
 

	
 

	
 
def is_valid_repo(repo_name, base_path, scm=None):
 
    """
 
    Returns True if given path is a valid repository False otherwise.
 
    If scm param is given also compare if given scm is the same as expected
 
    from scm parameter
 

	
kallithea/lib/vcs/backends/base.py
Show inline comments
 
@@ -18,25 +18,25 @@ from kallithea.lib.vcs.exceptions import
 
from kallithea.lib.vcs.utils import author_email, author_name
 
from kallithea.lib.vcs.utils.helpers import get_dict_for_attrs
 
from kallithea.lib.vcs.utils.lazy import LazyProperty
 

	
 

	
 
class BaseRepository(object):
 
    """
 
    Base Repository for final backends
 

	
 
    **Attributes**
 

	
 
        ``DEFAULT_BRANCH_NAME``
 
            name of default branch (i.e. "trunk" for svn, "master" for git etc.
 
            name of default branch (i.e. "master" for git etc.
 

	
 
        ``scm``
 
            alias of scm, i.e. *git* or *hg*
 

	
 
        ``repo``
 
            object from external api
 

	
 
        ``revisions``
 
            list of all available revisions' ids, in ascending order
 

	
 
        ``changesets``
 
            storage dict caching returned changesets
 
@@ -315,26 +315,25 @@ class BaseChangeset(object):
 

	
 
    **Attributes**
 

	
 
        ``repository``
 
            repository object within which changeset exists
 

	
 
        ``raw_id``
 
            raw changeset representation (i.e. full 40 length sha for git
 
            backend)
 

	
 
        ``short_id``
 
            shortened (if apply) version of ``raw_id``; it would be simple
 
            shortcut for ``raw_id[:12]`` for git/mercurial backends or same
 
            as ``raw_id`` for subversion
 
            shortcut for ``raw_id[:12]`` for git/mercurial backends
 

	
 
        ``revision``
 
            revision number as integer
 

	
 
        ``files``
 
            list of ``FileNode`` (``Node`` with NodeKind.FILE) objects
 

	
 
        ``dirs``
 
            list of ``DirNode`` (``Node`` with NodeKind.DIR) objects
 

	
 
        ``nodes``
 
            combined list of ``Node`` objects
kallithea/lib/vcs/backends/hg/repository.py
Show inline comments
 
@@ -326,25 +326,25 @@ class MercurialRepository(BaseRepository
 
                    'pairs': "%s-%s" % ('0' * 40, '0' * 40),
 
                })
 
            ))
 

	
 
        try:
 
            resp = o.open(req)
 
            if resp.code != 200:
 
                raise Exception('Return Code is not 200')
 
        except Exception as e:
 
            # means it cannot be cloned
 
            raise urllib.error.URLError("[%s] org_exc: %s" % (cleaned_uri, e))
 

	
 
        if not url_prefix: # skip svn+http://... (and git+... too)
 
        if not url_prefix: # skip git+http://... etc
 
            # now check if it's a proper hg repo
 
            try:
 
                mercurial.httppeer.instance(repoui or mercurial.ui.ui(), url, False).lookup(b'tip')
 
            except Exception as e:
 
                raise urllib.error.URLError(
 
                    "url [%s] does not look like an hg repo org_exc: %s"
 
                    % (cleaned_uri, e))
 

	
 
        return True
 

	
 
    def _get_repo(self, create, src_url=None, update_after_clone=False):
 
        """
kallithea/lib/vcs/nodes.py
Show inline comments
 
@@ -578,25 +578,25 @@ class RootNode(DirNode):
 
class SubModuleNode(Node):
 
    """
 
    represents a SubModule of Git or SubRepo of Mercurial
 
    """
 
    is_binary = False
 
    size = 0
 

	
 
    def __init__(self, name, url, changeset=None, alias=None):
 
        # Note: Doesn't call Node.__init__!
 
        self.path = name.rstrip('/')
 
        self.kind = NodeKind.SUBMODULE
 
        self.alias = alias
 
        # we have to use emptyChangeset here since this can point to svn/git/hg
 
        # we have to use emptyChangeset here since this can point to git/hg
 
        # submodules we cannot get from repository
 
        self.changeset = EmptyChangeset(changeset, alias=alias)
 
        self.url = url
 

	
 
    def __repr__(self):
 
        return '<%s %r @ %s>' % (self.__class__.__name__, self.path,
 
                                 getattr(self.changeset, 'short_id', ''))
 

	
 
    @LazyProperty
 
    def name(self):
 
        """
 
        Returns name of the node so if its path
kallithea/model/db.py
Show inline comments
 
@@ -37,26 +37,25 @@ import traceback
 

	
 
import ipaddr
 
import sqlalchemy
 
from sqlalchemy import Boolean, Column, DateTime, Float, ForeignKey, Index, Integer, LargeBinary, String, Unicode, UnicodeText, UniqueConstraint
 
from sqlalchemy.ext.hybrid import hybrid_property
 
from sqlalchemy.orm import class_mapper, joinedload, relationship, validates
 
from tg.i18n import lazy_ugettext as _
 
from webob.exc import HTTPNotFound
 

	
 
import kallithea
 
from kallithea.lib import ext_json, ssh
 
from kallithea.lib.exceptions import DefaultUserException
 
from kallithea.lib.utils2 import (asbool, ascii_bytes, aslist, get_changeset_safe, get_clone_url, remove_prefix, safe_bytes, safe_int, safe_str,
 
                                  urlreadable)
 
from kallithea.lib.utils2 import asbool, ascii_bytes, aslist, get_changeset_safe, get_clone_url, remove_prefix, safe_bytes, safe_int, safe_str, urlreadable
 
from kallithea.lib.vcs import get_backend
 
from kallithea.lib.vcs.backends.base import EmptyChangeset
 
from kallithea.lib.vcs.utils.helpers import get_scm
 
from kallithea.model.meta import Base, Session
 

	
 

	
 
URL_SEP = '/'
 
log = logging.getLogger(__name__)
 

	
 
#==============================================================================
 
# BASE CLASSES
 
#==============================================================================
kallithea/model/forms.py
Show inline comments
 
@@ -379,25 +379,24 @@ def ApplicationVisualisationForm():
 
def ApplicationUiSettingsForm():
 
    class _ApplicationUiSettingsForm(formencode.Schema):
 
        allow_extra_fields = True
 
        filter_extra_fields = False
 
        paths_root_path = All(
 
            v.ValidPath(),
 
            v.UnicodeString(strip=True, min=1, not_empty=True)
 
        )
 
        hooks_changegroup_update = v.StringBoolean(if_missing=False)
 
        hooks_changegroup_repo_size = v.StringBoolean(if_missing=False)
 

	
 
        extensions_largefiles = v.StringBoolean(if_missing=False)
 
        extensions_hgsubversion = v.StringBoolean(if_missing=False)
 
        extensions_hggit = v.StringBoolean(if_missing=False)
 

	
 
    return _ApplicationUiSettingsForm
 

	
 

	
 
def DefaultPermissionsForm(repo_perms_choices, group_perms_choices,
 
                           user_group_perms_choices, create_choices,
 
                           user_group_create_choices, fork_choices,
 
                           register_choices, extern_activate_choices):
 
    class _DefaultPermissionsForm(formencode.Schema):
 
        allow_extra_fields = True
 
        filter_extra_fields = True
kallithea/model/validators.py
Show inline comments
 
@@ -391,25 +391,25 @@ def SlugifyName():
 
            pass
 

	
 
    return _validator
 

	
 

	
 
def ValidCloneUri():
 
    from kallithea.lib.utils import make_ui
 

	
 
    class _validator(formencode.validators.FancyValidator):
 
        messages = {
 
            'clone_uri': _('Invalid repository URL'),
 
            'invalid_clone_uri': _('Invalid repository URL. It must be a '
 
                                   'valid http, https, ssh, svn+http or svn+https URL'),
 
                                   'valid http, https, or ssh URL'),
 
        }
 

	
 
        def _validate_python(self, value, state):
 
            repo_type = value.get('repo_type')
 
            url = value.get('clone_uri')
 

	
 
            if url and url != value.get('clone_uri_hidden'):
 
                try:
 
                    is_valid_repo_uri(repo_type, url, make_ui())
 
                except InvalidCloneUriException as e:
 
                    log.warning('validation of clone URL %r failed: %s', url, e)
 
                    msg = self.message('clone_uri', state)
kallithea/templates/admin/settings/settings_vcs.html
Show inline comments
 
@@ -17,31 +17,24 @@ ${h.form(url('admin_settings'), method='
 
                    </div>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label">${_('Mercurial extensions')}:</label>
 
                <div>
 
                    <div class="checkbox">
 
                        <label>
 
                            ${h.checkbox('extensions_largefiles','True')}
 
                            ${_('Enable largefiles extension')}
 
                        </label>
 
                    </div>
 
                    <div class="checkbox">
 
                        <label>
 
                            ${h.checkbox('extensions_hgsubversion','True')}
 
                            ${_('Enable hgsubversion extension')}
 
                        </label>
 
                    </div>
 
                    <span class="help-block">${_('Requires hgsubversion library to be installed. Enables cloning of remote Subversion repositories while converting them to Mercurial.')}</span>
 
                    ##<div class="checkbox">
 
                    ##    <label>
 
                    ##        ${h.checkbox('extensions_hggit','True')}
 
                    ##        ${_('Enable hg-git extension')}
 
                    ##    </label>
 
                    ##</div>
 
                    ##<span class="help-block">${_('Requires hg-git library to be installed. Enables cloning of remote Git repositories while converting them to Mercurial.')}</span>
 
                </div>
 
            </div>
 
            %if c.visual.allow_repo_location_change:
 
            <div class="form-group">
 
                <label class="control-label" for="paths_root_path">${_('Location of repositories')}:</label>
0 comments (0 inline, 0 general)